#1
|
|||
|
|||
Porque solo se actualiza un registro
Hola buen día, de favor me gustaría que me orientaran, al momento que hago una carga desde un txt, para actualizar fechas, solo me actualiza el primer registro de mi txt, como puedo hacer para que me actualice todos, o que es lo que tengo mal, (apenas empiezo en el mundo abap).
Agradeceria su tiempo prestado y ayuda! TYPES: BEGIN OF TY_POSICIONES, promo TYPE bbynr, sel_dat TYPE datab, ini_dat TYPE Datab, fin_dat TYPE datab, END OF TY_POSICIONES. DATA: IT_POSICIONES TYPE STANDARD TABLE OF TY_POSICIONES, WA_POSICIONES TYPE TY_POSICIONES. DATA: IT_POSICIONES1 TYPE STANDARD TABLE OF TY_POSICIONES, WA_POSICIONES1 TYPE TY_POSICIONES. Data: sKWMENG(19) type c. data skbetr(16) type c. DATA: BEGIN OF BDC_TAB OCCURS 5. INCLUDE STRUCTURE BDCDATA. DATA: END OF BDC_TAB. DATA BEGIN OF TBI_XLS OCCURS 0. INCLUDE STRUCTURE ALSMEX_TABLINE. DATA END OF TBI_XLS. data fecha_cons(8) type c. data fecha_inidat(8) type c. data fecha_findat(8) type c. DATA INDICEC(6) TYPE C. DATA INDICE TYPE I. data opciones type CTU_PARAMS . DATA: FECHA(10) TYPE C, CONT(02) TYPE N, CATALOGADOS(5) TYPE N, ERROR(5) TYPE N, LV_CENTRO TYPE WLK1-FILIA, FLVON TYPE SY-DATUM, LV_MENSAJE TYPE STRING. DATA: MESS_TAB TYPE STANDARD TABLE OF BDCMSGCOLL WITH HEADER LINE. DATA: W_TEXTOUT TYPE STRING. DATA CAMPO TYPE STRING. SELECTION-SCREEN BEGIN OF BLOCK BLK001 WITH FRAME TITLE TEXT-001. SELECTION-SCREEN: BEGIN OF LINE, COMMENT (18) CM5. PARAMETERS RUTA1(128) TYPE C DEFAULT 'C:\Carga\cambio_promos.xls' OBLIGATORY. SELECTION-SCREEN: END OF LINE. PARAMETERS MODO TYPE C DEFAULT 'N'. SELECTION-SCREEN END OF BLOCK BLK001. AT SELECTION-SCREEN OUTPUT. CM5 = 'Seleccione Archivo'. AT SELECTION-SCREEN ON VALUE-REQUEST FOR RUTA1. CALL FUNCTION 'F4_FILENAME' EXPORTING PROGRAM_NAME = 'ZVA01' DYNPRO_NUMBER = SY-DYNNR IMPORTING FILE_NAME = RUTA1 EXCEPTIONS OTHERS = 1. START-OF-SELECTION. CALL FUNCTION 'WS_UPLOAD' EXPORTING FILENAME = RUTA1 FILETYPE = 'DAT' TABLES DATA_TAB = IT_POSICIONES[]. IF SY-SUBRC <> 0. ENDIF. CLEAR: BDC_TAB. loop at it_posiciones into wa_posiciones. clear : fecha_cons. concatenate wa_posiciones-sel_dat+6(2) wa_posiciones-sel_dat+4(2) wa_posiciones-sel_dat+0(4) into fecha_cons. concatenate wa_posiciones-ini_dat+6(2) wa_posiciones-ini_dat+4(2) wa_posiciones-ini_dat+0(4) into fecha_inidat. concatenate wa_posiciones-fin_dat+6(2) wa_posiciones-fin_dat+4(2) wa_posiciones-fin_dat+0(4) into fecha_findat. PERFORM DYNPRO USING: 'X' 'SAPMV13N' '0100', ' ' 'BDC_CURSOR' 'KONBBY_KOMK-BBYNR', ' ' 'BDC_OKCODE' '=EXEC', ' ' 'KONBBY_KOMK-BBYNR' wa_posiciones-promo, 'X' 'SAPLV14A' '0100', ' ' 'BDC_CURSOR' 'RV130-SELKZ(03)', ' ' 'BDC_OKCODE' '=WEIT', ' ' 'RV130-SELKZ(01)' ' ', ' ' 'RV130-SELKZ(03)' 'X', 'X' 'RV13N201' '1000', ' ' 'BDC_CURSOR' 'SEL_DATE', ' ' 'BDC_OKCODE' '=ONLI', ' ' 'F001' 'OV01', ' ' 'F002' 'C1', ' ' 'F003' wa_posiciones-promo, ' ' 'SEL_DATE' fecha_cons, 'X' 'SAPMV13N' '3201', ' ' 'BDC_CURSOR' 'KONDN-BBYVAL(01)', ' ' 'BDC_OKCODE' '=TICH', ' ' 'RB_CATEG_MULTI' 'X', ' ' 'BDC_SUBSCR' 'SAPMV13N 0301PREREQ_SUB', 'X' 'SAPLV130' '0210', ' ' 'BDC_CURSOR' 'RV130-DATBI', ' ' 'BDC_OKCODE' '=WEIT', ' ' 'RV130-DATAB' fecha_inidat, ' ' 'RV130-DATBI' fecha_findat, 'X' 'SAPMV13N' '3201', ' ' 'BDC_CURSOR' 'KONDN-BBYVAL(01)', ' ' 'BDC_OKCODE' '=SICH', ' ' 'RB_CATEG_MULTI' 'X', ' ' 'BDC_SUBSCR' 'SAPMV13N 0301PREREQ_SUB'. endloop. opciones-DISMODE = MODO. opciones-UPDMODE = 'S'. CALL TRANSACTION 'VBK2' USING BDC_TAB MODE MODO UPDATE 'S' * OPTIONS FROM opciones MESSAGES INTO MESS_TAB. ADD 1 TO CATALOGADOS. COMMIT WORK. * CLEAR WA_COSTOS. * WRITE: CATALOGADOS COLOR 1, 'NUMERO DE DOCUMENTO DE VENTA' COLOR 5. SKIP 2. WRITE: / 'LOG:'. SKIP. LOOP AT MESS_TAB ." WHERE MSGTYP = 'E' OR MSGTYP = 'I' or MSGTYP = 'S' . CLEAR W_TEXTOUT. CALL FUNCTION 'MESSAGE_TEXT_BUILD' EXPORTING MSGID = MESS_TAB-MSGID MSGNR = MESS_TAB-MSGNR MSGV1 = MESS_TAB-MSGV1 MSGV2 = MESS_TAB-MSGV2 MSGV3 = MESS_TAB-MSGV3 MSGV4 = MESS_TAB-MSGV4 IMPORTING MESSAGE_TEXT_OUTPUT = W_TEXTOUT. ADD 1 TO ERROR. WRITE: / ERROR COLOR 4, '-', W_TEXTOUT COLOR 6. ENDLOOP. *&---------------------------------------------------------------------* *& Form dynpro *&---------------------------------------------------------------------* * llenado de campos para call transaction. *----------------------------------------------------------------------* * -->DYNBEGIN text * -->NAME text * -->VALUE text *----------------------------------------------------------------------* FORM DYNPRO USING DYNBEGIN NAME VALUE. CLEAR BDC_TAB. IF DYNBEGIN = 'X'. MOVE: 'X' TO BDC_TAB-DYNBEGIN, NAME TO BDC_TAB-PROGRAM, VALUE TO BDC_TAB-DYNPRO. ELSE. MOVE: NAME TO BDC_TAB-FNAM, VALUE TO BDC_TAB-FVAL. ENDIF. APPEND BDC_TAB. ENDFORM. "DYNPRO[/size] |
Herramientas | Buscar en Tema |
Desplegado | |
|
|