En este paso se añaden nodos y correlaciones al flujo invocado por el nodo While.
Un nodo While tiene asociado con él un flujo que invoca en el tiempo de ejecución cuando la expresión de bucle del nodo While se evalúa en el booleano true (consulte el tema Información básica acerca de los nodos While).
Cuando registra un bucle durante el registro del flujo, el registrador del flujo (editor de host) genera automáticamente una vía de acceso de flujo en el flujo invocado. La vía de acceso de flujo está formada por los nodos que gestionan las pantallas de aplicación que se producen durante una iteración del bucle While. Puede personalizar aún más este flujo para que se adapte a sus necesidades.
En este subtema abrirá el flujo invocado y organizará sus nodos:

El editor de flujo se abre y muestra el flujo invocado.
En el lienzo del editor de flujo, pulse con el botón derecho del ratón sobre una parte vacía del lienzo y pulse Reducir. (Es posible que deba Reducir dos veces para ver todos los nodos).
Guarde el trabajo (Control-S).
No cierre todavía el editor de flujo. Lo utilizará en el siguiente subtema.
En esta sección se explica cómo añadir un nodo Switch y un nodo Assign al flujo invocado. Estos nodos operan de la siguiente manera:
Para añadir el nodo Switch:
Para añadir el nodo Assign:
En esta sección añadirá una expresión ESQL al nuevo nodo Switch para comparar el número de artículo pasado como parámetro de entrada al flujo CheckItemAvailability.seqflow con números de artículos extraídos de una página de la pantalla de aplicación Consultar catálogo por las acciones Extraer.
Para añadir la lógica:
Edite la expresión ESQL para el primer (el de más arriba) terminal de salida del nodo Switch:
Pulse . Se abre la ventana Editar expresión. (La lista Mensajes del ámbito y el campo de entrada Expresión están en blanco.)
En la ventana Editar expresión:
El mensaje v_CheckItemAvailability se añadirá al ámbito.
Añada una expresión ESQL al campo de entrada de expresión:
Copie la expresión mostrada en Figura 3 en el campo de entrada de expresión en la parte inferior de la ventana Editar expresión. Debería poder copiar y pegar las líneas de este documento de guía de aprendizaje directamente en el campo de entrada de la ventana.
(i_CheckItemAvailability.itemNumber = v_CheckItemAvailability."INQ1-ITEMREF") OR (i_CheckItemAvailability.itemNumber = v_CheckItemAvailability."INQ2-ITEMREF") OR (i_CheckItemAvailability.itemNumber = v_CheckItemAvailability."INQ3-ITEMREF") OR (i_CheckItemAvailability.itemNumber = v_CheckItemAvailability."INQ4-ITEMREF") OR (i_CheckItemAvailability.itemNumber = v_CheckItemAvailability."INQ5-ITEMREF") OR (i_CheckItemAvailability.itemNumber = v_CheckItemAvailability."INQ6-ITEMREF") OR (i_CheckItemAvailability.itemNumber = v_CheckItemAvailability."INQ7-ITEMREF") OR (i_CheckItemAvailability.itemNumber = v_CheckItemAvailability."INQ8-ITEMREF") OR (i_CheckItemAvailability.itemNumber = v_CheckItemAvailability."INQ9-ITEMREF") OR (i_CheckItemAvailability.itemNumber = v_CheckItemAvailability."INQ10-ITEMREF") OR (i_CheckItemAvailability.itemNumber = v_CheckItemAvailability."INQ11-ITEMREF") OR (i_CheckItemAvailability.itemNumber = v_CheckItemAvailability."INQ12-ITEMREF") OR (i_CheckItemAvailability.itemNumber = v_CheckItemAvailability."INQ13-ITEMREF") OR (i_CheckItemAvailability.itemNumber = v_CheckItemAvailability."INQ14-ITEMREF") OR (i_CheckItemAvailability.itemNumber = v_CheckItemAvailability."INQ15-ITEMREF")
La expresión compara la variable i_CheckItemAvailability.itemNumber (que es del tipo xsd:string) con cada uno de los números de elemento (también del tipo xsd:string), con las acciones Extracción leídas de los campos en la primera columna de la pantalla de la aplicación Consultar catálogo.
Si se encuentra una coincidencia, la expresión ESQL se resuelve en el booleano true; de lo contrario la expresión ESQL se resuelve en el booleano false.
Si la expresión ESQL se resuelve en true, el flujo de control sale del nodo Switch a través del primer terminal de salida, que está conectado con el nodo Assign Assign.
Si la expresión ESQL se resuelve en false, el flujo de control sale del nodo Switch a través del terminal de salida predeterminado (el de más abajo), que está conectado con el nodo Assign loopend_variable0.
Pulse en Aceptar para cerrar la ventana Editar expresión.
Guarde el trabajo (Control-S).
En esta sección, añadirá dos correlaciones a la rutina de correlación del nuevo nodo Assign denominado Assign en el flujo invocado. (Recuerde que las correlaciones permiten recuperar, manipular y almacenar datos en un flujo; consulte la sección Conceptos de correlación.)
Como se ha indicado antes, el nodo Assign está conectado al flujo, por lo que sólo se ejecuta cuando se encuentra el número de artículo solicitado.
A continuación, añadirá dos correlaciones a la rutina de correlación de este nodo Assign que ejecutan las siguientes tareas:
Asignan la serie YES a v_CheckItemAvailability.available para indicar que se ha encontrado un número de artículo que coincide con el número de artículo de entrada.
Asignan la serie FALSE a v_CheckItemAvailability.variable0 para terminar el bucle While. (Esta variable es la variable de control de bucle del bucle While).
Para crear estas dos correlaciones:
Abra la rutina de correlación del nodo Assign denominado Assign en el editor de correlaciones:
Pulse con el botón derecho del ratón el nodo Assign denominado Assign.
Pulse Abrir rutina de correlación.
El editor de correlaciones abre el archivo de correlaciones para el flujo, crea automáticamente una rutina de correlación vacía para el nodo Assign y visualiza la rutina de correlación en el área de rutinas de correlación del editor de correlaciones.
Añada el mensaje v_CheckItemAvailability a la rutina de correlación como mensaje destino. (En realidad, se añade una referencia a este mensaje a la rutina de correlación).
En la barra de herramientas de la rutina de correlación, pulse el icono Añadir un
mensaje destino
. Se abrirá la ventana Seleccionar
mensaje.
Pulse el mensaje .
Pulse Aceptar.
El mensaje destino se añade a la parte derecha del área de rutinas de correlación.
El mensaje real sigue residiendo en su lugar, dentro del archivo de mensaje al que pertenece. Cuando se suprime un mensaje origen o un mensaje destino de una rutina de correlación, el editor de correlaciones suprime la referencia. El mensaje real del archivo de mensaje no se suprime.
Cree una correlación que almacene la serie YES en el elemento destino v_CheckItemAvailability.available:
Pulse Crear transformación:
El editor de correlaciones visualiza una nueva transformación Asignar en el área del centro de la rutina de correlación al lado del elemento de mensaje available, con una conexión que va desde la transformación Asignar al elemento de mensaje available.Abra la vista Propiedades del editor de correlaciones si aún no está abierta (consulte el tema Abrir o volver a abrir una vista).
En la vista del editor de correlaciones, pulse la transformación Asignar. El editor de correlaciones visualiza las propiedades de la transformación seleccionada en la vista Propiedades.
La nueva correlación está configurada ahora para almacenar la serie YES en v_CheckItemAvailability.available.
Cree una correlación que almacene la serie FALSE en el elemento de mensaje v_CheckItemAvailability.variable0:
Pulse Crear transformación:
El editor de correlaciones visualiza una nueva transformación Asignar en el área del centro de la rutina de correlación al lado del elemento de mensaje variable0, con una conexión que va desde la transformación Asignar al elemento de mensaje variable0.
Abra la vista Propiedades del editor de correlaciones si aún no está abierta (consulte el tema Abrir o volver a abrir una vista).
En la vista del editor de correlaciones, pulse la nueva transformación Asignar. El editor de correlaciones visualiza las propiedades de la transformación seleccionada en la vista Propiedades.
La nueva correlación está configurada ahora para almacenar la serie FALSE en v_CheckItemAvailability.variable0.
Cierre el editor de correlaciones.
El editor de flujo muestra los nodos del flujo invocado. Para cerrar el flujo invocado:
Cierre el editor de flujo.