Rational Developer for System z, Versión 7.6.1

Bucle registrado: Caso iterativo

En este tema se describe cómo se implementa un bucle registrado en el flujo registrado en el caso iterativo, es decir, cuando selecciona el recuadro de selección Extraer datos cada iteración del bucle en la ventana Seleccionar variable.

La implementación que se describe en este tema se realiza además de la implementación que se describe en el tema Bucle registrado: Caso no iterativo.

La variable de índice de bucle

La variable de índice de bucle (a diferencia de la variable de bucle que se describe en el tema Bucle registrado: Caso no iterativo) impide que un bucle While se ejecute en más iteraciones que el número de instancias de una variable Extraer.

El registrador del bucle (el editor de host) crea la variable de índice de bucle cuando selecciona Extraer datos cada iteración del bucle en la ventana Seleccionar variable. El tipo de datos de la variable de índice de bucle es un entero. El nombre se forma añadiendo el sufijo _index al nombre de la variable de bucle que ha especificado, por ejemplo, LoopVar_index.

En el flujo registrado, se realizan los cambios siguientes para la variable de índice de bucle (consulte el flujo de ejemplo de la Figura 1):
Figura 1. Ejemplo de flujo registrado con el bucle While y la variable de índice de bucle
Ejemplo de conexión de salida del nodo Parse cuando se excede el máximo de iteraciones
  • En el nodo Init, se añade una segunda correlación para inicializar la variable de índice de bucle en 0 (consulte la sección Nodo Init, nodo While y nodo Parse).

  • En el nodo While, la expresión de bucle se actualiza para probar no sólo si la variable de bucle contiene la serie TRUE, sino también si el índice de bucle es menor que el número máximo de iteraciones. Por ejemplo,
    (v_Dfh0xs1_Exmenu_Exmenu.strLoopVar = 'TRUE') AND (v_Dfh0xs1_Exmenu_Exmenu.strLoopVar_index < 8)
    El valor del número máximo de iteraciones es el valor que se especifica en el campo Número máximo de iteraciones de la ventana Seleccionar variable (consulte la sección Número máximo de iteraciones).
  • En el nodo Parse, se añade otro terminal de salida (como primer terminal de salida) para manejar el caso en el que el nodo While termina el bucle porque se excede el número máximo de iteraciones.

    El flujo de control sale del nodo Parse por este terminal de salida si la pantalla reconocida es la pantalla Iniciar bucle. (El motivo de este diseño es que si el bucle While termina y se muestra la pantalla Iniciar bucle, en lugar de la pantalla Salir de bucle, el nodo While debe terminar el bucle porque se ha excedido el número máximo de iteraciones).

    Como existe una condición de error (el bucle se termina porque se ha excedido el número máximo de iteraciones), la conexión del primer terminal de salida pasa directamente al nodo Reply, o al nodo Assign inmediatamente anterior al nodo Reply, si existe (como en la Figura 1).

    Nota: Este terminal de salida y la conexión no se añaden si la pantalla de aplicación Salir de bucle es también la primera pantalla de aplicación del bucle.

Se realizan los siguientes cambios en el flujo invocado:

Acciones Extraer para la pantalla Salir de bucle

En este subtema se describen los cambios que se realizan para implementar la opción de añadir texto de una acción Extraer de la pantalla Salir de bucle a una variable en la que se almacenan instancias de datos durante una iteración del bucle (consulte el flujo de ejemplo que se muestra en la Figura 3):
Figura 3. Ejemplo de flujo registrado con el bucle While, la variable de índice de bucle y la acción Extraer de la pantalla Salir de bucle
Ejemplo de un flujo registrado con la variable de índice de bucle y la acción Extraer de la pantalla Salir de bucle


Términos de uso | Comentarios

Este Information Center está basado en tecnología Eclipse. (http://www.eclipse.org)