Debulking Configuración

 Debulker no tiene un entendimiento intrínseco de lo que es debulking, se puede utilizar para dividir cualquier archivo estructurado.
Para poder procesar un archivo suministrado, se debe proporcionar la configuración adecuada.

La configuración para un archivo dado indicará el Debulker:

  • Tipo de estructura del archivo -(ej. XML, JSON)

  • Esquema a utilizar para la validación opcional

  • Jerarquía de elementos anidados

La muestra a continuación es de un XML file conteniendo un pain. 001 mensaje de dos elementos de Información de Pago, cada uno conteniendo dos elementos de Información de Transacción de Transferencia de Crédito.

<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain. 001. 001. 09">
    <CstmrCdtTrfInitn>
        <GrpHdr>
            <MsgId>abc</MsgId>
        </GrpHdr>
        <PmtInf>
            <PmtInfId>1</PmtInfId>
            <NbOfTxs>2</NbOfTxs>
            <CdtTrfTxInf>
                <PmtId>
                    <EndToEndId>1</EndToEndId>
                </PmtId>
            </CdtTrfTxInf>
            <CdtTrfTxInf>
                <PmtId>
                    <EndToEndId>2</EndToEndId>
                </PmtId>
            </CdtTrfTxInf>
        </PmtInf>
        <PmtInf>
            <PmtInfId>2</PmtInfId>
            <NbOfTxs>2</NbOfTxs>
            <CdtTrfTxInf>
                <PmtId>
                    <EndToEndId>3</EndToEndId>
                </PmtId>
            </CdtTrfTxInf>
            <CdtTrfTxInf>
                <PmtId>
                    <EndToEndId>4</EndToEndId>
                </PmtId>
            </CdtTrfTxInf>
        </PmtInf>
        <SplmtryData>
            <Envlp/>
        </SplmtryData>
    </CstmrCdtTrfInitn>
</Document>

Para debulk el pain. 001. 001. 09 anterior y extraiga los elementos individuales de Información de Transacción de Transferencia de Crédito, el Debulker utilizaría la configuración a continuación.

ISO pain. 001. 001. 09 Ejemplo de Configuración

ipf.debulker {
  configurations = [
    {
      # Name of the configuration which will be used as a reference for retrieving debulk configuration.
      name = "pain. 001. 001. 09"
      # Name of the splitter which will be used for creating components from the bulk stream
      splitter = "XML"
      # Optional config value that will enable validation of a file against a Schema prior to debulking
      validate-before-debulk.schema-bean-name = "pain001Schema"
      # The processing entity associated with this configuration which will be be used in the processing context of the initiated flow
      processing-entity = "debulker"
      # The directory or s3 bucket that the files will be copied to after processing.
      archive-path = "/tmp/archive"
      # A tree structure of the bulk elements which will be extracted as separate components to be stored in the ComponentStore."
      component-hierarchy {
        marker = "Document"
        children = [
          {
            # Relative path from parent node to child node
            marker = "CstmrCdtTrfInitn. PmtInf"
            children = [
              {
                marker = "CdtTrfTxInf"
              }
            ]
          }
        ]
      }
    }
  ]
}

Esta configuración llevaría a 7 elementos de datos en el Component store:

  • Componente de documento sin elementos hijos PmtInf

  • Dos componentes PmtInf sin elementos hijos CdtTrfTxInf, con la referencia a un componente Document padre.

  • Cuatro componentes CdtTrfTxInf, con referencias a sus componentes PmtInf padres, y también referencia a todos los componentes padres en la jerarquía.

Configuración de Mantenimiento

La configuración de mantenimiento permite especificar cómo limpiar archivos después del procesamiento o cuando un debulk es rechazado.

A continuación se presenta una tabla de las propiedades dentro de la housekeeping configuración.

Propiedad Tipo Predeterminado Descripción

clean-component-store.on-successful-processing

boolean

Especifica si se deben eliminar todos los componentes asociados con un Bulk ID tras el procesamiento exitoso.

true

clean-component-store.on-failed-processing

boolean

Especifica si se deben eliminar todos los componentes asociados con un Bulk ID al failed procesamiento.

false

source-file-action-on-reject

enum

Especifica qué hacer con el bulk archivo fuente tras el rechazo. Uno de NO_ACTION,ARCHIVE,DELETE.

NO_ACTION

La configuración de limpieza puede ser añadida bajo ipf.debulker o en específico debulk configuraciones bajo ipf.debulker.configurations[]. La configuración establecida en un específico debulk la configuración tendrá prioridad sobre las especificadas bajo ipf.debulker.

Si no se añade ninguna configuración de limpieza, se utilizarán los valores predeterminados.

A continuación se muestra un ejemplo de configuración.conf-1 anula los valores especificados a nivel raíz, mientras que conf-2 utilizará la configuración especificada bajo ipf.debulker. Si eliminamos ipf.debulker.housekeeping entonces conf-2 utilizaría la configuración predeterminada.

ipf.debulker {
  housekeeping {
    clean-component-store {
       on-successful-processing = false,
       on-failed-processing = false,
     }
     source-file-action-on-reject = "NO_ACTION" # DELETE or ARCHIVE
  }
  configurations = [
    {
      name = "conf-1"
      housekeeping {
        clean-component-store {
          on-successful-processing = true,
          on-failed-processing = true,
        }
        source-file-action-on-reject = "ARCHIVE"
      }
    },
    {
      name = "conf-2"
      # will default to ipf.debulker.housekeeping
    }
  ]
}