ODS Buscar

El ODS El módulo de búsqueda le permitirá buscar pagos a través de una serie de diferentes campos (ID, detalles de las partes e información resumida).

Configuración

Config

Esta configuración se utiliza para el customisation de ciertos elementos en el ODS módulo de búsqueda.

Agregar Tipos de Viaje Personalizados: Los clientes pueden agregar custom tipos de viaje (por ejemplo,sepa-instant) simplemente añadiendo una nueva entrada a la journeys mapa en la configuración. Para más detalles, consulte Añadiendo Tipos de Viaje Personalizados

Formularios de Búsqueda

La configuración de los formularios de búsqueda está organizada por tipo de viaje dentro de un journeys mapa. Cada tipo de viaje (pago, recuperación, masivo, por lotes, o custom) puede tener su propia configuración de formulario de búsqueda.

Puede elegir qué secciones y campos se muestran en los formularios de búsqueda añadiéndolos o eliminándolos de la configuración. Puede elegir entre cualquier campo presente en un IPF. PDS or a custom PDS y MDS. Cualquier custom los campos que añada a los formularios de búsqueda deben estar precedidos por 'custom_'por ejemplo'`custom_customSearchableStringField`.

Aquí tiene un ejemplo de la configuración del formulario de búsqueda para una pantalla de búsqueda de pagos:

# Journey-specific configurations
# Each journey type has its own search-form configuration
journeys {
  # Payment journey configuration
  payment {
    search-form {
      searchType: "payment"
      formSections: [
        {
          id: "ids"
          name: "heading.ids"
          size: "DOUBLE"
          fields: [
            {
              id: "uowId"
              name: "formField.unitOfWorkId"
              type: "STRING"
            },
            {
              id: "clientRequestId"
              name: "formField.clientRequestId"
              type: "STRING"
            },
            {
              id: "instructionId"
              name: "formField.instructionId"
              type: "STRING"
            },
            {
              id: "transactionId"
              name: "formField.transactionId"
              type: "STRING"
            },
            {
              id: "uetr"
              name: "formField.uetr"
              type: "STRING"
            },
            {
              name: "formField.alternativeIdentifierName"
              type: "ALTERNATIVE_IDENTIFIER"
            },
            {
              id: "alternativeIdentifierValue"
              name: "formField.alternativeIdentifierValue"
              type: "STRING"
            },
            {
              id: "relatedUnitOfWorkId"
              name: "formField.relatedUnitOfWorkId"
              type: "STRING"
            }
          ]
        },
        {
          id: "summary"
          name: "heading.summaryInfo"
          size: "SINGLE"
          fields: [
            {
              name: "formField.reasonCode"
              type: "REASON_CODE"
            },
            {
              name: "formField.globalStatus"
              type: "GLOBAL_STATUS"
            },
            {
              name: "formField.transactionType"
              type: "TRANSACTION_TYPE"
            },
            {
              id: "csm"
              name: "formField.csm"
              type: "STRING"
            }
          ]
        },
        {
          id: "dates"
          name: "heading.dates"
          fields: [
            {
              id: "date"
              name: "formField.date"
              type: "PAYMENT_DATES"
            }
          ]
        },
        {
          id: "amounts"
          name: "heading.amounts"
          fields: [
            {
              id: "amount"
              name: "formField.amount"
              type: "PAYMENT_AMOUNTS"
            }
          ]
        },
        {
          id: "debtor"
          name: "heading.debtorDetails"
          size: "SINGLE"
          fields: [
            {
              id: "debtorName"
              name: "formField.debtorName"
              type: "STRING"
            },
            {
              id: "debtorAccount"
              name: "formField.debtorAccount"
              type: "STRING"
            },
            {
              id: "debtorAgentBIC"
              name: "formField.debtorAgentBIC"
              type: "STRING"
            },
            {
              id: "debtorBIC"
              name: "formField.debtorBIC"
              type: "STRING"
            }
          ]
        },
        {
          id: "creditor"
          name: "heading.creditorDetails"
          size: "SINGLE"
          fields: [
            {
              id: "creditorName"
              name: "formField.creditorName"
              type: "STRING"
            },
            {
              id: "creditorAccount"
              name: "formField.creditorAccount"
              type: "STRING"
            },
            {
              id: "creditorAgentBIC"
              name: "formField.creditorAgentBIC"
              type: "STRING"
            },
            {
              id: "creditorBIC"
              name: "formField.creditorBIC"
              type: "STRING"
            }
          ]
        },
        {
          id: "accounts"
          name: "heading.accountDetails"
          size: "SINGLE"
          fields: [
            {
              id: "creditAccount"
              name: "formField.creditAccount"
              type: "STRING"
            },
            {
              id: "debitAccount"
              name: "formField.debitAccount"
              type: "STRING"
            },
            {
              id: "custom_customSearchableStringField"
              name: "formField.customField1"
              type: "STRING"
            },
            {
              id: "custom_customSearchableStringField2"
              name: "formField.customField2"
              type: "STRING"
            },
            {
              id: "custom_customSearchableStringField3"
              name: "formField.customField3"
              type: "STRING"
            }
          ]
        }
      ]
    }
  }

  # Example: Custom journey type (e.g., SEPA Instant)
  # sepa-instant {
  #   search-form {
  #     searchType: "sepa-instant"
  #     formSections: [
  #       {
  #         id: "ids"
  #         name: "heading.ids"
  #         size: "DOUBLE"
  #         fields: [
  #           {
  #             id: "uowId"
  #             name: "formField.unitOfWorkId"
  #             type: "STRING"
  #           },
  #           {
  #             id: "instantPaymentId"
  #             name: "formField.instantPaymentId"
  #             type: "STRING"
  #           }
  #         ]
  #       }
  #     ]
  #   }
  # }
}

Nombre

Descripción

searchType: Cadena

El tipo de formulario de búsqueda que desea configurar. Esto puede ser de pago, de recuperación, masivo o por lotes.

formSections: FormSection[]

La sección del formulario que se mostrará. A FormSection es un grupo de campos de formulario que aparecen en el formulario de búsqueda.

id: Cadena

El identificador único para la sección del formulario.

nombre: Cadena

El nombre de la sección del formulario. Este es el título que se mostrará en la interfaz de usuario y debe ser una clave de traducción.

tamaño: Tamaño

Este es el tamaño de la sección del formulario. Es un enumerado de Tamaño que puede ser SIMPLE o DOBLE. SIMPLE ocupará una columna y DOBLE ocupará más de una columna.

campos: FormField[]

Los campos del formulario que se mostrarán en la sección del formulario. A FormField es un único campo que aparece en el formulario de búsqueda.

id: Cadena

El identificador único para el campo del formulario. Esto debe ser el mismo que el nombre del campo en el PDS or MDS que se devuelve del backend.

nombre: Cadena

El nombre del campo del formulario. Esta es la etiqueta que se mostrará en la interfaz de usuario y debe ser una clave de traducción.

tipo: FormFieldType

