Postpone Transaction
Postpone Transaction
Sección titulada «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.
Cómo funciona
Sección titulada «Cómo funciona»- Comprueba que el item esté
in_progressy bloqueado por esta ejecución. - Lo pasa a
new, libera el bloqueo, guardadeferUntily resta un intento. - Ningún performer lo recibe antes de
deferUntil; después vuelve a entregarse según su prioridad.
Parámetros requeridos
Sección titulada «Parámetros requeridos»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
item | ZoanQueueItem | — | El item devuelto por Get Queue Item (o un diccionario con su id). |
deferUntil | string | — | 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"). |
Parámetros opcionales
Sección titulada «Parámetros opcionales»Ninguno.
Esta actividad no devuelve ningún valor.
Errores comunes
Sección titulada «Errores comunes»| Mensaje | Causa 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 execution | Otra ejecución tiene el item (por ejemplo, porque el bloqueo venció y otro robot lo tomó). |
… HTTP 404: …Queue item not found | El item no existe en el ambiente. |
Los errores de Zoan Cloud llegan con el prefijo “No se pudo posponer el elemento: ”.
Ejemplo
Sección titulada «Ejemplo»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")Actividades relacionadas
Sección titulada «Actividades relacionadas»- Get Queue Item — tomar el item.
- Set Transaction Status — cerrar el item como éxito o fallo.