Rela AIRela AI Docs
Manutenzione

Programmazione e Report

Configura report programmati di manutenzione, integra con Cloud Scheduler e gestisci le pause dei piani con registro di audit.

A cosa serve

  • Distribuire ordini tra tecnici in base a capacità e ubicazione.
  • Rispettare finestre di manutenzione della produzione.
  • Minimizzare spostamenti tra stabilimenti o zone.

Come funziona

Lo scheduler risolve un problema di assegnazione considerando skill del tecnico, ubicazione dell'asset, finestre autorizzate e SLA pendenti. Il supervisore può forzare manualmente.

Report programmati

Puoi configurare report automatici che vengono generati e consegnati periodicamente con informazioni sui tuoi piani di manutenzione.

Creare un report programmato

  1. Vai a Manutenzione > Report Programmati.
  2. Clicca su Nuovo Report.
  3. Configura i parametri:
CampoObbligatorioDescrizione
NomeSiNome descrittivo del report (max 200 caratteri)
FrequenzaSidaily, weekly o monthly
FormatoNoPDF (default) o Excel
Canale di consegnaNoemail (default) o whatsapp
DestinatariNoLista di indirizzi email o numeri di telefono
OraNoOra UTC di esecuzione (0-23, default: 8)
Giorno della settimanaNoSolo per frequenza weekly (0=lunedi a 6=domenica)
Giorno del meseNoSolo per frequenza monthly (1-28)
AbilitatoNoAttiva o disattiva il report

Frequenze disponibili

FrequenzaEsecuzione
dailyOgni giorno all'ora configurata
weeklyNel giorno della settimana configurato all'ora configurata
monthlyNel giorno del mese configurato all'ora configurata
L'ora di esecuzione e in UTC. Regola in base al tuo fuso orario locale.

Preset di branding

I report programmati possono utilizzare un preset di branding salvato per mantenere un'identita visiva coerente:

Campo del brandingDescrizione
company_nameNome dell'azienda nell'intestazione
logo_urlURL del logo (PNG/JPG)
header_linesRighe aggiuntive nell'intestazione (divisione, telefono, ecc.)
header_bg_colorColore di sfondo dell'intestazione (hex, es: #003366)
footer_textTesto del pie di pagina
accent_colorColore di accento per tabelle ed elementi evidenziati
font_familyFamiglia di font: Courier, Helvetica o Times

Per collegare un branding a un report programmato, usa il campo branding_id:

{
  "name": "Report Settimanale di Manutenzione",
  "frequency": "weekly",
  "format": "pdf",
  "branding_id": "branding_abc123",
  "day_of_week": 0,
  "hour": 8
}
Il branding viene risolto ad ogni esecuzione del report. Se aggiorni il preset di branding, i report futuri rifletteranno automaticamente le modifiche.

Integrazione con Cloud Scheduler

I report programmati vengono eseguiti attraverso un endpoint interno invocato da Google Cloud Scheduler:

POST /internal/run-scheduled-reports

Flusso di esecuzione

  1. Cloud Scheduler invoca l'endpoint a intervalli regolari.
  2. Il sistema controlla tutti i report abilitati di tutti i tenant.
  3. Per ogni report, verifica se e il momento di eseguirlo in base alla sua frequenza e ora configurata.
  4. Genera il report nel formato specificato (PDF o Excel).
  5. Consegna il report al canale configurato (email o WhatsApp).
  6. Aggiorna last_run_at e calcola next_run_at.

Sicurezza dell'endpoint

L'endpoint interno e protetto da:

  • HMAC Secret — L'header X-Scheduler-Secret deve corrispondere al segreto configurato.
  • Senza JWT — Non richiede autenticazione utente, solo il segreto dello scheduler.
L'endpoint interno non e accessibile agli utenti finali. Deve essere invocato solo da Cloud Scheduler con il segreto corretto.

Mettere in pausa e riprendere i piani

Puoi mettere in pausa temporaneamente un piano di manutenzione senza eliminarlo. La pausa disabilita l'esecuzione automatica e registra l'azione nel trail di audit.

Mettere in pausa un piano

  1. Seleziona il piano da Manutenzione > Piani.
  2. Clicca su Pausa.
  3. Opzionalmente, inserisci un motivo (max 500 caratteri).

Quando metti in pausa un piano:

AzioneDettaglio
paused impostato a trueSegna il piano come in pausa
enabled impostato a falseImpedisce l'esecuzione automatica
paused_at registratoTimestamp di quando e stato messo in pausa
paused_by registratoID dell'utente che ha messo in pausa
pause_reason memorizzatoMotivo opzionale fornito
Voce di audit creataRegistra l'azione "pause" con il motivo

Riprendere un piano

  1. Seleziona il piano in pausa.
  2. Clicca su Riprendi.

Quando riprendi un piano:

AzioneDettaglio
paused impostato a falseRimuove il flag di pausa
enabled impostato a trueRiattiva l'esecuzione automatica
next_due_at ricalcolatoLa prossima esecuzione viene calcolata da adesso, non dalla data originale
Campi di pausa cancellatipaused_at, paused_by, pause_reason vengono rimossi
Voce di audit creataRegistra l'azione "resume"
Quando riprendi un piano, la prossima data di esecuzione viene ricalcolata dal momento attuale. Il tempo trascorso in pausa non conta come tempo trascorso.

Trail di audit

Tutte le azioni di pausa e ripresa vengono registrate nel trail di audit immutabile:

{
  "action": "pause",
  "resource_type": "maintenance_plan",
  "resource_id": "plan_abc123",
  "actor": "user_xyz",
  "actor_type": "user",
  "details": { "reason": "Apparecchiatura in riparazione maggiore" },
  "timestamp": "2026-03-25T10:30:00Z"
}

Questo permette di tracciare chi ha messo in pausa o ripreso un piano, quando e perche.

Protezione di idempotenza

Il sistema include molteplici meccanismi per garantire che i piani non vengano eseguiti in modo duplicato:

MeccanismoDescrizione
Claim atomicoPrima di eseguire un piano, avanza next_due_at al futuro in modo atomico. Se un'altra istanza lo ha gia reclamato, viene saltato
Rollback in caso di erroreSe l'esecuzione fallisce, next_due_at viene ripristinato al valore originale per il tentativo nel ciclo successivo
Semaforo di concorrenzaMassimo 5 tenant elaborati in parallelo per evitare sovraccarico
HMAC dello schedulerL'endpoint interno accetta solo richieste con il segreto corretto
In ambienti con piu istanze del servizio, il claim atomico garantisce che ogni piano venga eseguito esattamente una volta per ciclo.

Esecuzione manuale dei report

Oltre all'esecuzione automatica, puoi generare qualsiasi report programmato immediatamente:

  1. Vai a Manutenzione > Report Programmati.
  2. Seleziona il report.
  3. Clicca su Esegui Ora.

L'esecuzione manuale aggiorna last_run_at ma non modifica next_run_at. Il report viene consegnato immediatamente al canale configurato.

Benefici chiave

  • Assegnazione ottimizzata per skill e ubicazione.
  • Rispetta automaticamente le finestre di produzione.
  • Minimizza spostamenti — meno tempo morto.
  • Forzatura manuale per casi eccezionali.
  • Visibilità preventiva del piano della settimana.

In questa pagina