Porque solo se actualiza un registro

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • AUSTRE_7083
    Junior Member
    • ago
    • 1

    #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]
Trabajando...