Bulk Agregue

El propósito de la Bulker El agregado consiste en crear volúmenes únicos o recurrentes, validando y agregando componentes que serán utilizados por el Productor a granel para crear el archivo masivo.

Único Bulk Agregue

El Único Bulk el agregado es un componente cuyo propósito es crear un nuevo conjunto, agregar componentes de conjunto y asegurarse de que esos componentes sean válidos. Después de que todos los componentes de conjunto sean recopilados por el agregado,bulking puede ser iniciado.

Interfaz

La interfaz Bulk Aggregate se define de la siguiente manera.

public interface BulkAggregate {

    CompletionStage<BulkIdResponse> createBulk(CreateBulkCommand command); (1)

    CompletionStage<BulkComponentIdResponse> addComponent(AddComponentCommand command); (2)

    CompletionStage<BulkComponentIdResponse> addComponent(AddComponentWithAutoCreateCommand command); (3)

    CompletionStage<Response> updateComponent(UpdateComponentCommand command); (4)

    CompletionStage<Response> removeComponent(RemoveComponentCommand command); (5)

    CompletionStage<Response> closeBulk(CloseBulkCommand command); (6)

    CompletionStage<Response> openBulk(OpenBulkCommand command); (7)

    CompletionStage<Response> finaliseBulk(FinaliseBulkCommand command); (8)

    CompletionStage<BulkReportResponse> getBulkReport(GetBulkReportCommand command); (9)

    CompletionStage<Response> terminateBulk(TerminateBulkCommand command); (10)

    CompletionStage<Response> rejectBulk(RejectBulkCommand command); (11)

    CompletionStage<Response> archiveBulk(ArchiveBulkCommand command); (12)

    CompletionStage<Response> completeBulk(CompleteBulkCommand command); (13)
}
1 create Bulk Crea un nuevo lote.
  • Devoluciones BulkIdResponse con BulkId cuando la creación masiva fue exitosa.

2 add Component Agrega un nuevo componente al agregado masivo. El primer componente debe ser un componente raíz.
  • Devoluciones BulkComponentIdResponse con resultado de ÉXITO y BulkComponentId cuando la adición del componente es exitosa

3 add Component Agrega un nuevo componente al agregado masivo con funcionalidad de auto-creación masiva. Esto significa que si el agregado masivo con el bulkId proporcionado no existe, se creará y se generará un componente raíz mediante ComponentGenerator antes de que se añada el nuevo componente.
  • Devoluciones BulkComponentIdResponse con resultado de ÉXITO y BulkComponentId cuando la adición del componente es exitosa

4 update Component Actualiza el componente que se encuentra en el agregado con el nuevo contenido.
  • Devuelve una respuesta con el resultado de ÉXITO si la actualización del componente es exitosa.

5 remove Component Elimina el componente que está presente en el agregado.
  • Devuelve una respuesta con el resultado de ÉXITO si la eliminación del componente es exitosa.

6 close Bulk Cierra el agregado, impidiendo que el cliente elimine y añada nuevos componentes al agregado, pero permite actualizar los componentes que ya están en el agregado.
  • Devuelve la respuesta con el resultado de ÉXITO si el lote está cerrado.

7 open Bulk Reabre el agregado que está cerrado.
  • Devuelve la respuesta con el resultado de ÉXITO si el lote está abierto.

8 finalise Bulk El punto de no retorno, esta es la señal para comenzar a procesar datos en conjunto y realizar bulking.
  • Devuelve una respuesta con resultado de ÉXITO si la carga se ha finalizado.

9 get Bulk Report Devuelve un BulkReportResponse que contienen información sobre la carga actual.
10 terminate Bulk Elimina un conjunto completo que está presente en el agregado.
  • Devuelve una respuesta con el resultado de ÉXITO si la eliminación masiva es exitosa.

11 reject Bulk Elimina el archivo en bloque producido después de que se haya realizado la finalización. El comando solo se procesará con éxito si el Bulk está en el estado finalizado, y si el archivo producido está presente. Se recomienda que este proceso sea triggered después del BulkFinalisedNotification el evento ha sido recibido.
  • Devuelve una respuesta con resultado de ÉXITO si la eliminación del archivo en bloque producido es exitosa.

12 archive Bulk Archiva el archivo masivo producido después de que se haya realizado la finalización. El comando solo se procesará con éxito si el Bulk está en el estado finalizado, y si el archivo producido está presente. Se recomienda que este proceso sea triggered después del BulkFinalisedNotification El evento ha sido recibido.
  • Devuelve una respuesta con un resultado de ÉXITO si el archivo masivo producido se archiva con éxito. Nota: se generará siempre una Bulk Archived Notification después del procesamiento exitoso de un comando archive Bulk, incluso cuando no se haya realizado el archivo debido a que no se ha proporcionado la configuración requerida del lector y escritor de archivos.

13 complete Bulk Completa el lote finalizado; después de que el lote esté completo, solo se puede llamar al método getBulkReport.

Recurrente Bulk Agregue

Recurrente Bulk Aggregate es un componente para crear un lote recurrente. Es responsable de añadir componentes a un Bulk Agregue, y cuando eso Bulk Si el agregado se finaliza por cualquier motivo, se creará un nuevo Bulk Agregue un componente raíz y reenvíe los componentes a él.

Interfaz

La interfaz Recurring Bulk Aggregate se define de la siguiente manera.

public interface RecurringBulkAggregate {

