Human Task Manager
El HTM el módulo es un proxy para el HTM AOM de IPF. Utiliza los conectores proporcionados por HTM y controladores de primavera simples para hacer proxy de las llamadas desde la interfaz de usuario. No se realiza ningún formateo o procesamiento de datos más allá de las validaciones de permisos y auditoría.
Configuración
Config
Esta configuración se utiliza para la pantalla de búsqueda.
htm-bulk-page-results = 1000
htm-page-results = 10
htm-task-types = ["ENFORCE_EXECUTION"]
htm-bulk-task-types = [
{
id: "task1",
translationKey: "task1",
outcomes: [
{
id: "YES",
translationKey: "outcomeYes"
},
{
id: "NO",
translationKey: "outcomeNo"
}
],
executionResultData: {
id: "name_for_object",
fields: [
{
id: "pegaId",
translationKey: "supportingFieldPegaId",
type: "string"
}
]
}
},
]
Los valores configurables son los siguientes:
| Propiedad | Descripción |
|---|---|
htm-resultados-de-página |
Número máximo de HTM tareas a mostrar por página para los resultados de búsqueda (se establece por defecto en 10) |
htm-bulk-resultados-de-página |
Número máximo de tareas a ser bulk ejecutado por HTM(se establece por defecto en 1000). |
htm-tipos-de-tarea |
La lista desplegable de tipos disponibles en esta implementación de HTM |
htm-bulk-tipos-de-tarea |
La configuración para bulk ejecutar tipos. Es un arreglo de BulkTaskTypes |
Bulk Tipo de Tarea
Para configurar los tipos de tarea utilizados para bulk ejecución debe proporcionar los detalles relevantes. Observando el ejemplo config, las propiedades se definen de la siguiente manera:
| Propiedad | Descripción |
|---|---|
id |
El identificador único para el objeto |
translationKey |
La clave que se utilizará para determinar qué traducción se usará para ese campo específico. |
resultados |
Un objeto con propiedades key y translationKey que mostrará un botón de opción para cada uno de los elementos. |
campo |
Un objeto con propiedades clave, translationKey y type (actualmente solo cadenas pero se actualizará). |
executionResultsData |
Un objeto con propiedades de id y un array de campos utilizados para proporcionar datos específicos del cliente para ese tipo de tarea. |
Formatos de Fecha
Los formatos de fecha de la configuración común pueden ser sobrescritos para este módulo proporcionando su propia.htm-date-formats.conf. Si no proporciona ningún valor, las fechas serán el estándar del Reino Unido.
Cómo crear su propio HTM Pantalla de Ejecución de Tareas
Custom Las pantallas de ejecución de tareas pueden ser configuradas proporcionando un HOCON archivo. Las páginas están construidas con los siguientes componentes:
| Componente | Propiedades |
|---|---|
Página |
`panels`es una lista de uno o más paneles. |
Panel |
|
Tarjeta |
`titlePath`es un camino hacia la traducción del título. `content`es el contenido de la tarjeta. |
Contenido |
`elements`es una lista de uno o más elementos. |
Las propiedades del elements depende del tipo de contenido:
| Tipo de Contenido | Propiedades del Elemento |
|---|---|
|
|
|
`formControlName`es el nombre del campo del formulario. `label`es un camino hacia la traducción de la etiqueta.
|
Los caminos proporcionados para optionsPath y valuePath debe apuntar a los campos en el taskDetails respuesta:
{
"taskDetails": {
"taskId": "1d01a5d0-4fa6-4ddd-9c65-b6563c0d3370",
"processingContext": {
"processingEntity": "BANK_ENTITY_1",
"associationId": "e0f89f7d-ed66-4df4-ad52-ef3b21d67ccd",
"unitOfWorkId": "17ade666-117d-40a3-ab85-a63250e5f26a",
"clientRequestId": "9a589945-4029-4cc2-ac02-79d27c9a042d"
},
"createdAt": "2025-07-02T15:45:48.991Z",
"status": "Complete",
"priority": 1,
"requiredApprovals": 0,
"dueDateTime": "2025-10-02T15:45:48.949Z",
"type": "FORCE_EXECUTION",
"claimedBy": "htm_payment_executions",
"metaDataTags": [
{
"category": "EXECUTION",
"value": "DBTTRANSFER"
}
],
"supportingData": {
"type": "IPFPaymentPDS",
"value": "{\"splmtryDatas\":{\"splmtryData\":[{\"envlp\":{\"any\":{\"@class\":\"ipf.iso.std.iso._20022.tech.xsd.supl_001_001_01.Document\",\"ids\":{\"creditId\":\"EJGKVXAYWZYTZIRH\",\"sessionId\":\"ZPEXMBJYXKTLZHNACHQK\"},\"usrs\":{\"cntrctAppvr\":\"CYCAFGYGXFTCJUFT\",\"cntrctCreatr\":\"HTKZISHKOKUFHAQT\"}}},\"splmtryDataNm\":\"supl1\"}]}}"
},
"receivedApprovals": 0,
"possibleOutcomes": [
"Execute",
"Cancel"
],
"executionOutcome": "Execute",
"executionNote": "Bulk Executing",
"_links": {
"self": {
"href": "http://human-task-manager-app:8080/tasks/1d01a5d0-4fa6-4ddd-9c65-b6563c0d3370"
}
}
},
"permissions": [
"EXECUTE",
"REJECT",
"ASSIGN",
"VIEW",
"APPROVE"
]
}
El taskDetails el prefijo no es necesario en las rutas. Utilice processingContext.processingEntity, no taskDetails.processingContext.processingEntity.Datos de supportingData.value puede ser mostrado proporcionando rutas a las claves del objeto en formato de cadena de texto de la manera típica.
|
Formularios predefinidos
Hay un grupo de forma de ejecución predefinido. Esto proporciona un SELECT campo de formulario para elegir el resultado de una tarea, por ejemplo, 'Ejecutar', y un TEXT_INPUT para ingresar notas de ejecución. Esto se puede configurar añadiendo una tarjeta con predefined = "EXECUTION_FORM" a cualquier panel de esta manera:
panels = [
{
cards = [
{
predefined = "EXECUTION_FORM"
}
]
}
]
Todas las demás formas configuradas recogen datos que se añaden a executionResultData.value de la solicitud de ejecución como un objeto en formato de cadena.
La tarjeta id y formControlName sirven como claves.
{
"executeTaskRequest": {
"operatorId": "123",
"outcome": "Execute",
"note": "Execution Note",
"executionResultData": {
"type": "executionResultData",
"value": "{\"cardId-1\":{\"formControlName-1\":\"form input\"},\"cardId-2\":{\"formControlName-2\":\"form input\",\"formControlName-3\":\"form input\"}}"
}
}
}
Para configurar las páginas, proporcione un ipf.custom-page.conf archivo así:
ipf.custom-page {
htm {
pages = {
"TASK_TYPE" = {
id = "TASK_TYPE",
panels = [
{
cards = [
{
id = "ids-list",
titlePath = "heading.processingIds",
content = {
elements = [
{
id = "client-request-id",
description = "rowHeader.clientRequestId",
type = "STRING",
valuePath = "processingContext.clientRequestId"
},
{
id = "unit-of-work-id",
description = "rowHeader.unitOfWorkId",
type = "STRING",
valuePath = "processingContext.unitOfWorkId"
},
{
id = "association-id",
description = "rowHeader.associationId",
type = "STRING",
valuePath = "processingContext.associationId"
}
],
type = "LIST"
}
},
{
id = "task-status",
titlePath = "heading.status",
content = {
elements = [
{
id = "task-status",
description = null,
type = "STRING",
valuePath = "status"
},
],
type = "SIMPLE"
}
},
]
},
{
cards = [
{
predefined = "EXECUTION_FORM"
}
]
},
{
cards = [
{
id = "supplementaryData",
titlePath = "heading.supplementaryData",
content = {
elements = [
{
id = "splmtryData-1",
type = "TEXT_INPUT",
formControlName = "splmtryDataNm",
label = "formField.splmtryDataNm",
validators = null,
optionsPath = null,
valuePath = "splmtryDataNm"
},
{
id = "splmtryData-2",
type = "TEXT_INPUT",
formControlName = "sessionId",
label = "formField.sessionId",
validators = null,
optionsPath = null,
valuePath = "sessionId"
},
{
id = "splmtryData-3",
type = "TEXT_INPUT",
formControlName = "creditId",
label = "formField.creditId",
validators = null,
optionsPath = null,
valuePath = "creditId"
}
],
type = "FORM_GROUP"
}
}
]
}
]
}
}
}
}