Hallo,
ich erhalte beim Nachlesen eines Materialtextes und beim Einfügen in eine interne Tabelle, einen Laufzeitfehler "Table_invalid_index". Anbei schicke ich mal den Code. Das Problem besteht denke ich mit der Zeile
"modify t_data INDEX sy-tabix FROM wa_it_data", setze ich diese nach dem LOOP-Ende, funktioniert das Programm, es wird aber beim Ergebnis nur der Materialtext der ersten Zeile ausgegeben, bei allen anderen Zeilen ist die Spalte leer. Deswegen gehört das modify in den Loop, nur dann kommt der Fehler. Sitze hier schon länger dran und bin mehr als ratlos.
Danke für Eure Hilfe:
LOOP AT t_data INTO wa_it_data.
IF wa_it_data-tdname NE space.
* ermitteln der Materiallangtexte mit Funktionsbaustein 'READ_TEXT'
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = '0001'
language = 'D'
name = wa_it_data-tdname
object = 'VBBP'
IMPORTING
header = textkopf
TABLES
lines = texttab
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc = 0. "kein Fehler aus der Funktion
LOOP AT texttab.
*mehrere Zeilen in Texttabelle möglich, erstmal nur Zeile 1 abfragen
CASE sy-tabix.
WHEN 1. g_erstetextzeile = texttab-tdline.
WHEN OTHERS. EXIT. "den Rest ignorieren
ENDCASE.
MOVE g_erstetextzeile TO wa_it_data-ersttext.
ENDLOOP.
MODIFY t_data INDEX sy-tabix FROM wa_it_data.
ENDIF.
ENDIF.
ENDLOOP.