Ich bin letztens auf ein Problem gestoßen, auf das bestimmt viele schon einmal gestoßen sind: Ich habe zwei Tabellen und möchte die Werte von der einen Tabelle in die andere übertragen. Easy going möchte man meinen, ich kann ja einfach MOVE-CORRESPONDING verwenden. Aber was macht man, wenn ein oder mehrere der Felder nicht namensgleich sind wie bei den beiden untenstehenden Tabellen?
lt_table1 |
---|
name |
pernr |
validfrom |
validto |
lt_table2 |
---|
name |
pernr |
vdatu |
bdatu |
Natürlich könnte ich umständlich über die Tabellen loopen und darin die entsprechenden Felder mappen. Aber ich war auf der Suche nach einer besseren Lösung und bin auf den Komponentenoperator CORRESPONDING gestoßen, allerdings mit dem optionalen Zusatz MAPPING.
Nach diesem Zusatz kann eine Mapping-Regel angegeben werden, die die Default-Regel, dass nur gleichnamige Felder einander zugewiesen werden, überschreibt.
So konnte ich angeben welche Felder gemappt werden sollen und war in der Lage, mein Problem mit nur einer Zeile zu lösen.
lt_table1 = CORRESPONDING #( lt_table2 MAPPING validfrom = vdatu validto = bdatu ).