Skip to Content
0
Former Member
Jun 18, 2009 at 10:18 PM

LT04 BATCH INPUT TROUBLE

134 Views

Hy guys i have a little trouble with my batch input. in my table t_fabb i have many rows but just after the first batch, i have an error message:MESSAGE e000(zlo) WITH 'Errore conferma OT LT04.

If i exit from the report ang get in again , the same row that failed , succed but the next row fail etc...

i can't understand why....

LOOP AT t_fabb.    
SELECT *
      FROM ltbk
     WHERE tbnum >= t_fabb-tbnum
       AND lznum  = t_fabb-aufnr
       AND lgnum  = '050'
       AND statu <> 'E'.

      SELECT SINGLE *
        FROM ltbp
       WHERE lgnum  = '050'
         AND elikz <> 'X'
         AND matnr = t_fabb-matnr
         AND tbnum = ltbk-tbnum
         AND charg <> ''.
      IF sy-subrc = 0.
        EXIT.
      ENDIF.
    ENDSELECT.
    IF sy-subrc <> 0.
      MESSAGE e000(zlo) WITH 'Numero OT già confermata'.
      LEAVE SCREEN.SET SCREEN 0.
    ENDIF.


    CLEAR bdcdata.
    REFRESH bdcdata.

    PERFORM bdc_dynpro      USING 'SAPML03T' '0131'.
*  PERFORM bdc_field       USING 'BDC_CURSOR'
*                               'LTBK-TBNUM'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '/00'.
    PERFORM bdc_field       USING 'LTAK-LGNUM'
                                  '050'.
    PERFORM bdc_field       USING 'LTBK-TBNUM'
                                  ltbp-tbnum.
    PERFORM bdc_field       USING '*LTBP-TBPOS'
                                ltbp-tbpos.
    PERFORM bdc_field       USING 'RL03T-ALAKT'
                                  'X'.
    PERFORM bdc_field       USING 'RL03T-DUNKL'
                                   'D'.

    CALL TRANSACTION 'LT04' USING bdcdata
*{   REPLACE        LGPK901791                                        1
*                     MODE 'N'  UPDATE 'S' MESSAGES INTO messtab.
                     MODE 'E'  UPDATE 'S' MESSAGES INTO messtab.
*}   REPLACE
    IF sy-subrc = 0.
      SELECT SINGLE *
        FROM ltbp
       WHERE lgnum = '050'
         AND tbnum = ltbp-tbnum
         AND tanum <> ' '.
      IF sy-subrc = 0.
        z311a-ztanum = ltbp-tanum.
      ENDIF.
      PERFORM modify_z331a.
    ELSE.
      MESSAGE e000(zlo) WITH 'Errore conferma OT LT04'.
      LEAVE SCREEN.SET SCREEN 0.
    ENDIF.

    READ TABLE messtab WITH KEY msgtyp = 'S'
                                msgid = 'LT'
                                msgnr = '100'.

  ENDLOOP.