El flujo de servicios completado simula un sistema de
pedidos que comprueba la disponibilidad de un artículo y, si está disponible, hace el
pedido del artículo.
Este tema y sus subtemas tienen por objeto completar la información. No es necesario
leer este tema para llevar a cabo los pasos de la guía de aprendizaje. Sin embargo, puede
que desee consultar este tema de tanto en tanto para ver cómo el paso en el que está
trabajando encaja con los demás.
Flujo de nivel superior
La
Figura 1 muestra el flujo de
nivel superior:
Figura 1. Contenido del flujo de nivel superior
Cuando se invoca el flujo de nivel superior:
- El nodo variableAssignInput obtiene los dos parámetros de entrada proporcionados por el
llamante: un número de artículo y una cantidad de artículo.
- El siguiente nodo CheckItemAvailability invoca un flujo
registrado para determinar si el artículo con el número de artículo especificado está
disponible.
- Un nodo Switch prueba el código de retorno proporcionado por el flujo
registrado:
- Si el artículo está disponible, se utiliza la ruta superior de control:
- El nodo PlaceOrder invoca una aplicación no de terminal para
efectuar el pedido.
- El nodo variableAssignOuput configura un valor de retorno y un
mensaje de retorno del flujo indicando que la petición se ha realizado
satisfactoriamente.
- Si el artículo no está disponible, se utiliza la ruta inferior de control:
- El nodo Assign2 configura un valor de retorno y un mensaje de
retorno del flujo indicando que la petición ha fallado.
Flujo registrado
El flujo registrado inicia una
aplicación de terminal y explora las pantallas de un catálogo en busca del número de
artículo solicitado. La
Figura 2
muestra el flujo registrado:
Figura 2. Contenido del flujo registrado
Cuando se
invoca el flujo registrado:
- El nodo Assign variableAssignInput obtiene el parámetro de
entrada, que es un número de artículo.
- El nodo Dfh0xs1Exmenu_Exmenu simula la entrada de usuario para
solicitar a la aplicación de terminal que muestre un catálogo de artículos.
- El nodo Init init_variable0 inicializa la variable de bucle
del nodo While.
- El nodo While while_variable0 invoca repetidamente
su flujo asociado, que explora una pantalla del catálogo en busca del número de
artículo especificado. El bucle termina si se encuentra el número de artículo
especificado o cuando se han explorado todas las pantallas del catálogo.
- Un nodo Switch prueba el código de retorno del flujo invocado.
- Si se encuentra el artículo, se utiliza la ruta superior de control:
- Se establece un código de retorno para el flujo indicando que se ha encontrado el
artículo.
- El nodo dfh0xs2.Exinqc_EndPage simula la entrada de usuario
para navegar más allá de la última pantalla del catálogo.
- Si no se encuentra el artículo, se utiliza la ruta inferior de control:
- Se establece un código de retorno para el flujo indicando que no se ha encontrado el artículo.
Flujo invocado por el nodo While
El flujo invocado por el nodo While busca en una pantalla del catálogo
el número de artículo especificado y, a continuación, vuelve al nodo While. La
Figura 3 muestra el flujo invocado.Figura 3. Contenido del flujo invocado por el nodo While
Cuando el nodo While invoca el flujo invocado:
- Las correlaciones en el terminal de salida del nodo Dfh0xs2.Exinqc_ExinqcInitialExtract
copian los números de artículo de la pantalla mostrada actualmente del catálogo y almacenan los números de artículo en
variables.
- El nodo Switch contiene una expresión ESQL que comprueba si alguno de los números
de artículo leídos son el número de artículo solicitado:
- Si se encuentra el número de artículo, se utiliza la ruta superior de control:
- El nodo Assign establece una variable global indicando que se
ha encontrado el número de artículo solicitado. A continuación, el nodo establece la
variable de bucle para que el nodo While termine el bucle en la próxima oportunidad.
- Si no se encuentra el artículo, se utiliza la ruta inferior de control:
- Las correlaciones en el terminal de entrada del nodo Dfh0xs2.Exinqc_Exinqc
generan una entrada de usuario para navegar a la próxima pantalla del catálogo:
- Si la nueva pantalla es la pantalla Salir de bucle (la primera
pantalla que aparece después de la última pantalla del catálogo), se utiliza la ruta
superior de control:
- El nodo loopEnd_variable0 establece la variable de control del bucle para
terminar el bucle While.
- De lo contrario, se utiliza la ruta inferior de control. La variable de bucle no se
modifica, por lo que el nodo While continúa invocando este flujo.