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.

Formularios de Búsqueda

La configuración de los formularios de búsqueda se utiliza para determinar qué campos se muestran en los formularios de búsqueda para el pago, la recuperación,bulk y lote. 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. Cualquiera 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:

search-forms = [
    {
      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"
            }
          ]
        }
      ]
    }
]

Nombre

Descripción

searchType: Cadena

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

formSections: FormSection[]

La sección del formulario que se mostrará. Una 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. Un 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 enumerado FieldType que puede ser uno de los siguientes: CADENA, IDENTIFICADOR_ALTERNATIVO, CÓDIGO_DE_RAZÓN, ESTADO_GLOBAL, TIPO_DE_TRANSACCIÓN, FECHAS_DE_PAGO, MONTOS_DE_PAGO, FECHAS_DE_RECALL, CANTIDADES_DE_RECALL, BULK_DATES, BULK_AMOUNTS, FECHAS_DE_LOTE, CANTIDADES_DE_LOTE, CASILLA_DE_VERIFICACIÓN, NÚMERO, FECHA, FECHA_HORA

Existen diferentes tipos de fecha y cantidad para el pago, el recordatorio,bulk y lote, razón por la cual existen diferentes tipos de campo para cada uno de estos, por ejemplo, PAYMENT_DATES, RECALL_DATES, BULK_DATES, FECHAS_DE_LOTE, MONTOS_DE_PAGO, MONTOS_DE_RECALL, BULK_AMOUNTS, CANTIDADES_DE_LOTE. Las fechas y los montos deben estar en su propia sección, ya que, según el tipo de fecha o monto seleccionado, se mostrarán diferentes campos en la interfaz de usuario.

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 alternative identifiers,reason codes, tipos de transacción y estados globales respectivamente.

Estados Globales

La configuración del estado global es un arreglo de objetos donde el valor del nombre debe establecerse como lo que usted desee que sea el estado global, y este es el valor que se mostrará en la interfaz de usuario. Cada estado debe ser asignado a una de las 6 categorías que tenga el significado más cercano al nombre del estado global. Solo hay 6 categorías de estado disponibles, y no debe asignar una categoría que no exista en la siguiente lista: PENDIENTE, ACEPTADO, RECHAZADO, SE_REQUIERE_ACCION_MANUAL, SCHEDULED, CANCELADO. Las categorías provienen del predeterminado global state conjunto. Puede encontrar más información sobre global states aquí. Puede haber más de un estado en cada categoría. Se han introducido categorías porque impulsan ciertas pantallas.behaviours 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. NOTA: La funcionalidad de cancelación se ha añadido únicamente en el frontend en este momento; es necesario implementar una solución en el backend para que esto funcione, la cual estará disponible en un futuro cercano.
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"
    }
  ]

Tipos de Fecha y Monto

En la configuración hay diferentes tipos de fecha y cantidad para el pago, el recordatorio,bulk y lote, que aparecen 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, actualmente bulk los tipos de fecha aparecen en la interfaz de usuario en el siguiente orden:

bulk-tipos-de-fecha = [
"CREATED_AT"
"MENSAJE_RECIBIDO_EN",
"FECHA_DE_LIQUIDACIÓN_INTERBANCARIA"
]

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

bulk-tipos-de-fecha = [
"MENSAJE_RECIBIDO_EN"
"CREATED_AT",
"FECHA_DE_LIQUIDACIÓN_INTERBANCARIA"
]

Detalles Predeterminados

La propiedad 'detailsDefault' se utiliza para gestionar el comportamiento de la pantalla de detalles de pago:

details-defaults = {
"mostrar Gráficas": true,
"flujos": {
"abierto": "último",
"ordenar": "asc",
},
" events ": {
"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 los flujos events están ordenados ('desc', 'asc')

Columnas

Las columnas de pago, las columnas de recordatorio,bulk Las columnas y las columnas por lotes se utilizan para determinar qué columnas se muestran en la tabla de resultados de búsqueda en la página de búsqueda para cada uno de los tipos de pago. 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.

Se recomienda limitar el número de columnas a 10, ya que agregar más afecta negativamente la legibilidad y apariencia de la tabla.

Las columnas se definen de la siguiente manera:

payment-columns = [
    {
        columnName: "createdAt"
    },
    {
        columnName: "transactionType"
    },
    {
        columnName: "csm"
    },
    {
        columnName: "amount"
    },
    {
        columnName: "clientRequestId"
    },
    {
        columnName: "debtor"
    },
    {
        columnName: "creditor"
    },
    {
        columnName: "bankingAccount"
    },
    {
        columnName: "globalStatus"
    },
    {
        columnName: "reasonCode"
    }
  ]

  recall-columns = [
     {
         columnName: "createdAt"
     },
     {
         columnName: "agentDetails"
     },
     {
         columnName: "originalEndToEndId"
     },
     {
         columnName: "originalTransactionId"
     },
     {
         columnName: "amount"
     },
     {
         columnName: "originalInterbankSettlementDate"
     },
     {
         columnName: "debtor"
     },
     {
         columnName: "creditor"
     }
   ]

  bulk-columns = [
      {
          columnName: "createdAt"
      },
      {
          columnName: "agentDetails"
      },
      {
          columnName: "totalInterbankSettlementAmount"
      },
      {
          columnName: "transactionType"
      },
      {
          columnName: "csm"
      },
      {
          columnName: "clientRequestId"
      },
      {
          columnName: "globalStatus"
      },
      {
          columnName: "reasonCode"
      }
   ]

   batch-columns = [
      {
          columnName: "createdAt"
      },
      {
          columnName: "transactionType"
      },
      {
          columnName: "clientRequestId"
      },
      {
          columnName: "debtor"
      },
      {
          columnName: "globalStatus"
      },
      {
          columnName: "reasonCode"
      }
   ]

ODS Tamaño de página

ODS ajustes predeterminados de resultados de búsqueda. El número máximo de resultados de búsqueda que se devuelven de ODS está configurado a 1000.
ods-page-results = {
    size = 1000
}

Alternative Identifiers

Custom alternative identifiers para la información del resumen, se deben añadir campos de búsqueda a alternative identifiers dentro de la configuración si se van a utilizar como parte de la autocompletación para ese campo de búsqueda:
alternative-identifiers = [
    {
      searchBy: "CLIENT_REQUEST_ID",
      displayName: "Client Request ID"
    }
]

Reason Codes

Reason codes desde la configuración común puede ser sobrescrita para este módulo al proporcionar su propia `payment-search-reason-codes.conf`.

El objeto de código de razón tiene una propiedad definitionKey que le permite definir una clave de traducción para la definición del código de razón. Si no se proporciona un definitionKey, entonces se utiliza el valor de definición como alternativa. La cadena definitionKey debe ser "definition.<reason-code>", 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 información sobre añadir custom traducciones al 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 al proporcionar los suyos.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 los suyos propios.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 de 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 unit of work s 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 un elemento individual.unit of work 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 ser utilizada por 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.

  • reasonCode: 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 cuando se pase el cursor por encima.

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

La ubicación del valor en /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 vengan después alternative identifiers en una tarjeta, luego 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: "título De Pago",
 translationRoot: "resumen.idsDeProcesamiento",
 tipo: "lista",
 width: 2,
 data: [
 {
 translationKey: "uowId",
 tipo: "texto",
 valuePath: "resumen.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 en la 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 la ods/todo/mds-objetos/{type} api respuesta. Este camino se define utilizando basado en 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,scheme pack s no determinan la entidad de procesamiento para los pagos entrantes.

Message Logs

Fallo en el transporte events emitido 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í.