Muchas transacciones SAP requieren procesar múltiples filas de datos a la vez. Algunos ejemplos de esas transacciones son: FB50, F-65, ME21, VA01, CS01, CA01, FB70, etc. Para muchas de estas transacciones, SAP separa los datos en una sección de encabezado y en otra o más líneas de artículo o secciones de datos. El encabezado, generalmente, contiene información que permanecerá constante a lo largo de toda la transacción como, por ejemplo, la fecha. Cada línea de artículo suele contener información repetida que se introduce en una zona de la transacción de SAP de tipo cuadrícula, como pueden ser los artículos de línea de anotaciones.
Para manejar transacciones multilínea complejas, TRANSACTION utiliza la función de bucle Do...While. Con los bucles Do...While puede asignar varias filas a una transacción. Para eso, defina los registros en la hoja de cálculo de Excel o en la base de datos de Access como sección Encabezado o artículo de línea.
En este ejemplo, la información para un registro está dividida en varias filas. Para operaciones multilineales, por defecto, la primera columna de ID de Excel está reservada para la columna de ID de Excel. La primera columna de ID contiene el tipo de fila, que por defecto es un valor de H (encabezado) o D (Dato/artículo de línea). Cuando ejecuta la operación, TRANSACTION carga todos los datos del tipo de fila H al apartado del Encabezado de la operación SAP y todos los datos del tipo de fila D, a los artículos de línea indicados en el Asignador.
NOTA: Recomendamos encarecidamente que observe las siguientes condiciones cuando utilice TRANSACTION para cargar datos mediante múltiples bucles.
Cuando registra la operación, le recomendamos que introduzca más de un artículo de línea en la operación para crear un modelo visible de repetición en el Asignador. Fíjese en que el ejemplo muestra más de un conjunto de artículos de línea de anotaciones.
Cuando asigna la columna de datos de un bucle anidado, los datos aparecen automáticamente en las filas segunda y tercera de la Vista previa. Esta función también se puede utilizar cuando use las funciones de Asignación automática o Leer desde SAP.
Cuando carga bucles anidados, el dato del libro de Excel tiene que tener un formato determinado. El encabezado y sus artículos de línea adecuados pueden estar en la misma columna. Cada bucle puede tener un encabezado.
H - Fila de encabezado
D - artículos de línea múltiples para el bucle 1
D
D
D1- artículos de línea múltiples para el bucle 2
D1
D1
D2- artículos de línea múltiples para el bucle 3
D2
D2
A |
B |
C |
En los scripts simples se puede ver de forma sencilla dónde están situados los bucles. En la pestaña Básico, elija una fila y luego pulse la barra de Opciones avanzadas.
La casilla de Columna de bucle está marcada para las filas asignadas al bucle que contienen información de los registros identificados como Artículos de línea (datos). Esta función indica a TRANSACTION que saque información del Artículo de línea (dato) que está en el bucle Do...While.
NOTA: Hay que marcar la casilla de columna de bucle para, por lo menos, uno de los campos. Si no, el script de TRANSACTION generará un error sintáctico.
Puede cortar o copiar filas que tengan bucles y condiciones. Tiene que seleccionar todas las partes del bucle o de la condición para editarlos. No se puede pegar una construcción en una columna de registro.
Para que se pueda hacer una presentación más clara de los datos cuando aparecen los bucles múltiples en un script, los bucles se pueden encontrar en hojas de datos múltiples. Hay bucles múltiples para datos de Excel y Access.
Columna original: es la clave de unión de todas las hojas.
Hoja original: hoja original de Excel que contiene la clave de unión.
Hoja actual: es la hoja de Excel que contiene los artículos de línea que se incluyen en el bucle.
Columna actual: es la columna de la hoja de datos que contiene la clave de unión.
Se puede asignar la clave de unión a cualquier columna. Por lo tanto, preste atención a las columnas que ya contienen datos.
La hoja maestra original del bucle está marcada por defecto.
Asegúrese de que guarda la Vista previa antes de cerrar la aplicación. Si no, las hojas de la Vista previa pueden desaparecer.
Los bucles recuerdan la asignación y pueden cambiarse de la asignación basada en celda a la basada en columna. Cuando el tipo de asignación cambia, los bucles pasan a basarse en el ID. Por ejemplo, B,H,D1 se convierte en B,D1.
Si los bucles basados en rango se cambian a la asignación basada en columnas y, luego, se cambian a basados en celdas, todos los bucles terminarán basados en la ID.
Para manejar transacciones multilínea complejas, TRANSACTION utiliza la función de bucle Do...While. El principio básico de utilizar el Bucle Do...While con Access como fuente de datos incluye:
Más abajo se muestra un ejemplo de la tabla del encabezado y de la del Artículo de línea.
Cuando se identifica la tabla de artículos y se enlaza, la Tabla de artículos de línea estará disponible en el Asignador para realizar asignaciones. Ahora ya podrá asignar los artículos de línea (datos). Para ello, arrastre el campo de Access y suéltelo en el campo de SAP.
Cuando registra la operación, se recomienda introducir más de un artículo de línea en la operación para crear un modelo visible de repetición en el Asignador. Fíjese en que el ejemplo muestra más de un conjunto de artículos de línea de anotaciones.
Puede seleccionar una fila en el bucle Do...While y hacer clic en la barra horizontal de Propiedades que está a la izquierda. En la pantalla de Propiedades está marcada la casilla de la Columna de bucle para las filas asignadas al bucle que contiene información de los registros identificados como Artículos de línea (datos). Esta función indica a TRANSACTION que saque información del Artículo de línea (dato) que está en el bucle Do...While.
NOTA: hay que marcar la casilla de columna de bucle para, por lo menos, uno de los campos. Si no, el script de TRANSACTION generará un error sintáctico.
Cuando la tarea requiere más de un bucle Do...While para cumplir con el proceso del negocio, el asignador le ofrece dos opciones para poder usar dichos bucles múltiples y manejar los siguientes casos:
NOTA: los bucles múltiples y anidados no se admiten cuando Access es la fuente de datos.
Bucle múltiple Do...While: los bucles múltiples son muy útiles para las transacciones que tienen más de un conjunto de artículos multilineales (cuadrícula). Cada uno de estos conjuntos podría tener su propio conjunto de Encabezado y Artículos de línea, o podrían compartir una sección de Encabezado pero, tal y como se muestra abajo, tienen diferentes Artículos de línea.
Bucle anidado Do...While: los bucles anidados son útiles en transacciones en las que hay que cargar datos en artículos multilineales que contienen artículos de línea encastrados para cada artículo de la cuadrícula de más nivel o más externo. En este caso, hay un bucle Do...While externo que contiene una determinada cantidad de bucles Do...While anidados. Por ejemplo, si está cargando datos en la cuadrícula A, que contiene las cuadrículas B y C, en la que cada una contiene datos relacionados con A, utilice un bucle anidado Do...While para completar la carga. TRANSACTION admite los bucles anidados Do...While en cualquier nivel.
En este ejemplo hay dos bucles de nivel externo. Son +Do-While A, H, D y +Do-While A, H, D1. Además de estos, el primer bucle tiene un bucle anidado: +Do-While A, H, D2.
El formato del libro de Excel que se usa para cargar datos es: