Rela AIRela AI Docs
Mantenimiento

Ejecucion de Planes

Ejecuta planes de mantenimiento manual o automaticamente, previsualiza resultados y rastrea el historial de ejecuciones.

Ejecucion manual

Puedes ejecutar cualquier plan de mantenimiento inmediatamente desde el dashboard, sin esperar a que el scheduler lo dispare.

  1. Ve a Mantenimiento > Planes.
  2. Selecciona el plan que deseas ejecutar.
  3. Haz clic en Ejecutar.

Al ejecutar un plan manualmente:

  • Se crea una tarea con todos los parametros configurados en el plan.
  • Se envian las notificaciones configuradas (email y/o WhatsApp).
  • Se actualiza last_executed_at y execution_count del plan.
  • Para planes de calendario, se recalcula next_due_at.
  • Para planes de contador, se reinicia current_counter a cero.
La ejecucion manual funciona independientemente del estado enabled del plan. Puedes ejecutar un plan deshabilitado.

Previsualizacion (dry run)

Antes de ejecutar un plan, puedes previsualizar exactamente que pasaria sin crear ninguna tarea ni enviar notificaciones.

La previsualizacion muestra:

CampoDescripcion
task_titleTitulo que tendria la tarea generada
task_priorityPrioridad asignada
task_due_dateFecha limite calculada
assigned_to_nameNombre de la persona asignada
asset_nameNombre del activo vinculado
checklist_itemsCantidad de items en la lista de verificacion
notificationsCanales y destinatarios de notificacion
next_due_after_executionProxima fecha de ejecucion despues de ejecutar
execution_count_afterNumero de ejecucion resultante
La previsualizacion es completamente segura: no modifica ningun dato ni envia ninguna comunicacion.

Notificacion de prueba

Puedes verificar que las notificaciones estan correctamente configuradas sin ejecutar el plan:

  1. Selecciona el plan.
  2. Haz clic en Probar Notificacion.

El sistema envia una notificacion de prueba con el prefijo [TEST] en el titulo. Esto permite verificar:

  • Que la cuenta de email esta activa y puede enviar.
  • Que el numero de WhatsApp esta conectado.
  • Que la persona asignada tiene datos de contacto validos.
La prueba de notificacion requiere que el plan tenga al menos un canal configurado (email o WhatsApp) y una persona asignada.

Historial de ejecucion

Cada plan mantiene un historial completo de todas las tareas que ha generado.

El historial muestra:

CampoDescripcion
task_codeCodigo unico de la tarea (ej: MAN-001)
titleTitulo de la tarea
statusEstado actual (todo, in_progress, done, etc.)
priorityPrioridad asignada
created_atFecha de creacion
due_dateFecha limite

El historial esta paginado y ordenado por fecha de creacion descendente.

Resultados de notificacion

Cada tarea generada por un plan registra el resultado de las notificaciones enviadas:

{
  "notification_results": {
    "email": { "sent": true, "to": "tecnico@empresa.com" },
    "whatsapp": { "sent": false, "error": "Number not connected" }
  }
}

Esto permite rastrear exactamente que notificaciones se enviaron con exito y cuales fallaron, sin afectar la creacion de la tarea.

Ejecucion automatica via Cloud Scheduler

El sistema verifica automaticamente los planes pendientes cada hora a traves de un endpoint interno:

POST /internal/check-maintenance-due

Este endpoint esta protegido por un secreto HMAC (X-Scheduler-Secret) y es invocado por Google Cloud Scheduler.

Flujo de ejecucion automatica

  1. Cloud Scheduler invoca el endpoint interno cada hora.
  2. El sistema descubre todos los tenants registrados.
  3. Para cada tenant, busca planes con enabled: true, trigger: calendar, y next_due_at <= ahora.
  4. Ejecuta cada plan pendiente creando la tarea y enviando notificaciones.
  5. Usa un claim atomico para evitar ejecuciones duplicadas en entornos con multiples instancias.
Si la ejecucion de un plan falla, el sistema revierte la fecha next_due_at para que el plan se reintente en el siguiente ciclo.

Proteccion de idempotencia

El sistema usa un mecanismo de claim atomico para prevenir ejecuciones duplicadas:

  1. Antes de ejecutar, avanza next_due_at al futuro atomicamente.
  2. Si otra instancia ya reclamo el plan, el claim falla y se salta.
  3. Si la ejecucion falla, se revierte next_due_at al valor original.

Incremento de contador

Para planes basados en contador, puedes incrementar el valor del contador manualmente o via integracion:

POST /api/v1/maintenance/{plan_id}/increment-counter
{
  "value": 10
}

La respuesta indica el estado actual:

{
  "plan_id": "abc123",
  "current_counter": 490,
  "threshold": 500,
  "triggered": false,
  "task": null
}

Cuando el contador alcanza o supera el umbral, el plan se ejecuta automaticamente:

{
  "plan_id": "abc123",
  "current_counter": 0,
  "threshold": 500,
  "triggered": true,
  "task": {
    "task_id": "...",
    "task_code": "MAN-015",
    "title": "Cambio de filtros — Bomba Principal"
  }
}
El incremento es atomico para evitar condiciones de carrera en entornos concurrentes.

En esta página