El tipo del campo del formulario. Es un FieldType enum que puede ser uno de los siguientes: CADENA, IDENTIFICADOR_ALTERNATIVO, CÓDIGO_DE_RAZÓN, ESTADO_GLOBAL, TIPO_DE_TRANSACCIÓN, FECHAS, CANTIDADES, CASILLA_DE_VERIFICACIÓN, NÚMERO, FECHA, FECHA_HORA

GLOBAL_STATUS, AMOUNTS y DATES se configuran utilizando el date-types,amount-types y global-statuses propiedades de configuración dentro de cada tipo de viaje

Los tipos de campo ALTERNATIVE_IDENTIFIER, REASON_CODE, TRANSACTION_TYPE y GLOBAL_STATUS mostrarán un campo de autocompletar o un menú desplegable en la interfaz de usuario con los valores definidos en la configuración para identificadores alternativos, códigos de razón, tipos de transacción y estados globales, respectivamente.

Estados Globales

La configuración de estados globales está organizada dentro de la journeys mapa, donde cada tipo de viaje debe tener su propio global-statuses array. Los tipos de viaje válidos incluyen:`payment`,recall,bulk,batch, y cualquier custom tipos de viaje que usted añade. Esto significa que usted puede configurar custom estados globales para cada uno de los diferentes tipos de viaje de manera independiente. Por ejemplo, usted puede configurar diferentes estados globales para los pagos bajo journeys.payment.global-statuses en la configuración.

Cada objeto de estado tiene dos campos:`name` y category.

  • name es la etiqueta que se muestra en la interfaz de usuario (por ejemplo: "Pendiente").

  • category debe ser una de las 6 categorías permitidas: PENDING, ACCEPTED, REJECTED, MANUAL_ACTION_REQUIRED, SCHEDULED, CANCELADO. Las categorías provienen del conjunto de estado global predeterminado.

Puede encontrar más información sobre estados globales.aquí. Puede haber más de un estado en cada categoría.

Se han introducido categorías porque impulsan ciertos comportamientos de pantalla en la interfaz de usuario. Por ejemplo, solo los pagos con una categoría de estado global no terminal y no manual, es decir, PENDIENTE y SCHEDULED podrá ser cancelado.

# Journey-specific configurations
# Each journey type must have its own global-statuses configuration
journeys {
  # Payment journey configuration
  payment {
    global-statuses = [
      {
        name: "PENDING",
        category: "PENDING"
      },
      {
        name: "ACCEPTED",
        category: "ACCEPTED"
      },
      {
        name: "COMPLETED",
        category: "ACCEPTED"
      },
      {
        name: "REJECTED",
        category: "REJECTED"
      },
      {
        name: "MANUAL_ACTION_REQUIRED",
        category: "MANUAL_ACTION_REQUIRED"
      },
      {
        name: "SCHEDULED",
        category: "SCHEDULED"
      },
      {
        name: "CANCELLED",
        category: "CANCELLED"
      }
    ]
  }

  # Recall journey configuration
  recall {
    global-statuses = [
      {
        name: "PENDING",
        category: "PENDING"
      },
      {
        name: "ACCEPTED",
        category: "ACCEPTED"
      },
      {
        name: "COMPLETED",
        category: "ACCEPTED"
      },
      {
        name: "REJECTED",
        category: "REJECTED"
      },
      {
        name: "MANUAL_ACTION_REQUIRED",
        category: "MANUAL_ACTION_REQUIRED"
      },
      {
        name: "SCHEDULED",
        category: "SCHEDULED"
      },
      {
        name: "CANCELLED",
        category: "CANCELLED"
      }
    ]
  }

  # Bulk journey configuration
  bulk {
    global-statuses = [
      {
        name: "PENDING",
        category: "PENDING"
      },
      {
        name: "ACCEPTED",
        category: "ACCEPTED"
      },
      {
        name: "COMPLETED",
        category: "ACCEPTED"
      },
      {
        name: "REJECTED",
        category: "REJECTED"
      },
      {
        name: "MANUAL_ACTION_REQUIRED",
        category: "MANUAL_ACTION_REQUIRED"
      },
      {
        name: "SCHEDULED",
        category: "SCHEDULED"
      },
      {
        name: "CANCELLED",
        category: "CANCELLED"
      }
    ]
  }

  # Batch journey configuration
  batch {
    global-statuses = [
      {
        name: "PENDING",
        category: "PENDING"
      },
      {
        name: "ACCEPTED",
        category: "ACCEPTED"
      },
      {
        name: "COMPLETED",
        category: "ACCEPTED"
      },
      {
        name: "REJECTED",
        category: "REJECTED"
      },
      {
        name: "MANUAL_ACTION_REQUIRED",
        category: "MANUAL_ACTION_REQUIRED"
      },
      {
        name: "SCHEDULED",
        category: "SCHEDULED"
      },
      {
        name: "CANCELLED",
        category: "CANCELLED"
      }
    ]
  }

  # Example: Custom journey type (e.g., SEPA Instant)
  # sepa-instant {
  #   global-statuses = [
  #     {
  #       name: "PENDING",
  #       category: "PENDING"
  #     },
  #     {
  #       name: "COMPLETED",
  #       category: "ACCEPTED"
  #     }
  #   ]
  # }
}

Tipos de Fecha y Monto

Los tipos de fecha y cantidad por viaje se pueden configurar con el date-types y amount-types propiedades dentro de cada tipo de viaje para determinar qué aparece en los menús desplegables en la interfaz de usuario. Puede cambiar el orden en el que estos tipos aparecen en el menús desplegables cambiando el orden en el que aparecen en la configuración.

Por ejemplo, esto configuraría el pago y el recordatorio dentro del mapa de viajes:

viajes {
pago {
date-types = [
"CREADO_EN",
"MENSAJE_RECIBIDO_EN",
"FECHA_DE_LIQUIDACIÓN_INTERBANCARIA"
]
}
recall {
date-types = [
"CREATED_AT",
"FECHA_DE_LIQUIDACIÓN_INTERBANCARIA_ORIGINAL"
]
}
}

Si desea que el mensaje recibido en el tipo aparezca en la parte superior de la lista, debe cambiarlo para que sea así:

pago {
date-types = [
"MENSAJE_RECIBIDO_EN",
"CREATED_AT",
"FECHA_DE_LIQUIDACIÓN_INTERBANCARIA"
]
}

Detalles Predeterminados

La propiedad 'details-defaults' se utiliza para manejar el comportamiento de la pantalla de detalles de pago y debe ser configurada dentro de cada tipo de viaje:

viajes {
pago {
details-defaults = {
" showGraphs ": true,
"flujos": {
"abierto": "último",
"ordenar": "asc",
},
"eventos": {
"abierto": "todo",
"ordenar": "asc",
}
}
}
}

Donde 'showGraphs' maneja si los gráficos se muestran por defecto

'opened' maneja si desea tener ciertos flujos abiertos por defecto ('último', 'todos', 'ninguno')

'sort' maneja el orden en el que se ordenan los flujos/eventos ('desc', 'asc')

Columnas

