Operaciones de Dominio

En esta sección cubrimos cómo, dentro de IPF, modelamos dominios (tanto nuestro dominio de IPF como aquellos externos a IPF).

También cubrimos algunas otras piezas clave de funcionalidad que ayudan a controlar el 'flujo' del procesamiento.- Decisiones&Additional Events.

External Domains

Después de que se procese un evento, la aplicación puede realizar una o más actividades para determinar qué sucede a continuación con un pago. Por ejemplo, al recibir " Event A" puede que deseemos realizar alguna validación y llamar a otra aplicación para solicitarle que valide nuestros datos (otros ejemplos comunes basados en pagos incluyen la verificación de duplicados, llamadas a sistemas de sanciones o llamadas para la contabilización en sistemas contables).

Para apoyar este procesamiento posterior al evento, el concepto más importante es el "Dominio Externo". Esto representa algún dominio empresarial.-no es el flujo actual de nosotros- con la que necesitamos interactuar.

Por ejemplo, supongamos que necesitamos comunicarnos con un sistema de sanciones durante parte del flujo. Para apoyar esto, modelaríamos ese sistema de sanciones como un dominio externo.

Cada dominio externo consiste en los tres tipos de interacción que podemos realizar con él:

  • "Instrucciones" - las instrucciones son lo más simple que recibimos de un dominio externo. Puede ser triggered por el dominio externo en cualquier momento y comenzaremos a procesar. Esto puede considerarse como el dominio externo enviando información a nosotros.

  • "Notificaciones" - Las notificaciones son lo opuesto a las instrucciones. Estas se utilizan cuando queremos enviar nuestros datos a un dominio externo.

  • "Solicitudes" - Una solicitud se utiliza cuando necesitamos una "respuesta" del dominio externo en respuesta.

Instructions

Estos pueden ser iniciados por un sistema externo y contienen las siguientes propiedades:

  • "Nombre"

  • "Descripción"

  • Lista de "Business Data Elementos

Cuando el IPF application recibe una instrucción, generará un evento correspondiente. Los datos comerciales del evento se poblarán con todos los elementos de datos comerciales coincidentes.

Notifications

Notifications, como una instrucción, tiene las siguientes propiedades:

  • "Nombre"

  • "Descripción"

  • Lista de "Business Data Elementos

Cuando el IPF application envía una notificación que poblará todos los elementos de datos empresariales para los cuales tiene un registro coincidente.

Solicitudes

La solicitud puede considerarse que tiene dos partes, la solicitud en sí y la respuesta correspondiente esperada como parte de la interacción con el dominio externo.

La parte de la solicitud contiene:

  • "Nombre"

  • "Descripción"

  • Lista de "Datos empresariales"

  • Lista de "Respuestas"

La parte de respuesta es ligeramente diferente y tiene algunas nuevas características a considerar:

  • "Nombre"

  • "Descripción"

  • Lista de "Datos empresariales"

  • "Código de respuesta establecido" - este es un grupo de códigos de respuesta. Un "Código de Respuesta" es un código de resultado esperado para una respuesta que podría ser utilizado para un procesamiento posterior.

  • "Código de razón establecido" - este es un grupo de códigos de razón. Un "Código de Razón" es una razón por la cual se establece el código de respuesta. Por ejemplo, su código de respuesta podría ser "Rechazado" con una razón "Moneda Incorrecta".

  • "Completando" bandera-esto define si la solicitud de llamada debe considerarse completada cuando esta respuesta llega. Esto es particularmente útil cuando se espera más de una respuesta durante la interacción. Por ejemplo, considere una solicitud en la que el sistema externo envía un acuse de recibo técnico seguido de una respuesta comercial final. En este caso, definiríamos dos respuestas.- uno para representar el acuse técnico (no completante) y uno para la respuesta final del negocio (completante).

En términos de ISO, un código de respuesta es análogo a un "Estado", mientras que un código de razón es análogo a una "Razón de Estado".
El producto IPF proporciona un conjunto de códigos de respuesta predeterminados "AcceptOrReject" que se utiliza para respuestas estándar de tipo aprobar / rechazar. También proporciona un conjunto de todos los códigos de razón ISO.

Si reunimos los elementos clave tratados aquí, podemos observar el patrón básico de cualquier flujo:

concepts 1

Cuando IPF recibe algo de un dominio externo (ya sea una instrucción o una respuesta), se genera un evento que puede provocar una transición de estado seguida de la invocación de una notificación o solicitud a un dominio externo.

Domain Functions

Es posible que no deseemos (o necesitemos) llamar a un dominio externo para continuar procesando nuestro flujo. Esto puede suceder porque sabemos qué hacer a continuación o podemos calcular qué hacer a continuación; el procesamiento se realiza dentro de nuestra aplicación.

Una opción es utilizar la capacidad de "Función de Dominio" que el flujo mismo ofrece. Funcionalmente, desde una perspectiva de modelado de flujo, funciona de manera muy similar a un par de solicitud/respuesta en una llamada a un dominio externo, excepto que en el caso de una función de dominio, el IPF application en sí mismo es el dominio. Por lo tanto, la llamada real permanece interna (& el código necesario para cumplir con la solicitud está escrito dentro de nuestro IPF application). Independientemente de cuándo llamemos a una función de dominio, esperamos recibir una respuesta y luego esa respuesta se transformará en un evento que puede causar un procesamiento posterior.

Como una solicitud, la función de dominio tiene una serie de propiedades:

  • "Nombre"

  • "Descripción"

  • Lista de "Datos empresariales"

  • Lista de "Respuestas"

Additional Events

Es posible que, para continuar procesando nuestro flujo, no tengamos una interacción externa de otro sistema.

Una opción es el uso de un "Additional Event- se utiliza para mover el flujo.

Cuando se genera un evento adicional, el sistema lo procesará como si hubiera sido recibido en la aplicación a través de una instrucción o respuesta.

Añadamos estos a nuestro diagrama:

concepts 2

Decisions

También hay una función para realizar lógica condicionalmente. Por ejemplo, puede que solo deseemos ejecutar un chequeo de fraude si el valor del pago es superior a £50. En este caso, podemos utilizar un "Decision".

Una decisión nos permite realizar cierta lógica de manera programática y luego tomar diferentes rutas de procesamiento en función del resultado de esa decisión.

Una decisión tiene una serie de propiedades:

  • "Nombre"

  • "Descripción"

  • Lista de "Datos empresariales" - estos son los datos que se envían al llamar a la decisión para que pueda procesar en función de ellos.

  • Lista de "Decision Resultados- estos son los posibles resultados de ejecutar la decisión, cada decisión puede tener tantos resultados diferentes como sea necesario y estos resultados son únicos para la decisión. Se definen simplemente proporcionando un nombre.

Las decisiones en sí mismas se almacenan dentro de una "Biblioteca de Decisiones". Las bibliotecas son independientes del flujo y, como tal, la misma decisión puede ser utilizada en múltiples flujos.

Podemos utilizar una decisión en dos lugares:

  • Para determinar qué evento debe ser generado en respuesta a una entrada (respuesta o instrucción)

  • Para determinar qué acciones deben realizarse después de una transición de estado.

Añadamos estos a nuestro diagrama:

concepts 3

Un tipo especial de evento "A Decision Resultado Event "también se elevará para que la decisión que se invoque y el resultado devuelto sean auditados y puedan ser utilizados para el procesamiento posterior."