Use Cases
Este documento detalla los principales casos de uso implementados en el worker para procesar reportes de mermas de inventario y enviarlos a SAP.
Casos de Uso
Section titled “Casos de Uso”Procesar Reporte de Merma
Section titled “Procesar Reporte de Merma”-
Descripción: Procesa un evento de reporte de merma desde la cola y lo registra como una transferencia de stock en SAP.
-
Interfaz de entrada:
interface WasteReportEventMessage {type: 'WasteReportConfirm'data: {id: stringean: stringquantity: numberreason: stringcomment?: stringcostCenter?: stringtoWarehouse?: string}context: {country: stringwarehouse: string}} -
Interfaz de salida:
// El ID de la transferencia de stock registrada en SAPstring -
Flujo principal:
- Recibir el evento de reporte de merma desde la cola
- Validar que el tipo de evento es ‘WasteReportConfirm’
- Validar el formato del evento usando el esquema Zod
- Verificar si el almacén existe y está habilitado
- Transformar el reporte de merma en una transferencia de stock de SAP según el país
- Registrar la transferencia de stock en SAP
- Eliminar el mensaje de la cola si es exitoso
-
Reglas de negocio:
- El tipo de evento debe ser ‘WasteReportConfirm’
- El evento debe tener un formato válido (id, ean, quantity, reason, etc.)
- El almacén debe existir y estar habilitado
- La transformación a transferencia de stock de SAP varía según el país (MX, BR, PE)
-
Adaptadores implicados:
- Queue Service (AWS SQS)
- SAP Documents Service (HTTP)
- Warehouse Service (para validación)
-
Excepciones:
EventTypeUnprocessableError: Si el tipo de evento no es ‘WasteReportConfirm’InvalidEventFormatError: Si el formato del evento es inválidoWarehouseNotEnabledError: Si el almacén no existe o no está habilitadoBadRequestSapDocumentsServiceError: Si la API de SAP devuelve un error 400NotFoundSapDocumentsServiceError: Si la API de SAP devuelve un error 404InternalSapDocumentsServiceError: Si la API de SAP devuelve otro errorUnexpectedError: Para errores inesperados
Transformar Reporte de Merma a Transferencia de Stock SAP
Section titled “Transformar Reporte de Merma a Transferencia de Stock SAP”-
Descripción: Transforma un evento de reporte de merma en un documento de transferencia de stock de SAP según el país.
-
Interfaz de entrada:
interface WasteReportEventMessage {type: 'WasteReportConfirm'data: {id: stringean: stringquantity: numberreason: stringcomment?: stringcostCenter?: stringtoWarehouse?: string}context: {country: stringwarehouse: string}} -
Interfaz de salida:
interface StockTransfer {from_warehouse: stringto_warehouse?: stringbplid?: numbercomments?: stringreference?: stringstock_transfer_lines: Array<{ean: stringquantity: numberu_ijam_causal: stringdistribution_rule?: string}>} -
Flujo principal:
- Extraer datos del evento de reporte de merma
- Obtener el código de almacén a partir del nombre del almacén
- Según el país, crear una transferencia de stock específica para el país:
- Para MX: Incluir regla de distribución (centro de costos)
- Para BR: Incluir ID de socio comercial y to_warehouse
- Para PE: Usar to_warehouse fijo (‘01M’) y referencia
-
Reglas de negocio:
- La transformación varía según el país (MX, BR, PE)
- Cada país tiene campos específicos requeridos
- El código de almacén debe ser obtenido a partir del nombre del almacén
-
Adaptadores implicados:
- Warehouse Service (para obtener el código de almacén)
-
Excepciones:
- Error si el país no es soportado