Vai al contenuto
Ricalcolo proiezioni dipendenti

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

ProiezioneCosa gestisce
Ricerca dipendentiLa rubrica dipendenti e la barra di ricerca
Periodi di impiegoCondizioni attuali e storiche risolte per ciascun dipendente
Proiezione assenze dipendenteAssenze pianificate, attive e utilizzate per dipendente
Saldo conto oreSaldi dei conti ore per dipendente
Previsione maturazioneMaturazioni future previste
Proiezione settimanale foglio presenzeAggregati del foglio presenze per settimana
Dichiarazioni foglio presenzeDichiarazioni in attesa/pronte/inviate per ciascun dipendente
Attività policyAttività risolta per policy assenze per dipendente
Casella in entrata approvazioniL’elenco “da approvare” del responsabile
Vista notifiche utenteIl feed delle notifiche per utente

Come funziona

  1. Carica l’ambito — per impostazione predefinita, tutti i dipendenti nell’area di lavoro
  2. 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
  3. 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

ParametroDescrizione
ProiezioneLa 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 dipendenteFacoltativo. Ricalcola solo le proiezioni di questo dipendente
ID unità organizzativaFacoltativo. 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

MetricaDescrizione
projectionIl target che è stato ricalcolato (all o una chiave specifica)
scopeall, employee:<id> o org_unit:<id>
success_countDipendenti ricalcolati senza errori
error_countDipendenti 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

ProblemaSoluzione
L’esecuzione richiede molto tempoRicalcolare 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 dipendentiAprire 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 ricalcoloIl 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