EXPAND
Expandir datos de origen a tabla de destino mediante tabla intermedia
El Expand es una transformación especial que, en principio, multiplica dos tablas (Source e Intermediate) entre sí: Si la tabla de la Source contiene 10 filas y la Intermediate 5 filas, se generarán 50 filas.
Una aplicación es la valoración de una tabla con datos de volumen de ventas planificado con datos de costes de fabricación (precio de material, precio de gastos generales de material, precio de costes de fabricación). En la primera fila, el volumen de ventas debe multiplicarse por el precio de material; en la segunda fila, el volumen de ventas por el precio de gastos generales de material, y así sucesivamente. Ahora surge el problema de que los datos de volumen de ventas planificado en la Source no solo contienen un material, sino varios, y los costes de fabricación en la Intermediate no solo incluyen los costes de fabricación de un material. Por lo tanto, debe ser posible comparar los valores clave de ambas tablas y multiplicar, por cada fila, solo aquellas filas en las que el número de material de la fila sea idéntico al de las filas en la Intermediate.
Pestaña Parámetros
En la pestaña Parámetros, se define qué Shared Memory se utilizará como Intermediate. Luego, se puede especificar qué campos de la Source y de la Intermediate se compararán entre sí. Si es necesario, esto también se puede realizar mediante una fórmula.

| Intermediate ID | Indicación del objeto Shared Memory que se utilizará para el Expand |
|---|---|
| Tipo de combinación | Seleccione SL Selección o XF Fórmula |
| Seleccionar fórmula | (solo con fórmula XF) Fórmula mediante la cual se seleccionarán las filas Con la tecla F4 se puede seleccionar una fórmula ya creada. Con la tecla SHIFT+F2 se accede al editor de fórmulas para modificar una fórmula seleccionada o crear una nueva. |
Funcionamiento de las fórmulas de selección Si el resultado de la fórmula es verdadero o "1", se adoptará la fila de la Intermediate para la fila de la Source; de lo contrario, no.
Ejemplos de fórmulas
| 1=1 | Dado que el resultado siempre es verdadero, siempre se utilizan todas las filas de la Intermediate. |
|---|---|
| SRC-BUKRS = INT-BUKRS | Solo se crearán las filas de la Intermediate por cada fila de la Source en las que el campo BUKRS sea idéntico. |
| IF INT-GJAHR >= SRC-GJAHR THEN 1 ENDIF | Solo se crearán las filas de la Intermediate por cada fila de la Source en las que el campo GJAHR sea mayor o igual al campo GJAHR en la Source. |
Pestaña Asignación de Source
En esta pestaña se define qué campo de la Source se asigna a qué campo de la Target. Esto se realiza de forma análoga a la transformación MAP_FIELDS.

| Origen | Campo en la estructura de origen |
|---|---|
| Destino | Campo en la estructura de destino al que se debe asignar el campo de origen |
En el origen existen 2 funciones especiales, análogas a la transformación MAP_FIELDS:
- Valor fijo: Si el texto está entre comillas simples, por ejemplo '1', la entrada se interpreta como un valor en lugar de como un campo.
- Offset: Si al nombre del campo le sigue un "+", por ejemplo FELDNAME+6(10), esto se interpreta como un offset y una longitud: de "KS10000000001000" se eliminan los primeros 6 caracteres y se utilizan los 10 caracteres restantes, en el ejemplo "0000001000". FELDNAME+6 utiliza todo lo que hay después del 6º carácter, FELDNAME(4) utiliza los primeros 4 caracteres.
Pestaña Asignación de Intermediate
En esta pestaña se define qué campo de la Intermediate se asigna a qué campo de la Target. Esto se realiza de forma análoga a la transformación MAP_FIELDS.

| Intermediate | Campo en la tabla Intermediate |
|---|---|
| Destino | Campo en la estructura de destino al que se debe asignar el campo de la Intermediate |
Pestaña Asignación dinámica
En esta pestaña se puede definir qué campo de la Source se asigna al campo de la Target en función del valor del campo en la Intermediate.

Ejemplo visual

El valor de los campos VALUE_A, VALUE_B, VALUE_C se transfiere al campo VALUE. Para la fila 1 de la Intermediate se utiliza VALUE_A, para la fila 2 VALUE_B y para la fila 3 VALUE_C.
Pestaña Fórmulas
En esta pestaña se pueden definir fórmulas cuyo resultado se escribe en un campo de la Target, por ejemplo, "Volumen de ventas x Precio de material".
A través del campo Patrón, se pueden recorrer valores, por ejemplo, del 1 al 12, para no tener que crear una fórmula propia para cada campo del Valor01 al Valor12. De esta forma, durante la ejecución, se recorre cada valor del 1 al 12 y cada vez la entrada MONTH se sustituye por el valor.

| Fórmula | Con la tecla F4 se puede seleccionar una fórmula ya creada. Con la tecla F2 se accede al editor de fórmulas para modificar una fórmula seleccionada o crear una nueva. |
|---|---|
| Destino | Campo que se debe modificar en el destino. |
| Patrón (Pattern) | Con la ayuda de un patrón se pueden rellenar varios campos numerados con la misma fórmula o el mismo campo de origen. Ejemplo: Se utiliza el Patrón MONTH. En el campo de destino se puede introducir ahora VALUE_W_(MONTH) para, por ejemplo, modificar los campos VALUE_W_01 a VALUE_W_12. |
| Desde/Hasta | Desde qué valor hasta qué valor se debe recorrer el patrón. En el ejemplo, del 1 al 12. |
Las fórmulas se ejecutan en el orden de su creación.
Nota Para cambiar el orden de las fórmulas, se puede mover la fila en el ALV mediante arrastrar y soltar a la posición deseada.