Documentation for a newer release is available. View Latest

Paso 10 - Añadir un subflujo

Introducción al paso 10

En este paso introducirás un subflujo. Usar un subflujo es una manera de agrupar lógicamente un conjunto de eventos y estados (en este caso, sanciones). Los subflujos pueden reutilizarse dentro del mismo flujo y en diferentes flujos del mismo modelo.

Si estás familiarizado con el modelado de casos de uso, un subflujo es exactamente lo mismo que un caso de uso INCLUDED en otro.

Para este caso de uso, llamarás al subflujo de sanciones una vez que se haya completado la validación de la cuenta deudora y dicha validación haya pasado.

Introducirás el siguiente flujo de sanciones:

  • Se envía una petición a un nuevo dominio externo de sanciones

  • Si la respuesta es 'no hit', continúa el procesamiento del pago

  • Si la respuesta es 'hit', se esperará una segunda respuesta que será 'pass', 'fail' o 'block'

  • Si la respuesta es 'fail', entonces la transacción se rechaza

  • Si la respuesta es 'block', la transacción se tratará manualmente y el pago se termina

Crear un nuevo subflujo

Puedes crear un nuevo subflujo haciendo clic derecho en tu modelo desde el panel izquierdo y seleccionando New > v2Fo > SubFlow.

Ponle un nombre al subflujo y habrás creado un subflujo inicial, que debería verse así:

step 10 1

Rellenar el subflujo

Verás que un subflujo se organiza exactamente igual que un flujo, donde defines estados y eventos y los añades a los initiation, input y event behaviours.

Ahora que ya llevas un tiempo creando y actualizando flujos, inténtalo tú mismo y construye un flujo de sanciones válido. Necesitarás:

  • Crear un dominio externo que represente el sistema de sanciones

  • Crear una única petición de sanciones con múltiples respuestas para 'Hit', 'No Hit' y la 'Final Response'

  • Crear una nueva Response Code Library para los posibles códigos de la 'Final Response' de sanciones ('Pass', 'Fail' o 'Block')

  • Definir estados y eventos en el subflujo

  • Crear un initiation behaviour en el subflujo

  • Incorporar esas respuestas en el input behaviour del subflujo

  • Completar el subflujo creando el event behaviour

External Domain

Cuando termines, tu nuevo dominio externo debería verse así:

step 10 2

Response Code Library

Tu biblioteca de códigos de respuesta actualizada debería verse así:

step 10 3

Subflow

Y tu subflujo debería verse así:

step 10 4
El estado global para todo en el subflujo es 'PENDING' porque queremos que todos los subestados se muestren en el IPF Dashboard bajo ese estado global. Si quisieras, podrías crear una nueva biblioteca de estados globales solo para el subflujo de sanciones y usarlos en su lugar.
step 10 5
step 10 6
step 10 7
step 10 8

Gráfico del subflujo

Si miras el gráfico de tu subflujo, verás que se parece a esto:

step 10 9

Añadir el subflujo al Event Behaviour

Ahora que has creado un subflujo de sanciones reutilizable, puedes conectarlo a tu flujo.

Añadir un Sub State de subflujo

Primero hay que colocarlo en el lugar correcto: una vez que la validación de cuenta ha pasado, comprobarás sanciones antes de decidir si es un 'On Us Payment' o un 'Scheme Payment'.

Así que, en el primer event behaviour, elimina la decisión del 'Move to State' y pulsa Ctrl+Space. Tendrás la opción de crear un subflow state; elige esa opción y tu event behaviour debería verse así:

step 10 10

Nombrar el subflujo

Al igual que las decisiones, que usaste en un paso anterior, los subflujos pueden usarse múltiples veces, así que necesitas un nombre único cada vez que se llama a un subflujo.

En tu caso, llamarás al subflujo de sanciones una vez antes de enviar a compensación; llamemos al subestado 'Sanctions'.

step 10 11

Añadir la acción "Call subflow"

Una vez que has movido el pago al subflow substate, también debes indicar al flujo que realmente envíe el pago al subflujo.

Sustituye el 'Perform Action' (que actualmente es la decisión) por una llamada a un subflujo: elimina la entrada actual y pulsa Ctrl+Space, luego selecciona el subflujo que acabas de crear.

Si hubieras creado múltiples subflujos, todos ellos estarían disponibles para seleccionar.

step 10 12

Finalizar el Event Behaviour

Ahora que has creado un nuevo subestado 'Sanctions', puedes especificar qué debe ocurrir cuando el pago está en ese estado.

Para los subflujos, un estado terminal es el equivalente a un evento (es decir, un estado terminal en un subflujo se usa para mover el pago de un estado a otro en el flujo llamante).

Si recuerdas, creaste tres estados terminales en el subflujo: 'Sanctions Passed', 'Sanctions Blocked' y 'Sanctions Failed'; debes añadirlos en el event behaviour del flujo llamante.

Añade dos nuevas filas de event behaviour como se muestra a continuación.

Debes incorporar la decisión que eliminaste del event behaviour 1 en el nuevo event behaviour (en este caso, el 11).
step 10 13

Comprobar el gráfico del flujo

Ahora puedes ver que el subflujo llamado aparece en el Flo Viewer como un recuadro verde. Los eventos que salen del subflujo son los estados terminales que definiste dentro del subflujo.

También puedes expandir el subflujo dentro del mismo gráfico si lo deseas.

step 10 14