Ansicht
Dokumentation

ABAPINSERT_ITAB_LINESPEC - INSERT ITAB LINESPEC

ABAPINSERT_ITAB_LINESPEC - INSERT ITAB LINESPEC

Fill RESBD Structure from EBP Component Structure   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

INSERT, line_spec

Kurzreferenz



... wa
  $| ${INITIAL LINE$}
  $| ${LINES OF jtab $[FROM idx1$] $[TO idx2$] $[STEP n$] $[USING KEY keyname$]$} ...

Alternativen:

1. ... wa

2. ... INITIAL LINE

3. ... LINES OF jtab $[FROM idx1$] $[TO idx2$] $[STEP n$] $[USING KEY keyname$]

Wirkung

Es können entweder ein Arbeitsbereich wa, eine initiale Zeile INITIAL LINE oder mehrere Zeilen einer internen Tabelle jtab angehängt werden.

Alternative 1

... wa


Wirkung

Es wird eine neue Zeile angehängt und dieser der Inhalt des Arbeitsbereichs wa zugewiesen. Bei wa handelt es sich um eine allgemeine Ausdrucksposition. Dabei gilt:

  • Beim Einfügen über den Tabellenschlüssel muss wa kompatibel zum Zeilentyp der internen Tabelle sein. Ausgenommen von dieser Regel sind beliebige Konstruktorausdrücke, deren Ergebnistyp inkompatibel zum Zeilentyp sein kann und deren Ergebnis falls möglich in den Zeilentyp konvertiert wird.
  • Beim Einfügen über den Tabellenindex kann wa inkompatibel zum Zeilentyp der internen Tabelle sein und wird gegebenenfalls nach den Konvertierungsregeln in den Zeilentyp konvertiert.

Wenn bei einer Konvertierung ein Konvertierungsfehler auftritt, ist die Ausnahme nicht über CX_SY_CONVERSION_ERROR behandelbar, sondern es kommt direkt zum zugehörigen Laufzeitfehler. Wenn für wa ein arithmetischer Ausdruck angegeben ist, geht der Zeilentyp der internen Tabelle in die Bestimmung des Rechentyps ein.

Beim Einfügen von einzelnen Zeilen in interne Tabellen mit nicht-eindeutigen Tabellenschlüsseln wird die Reihenfolge der duplikativen Zeilen bezüglich dieser Schlüssel nach der Einfügereihenfolge der einzelnen Zeilen bestimmt. Bei sekundären Tabellenschlüsseln geschieht dies während des lazy update.

Falls es zu einem Konflikt mit einem bereits vorhandenen eindeutigen primären Tabellenschlüssel kommt, wird keine Zeile eingefügt und bei einem Schlüsselzugriff sy-subrc auf 4 gesetzt, während es bei einem Indexzugriff zu einer unbehandelbaren Ausnahme kommt. Bei einem Konflikt mit einem eindeutigen sekundären Tabellenschlüssel kommt es zur behandelbaren Ausnahme der Klasse CX_SY_ITAB_DUPLICATE_KEY.

Hinweise

  • Beim Einfügen über den Tabellenschlüssel können inkompatible Arbeitsbereiche über den Konvertierungsoperator CONV in den Zeilentyp konvertiert werden.
  • Die Angabe eines Rechenausdrucks für wa ist in der Regel nur für elementare Zeilentypen sinnvoll.
  • Außerhalb von Klassen gibt es noch eine obsolete Kurzform, bei der die Angabe wa INTO weggelassen werden kann, falls die interne Tabelle eine gleichnamige Kopfzeile itab hat. Die Anweisung verwendet dann implizit die Kopfzeile als Arbeitsbereich.

Beispiel

Einfügen einer durch den Wertoperator VALUE konstruierten Struktur in eine interne Tabelle.

Alternative 2

... INITIAL LINE


Wirkung

Es wird eine neue Zeile erzeugt, bei der jede Komponente ihren typabhängigen Initialwert enthält.

Beispiel

Einfügen einer initialen Zeile, die gleichzeitig über den Zusatz ASSIGNING mit einem Feldsymbol verknüpft wird. Dadurch kann die initiale Zeile direkt bearbeitet werden.

Alternative 3

... LINES OF jtab $[FROM idx1$] $[TO idx2$] $[STEP n$] $[USING KEY keyname$]


Wirkung

Die Zeilen einer internen Tabelle jtab werden als Block angehängt. Bei jtab handelt es sich um eine funktionale Operandenposition. Die Zeilentypen von itab und jtab müssen beim Einfügen über den Tabellenschlüssel kompatibel und beim Einfügen über den Index konvertibel sein.

Die einzufügenden Zeilen werden der Tabelle jtab sequenziell entnommen. Die Reihenfolge, in der die Zeilen entnommen werden, ist wie bei der Anweisung LOOP und kann wie dort über die Angabe eines Tabellenschlüssels keyname hinter USING KEY beeinflusst werden. Die Zusätze FROM idx1 und TO idx2 haben bezüglich jtab ebenfalls die gleiche Syntax und Wirkung wie bei LOOP. STEP n besitzt die gleiche Syntax und Wirkung wie LOOP, außer dass der Wert von n positiv sein muss.

Beim blockweisen Einfügen von Zeilen in eine interne Tabellen mit nicht-eindeutigem primären Tabellenschlüssel bleibt die Reihenfolge von duplikativen Zeilen bezüglich des Primärschlüssels erhalten. Für Sekundärschlüssel gilt das nicht.

  • Wenn bereits ein duplikativer Eintrag in einer sortierten Zieltabelle vorhanden ist, werden die Duplikate des Quellblocks in ihrer ursprünglichen Reihenfolge vor dem ersten Duplikat der Zieltabelle eingefügt.
  • Beim Einfügen in Standardtabellen wirkt INSERT dagegen immer wie die Anweisung APPEND und die Zeilen werden wie beim dortigen Zusatz LINES OF in ihrer ursprünglichen Reihenfolge hinter der letzten Zeile angehängt.

Falls es zu einem Konflikt mit einem bereits vorhandenen eindeutigen Tabellenschlüssel kommt, führt dies beim Einfügen mehrerer Zeilen aus einer internen Tabelle immer zu einer unbehandelbaren Ausnahme. Wenn beim Einfügen ein Konvertierungsfehler auftritt, ist die Ausnahme nicht über CX_SY_CONVERSION_ERROR behandelbar, sondern es kommt direkt zum zugehörigen Laufzeitfehler.

Hinweis

Mit den Konstruktoroperatoren NEW und VALUE können bei der Konstruktion einer internen Tabelle ebenfalls mehrere Zeilen einer Tabelle über LINES OF in die Zieltabelle eingefügt werden.

Einfügen der Zeilen einer internen Tabelle itab in die dieselbe Tabelle. Die Zeilen werden wegen der Angabe des sortierten Sekundärschlüssels skey aufsteigend sortiert vor der vorhandenen ersten Zeile eingefügt.

Einfügen der Zeilen einer internen Tabelle itab in die dieselbe Tabelle. Die Zeilen werden wegen der Angabe des sortierten Sekundärschlüssels skey aufsteigend sortiert vor der vorhandenen ersten Zeile eingefügt.

Einfügen der Zeilen einer internen Tabelle itab in die gleiche Tabelle, gesteuert durch FROM, TO und STEP. Die Zeilen werden wegen der Angabe des sortierten Sekundärschlüssels skey aufsteigend sortiert vor der vorhandenen ersten Zeile eingefügt.






General Data in Customer Master   Addresses (Business Address Services)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 10660 Date: 20240425 Time: 043214     sap01-206 ( 171 ms )