Help Center > Studio v11 Help

Bucles avanzados

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.

    Sugerencia: Es recomendable grabar dos posiciones para poder ver el patrón 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.

disposición de datos para datos y columna de ID de 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 se encuentran 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.

Notas:
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 selecció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 v11 basará el bucle indexado en esa columna de la cuadrícula.

  1. Cuando esté configurando el bucle en el cuadro Bucle, marque la casilla Bucle basado en índice.
  2. Elija un campo en el cuadro Campo de índice.

    casilla bucle indexado menú desplegable de campos 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

Importante: 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.

Nota: 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.

encabezado en identificador de posición de la primera fila en cada columna

Bucles anidados

Importante: Los datos para los bucles anidados deben tener el mismo orden en el que aparecen los bucles en el asignador. Para los bucles anidados, los datos deben estar marcados con sangría en el archivo de datos, incluso si utiliza una columna de identificador aparte.

Asignar bucles anidados

Studio v11 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.

comando de asignación automática en el grupo de encabezados de hoja

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

datos introducidos en diferentes filas para bucles anidados

H - Fila de encabezado 
D - Varias posiciones para el bucle 1 
D1 - Varias posiciones para el bucle 2 
D
D1 
D1

Cortar y copiar filas con bucles y condiciones

Puede cortar o copiar filas que contengan bucles y condiciones. Debe seleccionar todas las partes del bucle o de la condición para editarlas. No se puede pegar un bucle o una condición en una columna de registro.

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

  1. En la pestaña Asignar, en el panel Conjunto de datos, añada tantas hojas nuevas como necesite.
  2. Haga clic en la primera hoja. En el asignador, seleccione los elementos para el primer bucle.
  3. Haga clic en el botón Crear bucle.

    Sugerencia: Defina todos los bucles que están en el mismo nivel antes de definir cualquier bucle anidado.

  4. Para el Tipo de bucle, haga clic en Bucle multihoja.
  5. Seleccione las hojas adecuadas para el encabezado y las posiciones, y especifique las columnas de clave de combinación correspondientes.

    Importante: Cuando se publica un archivo de script, la hoja publicada debe contener los mismos nombres de hoja que están en el script.

  6. Asigne los campos a sus correspondientes hojas de cálculo de Excel.
  7. 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.
  8. 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.