El table-columns La propiedad se configura dentro de cada tipo de viaje para determinar qué columnas se muestran en la tabla de resultados de búsqueda en la página de búsqueda para ese tipo de viaje específico. Las columnas se mostrarán en el orden en que están definidas en la configuración, por lo que si desea cambiar el orden de las columnas, puede hacerlo modificando el orden en que aparecen en la configuración.

El atributo paths acepta un arreglo de cadenas, donde el valor se correlaciona con la ruta dentro del objeto que se espera. Si la ruta no se proporciona, se utilizará el nombre como valor predeterminado.

por ejemplo, para un objeto como el siguiente

{
    "createdAt": "01/01/2025",
    "field1": "value1",
    "field2": "value2",
    "object1": {
        "field3": "value3"
    }
}

La propiedad paths:

paths: ["createdAt"]

Obtendrá el valor ["01/01/2025"]

Y la propiedad paths:

paths: ["field1", "object1.field3"]

Obtendrá el valor ["value1", "value3"]. Donde cada uno de los valores de cadena estará separado por un salto de línea en la tabla.

Hay seis tipos de los que puede elegir.

CADENA

Un valor de texto estándar

NÚMERO

Un valor numérico estándar

MONEDA

Un valor que será formateado a un valor monetario.

FECHA

Un valor que será formateado como fecha y mostrará solo la fecha.

FECHA Y HORA

Un valor que será formateado a fecha e incluirá hora.

PRE_DEFINIDO

Una definición de columna incorporada que manejará columnas más complicadas (consulte las definiciones)

Para las columnas PRE_DEFINIDAS, puede utilizarlas proporcionando tanto el tipo como el nombre apropiado.

Tipo

Descripción

Notas

cantidad

Esto se mostrará transactionAmount,instructedAmount,convertedTransactionAmount or originalInterbankSettlementAmount,returnedInterbankSettlementAmount,convertedTransactionAmount dependiendo del tipo de viaje

También mostrará un tooltip apropiado.

bankingAccount

Esto se mostrará debitAccount y creditAccount con prefijos

totalInterbankSettlementAmount

Esto se mostrará totalInterbankSettlementAmount con totalInterbankSettlementAmountCurrency para la moneda

agentDetails

Esto se mostrará instructingAgent y instructedAgent

También se mostrará con un prefijo de 'Instruyendo' e 'Instruido'

reasonCode

Esto mostrará el reasonCode con un tooltip que contiene su descripción

Las columnas se definen de la siguiente manera:

# Journey-specific configurations
# Each journey type has its own table-columns configuration
journeys {
  payment {
    table-columns = [
      {
        name: "createdAt",
        type: "DATETIME"
      },
      {
        name: "transactionType",
        type: "STRING"
      },
      {
        name: "csm",
        type: "STRING"
      },
      {
        name: "amount",
        type: "PRE_DEFINED"
      },
      {
        name: "clientRequestId",
        type: "STRING"
      },
      {
        name: "debtor",
        type: "STRING",
        paths: ["debtorName", "debtorAccount", "debtorBic", "debtorAgentBic"]
      },
      {
        name: "creditor",
        type: "STRING",
        paths: ["creditorName", "creditorAccount", "creditorBic", "creditorAgentBic"]
      },
      {
        name: "bankingAccount",
        type: "STRING",
        paths: ["debitAccount", "creditAccount"]
      },
      {
        name: "globalStatus",
        type: "STRING"
      },
      {
        name: "reasonCode",
        type: "PRE_DEFINED"
      }
    ]
  }

  recall {
    table-columns = [
      {
        name: "createdAt",
        type: "DATETIME"
      },
      {
        name: "agentDetails",
        type: "PRE_DEFINED"
      },
      {
        name: "originalEndToEndId",
        type: "STRING"
      },
      {
        name: "originalTransactionId",
        type: "STRING"
      },
      {
        name: "amount",
        type: "PRE_DEFINED"
      },
      {
        name: "originalInterbankSettlementDate",
        type: "DATE"
      },
      {
        name: "debtor",
        type: "STRING",
        paths: ["debtorName", "debtorAccount", "debtorBic", "debtorAgentBic"]
      },
      {
        name: "creditor",
        type: "STRING",
        paths: ["creditorName", "creditorAccount", "creditorBic", "creditorAgentBic"]
      }
    ]
  }

  bulk {
    table-columns = [
      {
        name: "createdAt",
        type: "DATETIME"
      },
      {
        name: "agentDetails",
        type: "PRE_DEFINED"
      },
      {
        name: "totalInterbankSettlementAmount"
        type: "PRE_DEFINED"
      },
      {
        name: "transactionType",
        type: "STRING"
      },
      {
        name: "csm",
        type: "STRING"
      },
      {
        name: "clientRequestId",
        type: "STRING"
      },
      {
        name: "globalStatus",
        type: "STRING"
      },
      {
        name: "reasonCode",
        type: "PRE_DEFINED"
      }
    ]
  }

  batch {
    table-columns = [
      {
        name: "createdAt",
        type: "DATETIME"
      },
      {
        name: "transactionType",
        type: "STRING"
      },
      {
        name: "clientRequestId",
        type: "STRING"
      },
      {
        name: "debtor",
        type: "STRING",
        paths: ["debtorName", "debtorAccount", "debtorBic", "debtorAgentBic"]
      },
      {
        name: "globalStatus",
        type: "STRING"
      },
      {
        name: "reasonCode",
        type: "PRE_DEFINED"
      }
    ]
  }
}

ODS Tamaño de página

ODSajustes predeterminados de resultados de búsqueda. El número máximo de resultados de búsqueda que devuelve ODS está configurado a 1000.

ods-page-results = {
    size = 1000
}

Alternative Identifiers

Se deben agregar identificadores alternativos personalizados para los campos de búsqueda de Información Resumida a la alternative-identifiers propiedad dentro de cada tipo de viaje si se van a utilizar como parte de la autocompletación para ese campo de búsqueda:

# Alternative identifiers should be configured within each journey type
journeys {
  payment {
    alternative-identifiers = [
      {
        searchBy: "CLIENT_REQUEST_ID",
        displayName: "Client Request ID"
      }
    ]
  }
}

Reason Codes

Los códigos de razón de la configuración común pueden ser sobrescritos para este módulo al proporcionar los suyos.payment-search-reason-codes.conf.

El objeto de código de razón tiene un definitionKey propiedad que le permite definir una clave de traducción para la definición del código de razón. Si no definitionKey se proporciona, entonces el valor de definición se utiliza como una alternativa. El definitionKey la cadena debe ser "definición.<código-de-razón>", donde <reason-code> es el código de razón en sí. Puede ver un ejemplo a continuación.

En el menú desplegable de la interfaz de usuario, se mostrará el código de razón junto con la definición traducida o la definición de respaldo. Por ejemplo, "Código de Razón 1 — Esta es la definición del código de razón".

Ejemplo de configuración del código de razón:

