Bulk Agregue
El propósito de la Bulker Agregarse trata de crear un único o recurrente bulks, validando y agregando componentes que serán utilizados por el Productor a granel para crear el bulk archivo.
Único Bulk Agregue
El Único Bulk aggregate es un componente cuyo propósito es crear un nuevo bulk, agregar bulk componentes y asegúrese de que esos componentes sean válidos. Después de todo bulk los componentes son recolectados 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 bulk.
|
| 2 | add Component Agrega un nuevo componente al bulk agregar. El primer componente debe ser un componente raíz.
|
| 3 | add Component Agrega un nuevo componente al bulk agregar con bulk funcionalidad de auto-creación. Eso significa que si el bulk con el pasado bulkId no existe, se creará y se generará un componente raíz por ComponentGenerator antes de que se añada el nuevo componente a él.
|
| 4 | update Component Actualiza el componente que se encuentra en el agregado con el nuevo contenido.
|
| 5 | remove Component Elimina el componente que está presente en el agregado.
|
| 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.
|
| 7 | open Bulk Reabre el agregado que está cerrado.
|
| 8 | finalise Bulk El punto de no retorno, esta es la señal para comenzar processing data en el agregado y realizar bulking.
|
| 9 | get Bulk Report Devuelve un BulkReportResponse que contienen información sobre el actual bulk. |
| 10 | terminate Bulk Elimina un conjunto completo bulk que está presente en el agregado.
|
| 11 | reject Bulk Elimina el bulk archivo producido después de que se haya finalizado. El comando solo se procesará con éxito si el Bulk está en la versión finalizada state, y si el archivo producido está presente. Se recomienda que este proceso sea triggered después del BulkFinalisedNotification event ha sido recibido.
|
| 12 | archive Bulk Archiva el bulk el archivo producido después de que se haya finalizado. El comando solo se procesará con éxito si el Bulk está en la versión finalizada state, y si el archivo producido está presente. Se recomienda que este proceso sea triggered después del BulkFinalisedNotification event ha sido recibido.
|
| 13 | complete Bulk Completa finalizado bulk, después bulk está completo, solo se puede llamar al método getBulkReport. |
Recurrente Bulk Agregue
Recurrente Bulk Aggregate es un componente para crear un recurrente bulk. 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 una nueva recurrencia bulk.
|
| 2 | add Component se utiliza para añadir un nuevo componente al actual abierto bulk.
|
| 3 | get Current Open Bulk se utiliza para recuperar la recurrencia actual bulk
|
Lo que necesita implementar
Dado que la recurrente bulk aggregate es responsable de crear un nuevo único bulk, también es responsable de generar el componente raíz para el único creado bulk, y el cliente puede enviar solo componentes que se agregará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 único bulk componente raíz creado por el recurrente bulk agregar.
public interface ComponentGenerator {
String generateComponent(String specificationName); (1)
}
| 1 | generate Component se utiliza para crear un componente raíz para el único bulk creado por el recurrente bulk.
|
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 id 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 bulk agregar (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 |
Contenido no presente |
Devuelto si el contenido es nulo o vacío |
AddComponentCommand |
Único |
AC05 |
Bulk auto cerrado |
Devuelto si bulk está cerrado automáticamente |
AddComponentCommand |
Único |
AC06 |
Bulk el componente con el mismo id ya existe |
Devuelto si el componente con el mismo id ya está añadido a bulk agregar |
AddComponentCommand |
Único |
UC01 |
El componente no existe |
Componente con BulkComponentId no presente en el Bulk Agregue |
ActualizarComandoDeComponente |
Único |
UC02 |
Contenido no presente |
Devuelto si el contenido es nulo o vacío |
ActualizarComandoDeComponente |
Ú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 |
Failed para guardar en component store |
Si una falla de guardado/actualización a la component store |
En cualquier comando que añada o actualice componentes |
Único |
CS02 |
Failed para eliminar de component store |
Si una eliminación falla desde el component store |
RemoveComponentCommand |
Único |
SS01 |
Failed para recuperar bulk state |
Si no logra recuperar lo persistido bulk state |
Durante bulk creación de actor |
Único |
RB01 |
Recurrente bulk id no válido |
Devuelto si es recurrente bulk el id no es válido |
CreateBulkCommand |
Recurrente |
RB02 |
Recurrente bulk especificación no válida |
Devuelto si BulkSpecification no es válido. |
CreateBulkCommand |
Recurrente |
RB03 |
Bulk marcado como cerrado |
El comando no es compatible en la actualidad.state |
En cualquier comando que no sea finalizar |
Recurrente |
RB04 |
Recurrente bulk no configurado |
El comando no es compatible en la actualidad.state |
ObtenerCargaAbiertaActual |
Recurrente |
RB05 |
No hay ninguna apertura actual. Bulk |
El comando no es compatible en la actualidad.state |
ObtenerCargaAbiertaActual |
Recurrente |
RB06 |
Nuevo bulk creación en progreso |
El comando no es compatible en la actualidad.state |
AddComponentWithAutoCreate, RegisterChildBulkWithAutoCreate |
Recurrente |
NSC01 |
El comando no es compatible. |
El comando no es compatible en la actualidad.state |
En cualquier comando |
Idempotencia
Con el fin de hacer cumplir la idempotencia y prevenir la adición de dos componentes iguales a bulk agregar, el cliente debe establecer el id del componente al enviar comandos AddComponent a bulker.
Desde bulk el agregado 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.