Ansicht
Dokumentation

ABAPINSERT_ITAB - INSERT ITAB

ABAPINSERT_ITAB - INSERT ITAB

BAL Application Log Documentation   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

INSERT itab

Kurzreferenz



INSERT line_spec INTO itab_position $[result$].

Wirkung

Diese Anweisung fügt eine oder mehrere Zeilen line_spec an einer Stelle itab_position einer internen Tabelle ein. Die Stelle kann über den primären Tabellenschlüssel oder einen Tabellenindex spezifiziert werden. Mit result kann beim Anhängen einer einzelnen Zeile eine Referenz in Form eines Feldsymbols oder einer Datenreferenz auf die angehängte Zeile gesetzt werden.

Beim Einfügen einer Zeile werden alle vorhandenen eindeutigen Tabellenschlüssel überprüft. Dies können ein eindeutiger primärer Tabellenschlüssel und mehrere eindeutige sekundäre Tabellenschlüssel sein. Das System behandelt eventuelle Duplikate der verschiedenen Schlüssel nach folgender Hierarchie:

  1. Wenn beim Versuch eine Einzelzeile über den Primärschlüssel einzufügen, Duplikate betreffs des eindeutigen Primärschlüssels entstehen würden, wird keine Zeile eingefügt und sy-subrc auf den Wert 4 gesetzt.
  2. Wenn bei einem Versuch eine Einzelzeile über den Schlüssel oder den Index einzufügen, Duplikate betreffs eines eindeutigen Sekundärschlüssels entstehen würden, wird eine behandelbare Ausnahme der Klasse CX_SY_ITAB_DUPLICATE_KEY ausgelöst.
  3. Wenn beim Versuch eine einzelne Zeile über einen Index oder mehrere Zeilen als Block einzufügen, Duplikate betreffs eines eindeutigen Primär- oder Sekundärschlüssels entstehen würden, kommt es zu einem Laufzeitfehler.

Systemfelder

sy-subrc Bedeutung
0 Eine oder mehrere Zeilen wurden eingefügt.
4 Es wurde keine Zeile eingefügt, da entweder beim Einfügen einer einzelnen Zeile über den Primärschlüssel schon eine Zeile mit einem gleichen eindeutigen Primärschlüssel existierte oder beim Einfügen über einen Tabellenindex der angegebene Index größer als die aktuelle Anzahl von Zeilen zuzüglich 1 war.

Das Systemfeld sy-tabix wird nicht gesetzt.

Hinweise

  • Die Verwaltung eines eindeutigen sekundären Tabellenschlüssels wird sofort (direct update) und eines nicht-eindeutigen sekundären Schlüssels erst bei der nächsten expliziten Verwendung des sekundären Tabellenschlüssels aktualisiert (lazy update). Die Laufzeitkosten für die Erzeugung oder Aktualisierung eines nicht eindeutigen sekundären Tabellenschlüssels fallen also erst bei dessen erster Verwendung an (siehe ausführbares Beispiel).

Beispiel

Einfügen einzelner Zeilen über den primären Tabellenindex in eine Standardtabelle int_tab und Einfügen von Referenzen auf diese Zeilen über den primären Tabellenschlüssel in eine Hash-Tabelle ref_tab. Die Ausgaben in den LOOP-Schleifen ergeben die Zahlen von 10 bis 1 für int_tab und die Zahlen von 1 bis 10 für ref_tab.

Ausnahmen

Behandelbare Ausnahmen

CX_SY_ITAB_DUPLICATE_KEY

  • Ursache: Duplikativer Schüsselwert bei eindeutigem Sekundärschlüssel
    Laufzeitfehler: ITAB_DUPLICATE_KEY

Unbehandelbare Ausnahmen

  • Ursache: Beim Einfügen einer Zeilenmenge sind Einträge mit identischem Schlüssel aufgetreten (Zieltabelle mit UNIQUE definiert)
    Laufzeitfehler: ITAB_DUPLICATE_KEY
  • Ursache: Verletzung der Sortierreihenfolge infolge eines INSERT mit Index auf eine sortierte Tabelle
    Laufzeitfehler: ITAB_ILLEGAL_SORT_ORDER
  • Ursache: Unzulässiger Indexwert (= 0) bei einer FROM-, TO- oder INDEX-Angabe
    Laufzeitfehler: TABLE_INVALID_INDEX






CL_GUI_FRONTEND_SERVICES - Frontend Services   Addresses (Business Address Services)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 7202 Date: 20240419 Time: 083242     sap01-206 ( 87 ms )