reason-codes = [
    {
      reasonCode = "AB06",
      definition = "Transaction stopped due to timeout at the Instructed Agent.",
      definitionKey = "definition.AB06",
      source = "ISO"
    },
    {
      reasonCode = "AB07",
      definition = "Agent of message is not online. Generic usage if it cannot be determined who exactly is not online.",
      definitionKey = "definition.AB07",
      source = "ISO"
    },
    {
      reasonCode = "AB08",
      definition = "Creditor Agent is not online.",
      definitionKey = "definition.AB08",
      source = "ISO"
    }
]

Para obtener información sobre cómo agregar custom traducciones a la Operational Dashboard, vea Operational Dashboard Translation Customisation.

Códigos de Moneda

Los códigos de moneda de la configuración común pueden ser sobrescritos para este módulo proporcionando los suyos propios.payment-search-currency-codes.conf.

En el menú desplegable de la interfaz de usuario, la moneda se mostrará junto con el código alfabético. Por ejemplo, "Código Alfabético — Moneda".

Ejemplo de configuración del código de moneda:

currency-codes = [
        {
            "alphabeticCode": "AFN",
            "currency": "Afghani"
        },
        {
            "alphabeticCode": "EUR",
            "currency": "Euro"
        },
        {
            "alphabeticCode": "ALL",
            "currency": "Lek"
        }
]

Formatos de Fecha

Los formatos de fecha de la configuración común pueden ser sobrescritos para este módulo proporcionando su propia.payment-search-date-formats.conf. Si no proporciona ningún valor, las fechas serán el estándar del Reino Unido.

Los formatos de fecha se establecen según la Entidad de Procesamiento.

Ejemplo de configuración del formato de fecha:

date-formats = {
  BANK_ENTITY_1 = {
    dateInput = "DD/MM/YYYY",
    dateDisplay = "dd/MM/YYYY",
    datetimeDisplay = "dd/MM/YYYY"
  },
  BANK_ENTITY_2 = {
    dateInput = "DD/MM/YYYY",
    dateDisplay = "dd/MM/YYYY",
    datetimeDisplay = "dd/MM/YYYY"
  }
}

Resumen de Configuración

Esta configuración determinará cómo renderizar y organizar las diversas páginas de resumen para las unidades de trabajo en la interfaz de usuario. Se requiere un conjunto de configuración por cada tipo de resumen.- payment,recall,bulk,batch

El diseño evaluado puede ser recuperado de /api/ods/summary/{unitOfWorkId}

Los valores configurables son los siguientes:

Propiedad Descripción

Resumen

layout.<summary-type>

El conjunto de tarjetas que se mostrarán en la pantalla para el tipo de resumen dado. Esto será lo que se cargue cuando un usuario haga clic en una unidad de trabajo individual en la interfaz de usuario.

Tarjetas

layout.<summary-type>.cardNameTranslationKey

La clave de traducción que debe utilizar transloco para el título de la tarjeta. Esto se añadirá a la clave raíz de traducción. p. ej.t(payment-summary.debtorinformation)

layout.<summary-type>.translationRoot

La raíz de traducción para el archivo de traducción transloco. p. ej.payment-summary

layout.<summary-type>.type

Tipo de tarjeta a utilizar desde la página de resumen dinámico. 3 tipos actuales list,gridList y relatedSummaries. El valor predeterminado es list

layout.<summary-type>.width

Cuántas columnas debe ocupar esta tarjeta. El valor predeterminado es 1 y el máximo es 6.

layout.<summary-type>.data

La raíz de traducción para el archivo de traducción transloco. p. ej.payment-summary

Artículos

layout.<summary-type>.data.<index>.translationKey

La clave de traducción que debe utilizar transloco para el título de la tarjeta. Esto se añadirá a la clave raíz de traducción. p. ej.t(payment-summary.debtorinformation)

layout.<summary-type>.data.<index>.type

El tipo del valor. Por defecto es texto, pero incluirá modificadores como estado, código de razón, negrita, etc.

  • subtítulo: El subtítulo se mostrará como un título en la tarjeta, cualquier elemento siguiente en la lista aparecerá bajo este subtítulo hasta que se especifique otro.

  • texto: Texto simple que se truncará si es demasiado largo y podrá ser copiado por el usuario.

  • fecha: Muestre como una fecha,

  • datetime: Muestre como fecha y hora, al hacer clic en este elemento se convertirá la fecha y hora en una duración de cuánto tiempo ha pasado desde la fecha y hora.

  • negrita: Resalta el texto.

  • estado: El estado mostrará el texto; si el elemento tiene un valor de advertencia, entonces se mostrará un ícono de advertencia junto a él.

  • reasonCodeEl código de razón hará referencia a la configuración de un código de razón relevante y mostrará un texto junto a él cuando se pase el cursor por encima.

layout.<summary-type>.data.<index>.valuePath

