Bucles avanzados

Manejo de transacciones multilineales

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.

Bucle Do...While

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.

  1. Si utiliza el mismo identificador de fila para diferentes bucles, asegúrese de que utiliza diferentes valores de identificación. Puede utilizar el mismo identificador incluso si los bucles hacen referencia a diferentes columnas identificadoras.
  2. Sin tener en cuenta que utilice las mismas o distintas filas identificadoras para diferentes bucles, si los bucles están anidados, la información para los bucles debería estar en el mismo orden que los bucles que aparecen en el asignador. Además, una fila debe contener información solo sobre un conjunto de registros de un artículo de línea. Si hay bucles múltiples en un nivel, no hace falta sangrar el archivo de Excel.

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.

Asignar bucles anidados

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.

Preparar el libro para datos sangrados

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.

Datos en bucle para la asignación basada en columnas

H - Fila de encabezado 
D - artículos de línea múltiples para el bucle 1 


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

Bucles sencillos paralelos

Formato del Asignador.

Formato correspondiente para el libro de Excel

Dos bucles paralelos con un bucle anidado

Formato del Asignador. Formato correspondiente para el libro de Excel

Consultar bucles de forma sencilla

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.

Cortar y copiar filas con bucles y condiciones

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.

Bucle de datos en hojas múltiples

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.

Asignación no válida

  1. En el panel de Vista previa de la pantalla de Asignación añada tantas hojas nuevas como necesite.
  2. Haga clic en la primera hoja. En el Asignador, seleccione los artículos para el primer bucle. Haga clic en el botón Bucle.

    La hoja maestra original del bucle está marcada por defecto.

  3. Defina todos los bucles paralelos antes de definir cualquier bucle anidado.
  4. Asigne el resto de los artículos de línea.
  5. Para cambiar el bucle de la hoja maestra original, pulse Eliminar todo para eliminar todos los bucles.
  6. Cuando se publica un TXR, la hoja que se publica debe tener los mismos nombres de hoja que están en el script.
  7. Si se cambia la fuente de datos, la vista previa cambiará a Sin título. Puede añadir las hojas a mano o puede abrir una hoja que contenga los nombres adecuados.

    Asegúrese de que guarda la Vista previa antes de cerrar la aplicación. Si no, las hojas de la Vista previa pueden desaparecer.

Hojas nuevas y asignación de hoja simple

Bucles y cambio de la asignación basada en celdas a la asignación basada en columnas

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.

Cómo utilizar la función del Bucle Do...While con Access

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:

Tal y como se muestra abajo, ambas tablas contienen un campo denominado COMMON_FIELD. El campo COMMON_FIELD puede contener cualquier tipo de valor que elija, con tal de que los valores en los registros de la Tabla de encabezado concuerden con los registros de la Tabla de artículos de línea (datos). COMMON_FIELD es solo un valor entero que concuerda con ambas tablas.

 

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.

  1. Crear un bucle Do...While solo sobre un conjunto de datos.
  2. Para desactivar las filas de datos duplicadas, marque la opción Desactivar fila(s) en la columna de la izquierda de la pestaña Experto: Vista previa del registro.
  3. Una vez haya introducido el bucle Do While, el Asignador le mostrará los campos contenidos dentro del bucle. Para ello, utilizará dos  (iconos de Bucle) conectados por una línea.

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.

Bucles múltiples y anidados

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: