Seed timelistemønster (test)
Gjentar en startuke framover gjennom et helt år, slik at en oppgjørsregel kan valideres før go-live — for én ansatt, en organisasjonsenhet eller alle. Jobben kan også godkjenne periodene den seeder, slik at et helt oppsett kan kontrolleres fra start til slutt. Kun på testarbeidsområder.
Hvorfor det finnes
Et arbeidsområde som settes opp i september har nøyaktig én godkjenningsperiode: september. Det finnes ingen Q1 og ingen Q2, så det er ingen oppgjørskjede å se på — og perioder kan aldri opprettes bakover, fordi hver av dem åpner på den forriges sluttsaldo.
Denne jobben går motsatt vei. Legg inn én representativ uke — på arbeidsområdets startdato eller en hvilken som helst senere uke — og la jobben gjenta den framover derfra. Hver periode den oppretter er den nyeste, så kjeden bygges i den rekkefølgen den faktisk ville oppstått.
Før du kjører den
- Konfigurer reglene du vil validere — oppgjørspolicyen, tidsbankkontoene, ansettelsesvilkårene med timelistegodkjenning slått på.
- Sørg for at helligdagskalenderen dekker månedene du er i ferd med å seede. Dager den ikke dekker, seedes som vanlige arbeidsdager.
- Gi den ansatte noe å autofylle på — en standardaktivitet eller en prosentfordeling på aktivitetslisten sin. Det holder ikke å slå på autofylling i arbeidstidspolicyen; uten et mål stopper jobben i stedet for å fylle et år med tomme dager.
- Legg inn din representative uke som den ansatte, gjennom den vanlige timelisten. Ekte registreringer på ekte aktiviteter. Start den på arbeidsområdets startdato — eller der du vil, og fortell jobben hvor med Mønsterets startdato.
Gi uken form. En uke med nøyaktig normtid gir en differanse på null i hver periode, så ingen tak slår inn og ingenting bortfaller — det seedede året ville ikke bevise noe. Registrer over norm noen uker og under andre.
Mønsteret
Mønsteret er det du la inn, ikke noe du konfigurerer. Jobben leser sjudagersblokker fra mønsterets startdato og gjentar dem framover. Lar du datoen stå tom, begynner den der arbeidsområdet begynner — eller der den ansattes ansettelse begynner hvis den er senere, for før noen av dem kan ingenting registreres:
| Mønsteruker | Hva som gjentas |
|---|---|
| 1 | Et ukentlig mønster |
| 2 | En fjortendagsrotasjon |
| 4 | En 4-ukers rotasjon — en beredskaps- eller vaktsyklus |
En «uke» er her sju dager fra startdatoen, ikke mandag til søndag, så det virker uansett hvilken ukedag arbeidsområdet ditt begynner på. Ukedagene bevares: en tirsdag i mønsteret lander alltid på en tirsdag.
Parametre
| Parameter | Betydning |
|---|---|
| Ansatt | Seed denne ene ansatte. |
| Organisasjonsenhet | Seed alle ansatte i denne enheten og dens underenheter. |
| Alle ansatte | Seed alle ansatte i arbeidsområdet. |
| Måneder | Hvor langt fram det skal gjentas, 0–24. Rundes utover, slik at hver godkjenningsperiode den berører fylles helt. 0 gjentar ingenting: jobben arbeider bare med periodene mønsteret selv dekker — se Teste et helt oppsett. |
| Mønsteruker | Hvor mange sjudagersblokker mønsteret består av, 1–8. |
| Mønsterets startdato | Dagen mønsteret leses fra. La den stå tom for å lese fra arbeidsområdets startdato — eller ansettelsens startdato hvis den er senere. En dato før en av dem flyttes opp til den. |
| Overskriv eksisterende tidsregistreringer | Erstatter arbeidstid som allerede ligger på en måldag. Av som standard. |
| Godkjenn avregninger automatisk | Sender inn og godkjenner hver seedede periode, eldste først, på vegne av den ansatte og lederen. Av som standard. |
Velg nøyaktig én av Ansatt, Organisasjonsenhet og Alle ansatte. Hver ansatt seedes for seg — med sitt eget mønster, sine egne ansettelsesvilkår og perioder. Med en enhet eller alle ansatte blir en ansatt som ikke kan seedes (ingen ansettelsesvilkår med timelistegodkjenning, et tomt mønstervindu, …) hoppet over og listet med årsaken, mens de andre seedes; med én ansatt stopper kjøringen i stedet.
Hva jobben gjør med hver dag
Dag for dag gjennom det seedede intervallet:
- En helligdag røres ikke.
- En dag med fravær eller ferie røres ikke — en planlagt ferie i måned 7 overlever kjøringen uendret.
- En dag som allerede har arbeidstid får ligge, med mindre du har slått på Overskriv.
- Ellers kopieres den tilsvarende dagen fra mønsteret: både registreringer og inn-/utstemplinger, på samme klokkeslett.
- En dag mønsteret lar stå tom får sin forventede norm. På en helg eller helligdag er den null, så de dagene forblir tomme.
Deretter beregner jobben tillegg og overtid på hver dag i periodene den dekker — de kopierte dagene, og dager som lå der fra før, for eksempel registreringer hentet inn med en import, som ellers ikke beregnes før den nattlige kjøringen. Til slutt oppretter jobben hver berørte godkjenningsperiode og bringer den til klar.
Innsending og godkjenning er fortsatt ditt med mindre du slår på Godkjenn avregninger automatisk — å gå gjennom periodene selv er ofte hele poenget: se saldoen kjede fra hver periodes avslutning inn i den nestes åpning. Med automatisk godkjenning sender jobben inn og godkjenner hver periode i rekkefølge, slik at oppgjøret kjøres og neste periode åpner på den oppgjorte saldoen. Den stopper ved en periode som ikke kan sendes inn (et blokkerende brudd, eller en tidligere periode som fortsatt er åpen), og melder hvor.
Slik leses resultatet
| Felt | Betydning |
|---|---|
source_window | Dagene mønsteret ble lest fra |
resolved_span | Dagene som faktisk ble seedet, etter avrunding til hele perioder |
days_written | Dager som fikk registreringer |
days_skipped | Dager som ble hoppet over, etter årsak: holiday, leave, has_data, locked |
days_erased | Registreringer fjernet av Overskriv |
days_reconciled | Dager der tillegg eller overtid endret seg da de ble beregnet |
periods_ready | Perioder opprettet og brakt til klar |
periods_skipped | Perioder som ble hoppet over — allerede klare, eller allerede sendt inn eller godkjent |
periods_approved | Perioder sendt inn og godkjent (med automatisk godkjenning) |
employees, employees_skipped | Hvor mange ansatte som ble seedet, og hvor mange som ble hoppet over |
per_employee | De samme tallene for hver ansatt, med årsaken til at en ansatt ble hoppet over eller hvor godkjenningene stoppet |
Med flere ansatte er tallene totaler for alle.
Hold days_skipped.holiday opp mot helligdagene du forventer i det seedede året. Null over tolv måneder betyr at helligdagskalenderen ikke rekker så langt.
Teste et helt oppsett
For å kontrollere at en konfigurasjon beregner de riktige tallene, henter du inn testansatte med en hel periode med registreringer — med en import eller ved å legge dem inn — og kjører jobben med:
- Alle ansatte (eller enheten du tester),
- Mønsterets startdato på periodens første dag, og Mønsteruker som dekker det meste av den,
- Måneder satt til 0, slik at ingenting gjentas utover registreringene du la inn,
- Godkjenn avregninger automatisk slått på.
Jobben beregner tilleggene, godkjenner periodene og kjører oppgjøret, slik at avregningene viser de endelige saldoene, klare til å sammenlignes med det reglene sier. Implementeringsteamet kjører dette fra et skript med arbeidsområdets API-nøkkel.
Hvis du kjører den igjen
En ny kjøring med de samme parametrene endrer ingenting: dager som allerede har data hoppes over, og perioder som allerede finnes opprettes ikke på nytt. Vil du forme året på nytt, endrer du mønsteruken og kjører igjen med Overskriv slått på.
Feilsøking
| Problem | Løsning |
|---|---|
| Jobben står ikke i listen | Arbeidsområdet er ikke merket som testarbeidsområde |
| «no registrations between …» | Mønstervinduet er tomt — legg inn uken først eller pek mønsterets startdato mot uken du faktisk la inn |
| «nothing to register norm time on» | Aktivitetslisten har verken standardaktivitet eller prosentfordeling — sett en. At autofylling er slått på i arbeidstidspolicyen gir den ikke i seg selv et mål |
| «do not enable timesheet approval» | Slå på timelistegodkjenning i den ansattes ansettelsesvilkår |
| «exactly one of employee_id, org_unit_id or all_employees» | Velg ett omfang: en ansatt, en organisasjonsenhet eller Alle ansatte |
| En ansatt ble hoppet over | per_employee oppgir årsaken — de samme meldingene som i denne tabellen |
| Godkjenningene stoppet ved en periode | per_employee oppgir perioden og hvorfor: et blokkerende brudd (for eksempel en arbeidsdag uten registrering), eller en tidligere periode som ikke er godkjent ennå |
| Hver periodes differanse er hele den arbeidede tiden | De seedede dagene har ingen forventet norm — sjekk at ansettelsesvilkårene dekker det seedede året |
| Helligdager ble seedet som arbeidsdager | Helligdagskalenderen dekker ikke de månedene |
| En periode ble hoppet over | Den var allerede sendt inn eller godkjent; gjenåpne den først hvis den skulle seedes på nytt |