Ansicht
Dokumentation

ABENCL_ABAP_CORRESPONDING_2 - CL ABAP CORRESPONDING 2

ABENCL_ABAP_CORRESPONDING_2 - CL ABAP CORRESPONDING 2

General Data in Customer Master   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

CL_ABAP_CORRESPONDING, Lookup-Tabelle

Mit den Methoden CREATE_USING und EXECUTE_USING der Systemklasse CL_ABAP_CORRESPONDING können Komponenten zwischen internen Tabellen mit dynamischer Angabe einer Mapping-Vorschrift zugewiesen werden, wobei die Quelltabelle als Lookup-Tabelle agiert.

Mit der Factory-Methode CREATE_USING wird ein Mapping-Objekt erzeugt:

DATA(mapper) = cl_abap_corresponding=>create_using( destination = itab
                                                    using       = lookup_tab
                                                    mapping     = mapping_tab ).

An die Parameter destination und using müssen interne Tabellen itab und lookup_table der Tabellentypen übergeben werden, für welche die Zuweisung ausgeführt werden soll. An den Parameter mapping muss eine interne Tabelle vom Typ CL_ABAP_CORRESPONDING=>MAPPING_TABLE übergeben werden, welche die Mapping-Vorschrift enthält. Die Mapping-Tabelle hat die gleichen Komponenten wie bei den Methoden für einfache Zuweisungen mit folgenden speziellen Bedeutungen:

  • KIND
Mappingtyp Zusätzliche mögliche Werte sind:
  • CL_ABAP_CORRESPONDING=>USING_KEY (4), in dieser Zeile wird in der Komponente SRCNAME der Tabellenschlüssel der Lookup-Tabelle angegeben, der für die Auswertung verwendet wird. Die Tabelle muss eine solche Zeile enthalten.

  • CL_ABAP_CORRESPONDING=>MAPPING_USING_COMPONENT (5), in einer solchen Zeile wird der Name einer Spalte der Lookup-Tabelle in SRCNAME mit dem Namen einer Spalte der Zieltabelle in DSTNAME verknüpft. Es müssen alle Schlüsselfelder des verwendeten Tabellenschlüssels durch eine solche Zeile abgedeckt werden.

Die Mapping-Typen für einfache Zuweisungen können ebenfalls verwendet werden und haben die gleiche Bedeutung wie dort.

Mit der Methode EXECUTE_USING eines Mapping-Objekts können beliebig viele Zuweisungen zwischen Tabellen lookup_src und dst durchgeführt werden, deren Datentyp dem bei der Erzeugung des Objekts angegebenen Quell- bzw. Zieltyp lookup_tab bzw. itab entspricht:

mapper->execute_using( EXPORTING using       = lookup_src
                       CHANGING  destination = dst ).

Für jede Zeile in dst wird in der Lookup-Tabelle lookup_src eine Zeile gesucht, die gemäß der in der Mapping-Tabelle über den Mapping-Typ CL_ABAP_CORRESPONDING=>MAPPING_USING_COMPONENT definierten Beziehung zu dieser passt. Bei nicht eindeutigem Schlüssel wird die erste gefundene Zeile verwendet. Wenn keine solche Zeile gefunden wird, bleibt die Zeile von dst unverändert. Wenn eine solche Zeile in lookup_src gefunden wird, wird diese nach den Regeln von MOVE-CORRESPONDING für Strukturen mit dem Zusatz EXPANDING NESTED TABLES an die Zeile von dst mit folgender Ausnahme zugewiesen. Standardmäßig werden die zur Suche verwendeten Komponenten nicht zugewiesen. Mit Zeilen in der Mapping-Tabelle mit Mapping-Typen für einfache Zuweisungen kann die standardmäßige Zuweisung namensgleicher Komponenten und der standardmäßige Ausschluss der zur Suche verwendeten Komponenten übersteuert werden. Für dst und lookup_src darf nicht die gleiche Tabelle angegeben werden, sonst kommt es zum Laufzeitfehler CORRESPONDING_SELF.

Hinweise

  • Die Methoden CREATE_USING und EXECUTE_USING der Systemklasse CL_ABAP_CORRESPONDING verwirklichen eine der Anweisung
dst = CORRESPONDING #( dst FROM lookup_tab KEY key_name ... ).
ähnliche Zuweisung, wobei die zum Abgleich zwischen Ziel- und Lookup-Tabelle verwendeten Spalten sowie die Mapping-Vorschrift hier aber dynamisch als Inhalt einer speziellen internen Tabelle angegeben werden.
  • In der Mapping-Tabelle gehören die Spalten der Zieltabelle dst unabhängig vom Mapping-Typ in die Spalte DSTNAME und die Spalten der Lookup-Tabelle in die Spalte SRCNAME. Beim CORRESPONDING-Operator ist die Anordnung der Operanden hinter USING dagegen unterschiedlich zu hinter MAPPING.

Beispiel

Das Beispiel zeigt die Umsetzung des Beispiels zum Komponentenoperator CORRESPONDING mit Lookup-Tabelle auf die Klasse CL_ABAP_CORRESPONDING.

CL_ABAP_CORRESPONDING mit Lookup-Tabelle






RFUMSV00 - Advance Return for Tax on Sales/Purchases   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 6746 Date: 20240523 Time: 162649     sap01-206 ( 112 ms )