    CompletionStage<Response> configureBulk(ConfigureBulkCommand command); (1)

    CompletionStage<RecurringBulkComponentIdResponse> addComponent(AddComponentCommand command); (2)

    CompletionStage<CurrentOpenBulkResponse> getCurrentOpenBulk(GetCurrentOpenBulkCommand command); (3)
}
1 create Bulk se utiliza para crear un nuevo lote recurrente.
  • Devuelve un CurrentOpenBulkResponse con el BulkId del volumen único actual y el id del componente raíz al que se enviarán los componentes a través del método add Component

2 add Component se utiliza para agregar un nuevo componente al lote actual abierto.
  • Devuelve un RecurringBulkComponentIdResponse con un resultado de ÉXITO, el BulkId del agregado a granel único al que se añadió el componente, y el BulkComponentId del componente añadido

3 get Current Open Bulk se utiliza para recuperar el volumen recurrente actual.
  • Devuelve un CurrentOpenBulkResponse con el BulkId del identificador único actual del componente a granel y raíz al cual se enviarán los componentes a través del método add Component

Lo que necesita implementar

Dado que el agregado de volumen recurrente es responsable de crear un nuevo volumen único, también es responsable de generar el componente raíz para el volumen único creado, y el cliente puede enviar únicamente componentes que se añadirán como componentes hijos de ese componente raíz. Los clientes deberán crear una implementación de Component Generator que será responsable de la generación de un componente raíz de volumen único creado por el agregado de volumen recurrente.

public interface ComponentGenerator {
    String generateComponent(String specificationName); (1)
}
1 generate Component se utiliza para crear un componente raíz para el único lote creado por el lote recurrente.
  • Debería devolver el componente generado basado en el specificationName pasado.

Códigos de Error

Cuando un cliente envía comandos inválidos, se devolverá una respuesta con un resultado de FALLA junto con el Error.

Lista de códigos de error:

Error Mensaje Descripción Para el Comando Tipo de agregado

AC01

El identificador del padre está presente para el componente raíz.

El componente raíz no puede tener un padre.

AddComponentCommand

Único

AC02

El padre no existe

Devuelto si el padre no está presente en el agregado masivo (no se aplica al componente raíz)

AddComponentCommand

Único

AC03

Ruta no válida o no presente en el BulkSpecification

Devuelto si la ruta del componente no está definida en el BulkSpecification

AddComponentCommand

Único

AC04

 — 

Devuelto si el contenido es nulo o vacío

AddComponentCommand

Único

AC05

Bulk auto cerrado

Devuelto si el volumen se cierra automáticamente.

AddComponentCommand

Único

AC06

Bulk el componente con el mismo id ya existe

Devuelto si el componente con el mismo id ya ha sido añadido al agregado masivo.

AddComponentCommand

Único

UC01

El componente no existe

Componente con BulkComponentId no presente en el Bulk Agregue

ActualizarComandoDeComponente

Único

UC02

 — 

Devuelto si el contenido es nulo o vacío

UpdateComponentCommand

Único

RC01

El componente no existe

Componente con BulkComponentId no presente en el Bulk Agregue

RemoveComponentCommand

Único

RC02

El componente raíz no puede ser eliminado.

Devuelto si el componente no puede ser eliminado porque es un componente raíz.

RemoveComponentCommand

Único

RC03

El componente tiene componentes secundarios.

Devuelto cuando el componente no puede ser eliminado porque tiene componentes secundarios.

RemoveComponentCommand

Único

CS01

Error al guardar en el almacén de componentes

Si una guardado/actualización falla en el almacén de componentes

En cualquier comando que añada o actualice componentes

Único

CS02

No se pudo eliminar del almacén de componentes.

Si una eliminación falla desde el almacén de componentes

RemoveComponentCommand

Único

SS01

No se pudo recuperar el estado en bloque.

Si no logra recuperar el estado masivo persistido

Durante la creación masiva de actores

Único

RB01

El identificador de lote recurrente no es válido.

Devuelto si el id de lote recurrente no es válido

CreateBulkCommand

Recurrente

RB02

La especificación de volumen recurrente no es válida.

Devuelto si BulkSpecification no es válido.

CreateBulkCommand

Recurrente

RB03

Bulk marcado como cerrado

El comando no es compatible en el estado actual.

En cualquier comando que no sea finalizar

Recurrente

RB04

No se ha configurado la carga masiva recurrente.

El comando no es compatible en el estado actual.

ObtenerCargaAbiertaActual

Recurrente

RB05

No hay ninguna apertura actual. Bulk

El comando no es compatible en el estado actual.

ObtenerCargaAbiertaActual

Recurrente

RB06

Nueva creación masiva en progreso

El comando no es compatible en el estado actual.

AddComponentWithAutoCreate, RegisterChildBulkWithAutoCreate

Recurrente

NSC01

El comando no es compatible.

El comando no es compatible en el estado actual.

En cualquier comando

Idempotencia

Para hacer cumplir la idempotencia y evitar agregar dos componentes iguales al agregado masivo, el cliente debe establecer el id del componente al enviar comandos AddComponent al bulker.

Dado que el agregado por lotes no se preocupa por el contenido del componente, si el cliente envía dos componentes con el mismo contenido pero con diferentes identificadores de componente, ambos componentes serían aceptados.

Implementaciones

Como con otras bibliotecas de IPF, las implementaciones predeterminadas para los casos de uso más comunes ya están proporcionado.