Ricalcolo proiezioni dipendenti
Ricalcola dall’inizio le proiezioni per ogni dipendente. Da utilizzare quando un read-model risulta non sincronizzato con gli eventi sottostanti.
Che cos’è una proiezione?
L’applicazione precalcola diversi read-model per ciascun dipendente — ovvero i dati che l’interfaccia legge all’apertura di una pagina. Ogni proiezione viene costruita a partire dagli eventi (richieste di assenza, invio del foglio presenze, modifiche alle condizioni di impiego…) e mantenuta aggiornata man mano che arrivano nuovi eventi. Se una proiezione si discosta dallo stato corretto (a seguito di una migrazione errata, di una correzione manuale dei dati o di un deploy che ha introdotto un bug), ricalcolarla a partire dagli eventi sorgente la riporta a uno stato noto e coerente.
Proiezioni ricalcolate da questo job
| Proiezione | Cosa gestisce |
|---|---|
| Ricerca dipendenti | La rubrica dipendenti e la barra di ricerca |
| Periodi di impiego | Condizioni attuali e storiche risolte per ciascun dipendente |
| Proiezione assenze dipendente | Assenze pianificate, attive e utilizzate per dipendente |
| Saldo conto ore | Saldi dei conti ore per dipendente |
| Previsione maturazione | Maturazioni future previste |
| Proiezione settimanale foglio presenze | Aggregati del foglio presenze per settimana |
| Dichiarazioni foglio presenze | Dichiarazioni in attesa/pronte/inviate per ciascun dipendente |
| Attività policy | Attività risolta per policy assenze per dipendente |
| Casella in entrata approvazioni | L’elenco “da approvare” del responsabile |
| Vista notifiche utente | Il feed delle notifiche per utente |
Come funziona
- Carica l’ambito — per impostazione predefinita, tutti i dipendenti nell’area di lavoro
- Per ogni dipendente, esegue in sequenza ogni builder — la maggior parte dei builder si limita a riprodurre gli eventi rilevanti attraverso gli stessi handler utilizzati in produzione
- Per alcune proiezioni, una seconda passata viene eseguita dopo che tutti i dipendenti sono stati ricalcolati — ad esempio il flag IsManager, che dipende dalla definizione completa di tutte le righe dei collaboratori diretti
Parametri
| Parametro | Descrizione |
|---|---|
| Proiezione | La proiezione da ricalcolare. Per impostazione predefinita tutte. La selezione di una singola proiezione riduce il lavoro — utile quando si sa quale read-model è disallineato |
| ID dipendente | Facoltativo. Ricalcola solo le proiezioni di questo dipendente |
| ID unità organizzativa | Facoltativo. Ricalcola tutti i dipendenti di questa unità organizzativa e delle relative sotto-unità. Viene ignorato se è impostato ID dipendente |
Quando l’ambito è ristretto (singolo dipendente o unità organizzativa), il passaggio finale post-ricalcolo globale viene saltato — tali passaggi presuppongono che tutti i dipendenti siano stati appena aggiornati.
Risultati del job
| Metrica | Descrizione |
|---|---|
projection | Il target che è stato ricalcolato (all o una chiave specifica) |
scope | all, employee:<id> o org_unit:<id> |
success_count | Dipendenti ricalcolati senza errori |
error_count | Dipendenti per cui il ricalcolo ha avuto esito negativo (vedere i dettagli dell’esecuzione per gli errori per dipendente) |
Quando eseguire il job
- Dopo l’importazione di dati da un altro sistema
- Dopo aver corretto un evento non valido tramite una migrazione
- Quando l’interfaccia di un singolo dipendente mostra dati errati (usare ID dipendente per limitare l’ambito a uno solo)
- Dopo un rapporto di incidente che menziona una delle proiezioni per nome
Avvio automatico in caso di backfill
Quando il worker si avvia e rileva che una proiezione registrata è completamente vuota ma esistono dipendenti, pianifica automaticamente questo job. Si tratta di una misura di sicurezza operativa per i nuovi deployment e i backup ripristinati.
Risoluzione dei problemi
| Problema | Soluzione |
|---|---|
| L’esecuzione richiede molto tempo | Ricalcolare tutte le proiezioni per ogni dipendente è l’opzione più onerosa. Limitare l’ambito a una singola proiezione o a una singola unità organizzativa quando si sa cosa si sta cercando di correggere |
| Errori su alcuni dipendenti | Aprire i dettagli dell’esecuzione del job per visualizzare gli errori per dipendente. Spesso si tratta di un riferimento obsoleto a un’entità eliminata, che può essere corretto con una modifica mirata, dopodiché è sufficiente ricalcolare quel singolo dipendente |
| La proiezione risulta ancora errata dopo il ricalcolo | Il ricalcolo riproduce gli eventi attraverso gli handler attivi. Se l’handler stesso contiene un bug, il ricalcolo non lo correggerà — escalare il problema agli sviluppatori |