EXPAND
Expandieren Quelldaten über Zwischentabelle in Zieltabelle
Beim Expand handelt es sich um eine Spezial-Transformation, die im Grundprinzip 2 Tabellen (Source und Intermediate) miteinander multipliziert: Enthält die Tabelle aus der Source 10 Zeilen und die Intermediate 5 Zeilen, so werden daraus 50 Zeilen erzeugt.
Eine Anwendung ist die Bewertung einer Tabelle mit Planabsatzdaten mit Herstellkostendaten (Materialpreis, Materialgemeinkostenpreis, Fertigungskostenpreis). In der ersten Zeile muss die Absatzmenge mit dem Materialpreis multipliziert werden, in der zweiten Zeile die Absatzmenge mit dem Materialgemeinkostenpreis und so weiter. Jetzt ergibt sich hier schon das Problem, dass die Planabsatzdaten in der Source nicht nur ein Material, sondern mehrere enthalten und die Herstellkosten in der Intermediate nicht nur die Herstellkosten von einem Material beinhalten. Deswegen muss es möglich sein, die Schlüsselwerte beider Tabellen zu vergleichen und pro Zeile nur die Zeilen zu multiplizieren, bei denen die Materialnummer der Zeile mit den Zeilen in der Intermediate identisch sind.
Reiter Parameter
Im Reiter Parameter wird festgelegt, welches Shared Memory als Intermediate verwendet werden soll. Nun kann festgelegt werden, welche Felder aus Source und Intermediate miteinander verglichen werden. Bei Bedarf kann dies auch über eine Formel erfolgen.

| Intermediate ID | Angabe des Shared Memory Objektes, das für den Expand verwendet werden soll |
|---|---|
| Kombinationstyp | Entweder SL Selektion oder XF Formel auswählen |
| Formel auswählen | (nur bei XF Formel) Formel, über die die Zeilen selektiert werden sollen Mit Taste F4 kann man eine bereits angelegte Formel auswählen. Mit Taste SHIFT+F2 gelangt man in den Formeleditor, um eine selektierte Formel zu ändern oder eine neue anzulegen. |
Funktionsweise von Selektionsformeln Wenn das Ergebnis der Formel wahr ist bzw. "1", dann wird die Intermediate-Zeile für die Source-Zeile übernommen, ansonsten nicht.
Beispiele für Formeln
| 1=1 | Da das Ergebnis immer wahr ist, werden immer alle Zeilen aus der Intermediate verwendet. |
|---|---|
| SRC-BUKRS = INT-BUKRS | Es werden nur die Zeilen der Intermediate pro Source-Zeile angelegt, bei denen das Feld BUKRS jeweils identisch ist. |
| IF INT-GJAHR >= SRC-GJAHR THEN 1 ENDIF | Es werden nur die Zeilen der Intermediate pro Source-Zeile angelegt, bei denen das Feld GAJHR größer oder gleich dem Feld GJAHR in der Source ist. |
Reiter Source Mapping
In dem Reiter wird festgelegt, welches Feld aus der Source mit welchem Feld in der Target gemappt wird. Dies erfolgt analog zur Transformation MAP_FIELDS.

| Quelle | Feld in der Quellstruktur |
|---|---|
| Ziel | Feld in der Zielstruktur, dem das Quellfeld zugeordnet werden soll |
In der Quelle gibt es 2 Sonderfunktionen, analog zur Transformation MAP_FIELDS:
- Festwert: Steht der Text in einfachen Anführungszeichen, zum Beispiel '1', so wird der Eintrag als Wert statt als Feld interpretiert.
- Offset: Folgt dem Feldname ein "+", zum Beispiel FELDNAME+6(10), so wird dies als Offset und Länge interpretiert: aus "KS10000000001000" werden die ersten 6 Stellen entfernt und die restlichen 10 Stellen verwendet, in dem Beispiel "0000001000". FELDNAME+6 verwendet alles nach dem 6. Zeichen, FELDNAME(4) verwendet die ersten 4 Zeichen.
Reiter Intermediate Mapping
In diesem Reiter wird festgelegt, welches Feld aus der Intermediate mit welchem Feld in der Target gemappt wird. Dies erfolgt analog zur Transformation MAP_FIELDS.

| Intermediate | Feld in der Intermediate-Tabelle |
|---|---|
| Ziel | Feld in der Zielstruktur, dem das Intermediate-Feld zugeordnet werden soll |
Reiter Dyn. Mapping
In diesem Reiter kann festgelegt werden, welches Feld aus der Source abhängig von dem Wert in dem Feld in Intermediate auf das Feld in der Target gemappt wird.

Visuelles Beispiel

Der Wert der Felder VALUE_A, VALUE_B, VALUE_C werden in das Feld VALUE übernommen. Für die Intermediatezeile 1 wird VALUE_A verwendet, für Zeile 2 VALUE_B und für Zeile 3 VALUE_C.
Reiter Formeln
In diesem Reiter können Formeln definiert werden, deren Ergebnis in ein Feld in der Target geschrieben wird, z.B. "Absatzmenge x Materialpreis".
Über das Feld Muster können Werte durchlaufen werden, z.B. 1-12, um nicht für jedes Feld Wert01 bis Wert12 eine eigene Formel erstellen zu müssen. Hierbei wird bei der Ausführung jeder Wert von 1 bis 12 durchlaufen und jedes Mal der Eintrag MONTH mit dem Wert ersetzt.

| Formel | Mit Taste F4 kann man eine bereits angelegte Formel auswählen. Mit Taste F2 gelangt man in den Formeleditor, um eine selektierte Formel zu ändern oder eine neue anzulegen. |
|---|---|
| Ziel | Feld, das im Ziel geändert werden soll. |
| Muster (Pattern) | Mit Hilfe eines Patterns können mehrere durchnummerierte Felder mit der gleichen Formel bzw. dem gleichen Quellfeld gefüllt werden. Beispiel: Man verwendet Pattern MONTH. Im Zielfeld kann nun VALUE_W_(MONTH) eingetragen werden, um z.B. die Felder VALUE_W_01 bis VALUE_W_12 zu ändern. |
| Von/Bis | Von welchem Wert bis welchem Wert das Pattern durchlaufen werden soll. In dem Beispiel 1 bis 12. |
Die Formeln werden in der Reihenfolge ihrer Anlage ausgeführt.
Hinweis Um die Reihenfolge der Formeln zu ändern, kann man die Zeile im ALV per Drag&Drop an die gewünschte Stelle verschieben.