Ir al contenido

Postpone Transaction

Tipo: queue-postpone-transaction  ·  Paquete: Queue Activities v1.2.9

Aplaza un item que estás procesando: lo devuelve de in_progress al estado new y fija un momento a partir del cual podrá volver a entregarse. A diferencia de un fallo, no cuenta como intento (resta uno al contador Attempts), así que no consume reintentos.

Sirve para cuando el item no se puede procesar ahora, pero sí más tarde: un sistema en mantenimiento, un documento que aún no está disponible, una ventana horaria. En vez de fallar, lo pospones y otro (o el mismo) bot lo retomará después.

  1. Comprueba que el item esté in_progress y bloqueado por esta ejecución.
  2. Lo pasa a new, libera el bloqueo, guarda deferUntil y resta un intento.
  3. Ningún performer lo recibe antes de deferUntil; después vuelve a entregarse según su prioridad.
ParámetroTipoPor defectoDescripción
itemZoanQueueItem—El item devuelto por Get Queue Item (o un diccionario con su id).
deferUntilstring—Fecha y hora ISO 8601 en UTC (con Z) a partir de la cual el item podrá volver a entregarse. Ej: utcNow().AddHours(1).ToString("o").

Ninguno.

Esta actividad no devuelve ningún valor.

MensajeCausa y solución
'item' es obligatorio. / 'deferUntil' es obligatorio.Falta un parámetro requerido.
'item' debe ser un ZoanQueueItem o un objeto con un campo 'id'.item no es el item de la cola. Pasa la salida de Get Queue Item.
… HTTP 422: …deferUntil no es una fecha ISO 8601 en UTC (por ejemplo, trae un desfase -05:00 o el formato local). Usa utcNow()…ToString("o").
… HTTP 400: …Cannot postpone an item in status '…'El item ya no está in_progress (ya se cerró o se aplazó).
… HTTP 400: …This item is not locked by your executionOtra ejecución tiene el item (por ejemplo, porque el bloqueo venció y otro robot lo tomó).
… HTTP 404: …Queue item not foundEl item no existe en el ambiente.

Los errores de Zoan Cloud llegan con el prefijo “No se pudo posponer el elemento: ”.

Si el portal del proveedor está en mantenimiento, aplazar el item una hora:

If condition = portalEnMantenimiento
└─ then:
Postpone Transaction
item = item
deferUntil = utcNow().AddHours(1).ToString("o")