Materialiser opptjening

Konverterer prognoseførte opptjeninger til faktiske tidskontohendelser og krediterer de ansattes fraværssaldoer.

Hvordan det fungerer

Jobben for å materialisere opptjening kjører daglig og utfører følgende:

  1. Finner forfalte opptjeninger — prognoser med en neste opptjeningsdato på eller før kjøringsdatoen
  2. Oppretter hendelser — konverterer hver forfalt prognoseføring til en faktisk tidskontohendelse
  3. Oppdaterer sporing — registrerer siste materialiserte dato for å forhindre dobbeltbehandling

Dette er jobben som faktisk krediterer fraværssaldoer. Inntil materialisering skjer, eksisterer opptjeninger bare som projeksjoner i prognosen.

Daglig behandling kontra etterfylling

Jobben håndterer to scenarioer:

Daglig behandling

For ansatte med eksisterende materialiseringshistorikk gjør jobben følgende:

  • Finner opptjeninger med next_accrual_date <= run_date
  • Oppretter hendelser bare for de forfalte opptjeningene
  • Oppdaterer prognosens last_materialized_date

Etterfyllingsbehandling

For ansatte uten noen materialiseringshistorikk (nye oppsett eller migreringer) gjør jobben følgende:

  • Materialiserer alle opptjeninger fra prognosestart frem til kjøringsdatoen
  • Dette gjør det mulig å ta igjen historiske opptjeninger i én enkelt kjøring

Oppførsel for kjøringsdato

Kjøringsdatoen er avgjørende for denne jobben:

ScenarioKjøringsdatoEffekt
Normal daglig kjøringI dagMaterialiserer opptjeninger som forfaller til og med i dag
InnhentingskjøringTidligere datoMaterialiserer bare frem til den datoen (nyttig for kontrollert utrulling)
Fremtidig datoFremtidig datoMaterialiserer opptjeninger inn i fremtiden (bruk med forsiktighet)

Etterfylling av historiske opptjeninger

For å materialisere opptjeninger for tidligere perioder:

  1. Sørg for at Opptjeningsprognose har blitt kjørt for den historiske perioden
  2. Utløs denne jobben manuelt med kjøringsdatoen satt til den historiske måldatoen
  3. Kjør igjen med gradvis senere datoer hvis du ønsker kontrollert, trinnvis materialisering
Å kjøre med en fremtidig dato vil opprette opptjeningshendelser for datoer som ennå ikke har inntruffet. Dette er sjelden ønsket og kan måtte reverseres manuelt.

Jobbresultater

MåltallBeskrivelse
forecasts_processedAntall ansattprognoser som ble evaluert
accruals_materializedAntall opptjeningshendelser opprettet (daglig behandling)
accruals_backfilledAntall opptjeningshendelser opprettet (etterfyllingsbehandling)
errorsAntall feil under materialiseringen

Tidspunkt for opptjening

Opptjeninger tildeles den første dagen i påfølgende måned. For eksempel:

  • Arbeid i januar → opptjening datert 1. februar
  • Arbeid i desember → opptjening datert 1. januar (året etter)

Dette betyr at materialiseringsjobben som kjører 1. februar vil opprette opptjeningshendelsen for januars opptjente fravær.

Feilsøking

ProblemLøsning
Opptjeninger vises ikkeKontroller at jobben Opptjeningsprognose har kjørt først
Manglende historiske opptjeningerKontroller at last_materialized_date er null for å utløse etterfylling, eller kjør prognosen på nytt med historisk kjøringsdato
Dupliserte opptjeningerDette skal ikke skje — jobben er idempotent. Sjekk om hendelser er opprettet manuelt
Saldo virker feilKontroller konfigurasjonen av opptjenings-pluginen og innstillingene for forholdsmessig fordeling