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.
  • Devoluciones BulkIdResponse con BulkId cuando bulk La creación fue exitosa.

2 add Component Agrega un nuevo componente al bulk agregar. 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 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.
  • 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 bulk está cerrado

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

8 finalise Bulk El punto de no retorno, esta es la señal para comenzar processing data en el agregado y realizar bulking.
  • Devuelve la respuesta con el resultado de ÉXITO si el bulk está finalizado

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.
  • Devuelve la respuesta con el resultado de ÉXITO si el bulk la eliminación es exitosa

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.
  • Devuelve la respuesta con el resultado de ÉXITO si la eliminación del producido bulk el archivo es exitoso

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.
  • Devuelve la respuesta con el resultado de ÉXITO si el archivo de lo producido bulk El archivo es exitoso. Nota: se generará siempre una Bulk Archived Notification después del procesamiento exitoso de un comando archive Bulk, incluso cuando no se haya realizado la archivación debido a que no se ha proporcionado la configuración requerida del lector y escritor de archivos.

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.
  • Devuelve un CurrentOpenBulkResponse con el BulkId de la actual única bulk y el identificador del componente raíz al cual se enviarán los componentes a través del método add Component

2 add Component se utiliza para añadir un nuevo componente al actual abierto bulk.
  • Devuelve un RecurringBulkComponentIdResponse con un resultado de ÉXITO, el BulkId de la única bulk agregar al cual se añadió el componente, y el BulkComponentId del componente añadido

3 get Current Open Bulk se utiliza para recuperar la recurrencia actual bulk
  • Devuelve un CurrentOpenBulkResponse con el BulkId del actual único bulk y el id del componente raíz al que se enviarán los componentes a través del método add Component

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.
  • 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 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.