La forma en la que graba las posiciones depende del código de transacción. Puede encontrar más información sobre el código de transacción que esté grabando en las guías paso a paso o en el sitio de soporte de Winshuttle.
Transacciones multilínea
Algunas transacciones de SAP requieren procesar varias filas de datos al mismo tiempo como, por ejemplo, FB50, F-65, ME21, VA01, CS01, CA01 y FB70.
Para muchas de estas transacciones, SAP separa los datos en dos partes:
- Una sección de encabezado: el encabezado contiene información que permanecerá constante en toda la transacción como, por ejemplo, una fecha.
- Una o más secciones de posiciones o detalles: Cada sección de posiciones suele contener información repetida que se introduce en un área de la transacción de SAP en forma de cuadrícula, como pueden ser las posiciones de asientos de diario.Nota: Es recomendable grabar dos posiciones para que pueda ver el modelo de repetición. Algunos códigos de transacción, tales como ME21N, necesitan dos posiciones porque la función Filtro no estará disponible hasta que complete la primera posición.
Una vez que haya grabado el script, incluidas las posiciones, cree un bucle alrededor de las posiciones. A continuación, configure el archivo de datos para el bucle.
El valor en la columna Id. de bucle indica a Transaction si los datos de la fila son parte de la sección de encabezado o una línea de detalles.
Las instrucciones paso a paso para añadir bucles básicos están en Añadir un bucle en Excel y Añadir un bucle en Access.
Bucles indexados
Un bucle indexado es útil cuando no hay opción de posición, búsqueda o filtro en una cuadrícula de SAP.
El bucle indexado imitará la acción de desplazamiento hasta que encuentre una fila vacía en la cuadrícula para garantizar que las entradas no sobrescriban los datos existentes. Esto es especialmente útil cuando no hay ninguna acción en SAP que se pueda usar en un bucle normal.
Los bucles indexados solo pueden insertarse en scripts que se hayan grabado en el modo de GUI Scripting.
No puede usar un bucle indexado para realizar una búsqueda o una seleccionar una acción. Sin embargo, puede usar una condición Campo indexado en un bucle normal.
Para usar un bucle indexado debe indicar un campo de índice. Studio 12.x basará el bucle indexado en esa columna de la cuadrícula.
- Cuando esté configurando el bucle en el cuadro Bucle, marque la casilla Bucle basado en índice.
- Elija un campo en el cuadro Campo de índice.
Cuando el script se ejecuta, Studio buscará una fila en la que ese campo no contenga un valor en SAP y, a continuación, cargará los datos en esa fila.
Varios bucles
A fin de obtener mejores resultados cuando utilice varios bucles en Transaction para cargar datos, haga lo siguiente: mientras graba la transacción, introduzca más de una posición en la transacción para crear un patrón visible de repetición en el asignador. Tras añadir los bucles, deshabilite las filas de posición adicionales del asignador. Si utiliza la misma columna de identificador para bucles diferentes, utilice valores de identificador diferentes para cada bucle (por ejemplo, D1 para el primer bucle y D2 para el segundo). Puede utilizar el mismo identificador si los bucles hacen referencia a diferentes columnas de identificador.
Si la transacción incluye conjuntos de posiciones separados que están en el mismo nivel, puede crear varios bucles en el mismo nivel y en la misma hoja. Como algunas filas contendrán información para ambos bucles, tendrá una columna de id. de bucle aparte para cada bucle y con un valor de identificador de bucle diferente para cada bucle.
No hace falta marcar con sangría los bucles que estén en el mismo nivel.
Por ejemplo, aquí tiene los valores de las columnas Id. de bucle para un script que incluye tres bucles en el mismo nivel.
Bucles anidados
Asignar bucles anidados
Transaction no asigna automáticamente scripts que contengan datos de posiciones adicionales.
Para asignar un script, haga clic en una columna del archivo de datos de Excel y arrástrela al campo en el asignador. Repita la acción para cada campo que desee asignar. O haga clic en Asignar automáticamente.
En los scripts con bucles anidados tendrá que introducir, al menos, un campo entre los dos bucles anidados (el campo puede ser de cualquier tipo excepto BDC Cursor). Esto garantizará que se valide el script.
Cómo preparar el libro para ejecutar bucles anidados
Cuando cargue bucles anidados, los datos de encabezado y los detalles o datos de posiciones del libro de Excel se deben colocar en distintas filas. Se parece a un bucle sencillo, pero hay filas adicionales para los bucles anidados.
Disposición de los datos del bucle para la asignación basada en columnas
H - Fila de encabezado D - múltiples posiciones para el bucle 1 D1- múltiples posiciones para el bucle 2 DD1 D1
Usar bucles, condiciones y bloqueos Else en el asignador
Copiar y cortar filas con bucles y condiciones añadiendo bloques Else a condiciones If
Puede cortar, copiar y pegar filas que contengan bucles y condiciones. Para editar un bucle o una condición seleccione todas las partes. No se puede pegar un bucle o una condición en una columna de registro.
Puede cortar, copiar y pegar un bloque de bucles completo.
Puede cortar, copiar y pegar un bloque If completo.
Puede copiar y pegar solo la fila del encabezado de un bucle.
También puede copiar y pegar solo la fila del encabezado de un bloque de condición If.
A continuación están pegadas las filas de encabezado del bucle y el bloque de la condición If.
Puede pegar las filas copiadas al final de las filas del asignador y puede introducir campo y pantallas en la última fila.
También puede pegar después del último campo de cualquier pantalla de un script basado en BAPI.
Además de las opciones de pegar antes y pegar después puede Añadir fila vacía.
Se pueden añadir bloques Else a las condiciones If definidas dentro del bucle.
Datos de bucle en varias hojas
Para que la presentación de los datos sea más clara cuando hay varios bucles en un script, puede colocar los datos de los diferentes bucles en hojas de datos de Excel diferentes.
- Hoja maestra: Hoja de Excel que contiene los datos de encabezado correspondientes al bucle aplicado
- Columna de identificador de bucle: Columna de la hoja de encabezados que contiene la clave de combinación
- Hoja de posiciones: Hoja de Excel que contiene los datos de posiciones correspondientes al bucle aplicado
- Columna de identificador de bucle: Columna de la hoja de posiciones que contiene la clave de combinación
Puede asignar la clave de combinación a cualquier columna que aparezca en todas las hojas.
Asignar bucles multihoja
- En la pestaña Asignar, en el panel Conjunto de datos, añada tantas hojas nuevas como necesite.
- Haga clic en la primera hoja. En el asignador, seleccione los elementos para el primer bucle.
- Haga clic en el botón Crear bucle.Nota: Defina todos los bucles que están en el mismo nivel antes de definir cualquier bucle anidado.
- Para el Tipo de bucle, haga clic en Bucle multihoja.
- Seleccione las hojas adecuadas para el encabezado y las posiciones, y especifique las columnas de clave de combinación correspondientes. Nota: Cuando se publica un archivo de script, la hoja publicada debe contener los mismos nombres de hoja que están en el script.
- Asigne los campos a sus correspondientes hojas de cálculo de Excel.
- Si se cambia el origen de datos, la vista previa cambiará a Sin título. Puede añadir las hojas de forma manual o abrir una hoja que contenga los nombres adecuados.
- Guarde la vista previa del archivo de datos antes de cerrar Studio o las hojas de datos se podrían eliminar.
Asignación no válida
- No se puede asignar un bucle a una columna que no sea parte de dicho bucle.
- No se puede validar cuando hay varias hojas.
- Las condiciones If se validan a medida que se procesan las hojas.
- Solo puede utilizar la asignación basada en columnas.
- No están disponibles los registros o logs ampliados. Solo se escriben los registros normales en la hoja de encabezados.