Ansicht
Dokumentation

ABENREFLEXIVE_CORRESPONDING_ABEXA - REFLEXIVE CORRESPONDING ABEXA

ABENREFLEXIVE_CORRESPONDING_ABEXA - REFLEXIVE CORRESPONDING ABEXA

Fill RESBD Structure from EBP Component Structure   General Material Data  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Reflexive Komponentenzuweisungen

Das Beispiel demonstriert Zuweisungen zwischen Komponenten einer Struktur.

Quelltext

Ausführen

Beschreibung

Das Beispiel fasst verschiedene Möglichkeiten von Zuweisungen der Komponenten ein und derselben Struktur zusammen:

  • Zwischen dem Typ t_str1 der Struktur str1 und dem Typ t_str2 des Feldsymbols fs2 gibt es keine Überlappung von Quell- und Zielkomponenten. Bei einer Zuweisung der Struktur an das Feldsymbol, das auf die Struktur zeigt, wird der Inhalt der Spalten a1 und a2 in die Spalten a3 und a4 kopiert, da diese im Feldsymbol die Namen a1 und a2 haben. Bei einer Zuweisung vom Feldsymbol an die Struktur wird dagegen der Inhalt der Spalten a3 und a4 in die Spalten a1 und a2 kopiert.

  • Zwischen dem Typ t_str1 der Struktur str1 und dem Typ t_str3 des Feldsymbols fs3 überlappen sich die namensgleichen Komponenten. Bei einer Zuweisung der Struktur an das Feldsymbol, das auf die Struktur zeigt, werden die Komponenten in einer undefinierten Reihenfolge ausgewertet und es wird der bereits zugewiesene aktuelle Inhalt der Komponenten verwendet. Bei einer Zuweisung vom Feldsymbol an die Struktur ist das Ergebnis wieder anders.

Reflexive Zuweisungen zwischen den Komponenten einer Struktur über MOVE-CORRESPONDING sollten also wenn überhaupt nur überlappungsfrei erfolgen.
  • Im Fall der Grundform des Konstruktoroperators CORRESPONDING wird eine temporäre Kopie der Struktur als Zielobjekt erstellt und es wird an diese zugewiesen. Die beiden Mapping-Vorschriften drücken die Erwartung der beiden vorhergehenden MOVE-CORRESPONDING-Anweisungen aus und erzielen das erwartete Ergebnis.
  • Die Methode EXECUTE der Systemklasse CL_ABAP_CORRESPONDING wird mit den gleichen Mapping-Vorschriften wie die beiden vorhergehenden Konstruktoroperatoren CORRESPONDING aufgerufen. Da keine temporäre Kopie der Struktur als Zielobjekt erstellt wird, ist das Ergebnis wieder wie bei den Beispielen für MOVE-CORRESPONDING. Auch bei dynamischen Mappings mit CL_ABAP_CORRESPONDING sollten die Quell- und Zielkomponenten überlappungsfrei sein.





BAL_S_LOG - Application Log: Log header data   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 3173 Date: 20240523 Time: 100650     sap01-206 ( 66 ms )