Rational Developer for System z, Versión 7.6.1

Bucle registrado: Caso no iterativo

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

La implementación de un bucle registrado incluye:
Nota: Puede personalizar un bucle registrado incluyendo nodos y rutinas de correlación adicionales en el flujo registrado y en el flujo invocado (para ver ejemplos, consulte los temas Paso 3.3: Añadir lógica al flujo invocado, Paso 3.4: añadir lógica a CheckItemAvailability.seqflow, Paso 4.1: invocar el flujo registrado desde el flujo de nivel superior y Paso 4.2: añadir un nodo Switch al flujo de nivel superior de la guía de aprendizaje).

La variable de bucle

El nodo While comprueba la variable de bucle para determinar si se debe realizar otra iteración del bucle (invocando el flujo asociado con el nodo While) o si se debe detener el bucle (consulte el tema Información básica acerca de los nodos While).

De forma predeterminada, la variable de bucle es una variable de tipo serie con una longitud máxima de 5 (para contener la serie TRUE o la serie FALSE). La expresión de bucle en el nodo While realiza una prueba para determinar si la variable de bucle contiene la serie TRUE, por ejemplo:
v_Dfh0xs1_Exmenu_Exmenu.strLoopVar = 'TRUE'
En el tiempo de ejecución, si esta expresión se resuelve en el booleano true, el nodo While invoca su flujo asociado. De lo contrario, el nodo While detiene el flujo y termina (consulte el tema Información básica acerca de los nodos While).

La variable de bucle se inicializa en el nodo Init (consulte la sección Nodo Init, nodo While y nodo Parse).

Nota:
Puede editar la expresión en el nodo While para utilizar una variable de un tipo diferente, variables adicionales o una expresión más compleja, dependiendo de los requisitos. Si lo hace en la personalización, es posible que deba modificar:
  • La correlación que inicializa el valor de la variable o las variables de bucle, para que la expresión en el nodo While se resuelva inicialmente en el booleano true y se ejecute el bucle la primera vez.
  • La correlación que establece más adelante el valor de la variable o las variables de bucle, para que la expresión en el nodo While se resuelva inicialmente en el booleano false y el bucle termine.

Nodo Init, nodo While y nodo Parse

En el flujo registrado, se crean los siguientes nodos para implementar la función de bucle While: un nodo Init, un nodo While y uno o varios nodos Parse, y conexiones con los nodos de operación de pantalla Invoke existentes que gestionan las pantallas de aplicación. Los nombres de los tres primeros tipos de nodos se forman añadiendo el prefijo correspondiente al nombre de la variable de bucle, por ejemplo, init_LoopVar, while_LoopVar y parse_LoopVar.

La Figura 1 muestra un ejemplo de estos nodos:
Figura 1. Ejemplo de un nodo Init, un nodo While y un nodo Parse
Ejemplo que muestra el nodo Init, el nodo While y el nodo Parse

El flujo invocado

El flujo invocado por el nodo While realiza una iteración del bucle y vuelve. El nodo While invoca este flujo repetidamente siempre que la expresión en el nodo While se evalúe en el booleano true (consulte el tema Información básica acerca de los nodos While).

En un bucle registrado, el flujo invocado contiene nodos de operación de pantalla Invoke que gestionan las pantallas de aplicación que ha visitado entre la selección de Iniciar bucle y Finalizar bucle: una iteración del bucle (consulte la sección Controles de bucle).

La Figura 2 muestra un ejemplo de un flujo invocado. Este flujo invocado procesa una pantalla de aplicación individual que muestra una pantalla de una lista de múltiples páginas (consulte la sección Registrar una lista de múltiples páginas como un bucle):
Figura 2. Ejemplo de un flujo invocado de un bucle registrado
Contenido del flujo invocado
Ésta es una visión general de la lógica de este flujo:
  • El flujo de control entra por el nodo Receive (Inicio) y pasa al nodo siguiente.
  • El siguiente nodo es un nodo Parse (Dfh0xs2.Exinqc_ExinqcInitialExtract). El flujo de control pasa por el primer terminal de salida de este nodo si la pantalla reconocida es la pantalla que muestra una página de la lista de múltiples páginas. La correlación de este terminal de salida contiene correlaciones para las acciones Extraer que pertenecen al siguiente nodo.

  • El siguiente nodo es un nodo de operación de pantalla Invoke (Dfh0xs2.Exinqc_Exinqc).
    • La correlación del terminal de entrada contiene una acción de entrada que genera una tecla AYUDA (F8) que navega a la siguiente pantalla de aplicación.
    • El primer terminal de salida obtiene el flujo de control si la nueva pantalla reconocida es la pantalla Salir de bucle. La conexión va desde este terminal al nodo Assign (loopEnd_strLoopVar), que establece una variable indicando que el bucle While ha terminado.
    • El segundo terminal de salida obtiene el flujo de control si la pantalla reconocida es la siguiente pantalla de la lista de múltiples páginas. La conexión va simplemente desde este terminal de salida al nodo Reply.
  • El nodo Reply (Fin) devuelve el control al nodo While que ha invocado el flujo.


Términos de uso | Comentarios

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