Configurar Debulker
Se requiere configuración para indicar al Debulker el tipo de archivo (xml, json…) y su estructura. El Debulker puede usar esta configuración para dividir los archivos. Esto se hace mediante la propiedad ipf.debulker.configurations, que espera un array de objetos de configuración, cada uno con:
-
name(string) - se usa para identificar de forma única la configuración. La notificación del archivo contendrá el nombre de la configuración que se usará para realizar el debulking del archivo. -
splitter(string) - tipo de splitter que se utilizará para extraer los componentes. Actualmente hemos implementado splitters de XML y Json. -
validate-before-debulk.schema-bean-name(string) - habilita la validación de esquema del archivo antes de iniciar el debulking. -
component-hierarchy(object) - estructura en árbol que representa la jerarquía de los componentes que se extraerán del archivo agrupado. Cada nodo puede tener nodos hijo configurados que se extraerán como componentes separados.
Ejemplo de configuración para debulking de un archivo XML pain.001.001.09.
ipf.debulker {
configurations = [
{
name = "pain.001.001.09"
splitter = "xml"
validate-before-debulk.schema-bean-name = "pain001Schema"
component-hierarchy {
marker = "Document"
children = [
{
marker = "CstmrCdtTrfInitn.PmtInf"
children = [
{
marker = "CdtTrfTxInf"
}
]
}
]
}
}
]
}
Esta configuración nos indica que el archivo XML pain.001 se validará contra el Schema proporcionado por el bean pain001Schema. Si es válido, se realizará el debulking en un único componente Document que contiene todos los elementos hijo excepto los elementos CstmrCdtTrfInitn.PmtInf, que se extraerán como componentes separados. Cada componente hijo PmtInf contendrá todos los elementos hijo excepto los elementos CdtTrfTxInf, que se extraerán como componentes hijo separados de cada PmtInf.
En el caso de un archivo XML pain.001 que tiene 3 elementos PmtInf, cada uno con 3 elementos CdtTrfTxInf, el debulker producirá 13 componentes a partir del documento:
-
1 componente Document
-
3 componentes PmtInf
-
9 componentes CdtTrfTxInf