Skip to content

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.

  • 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: string
    ean: string
    quantity: number
    reason: string
    comment?: string
    costCenter?: string
    toWarehouse?: string
    }
    context: {
    country: string
    warehouse: string
    }
    }
  • Interfaz de salida:

    // El ID de la transferencia de stock registrada en SAP
    string
  • Flujo principal:

    1. Recibir el evento de reporte de merma desde la cola
    2. Validar que el tipo de evento es ‘WasteReportConfirm’
    3. Validar el formato del evento usando el esquema Zod
    4. Verificar si el almacén existe y está habilitado
    5. Transformar el reporte de merma en una transferencia de stock de SAP según el país
    6. Registrar la transferencia de stock en SAP
    7. 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álido
    • WarehouseNotEnabledError: Si el almacén no existe o no está habilitado
    • BadRequestSapDocumentsServiceError: Si la API de SAP devuelve un error 400
    • NotFoundSapDocumentsServiceError: Si la API de SAP devuelve un error 404
    • InternalSapDocumentsServiceError: Si la API de SAP devuelve otro error
    • UnexpectedError: 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: string
    ean: string
    quantity: number
    reason: string
    comment?: string
    costCenter?: string
    toWarehouse?: string
    }
    context: {
    country: string
    warehouse: string
    }
    }
  • Interfaz de salida:

    interface StockTransfer {
    from_warehouse: string
    to_warehouse?: string
    bplid?: number
    comments?: string
    reference?: string
    stock_transfer_lines: Array<{
    ean: string
    quantity: number
    u_ijam_causal: string
    distribution_rule?: string
    }>
    }
  • Flujo principal:

    1. Extraer datos del evento de reporte de merma
    2. Obtener el código de almacén a partir del nombre del almacén
    3. 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