Documentation for a newer release is available. View Latest

Datos y Mapeo

Los datos están en el núcleo del procesamiento de IPF ya que impulsan el procesamiento y la toma de decisiones en todo IPF. Vale la pena leer esta sección sobre temas relacionados con datos y persistencia así como los conceptos de Flo-lang.

Datos de Negocio

Desde la perspectiva de Flo-lang y de los flujos de orquestación, el primer concepto que consideramos es el "Elemento de Datos de Negocio". Tiene cuatro propiedades:

  • "Nombre"

  • "Descripción"

  • "Tipo de Dato" - el tipo de dato puede ser cualquier tipo de Java, ya sean clases estándar como String, Integer, etc., o tus propios tipos personalizados.

  • "Categoría de Dato" - un campo opcional, cuyos posibles valores son un conjunto enumerado que se refiere al tipo de dato que está siendo representado por este BusinessDataElement. Esta etiqueta de Categoría de Dato es utilizada por varios componentes de IPF como IPF Data Egress y el Almacén de Datos Operacionales (ODS), que pueden registrar automáticamente datos capturados de Flujos de Proceso dependiendo de la Categoría de Dato. Las categorías son:

    • MESSAGE_DATA_STRUCTURE - Datos que se originan de mensajes financieros externos, a menudo modelados como Componentes de Mensaje ISO20022.

    • PROCESSING_DATA_STRUCTURE - Datos que se relacionan con el procesamiento de pagos, como metadatos e información de tipo de pago. Esta categoría también se usa para tipos de datos personalizados.

    • ADDITIONAL_IDENTIFIER - Esto aplica a elementos de datos que representan identificadores adicionales para asociar con el pago.

    • PAYMENT (Obsoleto) - Datos de pago que se modelan como componentes de mensaje ISO20022 dentro de IPF.

    • PAYMENT_PROCESSING (Obsoleto) - Datos que se relacionan con el procesamiento de pagos, como metadatos e información de tipo de pago.

Cualquier proyecto MPS puede tener tantos elementos de datos de negocio diferentes como necesites. Estos elementos se definen dentro de una "Librería de Datos de Negocio", que es simplemente una colección de datos de negocio relacionados, y se pueden definir tantas librerías de datos de negocio como sea necesario.

IPF proporciona varias librerías de datos de negocio preconfiguradas. Por defecto, cualquier proceso recibe la librería "error" que proporciona elementos por defecto para manejar fallos de flujo, a saber:

  • Failure Event Name - este es el nombre del evento que registró el primer fallo en un flujo.

  • Failure Response Code - este es el código de respuesta IPF para el fallo.

  • Failure Reason Code - este es el código de razón IPF para el fallo.

  • Failure Reason Text - esta es la descripción en texto del fallo según IPF.

  • Failure Original Response Code - Permite especificar cualquier código de respuesta original implicado (que puede haber sido mapeado a uno de IPF)

  • Failure Original Reason Code - Permite especificar cualquier código de razón original implicado.

  • Failure Original Reason Text - Permite especificar cualquier texto de razón original implicado.

Los conceptos de códigos de razón y de respuesta se discuten más adelante en este documento.

Dentro de la vida de un pago, cada elemento de datos de negocio es único y puede actualizarse según sea necesario.

Funciones de Mapeo

La siguiente utilidad a considerar es la "Función de Mapeo". Una función de mapeo es un fragmento de lógica que se usa para transformar elementos de datos de negocio en diferentes elementos de datos de negocio. Pueden utilizarse en ejemplos de uno a uno, uno a muchos o muchos a muchos.

Las funciones de mapeo pueden vivir globalmente (es decir, estar disponibles para todos los flujos) o restringirse localmente a un único flujo.

Hay tres situaciones diferentes en las que se pueden usar funciones de mapeo, y se describen a continuación:

Generar datos al recibir un evento (Funciones de Agregado)

El primer caso de uso para una función de mapeo es cuando se necesita realizar algún tipo de lógica cuando se recibe un evento y/o sobre los datos recibidos en un evento para su uso posterior en un flujo. Este tipo de función de mapeo a menudo se denomina "Función de Agregado".

Un buen ejemplo de esto es un contador que rastrea el número de veces que algo ha ocurrido durante un flujo: cada vez que se llama a la función podemos actualizar ese contador. El resultado de la Función de Agregado entonces queda disponible para el flujo.

Los datos generados como parte del mapeo aquí se consideran "en vuelo" y, por lo tanto, no son persistidos por la aplicación.

Cuando se utiliza aquí, la función se reproducirá durante la recuperación, por lo que se debe tener cuidado si se calculan valores dinámicos como fechas.

Incluido en el diagrama podemos ver el contexto de la Función de Agregado después del Evento pero antes de la transición de Estado

concepts 4

Enriquecer datos del evento (Enriquecimiento de Entrada)

Este caso de uso de una función de mapeo es cuando deseas generar (o actualizar) elementos de datos de negocio para ser almacenados en un evento recibido. A esto a menudo se le llama "Enriquecedor de Entrada".

El punto clave para entender, a diferencia del tipo "agregado" anterior, es que estos datos se añadirán al evento y se persistirán. Esto significa, por ejemplo, que se enviarán y estarán disponibles dentro del flujo de datos de procesamiento para su uso fuera de IPF.

Un buen ejemplo de usar una función de Enriquecimiento de Entrada es donde el evento requiere datos que se fusionan con los datos disponibles en el agregado. Una forma de ejecutar este tipo de requisito sería realizar una obtención del agregado desde fuera del dominio y luego actualizar la entrada antes de enviarla. Con una función de tipo enriquecimiento de entrada, esto puede hacerse de forma mucho más ordenada sin la sobrecarga de recuperar el agregado.

Añadiendo la función de Enriquecedor de Entrada, que está enriqueciendo los datos del evento:

concepts 4b
Una vez que una función de mapeo se ha utilizado en un evento de esta manera, los datos que produce se tratan igual que cualquier otro dato recibido en el evento.

Calcular datos para enviar a una acción

Este caso de uso de una función de mapeo es invocarla como parte del envío de datos a un sistema descendente. Esto permite la manipulación de un punto de dato existente en el momento del envío o la generación de datos que no se proporcionan en el flujo pero que se requieren para realizar una llamada de acción descendente.

Al igual que el tipo de agregado anterior, estos datos son transitorios y no se persisten; su vida útil es únicamente para la invocación de la acción.