Laufzeitfehler TABLE_INVALID_INDEX Datum und Zeit 23.07.2014 10:59:26 ---------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------- |Kurztext | | Fehler in ABAP-Anweisung beim Bearbeiten einer internen Tabelle. | ---------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------- |Was ist passiert? | | Fehler im ABAP-Anwendungsprogramm. | | | | Das laufende ABAP-Programm "CL_ALV_CHANGED_DATA_PROTOCOL==CP" mußte abgebrochen | | werden, da es auf | | eine Anweisung gestoßen ist, die leider nicht ausgeführt werden kann. | ---------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------- |Fehleranalyse | | Beim Ändern bzw. Löschen einer oder mehrerer Zeilen der internen Tabelle | | "{A:585*\TYPE=%_T00004S00000327O0000157376}" oder beim Einfügen in die Tabelle | | "{A:585*\TYPE=%_T00004S00000327O0000157376}" wurde 0 als | | Zeilenindex verwendet. Ein Index kleiner oder gleich Null ist nicht | | erlaubt. | | | | Der Fehler kann bei Verwendung der folgenden Zusätze auftreten: | | 1. "INDEX idx" zur Angabe der Zeilennummer in der Tabelle | | "{A:585*\TYPE=%_T00004S00000327O0000157376}", | | an der geändert, eingefügt oder gelöscht werden soll. | | 2. "FROM idx" zur Angabe des Startindex beim Löschen bzw. Einfügen | | eines Zeilenbereichs aus der bzw. in die Tabelle | | "{A:585*\TYPE=%_T00004S00000327O0000157376}". | | 3. "TO idx" zur Angabe des Endindex beim Löschen bzw. Einfügen | | eines Zeilenbereichs aus der bzw. in die Tabelle | | "{A:585*\TYPE=%_T00004S00000327O0000157376}". | | | | Zum Zeitpunkt des Abbruchs enthielt die Tabelle 1 Zeilen. | ---------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------- |Auslösestelle des Laufzeitfehlers | | Programm CL_ALV_CHANGED_DATA_PROTOCOL==CP | | Include CL_ALV_CHANGED_DATA_PROTOCOL==CM001 | | Zeile 30 | | Modultyp (METHOD) | | Modulname MODIFY_CELL | ---------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------- |Ausschnitt Quelltext | ---------------------------------------------------------------------------------------------------- |Zeile|Quelltext | ---------------------------------------------------------------------------------------------------- | 1|method MODIFY_CELL. | | 2|* ... | | 3| data: lp_wa type ref to data. | | 4| data: ls_modi type lvc_s_modi. | | 5| INCLUDE . | | 6| | | 7| field-symbols: type standard table. | | 8| field-symbols: TYPE ANY. | | 9| field-symbols: type any. | | 10| | | 11| ASSIGN Mp_mod_rows->* TO . | | 12| create data lp_wa like line of . | | 13| ASSIGN lp_wa->* TO . | | 14| | | 15| if i_tabix is initial. | | 16| read table mt_mod_cells into ls_modi with key row_id = i_row_id. | | 17| if sy-subrc = 0. | | 18| i_tabix = ls_modi-tabix. | | 19| endif. | | 20| endif. | | 21| | | 22| read table into index i_tabix. | | 23| assign component i_fieldname of structure to . | | 24| if i_value is initial. | | 25| clear . | | 26| else. | | 27| = i_value. | | 28| endif. | | 29| modify from index i_tabix. | |>>>>>| if sy-subrc = 0. | | 31| if i_row_id is initial. | | 32| read table mt_mod_cells into ls_modi index i_tabix. | | 33| i_row_id = ls_modi-row_id. | | 34| endif. | | 35| read table mt_good_cells with key row_id = i_row_id | | 36| fieldname = i_fieldname | | 37| transporting no fields. | | 38| if sy-subrc ne 0. | | 39| clear ls_modi. | | 40| read table mt_fieldcatalog with key fieldname = i_fieldname | | 41| checkbox = 'X' | | 42| transporting no fields. | | 43| if sy-subrc = 0. | | 44| if i_value = 'X'. | | 45| ls_modi-style = alv_style_checkbox_checked. | | 46| else. | | 47| ls_modi-style = alv_style_checkbox_not_checked. | | 48| endif. | | 49| endif. | ----------------------------------------------------------------------------------------------------