Urenpatroon genereren (test)
Herhaalt een openingsweek een heel jaar vooruit, zodat een verrekeningsregel vóór de livegang gevalideerd kan worden — voor één medewerker, een organisatie-eenheid of iedereen. De taak kan ook de perioden goedkeuren die ze vult, zodat een volledige inrichting van begin tot eind gecontroleerd kan worden. Alleen op testwerkruimtes.
Waarom deze taak bestaat
Een werkruimte die in september wordt ingericht heeft precies één goedkeuringsperiode: september. Er is geen Q1 en geen Q2, dus er valt geen verrekeningsketen te bekijken — en perioden kunnen nooit met terugwerkende kracht worden aangemaakt, omdat elke periode opent op het eindsaldo van de vorige.
Deze taak gaat de andere kant op. Voer één representatieve week in — op de startdatum van de werkruimte of in elke latere week — en laat de taak die van daaruit vooruit herhalen. Elke periode die wordt aangemaakt is de nieuwste, dus de keten wordt opgebouwd in de volgorde waarin ze werkelijk zou zijn ontstaan.
Voordat je hem uitvoert
- Richt de regels in die je wilt valideren — het verrekeningsbeleid, de tijdbankrekeningen, de arbeidsvoorwaarden met urenregistratie-goedkeuring aan.
- Zorg dat de feestdagenkalender de maanden dekt die je gaat vullen. Dagen die hij niet dekt worden als gewone werkdagen gevuld.
- Geef de medewerker iets om automatisch op in te vullen — een standaardactiviteit of een procentuele verdeling in zijn activiteitenlijst. Het automatisch invullen aanzetten in het werktijdbeleid is op zichzelf niet genoeg: zonder doel stopt de taak in plaats van een jaar met lege dagen te vullen.
- Voer als die medewerker je representatieve week in via de normale urenregistratie. Echte registraties op echte activiteiten. Begin op de startdatum van de werkruimte — of waar je wilt, en vertel de taak waar met Startdatum van het patroon.
Geef de week reliëf. Een week precies op de norm levert in elke periode een verschil van nul op: geen enkel plafond treedt in werking en er vervalt niets — het gevulde jaar zou niets bewijzen. Registreer sommige weken boven de norm en andere eronder.
Het patroon
Het patroon is wat je hebt ingevoerd, niet iets wat je instelt. De taak leest blokken van zeven dagen vanaf de startdatum van het patroon en herhaalt ze vooruit. Laat die datum leeg en hij begint waar de werkruimte begint — of waar het dienstverband van de medewerker begint als dat later is, want vóór geen van beide kan er iets geregistreerd worden:
| Patroonweken | Wat er herhaald wordt |
|---|---|
| 1 | Een weekpatroon |
| 2 | Een tweewekelijkse rotatie |
| 4 | Een 4-weekse rotatie — een bereikbaarheids- of piketcyclus |
Een «week» is hier zeven dagen vanaf de startdatum, niet maandag tot en met zondag, dus het werkt ongeacht op welke weekdag je werkruimte begint. De weekdagen blijven behouden: een dinsdag in het patroon valt altijd op een dinsdag.
Parameters
| Parameter | Betekenis |
|---|---|
| Medewerker | Vult deze ene medewerker. |
| Organisatie-eenheid | Vult elke medewerker in deze eenheid en haar subeenheden. |
| Alle medewerkers | Vult elke medewerker in de werkruimte. |
| Maanden | Hoe ver vooruit er herhaald wordt, 0–24. Naar buiten afgerond zodat elke geraakte goedkeuringsperiode volledig wordt gevuld. 0 herhaalt niets: de taak werkt alleen op de perioden die het patroon zelf beslaat — zie Een volledige inrichting testen. |
| Patroonweken | Uit hoeveel blokken van zeven dagen het patroon bestaat, 1–8. |
| Startdatum van het patroon | De dag waarvandaan het patroon wordt gelezen. Laat leeg om te lezen vanaf de startdatum van de werkruimte — of vanaf het begin van het dienstverband als dat later is. Een datum vóór een van beide wordt daarnaartoe opgeschoven. |
| Bestaande tijdregistraties overschrijven | Vervangt werktijd die al op een doeldag staat. Standaard uit. |
| Overzichten automatisch goedkeuren | Dient elke gevulde periode in en keurt die goed, de oudste eerst, namens de medewerker en diens manager. Standaard uit. |
Kies precies één van Medewerker, Organisatie-eenheid en Alle medewerkers. Elke medewerker wordt afzonderlijk gevuld — met een eigen patroon, eigen arbeidsvoorwaarden en eigen perioden. Bij een eenheid of alle medewerkers wordt een medewerker die niet gevuld kan worden (geen arbeidsvoorwaarden met urenregistratie-goedkeuring, een leeg patroonvenster, …) overgeslagen en met de reden vermeld, en worden de anderen wel gevuld; bij één medewerker stopt de run in plaats daarvan.
Wat de taak met elke dag doet
Dag voor dag door het gevulde bereik:
- Een feestdag wordt niet aangeraakt.
- Een dag met verzuim of verlof wordt niet aangeraakt — een geplande vakantie in maand 7 komt ongeschonden door de run.
- Een dag die al werktijd bevat wordt met rust gelaten, tenzij je Overschrijven hebt aangevinkt.
- Anders wordt de overeenkomstige dag uit het patroon gekopieerd: registraties én klokkingen, op dezelfde tijdstippen.
- Een dag die het patroon leeg laat krijgt zijn verwachte norm. In een weekend of op een feestdag is die nul, dus die dagen blijven leeg.
Daarna berekent de taak vergoedingen en overwerk op elke dag van de gedekte perioden — de gekopieerde dagen, en dagen die er al waren, zoals registraties die via een import zijn binnengekomen en anders pas bij de nachtelijke run worden berekend. Ten slotte maakt de taak elke gedekte goedkeuringsperiode aan en brengt hem op gereed.
Indienen en goedkeuren blijft aan jou, tenzij je Overzichten automatisch goedkeuren aanzet — de perioden zelf doorlopen is vaak juist het doel van de oefening: zie het saldo doorschakelen van de afsluiting van elke periode naar de opening van de volgende. Met automatisch goedkeuren aan dient de taak elke periode op volgorde in en keurt die goed, zodat de verrekening wordt uitgevoerd en de volgende periode opent op het verrekende saldo. Ze stopt bij een periode die niet ingediend kan worden (een blokkerende overtreding, of een eerdere periode die nog open staat) en meldt waar.
Het resultaat lezen
| Veld | Betekenis |
|---|---|
source_window | De dagen waaruit het patroon is gelezen |
resolved_span | De dagen die daadwerkelijk gevuld zijn, na afronding op hele perioden |
days_written | Dagen die registraties hebben gekregen |
days_skipped | Overgeslagen dagen, per reden: holiday, leave, has_data, locked |
days_erased | Registraties verwijderd door Overschrijven |
days_reconciled | Dagen waarvan de vergoedingen of het overwerk veranderden bij de berekening |
periods_ready | Perioden aangemaakt en op gereed gezet |
periods_skipped | Overgeslagen perioden — al gereed, of al ingediend of goedgekeurd |
periods_approved | Perioden ingediend en goedgekeurd (met automatisch goedkeuren) |
employees, employees_skipped | Hoeveel medewerkers er gevuld zijn, en hoeveel er overgeslagen zijn |
per_employee | Dezelfde tellingen per medewerker, met de reden waarom een medewerker is overgeslagen of waar diens goedkeuringen stopten |
Bij meerdere medewerkers zijn de tellingen totalen over allemaal.
Vergelijk days_skipped.holiday met de feestdagen die je in het gevulde jaar verwacht. Nul over twaalf maanden betekent dat de feestdagenkalender niet zo ver reikt.
Een volledige inrichting testen
Om te controleren of een configuratie de juiste getallen berekent, breng je testmedewerkers in met een hele periode aan registraties — via een import, of door ze in te voeren — en voer je de taak uit met:
- Alle medewerkers (of de eenheid die je test),
- Startdatum van het patroon op de eerste dag van de periode, en Patroonweken zo dat ze het grootste deel ervan beslaan,
- Maanden op 0, zodat er niets wordt herhaald buiten de registraties die je hebt ingevoerd,
- Overzichten automatisch goedkeuren aan.
De taak berekent de vergoedingen, keurt de perioden goed en voert de verrekening uit, zodat de overzichten de definitieve saldi tonen, klaar om te vergelijken met wat de regels zeggen. Het implementatieteam voert dit uit vanuit een script met de API-sleutel van de werkruimte.
Opnieuw uitvoeren
Een tweede run met dezelfde parameters verandert niets: dagen die al gegevens bevatten worden overgeslagen en bestaande perioden worden niet opnieuw aangemaakt. Wil je het jaar anders vormgeven, pas dan de patroonweek aan en draai opnieuw met Overschrijven aan.
Problemen oplossen
| Probleem | Oplossing |
|---|---|
| De taak staat niet in de lijst | De werkruimte is niet als testwerkruimte gemarkeerd |
| «no registrations between …» | Het patroonvenster is leeg — voer eerst de week in of richt de startdatum van het patroon op de week die je wél hebt ingevoerd |
| «nothing to register norm time on» | De activiteitenlijst heeft geen standaardactiviteit en geen procentuele verdeling — stel er een in. Automatisch invullen aan in het beleid geeft het op zichzelf geen doel |
| «do not enable timesheet approval» | Zet urenregistratie-goedkeuring aan in de arbeidsvoorwaarden van de medewerker |
| «exactly one of employee_id, org_unit_id or all_employees» | Kies één bereik: een medewerker, een organisatie-eenheid of Alle medewerkers |
| Een medewerker is overgeslagen | per_employee geeft de reden — dezelfde meldingen als in deze tabel |
| Goedkeuringen stopten bij een periode | per_employee noemt de periode en de reden: een blokkerende overtreding (zoals een werkdag zonder registratie), of een eerdere periode die nog niet is goedgekeurd |
| Het verschil van elke periode is de volledige gewerkte tijd | De gevulde dagen hebben geen verwachte norm — controleer of de arbeidsvoorwaarden het gevulde jaar dekken |
| Feestdagen zijn als werkdagen gevuld | De feestdagenkalender dekt die maanden niet |
| Een periode is overgeslagen | Die was al ingediend of goedgekeurd; heropen hem eerst als je hem opnieuw wilde vullen |