La ubicación del valor en el /details/{unit of work id} api de ODS. Este camino se define utilizando SPEL. p. ej."transactionData.customerCreditTransferInitiation.pmtInf[0].cdtTrfTxInf[0].pmtId.endToEndId" y puede ser ingresado como una única cadena o un arreglo de cadenas si el valor es condicional, ingresado en orden preferencial con el primer índice siendo la mayor preferencia es decir, [" firstChoicePath ", " secondChoicePath].

layout.<summary-type>.data.<index>.fallbackValue

Una cadena a utilizar en caso de que el valor falte en la respuesta de detalles. Por defecto, N/A.

Si desea que otros datos aparezcan después de los identificadores alternativos en una tarjeta, asegúrese de agregar un subtítulo en la siguiente configuración para mantener los datos separados.

El archivo fuente para los valores predeterminados se llama summary-layout.conf y puede ser anulado en el proyecto del cliente al proporcionar su propio summary-layout.conf.

layout = {
  payment = [
    {
      cardNameTranslationKey: "paymentTitle",
      translationRoot: "summary.processingIds",
      type: "list",
      width: 2,
      data: [
        {
          translationKey: "uowId",
          type: "text",
          valuePath: "summary.unitOfWorkId",
        },
        {
          translationKey: "clientRequestId",
          type: "text",
          valuePath: "summary.clientRequestId",
        },
        {
          translationKey: "transactionId",
          type: "text",
          valuePath: "summary.transactionId",
        },
        {
          translationKey: "instructingId",
          type: "text",
          valuePath: "summary.instructionId",
        },
        {
          translationKey: "uetr",
          type: "text",
          valuePath: "summary.uetr",
        },
        {
          translationKey: "alternativeIds",
          type: "altIds"
        }
      ]
    },
    {
      cardNameTranslationKey: "title",
      translationRoot: "summary.processingDates",
      type: "list",
      width: 2,
      data: [
        {
          translationKey: "created",
          type: "date",
          valuePath: "summary.createdAt",
        },
        {
          translationKey: "instructed",
          type: "date",
          valuePath: "summary.instructionReceivedAt",
        },
        {
          translationKey: "executionStarted",
          type: "date",
          valuePath: "summary.executionStartedAt",
        },
        {
          translationKey: "settled",
          type: "date",
          valuePath: "summary.settlementCompletedAt",
        },
        {
          translationKey: "acceptance",
          type: "date",
          valuePath: "summary.acceptanceDateTime",
        },
        {
          translationKey: "interbankSettlement",
          type: "date",
          valuePath: "summary.interbankSettlementDate",
        },
        {
          translationKey: "timeZone",
          type: "text",
          valuePath: "summary.timeZone",
        }
      ]
    },
    {
      cardNameTranslationKey: "title",
      translationRoot: "summary.relatedSummaries",
      type: "relatedSummaries",
      width: 2,
    },
    {
      cardNameTranslationKey: "title",
      translationRoot: "summary.executionStatus",
      type: "gridList",
      width: 3,
      data: [
        {
          translationKey: "csm",
          type: "text",
          valuePath: "summary.csm",
        },
        {
          translationKey: "priority",
          type: "text",
          valuePath: "summary.priority",
        },
        {
          translationKey: "processingEntity",
          type: "text",
          valuePath: "summary.processingEntity",
        },
        {
          translationKey: "globalStatus",
          type: "status",
          valuePath: "summary.globalStatus",
        },
        {
          translationKey: "reasonCode",
          type: "reasonCode",
          valuePath: "summary.reasonCode",
        }
      ]
    },
    {
      cardNameTranslationKey: "title",
      translationRoot: "summary.processingAmounts",
      type: "gridList",
      width: 3,
      data: [
        {
          translationKey: "instructedAmount",
          type: "amount",
          valuePath: "summary.instructedAmount",
        },
        {
          translationKey: "instructedAmount",
          type: "currency",
          valuePath: "summary.instructedAmountCurrency",
        },
        {
          translationKey: "transactionAmount",
          type: "amount",
          valuePath: "summary.transactionAmount",
        },
        {
          translationKey: "transactionAmount",
          type: "currency",
          valuePath: "summary.transactionAmountCurrency",
        },
        {
          translationKey: "convertedAmount",
          type: "amount",
          valuePath: "summary.convertedTransactionAmount",
        },
        {
          translationKey: "convertedAmount",
          type: "currency",
          valuePath: "summary.convertedTransactionAmountCurrency",
        },
        {
          translationKey: "exchangeRate",
          type: "text",
          valuePath: "summary.exchangeRate",
        }
      ]
    },
    {
      cardNameTranslationKey: "title",
      translationRoot: "summary.debtorDetails",
      type: "list",
      width: 2,
      data: [
        {
          translationKey: "debtorName",
          type: "text",
          valuePath: "summary.debtorName",
        },
        {
          translationKey: "debtorIban",
          type: "text",
          valuePath: "summary.debtorAccount",
        },
        {
          translationKey: "debtorBic",
          type: "text",
          valuePath: "summary.debtorBic",
        },
        {
          translationKey: "debtorAgentBic",
          type: "text",
          valuePath: "summary.debtorAgentBic",
        }
      ]
    },
    {
      cardNameTranslationKey: "title",
      translationRoot: "summary.creditorDetails",
      type: "list",
      width: 2,
      data: [
        {
          translationKey: "creditorName",
          type: "text",
          valuePath: "summary.creditorName",
        },
        {
          translationKey: "creditorIban",
          type: "text",
          valuePath: "summary.creditorAccount",
        },
        {
          translationKey: "creditorBic",
          type: "text",
          valuePath: "summary.creditorBic",
        },
        {
          translationKey: "creditorAgentBic",
          type: "text",
          valuePath: "summary.creditorAgentBic",
        }
      ]
    },
    {
      cardNameTranslationKey: "title",
      translationRoot: "summary.settlementNotificationInformation",
      type: "list",
      width: 2,
      data: [
        {
          translationKey: "debitAccount",
          type: "text",
          valuePath: "summary.debitAccount",
        },
        {
          translationKey: "creditAccount",
          type: "text",
          valuePath: "summary.creditAccount",
        },
        {
          translationKey: "debitAmount",
          type: "amount",
          valuePath: "summary.debitAmount",
        },
        {
          translationKey: "debitAmount",
          type: "currency",
          valuePath: "summary.debitAmountCurrency",
        },
        {
          translationKey: "creditAmount",
          type: "amount",
          valuePath: "summary.creditAmount",
        },
        {
          translationKey: "creditAmount",
          type: "currency",
          valuePath: "summary.creditAmountCurrency",
        },
      ]
    }
  ],
  recall = [
    {
      cardNameTranslationKey: "recallTitle",
      translationRoot: "summary.processingIds",
      type: "list",
      width: 2,
      data: [
        {
          translationKey: "uowId",
          type: "text",
          valuePath: "summary.unitOfWorkId",
        },
        {
          translationKey: "clientRequestId",
          type: "text",
          valuePath: "summary.clientRequestId",
        },
        {
          translationKey: "originalMessageId",
          type: "text",
          valuePath: "summary.originalMessageId",
        },
        {
          translationKey: "originalInstructionId",
          type: "text",
          valuePath: "summary.originalInstructionId",
        },
        {
          translationKey: "originalEndToEndId",
          type: "text",
          valuePath: "summary.originalEndToEndId",
        },
        {
          translationKey: "originalTransactionId",
          type: "text",
          valuePath: "summary.originalTransactionId",
        },
        {
          translationKey: "cancellationId",
          type: "text",
          valuePath: "summary.cancellationId",
        },
        {
          translationKey: "returnId",
          type: "text",
          valuePath: "summary.returnId",
        },
        {
          translationKey: "alternativeIds",
          type: "altIds"
        }
      ]
    },
    {
      cardNameTranslationKey: "title",
      translationRoot: "summary.processingDates",
      type: "list",
      width: 2,
      data: [
        {
          translationKey: "created",
          type: "date",
          valuePath: "summary.createdAt",
        },
        {
          translationKey: "messageReceived",
          type: "date",
          valuePath: "summary.messageReceivedAt",
        },
        {
          translationKey: "settled",
          type: "date",
          valuePath: "summary.interbankSettlementDate",
        },
        {
          translationKey: "originalInterbankSettlement",
          type: "date",
          valuePath: "summary.originalInterbankSettlementDate",
        },
        {
          translationKey: "timeZone",
          type: "text",
          valuePath: "summary.timeZone",
        }
      ]
    },
    {
      cardNameTranslationKey: "title",
      translationRoot: "summary.relatedSummaries",
      type: "relatedSummaries",
      width: 2,
    },
    {
      cardNameTranslationKey: "title",
      translationRoot: "summary.executionStatus",
      type: "gridList",
      width: 3,
      data: [
        {
          translationKey: "csm",
          type: "text",
          valuePath: "summary.csm",
        },
        {
          translationKey: "priority",
          type: "text",
          valuePath: "summary.priority",
        },
        {
          translationKey: "processingEntity",
          type: "text",
          valuePath: "summary.processingEntity",
        },
        {
          translationKey: "globalStatus",
          type: "status",
          valuePath: "summary.globalStatus",
        },
        {
          translationKey: "reasonCode",
          type: "reasonCode",
          valuePath: "summary.reasonCode",
        }
      ]
    },
    {
      cardNameTranslationKey: "title",
      translationRoot: "summary.processingAmounts",
      type: "gridList",
      width: 3,
      data: [
        {
          translationKey: "returnedInterbankSettlementAmount",
          type: "amount",
          valuePath: "summary.returnedInterbankSettlementAmount",
        },
        {
          translationKey: "returnedInterbankSettlementAmount",
          type: "currency",
          valuePath: "summary.returnedInterbankSettlementAmountCurrency",
        },
        {
          translationKey: "originalInterbankSettlementAmount",
          type: "amount",
          valuePath: "summary.originalInterbankSettlementAmount",
        },
        {
          translationKey: "originalInterbankSettlementAmount",
          type: "currency",
          valuePath: "summary.originalInterbankSettlementAmountCurrency",
        },
        {
          translationKey: "chargeAmount",
          type: "amount",
          valuePath: "summary.chargeAmount",
        },
        {
          translationKey: "chargeAmount",
          type: "currency",
          valuePath: "summary.chargeAmountCurrency",
        },
        {
          translationKey: "convertedAmount",
          type: "amount",
          valuePath: "summary.convertedTransactionAmount",
        },
        {
          translationKey: "convertedAmount",
          type: "currency",
          valuePath: "summary.convertedTransactionAmountCurrency",
        },
        {
          translationKey: "exchangeRate",
          type: "text",
          valuePath: "summary.exchangeRate",
        }
      ]
    },
    {
      cardNameTranslationKey: "title",
      translationRoot: "summary.debtorDetails",
      type: "list",
      width: 2,
      data: [
        {
          translationKey: "debtorName",
          type: "text",
          valuePath: "summary.debtorName",
        },
        {
          translationKey: "debtorIban",
          type: "text",
          valuePath: "summary.debtorAccount",
        },
        {
          translationKey: "debtorAgentBic",
          type: "text",
          valuePath: "summary.debtorAgentBic",
        }
      ]
    },
    {
      cardNameTranslationKey: "title",
      translationRoot: "summary.creditorDetails",
      type: "list",
      width: 2,
      data: [
        {
          translationKey: "creditorName",
          type: "text",
          valuePath: "summary.creditorName",
        },
        {
          translationKey: "creditorIban",
          type: "text",
          valuePath: "summary.creditorAccount",
        },
        {
          translationKey: "creditorAgentBic",
          type: "text",
          valuePath: "summary.creditorAgentBic",
        }
      ]
    },
    {
      cardNameTranslationKey: "title",
      translationRoot: "summary.agentDetails",
      type: "list",
      width: 2,
      data: [
        {
          translationKey: "instructingAgent",
          type: "text",
          valuePath: "summary.instructingAgent",
        },
        {
          translationKey: "instructedAgent",
          type: "text",
          valuePath: "summary.instructedAgent",
        },
      ]
    }
  ]
  bulk = [
    {
      cardNameTranslationKey: "bulkTitle",
      translationRoot: "summary.processingIds",
      type: "list",
      width: 2,
      data: [
        {
          translationKey: "uowId",
          type: "text",
          valuePath: "summary.unitOfWorkId",
        },
        {
          translationKey: "clientRequestId",
          type: "text",
          valuePath: "summary.clientRequestId",
        },
        {
          translationKey: "messageId",
          type: "text",
          valuePath: "summary.messageId",
        },
        {
          translationKey: "alternativeIds",
          type: "altIds"
        }
      ]
    },
    {
      cardNameTranslationKey: "title",
      translationRoot: "summary.processingDates",
      type: "list",
      width: 2,
      data: [
        {
          translationKey: "created",
          type: "date",
          valuePath: "summary.createdAt",
        },
        {
          translationKey: "messageReceived",
          type: "date",
          valuePath: "summary.messageReceivedAt",
        },
        {
          translationKey: "interbankSettlement",
          type: "date",
          valuePath: "summary.interbankSettlementDate",
        },
        {
          translationKey: "timeZone",
          type: "text",
          valuePath: "summary.timeZone",
        }
      ]
    },
    {
      cardNameTranslationKey: "title",
      translationRoot: "summary.relatedSummaries",
      type: "relatedSummaries",
      width: 2,
    },
    {
      cardNameTranslationKey: "title",
      translationRoot: "summary.executionStatus",
      type: "gridList",
      width: 3,
      data: [
        {
          translationKey: "csm",
          type: "text",
          valuePath: "summary.csm",
        },
        {
          translationKey: "priority",
          type: "text",
          valuePath: "summary.priority",
        },
        {
          translationKey: "processingEntity",
          type: "text",
          valuePath: "summary.processingEntity",
        },
        {
          translationKey: "globalStatus",
          type: "status",
          valuePath: "summary.globalStatus",
        },
        {
          translationKey: "reasonCode",
          type: "reasonCode",
          valuePath: "summary.reasonCode",
        }
      ]
    },
    {
      cardNameTranslationKey: "title",
      translationRoot: "summary.processingAmounts",
      type: "gridList",
      width: 3,
      data: [
        {
          translationKey: "totalInterbankSettlementAmount",
          type: "amount",
          valuePath: "summary.totalInterbankSettlementAmount",
        },
        {
          translationKey: "totalInterbankSettlementAmount",
          type: "currency",
          valuePath: "summary.totalInterbankSettlementAmountCurrency",
        },
        {
          translationKey: "controlSum",
          type: "text",
          valuePath: "summary.controlSum",
        },
        {
          translationKey: "numberOfTransactions",
          type: "text",
          valuePath: "summary.numberOfTransactions",
        }
      ]
    },
    {
      cardNameTranslationKey: "title",
      translationRoot: "summary.agentDetails",
      type: "list",
      width: 6,
      data: [
        {
          translationKey: "instructingAgent",
          type: "text",
          valuePath: "summary.instructingAgent",
        },
        {
          translationKey: "instructedAgent",
          type: "text",
          valuePath: "summary.instructedAgent",
        },
        {
          translationKey: "initiatingPartyName",
          type: "text",
          valuePath: "summary.initiatingPartyName",
        },
      ]
    }
  ]
  batch = [
    {
      cardNameTranslationKey: "batchTitle",
      translationRoot: "summary.processingIds",
      type: "list",
      width: 2,
      data: [
        {
          translationKey: "uowId",
          type: "text",
          valuePath: "summary.unitOfWorkId",
        },
        {
          translationKey: "clientRequestId",
          type: "text",
          valuePath: "summary.clientRequestId",
        },
        {
          translationKey: "paymentInformationId",
          type: "text",
          valuePath: "summary.paymentInformationId",
        }
        {
          translationKey: "alternativeIds",
          type: "altIds"
        }
      ]
    },
    {
      cardNameTranslationKey: "title",
      translationRoot: "summary.processingDates",
      type: "list",
      width: 2,
      data: [
        {
          translationKey: "created",
          type: "date",
          valuePath: "summary.createdAt",
        },
        {
          translationKey: "timeZone",
          type: "text",
          valuePath: "summary.timeZone",
        }
      ]
    },
    {
      cardNameTranslationKey: "title",
      translationRoot: "summary.relatedSummaries",
      type: "relatedSummaries",
      width: 2,
    },
    {
      cardNameTranslationKey: "title",
      translationRoot: "summary.executionStatus",
      type: "gridList",
      width: 6,
      data: [
        {
          translationKey: "csm",
          type: "text",
          valuePath: "summary.csm",
        },
        {
          translationKey: "priority",
          type: "text",
          valuePath: "summary.priority",
        },
        {
          translationKey: "processingEntity",
          type: "text",
          valuePath: "summary.processingEntity",
        },
        {
          translationKey: "globalStatus",
          type: "status",
          valuePath: "summary.globalStatus",
        },
        {
          translationKey: "reasonCode",
          type: "reasonCode",
          valuePath: "summary.reasonCode",
        }
      ]
    },
    {
      cardNameTranslationKey: "title",
      translationRoot: "summary.debtorDetails",
      type: "list",
      width: 6,
      data: [
        {
          translationKey: "debtorName",
          type: "text",
          valuePath: "summary.debtorName",
        },
        {
          translationKey: "debtorIban",
          type: "text",
          valuePath: "summary.debtorAccount",
        },
        {
          translationKey: "debtorAgentBic",
          type: "text",
          valuePath: "summary.debtorAgentBic",
        }
      ]
    },
  ]
}

Dentro de su aplicación, usted querrá definir sus traducciones correctamente. Así que, para el ejemplo de una configuración de diseño:

 layout = {
 pago = [
 {
 cardNameTranslationKey: " paymentTitle ",
 translationRoot: " summary.processingIds ",
 tipo: "lista",
 ancho: 2,
 data: [
 {
 translationKey: " uowId ",
 tipo: "texto",
 valuePath: " summary.unitOfWorkId ",
 }
 ]
 }
 ]
}

Usted querrá definir su archivo de traducción de la siguiente manera:

"resumen": {
" processingIds ": {
" paymentTitle ": "Prueba"
},
" unitOfWorkId ": "12345"
}

MDS Configuración de Búsqueda

Esta configuración determinará cómo renderizar y organizar los diversos MDS buscar tablas de página en MDS Módulo de búsqueda en la interfaz gráfica. Esto debe hacerse por MDS objeto que desea que se muestre en su MDS página de búsqueda

El diseño evaluado puede ser recuperado de /api/ods/mds-info

Los valores configurables son los siguientes:

Propiedad Descripción

Nombre

mds.name

El nombre del MDS Objeto para el cual desea proporcionar los encabezados de la tabla en el MDS Página de búsqueda.

Resumen de Respuesta

mds.responseDigest.name

La clave para la traducción en el archivo de traducción transloco para el nombre del encabezado que desea que se represente en el MDS Buscar tabla para un dado MDS Objeto.

mds.responseDigest.paths

La ubicación de los valores que desea mostrar en sus filas del encabezado designado tomados de los objetos ods/all/mds-objects/{type} respuesta de la API. Este camino se define utilizando puntos. JSON ruta. p. ej."object.headers.unitOfWorkId"

mds.responseDigest.type

El tipo del valor.

  • CADENA: Texto plano que se truncará si es demasiado largo y podrá ser copiado por el usuario.

  • CANTIDAD: Se deben proporcionar dos rutas de valor con un valor y una moneda, y esto se convertirá en una cantidad que se mostrará en la tabla de resultados.

  • ENTERO: Ruta de valor que se mostrará como un número.

  • BOOLEAN: Ruta de valor que se mostrará como un booleano en la tabla de resultados.

  • FECHA: Mostrar como una fecha,

  • FECHA Y HORA: Muestre como fecha y hora.

  • ARRAY: Rutas de valor que se mostrarán colectivamente como una columna de resultados dentro de una fila.

  • CÓDIGODERAZÓN: El código de razón hará referencia a la configuración de un código de razón relevante y mostrará un texto junto a él al pasar el cursor sobre él.

El archivo fuente para los valores predeterminados se llama mds-response-fields.conf y puede ser anulado en el proyecto del cliente al proporcionar su propio mds-response-fields.conf.

{
  mds = [
    {
      name = "PAIN_001",
      responseDigest = [
        {
          name = "unitOfWorkId"
          paths = ["object.headers.unitOfWorkId"]
          type = "STRING"
        },
        {
          name = "clientRequestId"
          paths = ["object.headers.clientRequestId"]
          type = "STRING"
        },
        {
          name = "mdsObjectId"
          paths = ["object.payload.mdsObjectId.id"]
          type = "STRING"
        },
        {
          name = "initiatingParty"
          paths = [
            "object.payload.content.grpHdr.initgPty.nm",
            "object.payload.content.grpHdr.initgPty.id.orgId.anyBIC"
          ]
          type = "ARRAY"
        }
      ]
    },
    {
      name = "PAIN_001_PAYMENT_INSTRUCTION",
      responseDigest = [
        {
          name = "unitOfWorkId"
          paths = ["object.headers.unitOfWorkId"]
          type = "STRING"
        },
        {
          name = "clientRequestId"
          paths = ["object.headers.clientRequestId"]
          type = "STRING"
        },
        {
          name = "parentMdsObjectId"
          paths = ["object.payload.parentMdsObjectId.id"]
          type = "STRING"
        },
        {
          name = "debtor"
          paths = [
            "object.payload.content.dbtr.nm",
            "object.payload.content.dbtrAcct.id.iban",
            "object.payload.content.dbtr.id.orgId.anyBIC"
          ]
          type = "ARRAY"
        }
      ]
    },
    {
      name = "PAIN_001_CREDIT_TRANSFER_TRANSACTION",
      responseDigest = [
        {
          name = "unitOfWorkId"
          paths = ["object.headers.unitOfWorkId"]
          type = "STRING"
        },
        {
          name = "clientRequestId"
          paths = ["object.headers.clientRequestId"]
          type = "STRING"
        },
        {
          name = "parentMdsObjectId"
          paths = ["object.payload.parentMdsObjectId.id"]
          type = "STRING"
        },
        {
          name = "creditor"
          paths = [
            "object.payload.content.cdtr.nm",
            "object.payload.content.cdtrAcct.id.iban",
            "object.payload.content.cdtr.id.orgId.anyBIC"
          ]
          type = "ARRAY"
        }
      ]
    },
    {
      name = "PACS_008",
      responseDigest = [
        {
          name = "unitOfWorkId"
          paths = ["object.headers.unitOfWorkId"]
          type = "STRING"
        },
        {
          name = "clientRequestId"
          paths = ["object.headers.clientRequestId"]
          type = "STRING"
        },
        {
          name = "mdsObjectId"
          paths = ["object.payload.mdsObjectId.id"]
          type = "STRING"
        },
        {
          name = "instructingAgent"
          paths = [
            "object.payload.content.grpHdr.instgAgt.finInstnId.nm",
            "object.payload.content.grpHdr.instgAgt.finInstnId.bicfi"
          ]
          type = "ARRAY"
        }
      ]
    },
    {
      name = "PACS_008_CREDIT_TRANSFER_TRANSACTION",
      responseDigest = [
        {
          name = "unitOfWorkId"
          paths = ["object.headers.unitOfWorkId"]
          type = "STRING"
        },
        {
          name = "clientRequestId"
          paths = ["object.headers.clientRequestId"]
          type = "STRING"
        },
        {
          name = "parentMdsObjectId"
          paths = ["object.payload.parentMdsObjectId.id"]
          type = "STRING"
        },
        {
          name = "transactionId"
          paths = ["object.payload.content.pmtId.txId"]
          type = "STRING"
        },
        {
          name = "debtor"
          paths = [
            "object.payload.content.dbtr.nm",
            "object.payload.content.dbtrAcct.id.iban",
            "object.payload.content.dbtr.orgId.anyBIC"
          ]
          type = "ARRAY"
        },
        {
          name = "creditor"
          paths = [
            "object.payload.content.cdtr.nm",
            "object.payload.content.cdtrAcct.id.othr.id",
            "object.payload.content.cdtr.orgId.anyBIC"
          ]
          type = "ARRAY"
        },
        {
          name = "instructingAgent"
          paths = [
            "object.payload.content.instgAgt.finInstnId.nm",
            "object.payload.content.instgAgt.finInstnId.bicfi"
          ]
          type = "ARRAY"
        }
      ]
    },
    {
      name = "PACS_004",
      responseDigest = [
        {
          name = "unitOfWorkId"
          paths = ["object.headers.unitOfWorkId"]
          type = "STRING"
        },
        {
          name = "clientRequestId"
          paths = ["object.headers.clientRequestId"]
          type = "STRING"
        },
        {
          name = "messageId"
          paths = ["object.payload.content.msgId"]
          type = "STRING"
        },
        {
          name = "mdsObjectId"
          paths = ["object.payload.mdsObjectId.id"]
          type = "STRING"
        },
        {
          name = "instructingAgent"
          paths = [
            "object.payload.content.instgAgt.finInstnId.nm",
            "object.payload.content.instgAgt.finInstnId.bicfi"
          ]
          type = "ARRAY"
        }
      ]
    },
    {
      name = "PACS_004_PAYMENT_TRANSACTION",
      responseDigest = [
        {
          name = "unitOfWorkId"
          paths = ["object.headers.unitOfWorkId"]
          type = "STRING"
        },
        {
          name = "clientRequestId"
          paths = ["object.headers.clientRequestId"]
          type = "STRING"
        },
        {
          name = "parentMdsObjectId"
          paths = ["object.payload.parentMdsObjectId.id"]
          type = "STRING"
        },
        {
          name = "originalMessageId"
          paths = ["object.payload.content.orgnlGrpInf.orgnlMsgId"]
          type = "STRING"
        },
        {
          name = "reasonCode"
          paths = ["object.payload.content.rtrRsnInf[0].rsn.cd"]
          type = "REASONCODE"
        },
        {
          name = "debtor"
          paths = [
            "object.payload.content.orgnlTxRef.dbtr.pty.nm",
            "object.payload.content.orgnlTxRef.dbtrAcct.id.iban",
            "object.payload.content.orgnlTxRef.dbtr.pty.orgId.anyBIC"
          ]
          type = "ARRAY"
        },
        {
          name = "creditor"
          paths = [
            "object.payload.content.rtrChain.cdtr.pty.nm",
            "object.payload.content.orgnlTxRef.cdtrAcct.id.iban",
            "object.payload.content.rtrChain.cdtr.pty.id.orgId.anyBIC"
          ]
          type = "ARRAY"
        }
      ]
    }
  ]
}

Configuración de Entidad de Procesamiento Desconocida

En algunas circunstancias, ciertos System Events y Message Logs ruteado al Operational Dashboard no tiene una entidad de procesamiento identificable. Esto puede suceder por una variedad de razones. Dos ejemplos comunes son:

System Events

Un mensaje entrante de un esquema de pago no cumple con la validación del esquema. Actualmente, los paquetes del esquema no determinan la entidad de procesamiento para los pagos entrantes.

Message Logs

Eventos de fallo de transporte emitidos por un conector.

En estos casos, se les asignará a UNKNOWN.

Para que un usuario pueda ver tales elementos,UNKNOWN debe ser incluido con ROLE_PAYMENT junto con cualquier otra entidad de procesamiento en users.conf.

Para prevenir problemas como que los usuarios creen configuraciones de procesamiento en contra de esto UNKNOWN entidad de procesamiento, se recomienda que ROLE_PAYMENT es el único rol asignado a él.

users = [
  {
    username: "user"
    password: "password"
    roles: {
      UNKNOWN = [ROLE_PAYMENT]
      OTHER_PROCESSING_ENTITY = [...]
    }
  }
]

Para obtener más información sobre la búsqueda de System Events y Message Logs asignado a UNKNOWN, vea aquí.

Añadiendo Tipos de Viaje Personalizados

El ODS el módulo admite la adición de custom tipos de viaje sin requerir cambios de código. Simplemente añada una nueva entrada a la journeys mapee en su configuración con todas las propiedades su custom necesidades del tipo de viaje.

Los tipos de viaje personalizados pueden definir los suyos propios:

  • Formularios de búsqueda (search-form)

  • Columnas de la tabla (table-columns)

  • Estados globales (global-statuses)

  • Tipos de fecha (date-types)

  • Tipos de cantidad (amount-types)

  • Identificadores alternativos (alternative-identifiers)

  • Tipos de transacción (transaction-types)

  • Detalles predeterminados (details-defaults)

Nota:system-event-names es una propiedad de nivel superior (fuera del journeys objeto) que se comparte entre todos los tipos de viaje.

Ejemplo: Agregar un SEPA Instant Tipo de Viaje

ipf.business-operations.payment-search {
  system-event-names = [
    "ActionInvoked",
    "ActionRetriesExhausted",
    # ... other event names
  ]

  journeys {
    payment { ... } # existing
    recall { ... }  # existing
    bulk { ... }    # existing
    batch { ... }   # existing

    # NEW: Custom journey type
    sepa-instant {
      alternative-identifiers = [
        {
          searchBy: "CLIENT_REQUEST_ID",
          displayName: "Client Request ID"
        }
      ]

      transaction-types = ["Credit", "Debit"]

      details-defaults {
        showGraphs = true
        flows {
          opened = "latest"
          sort = "asc"
        }
        events {
          opened = "all"
          sort = "asc"
        }
      }

      search-form {
        searchType: "sepa-instant"
        formSections: [
          # custom form fields
        ]
      }

      table-columns = [
        # custom table columns
      ]

      global-statuses = [
        # custom statuses
      ]

      date-types = [
        "CREATED_AT",
        "INSTANT_SETTLEMENT_TIME"
      ]

      amount-types = [
        "INSTANT_AMOUNT"
      ]
    }
  }
}