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 un event se procesa, la aplicación puede entonces realizar una o más actividades para determinar qué sucede a continuación con un pago. Así que, por ejemplo, al recibir " Event Es posible 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 esta publicación-event procesamiento, 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" - instructions son la cosa 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 de instructions. Estos 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 correspondiente event. El event’s business data se completa con todas las coincidencias business data elementos.

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 llenará todos los business data elementos 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 "Business data"

  • Lista de "Respuestas"

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

  • "Nombre"

  • "Descripción"

  • Lista de "Business data"

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

  • "Código de razón establecido" - este es un grupo de reason codes 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" flag-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 todas las normas ISO reason codes.

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), conduce a un event se está planteando, lo que puede causar un state transición 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 será transformada en un event lo que puede causar un procesamiento posterior.

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

  • "Nombre"

  • "Descripción"

  • Lista de "Business data"

  • 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 un adicional event se eleva, 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".

A decision nos permite realizar cierta lógica de manera programática y luego tomar diferentes rutas de procesamiento según el resultado de eso decision.

A decision tiene una serie de propiedades:

  • "Nombre"

  • "Descripción"

  • Lista de "Business data" - este es los datos que se envían al llamar al decision para que pueda procesar en función de ello.

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

El decisions se almacenan dentro de una "Biblioteca de Decisiones". Las bibliotecas son independientes del flujo y, como tal, la misma decision puede ser utilizado en múltiples flujos.

Podemos utilizar un decision en dos lugares:

  • Para determinar cuál event debe ser elevado en respuesta a una entrada (respuesta o instrucción)

  • Para determinar qué acciones deben realizarse después de un state transición.

Añadamos estos a nuestro diagrama:

concepts 3

Un tipo especial de event "A Decision Resultado Event "también se planteará para que el" decision se invocará y el resultado devuelto será auditado y podrá ser utilizado para el procesamiento posterior.