Skip to content

Events

Este documento detalla las colas y eventos utilizados en el worker para procesar reportes de mermas de inventario y enviarlos a SAP.

El worker utiliza AWS Simple Queue Service (SQS) para recibir eventos de reportes de mermas. Estos eventos son procesados y transformados en documentos de transferencia de stock de SAP, que luego son enviados al sistema SAP.

URL de la Cola: Configurada mediante la variable de entorno QUEUE_DATA_INVENTORY_WASTE_URL

Propósito: Recibe eventos de confirmación de reportes de mermas que necesitan ser procesados y enviados a SAP.

Consumidores:

  • Este worker, que procesa los eventos y los envía a SAP

Formato del Mensaje:

export interface WasteReportEventMessage {
type: 'WasteReportConfirm'
data: {
id: string
ean: string
quantity: number
reason: string
comment?: string
costCenter?: string
toWarehouse?: string
}
context: {
country: string
warehouse: string
}
}

Procesamiento:

  1. El worker recibe mensajes de la cola con un tiempo de visibilidad de 30 segundos
  2. Cada mensaje es validado para asegurar que tiene el formato y tipo correctos
  3. El almacén es validado para asegurar que existe y está habilitado
  4. El mensaje es transformado en un documento de transferencia de stock de SAP según el país
  5. La transferencia de stock es registrada en SAP
  6. Si es exitoso, el mensaje es eliminado de la cola
  7. Si no es exitoso, el mensaje permanece en la cola y será reintentado

El manejo de errores y reintentos se implementa de la siguiente manera:

  1. Errores de Validación:

    • Si un evento tiene un formato o tipo inválido, se registra y se elimina de la cola
    • Si un almacén no está habilitado, el evento se registra y se elimina de la cola
  2. Errores de Procesamiento:

    • Si hay un error durante el procesamiento (por ejemplo, error de la API de SAP), el evento permanece en la cola
    • El tiempo de visibilidad asegura que el mensaje estará disponible para procesamiento nuevamente después de 30 segundos
  3. Logging:

    • Todos los errores se registran con el contexto apropiado
    • El procesamiento exitoso también se registra con información del tiempo de procesamiento