Use Cases
Este documento detalla los principales casos de uso implementados en el worker de Auto-Restocking, organizados por categorías funcionales.
Casos de Uso
Section titled “Casos de Uso”Procesar Transacción de Entrada
Section titled “Procesar Transacción de Entrada”-
Descripción: Procesa eventos de transacciones de entrada desde la cola y actualiza operaciones de reabastecimiento cuando se añaden productos a ubicaciones de picking o preparation.
-
Interfaz de entrada:
interface InputEventMessage {type: 'InputTransaction' | stringdata: {entryId: stringtransactionId: stringproductId: stringproductEan: stringlocationId: stringlocationType: LocationTypecontainerId?: stringdescription: stringtransactionQuantity: numbertimestamp: string}context: {country: stringwarehouse: string}} -
Interfaz de salida:
interface Restocking {id: stringproductId: stringlocationIds: string[]state: 'critical' | 'warning'expectedStock: numberwarehouse: string} -
Flujo principal:
- Recibir evento de transacción de entrada desde la cola
- Validar que el tipo de evento es ‘InputTransaction’
- Validar que la entrada está en una ubicación de picking o preparation
- Obtener alerta de reabastecimiento activa para el producto en la ubicación especificada
- Registrar la entrada como una operación de reabastecimiento
- Eliminar el mensaje de la cola
- Registrar el procesamiento exitoso
-
Reglas de negocio:
- Solo se procesan eventos de tipo ‘InputTransaction’
- Solo se consideran entradas en ubicaciones de picking o preparation
- El producto debe tener una alerta de reabastecimiento activa
-
Adaptadores implicados:
- QueueService: Para recibir y eliminar mensajes
- RestockingService: Para obtener alertas activas y registrar reabastecimientos
-
Excepciones:
EventTypeUnprocessableError: Si el tipo de evento no es ‘InputTransaction’NotInputInPickingError: Si la entrada no está en una ubicación de picking o preparationRestockingNotFoundError: Si no se encuentra una alerta de reabastecimiento activa para el productoRestockingServiceError: Si hay un error en el servicio de reabastecimientoGettingQueueMessageError: Si hay un error al obtener mensajes de la colaDeleteQueueMessageError: Si hay un error al eliminar mensajes de la cola
Ejecutar Worker
Section titled “Ejecutar Worker”-
Descripción: Ejecuta el worker para procesar continuamente mensajes de la cola.
-
Interfaz de entrada: Ninguna (activado por un trabajo cron o manualmente)
-
Interfaz de salida: Ninguna (registra estadísticas de procesamiento)
-
Flujo principal:
- Recibir hasta 10 mensajes de la cola
- Procesar cada mensaje utilizando el caso de uso Procesar Transacción de Entrada
- Eliminar los mensajes procesados con éxito de la cola
- Registrar estadísticas de procesamiento (mensajes totales, éxitos, fallos, tiempo de procesamiento)
-
Reglas de negocio:
- Los mensajes que fallan con ciertos errores “aceptables” también se eliminan de la cola
- Los mensajes que fallan con otros errores permanecen en la cola para reintento
-
Adaptadores implicados:
- QueueService: Para recibir y eliminar mensajes
- AutoRestockProcessor: Para procesar mensajes individuales
-
Excepciones:
- Varios errores del caso de uso Procesar Transacción de Entrada
- Errores inesperados durante la ejecución del worker