Genopbyg medarbejderprojektioner

Genopbyg medarbejderprojektioner

Genberegner pr.-medarbejder-projektioner fra bunden. Bruges når en læsemodel ser ud til at være ude af synk med de underliggende hændelser.

Hvad er en projektion?

Appen for-beregner flere læsemodeller pr. medarbejder — de data som UI’et læser, når du åbner en side. Hver projektion bygges ud fra hændelser (fraværsanmodninger, timeseddel-afleveringer, vilkårsændringer…) og holdes i synk, efterhånden som nye hændelser ankommer. Hvis en projektion driver (efter en dårlig migration, en manuel datafix eller en deploy med en bug), bringer en genopbygning fra hændelserne den tilbage til en kendt god tilstand.

Projektioner dette job genopbygger

ProjektionHvad den understøtter
MedarbejdersøgningMedarbejderkartoteket og søgefeltet
AnsættelsesperioderHver medarbejders opløste nuværende og historiske vilkår
FraværsprojektionPlanlagt, aktivt og forbrugt fravær pr. medarbejder
Tidsbank-saldoKontosaldi pr. medarbejder
TilskrivningsprognosePrognoser for kommende tilskrivninger
Timeseddel-ugeprojektionPr.-uge timeseddel-aggregater
Timeseddel-opgørelserHver medarbejders ventende/klare/afleverede opgørelser
Politik-aktivitetOpløst aktivitet pr. fraværspolitik pr. medarbejder
GodkendelsesindbakkeLederens “skal godkendes”-liste
Notifikations-brugervisningNotifikations-feedet pr. bruger

Sådan virker det

  1. Indlæser scope — som standard hver medarbejder i arbejdsområdet
  2. For hver medarbejder kører hver builder — de fleste builders afspiller blot de relevante hændelser gennem de samme handlers, der bruges i produktion
  3. For nogle projektioner kører en anden runde — f.eks. IsManager-flaget, der afhænger af at hver direct-report-række er afgjort

Parametre

ParameterBeskrivelse
ProjektionDen projektion der skal genopbygges. Standard er all. At vælge én projektion afgrænser arbejdet — nyttigt når du ved hvilken læsemodel der er forkert
Medarbejder-IDValgfri. Genopbyg kun denne medarbejders projektioner
Enheds-IDValgfri. Genopbyg hver medarbejder i denne enhed og dens efterkommere. Ignoreres når Medarbejder-ID er angivet

Når scopet er begrænset (én medarbejder eller én enhed), springes post-rebuild-all-trinnet over — det forudsætter at hver medarbejder netop er blevet opdateret.

Jobresultater

MetrikBeskrivelse
projectionMålet der blev genopbygget (all eller en specifik nøgle)
scopeall, employee:<id>, eller org_unit:<id>
success_countMedarbejdere genopbygget uden fejl
error_countMedarbejdere hvor genopbygningen fejlede (se kørselsdetaljer for pr.-medarbejder-fejlene)

Hvornår skal det køres

  • Efter import af data fra et andet system
  • Efter at have rettet en fejlbehæftet hændelse med en migration
  • Når én enkelt medarbejders UI ser forkert ud (brug Medarbejder-ID til at afgrænse til én)
  • Efter en hændelsesrapport der nævner én af projektionerne ved navn

Auto-trigger ved backfill

Når workeren starter op og finder en registreret projektion helt tom, mens medarbejdere eksisterer, planlægger den dette job automatisk. Det er et drifts-sikkerhedsnet for friske deployments og gendannede backups.

Fejlfinding

ProblemLøsning
Kørslen tager lang tidAt genopbygge alle projektioner for hver medarbejder er den dyreste mulighed. Afgræns til én projektion eller én enhed, når du ved hvad du forsøger at rette
Fejl på nogle få medarbejdereÅbn jobkørselsdetaljerne for at se pr.-medarbejder-fejlene. Ofte er det en forældet reference til en slettet entitet, der kan rettes med en målrettet redigering, hvorefter den ene medarbejder genopbygges
Projektion ser stadig forkert ud efter genopbygningGenopbygningen afspiller hændelser gennem live-handlerne. Hvis handleren selv har en fejl, vil genopbygning ikke rette det — eskalér til udviklerne