Ayuda SAP

Concatenar variable TDLINE (TABLE_INVALID_INDEX)

Buenas tardes, la concatenacion ya la tengo, pero estoy teniendo problemas al actualizar la workarea.
El problema lo tengo con el segundo MODIFY (honestamente no se si la sintaxis es la adecuada).
La variable DESC_XL, es de tipo string.

Code:

*@0007
  DATA GV_CADUC_M TYPE I.
  DATA WA_IT_EXIST_MAT TYPE TY_EXIST_MAT.

*@0008
  DATA:
    GV_DESC_XL TYPE STRING,
    LV_MATNR   TYPE THEAD-TDNAME,
    XLINE      TYPE TABLE OF TLINE,
    WLINE      TYPE TLINE.
*@0008

  TRY.
      LOOP AT IT_EXIST_MAT INTO WA_IT_EXIST_MAT.

        CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
          EXPORTING
            I_DATE_FROM = SY-DATUM
            I_DATE_TO   = WA_IT_EXIST_MAT-VFDAT_1
          IMPORTING
            E_MONTHS    = GV_CADUC_M.

        WA_IT_EXIST_MAT-CADUC_M = GV_CADUC_M.
        MODIFY IT_EXIST_MAT INDEX SY-TABIX FROM WA_IT_EXIST_MAT TRANSPORTING CADUC_M.

*       @0008
        LV_MATNR = WA_IT_EXIST_MAT-MATNR.
        CALL FUNCTION 'READ_TEXT'
          EXPORTING
            ID                      = 'GRUN'
            LANGUAGE                = SY-LANGU
            NAME                    = LV_MATNR
            OBJECT                  = 'MATERIAL'
          TABLES
            LINES                   = XLINE
          EXCEPTIONS
            ID                      = 1
            LANGUAGE                = 2
            NAME                    = 3
            NOT_FOUND               = 4
            OBJECT                  = 5
            REFERENCE_CHECK         = 6
            WRONG_ACCESS_TO_ARCHIVE = 7
            OTHERS                  = 8.
        IF SY-SUBRC = 0.
          LOOP AT XLINE INTO WLINE.
            CONCATENATE GV_DESC_XL WLINE-TDLINE INTO GV_DESC_XL
            IN CHARACTER MODE
            RESPECTING BLANKS.
          ENDLOOP.
          MODIFY IT_EXIST_MAT INDEX SY-TABIX FROM WA_IT_EXIST_MAT TRANSPORTING DESC_XL.
        ELSE.
*          WRITE: / 'Error', SY-SUBRC.
        ENDIF.
*       @0008


        CLEAR GV_CADUC_M.
      ENDLOOP.
  ENDTRY.
*@0007

Desde ya, agradezco su apoyo. Saludos!!

@LDSDev Verifica que la posición de la tabla que estas modificando exista.

Es un hecho que existe, ya que es un campo que viene vacio desde la definicion, creo que el SY-TABIX se esta “confundiendo” por el loop anidado.

UPDATE:

Confirmado SY-TABIX se pierde, usare una variable entera para guardar el valor de SY-TABIX y les cuento como me va. (Es valido hacer esto?? jejejeje)

1 me gusta

@LDSDev Yo en esos casos uso una variable auxiliar y la voy incrementando a medida de que se ejecuta el loop para olvidarme del sy-tabix.

Creo que de ahora en adelante, tambien usare la variable auxiliar, aunque solo lo veo viable cuando usas loops anidados. Muchas gracias por tu ayuda!!

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.