58 lines
6.8 KiB
Markdown
58 lines
6.8 KiB
Markdown
# Workflowmotor – implementeringsstatus
|
||
|
||
## Implementeret lokalt
|
||
|
||
- Gemte aftale-/klippekortdækninger udleder automatisk afregningsregler for ny eller ændret tid. Eksisterende tagdækning bruges også. En eksplicit gemt tom dækning gælder alle tags; urørte gamle aftaler/kort med `{}` aktiverer ingen automatisk regel. Eksisterende særskilte afregningsregler har forrang, og flere match giver manuel vurdering. Reglen følger dækningen direkte og oprettes ikke som en dobbelt builderregel. Motor- og kundeaktivering kræves fortsat.
|
||
|
||
- Sag V5: hurtigregistrering, timer og `/tid` vælger ikke afregning manuelt. Tiden starter som kladde, workflowets valg vises, og manuelt valg findes under Tidsregistrering. Aktive workflowtider ændres med begrundelse og overstyringsrettighed. V4 bevarer sine tidligere valg.
|
||
|
||
- Ren regelmotor med AND/OR, IF/ELSE IF/ELSE, kunderegler, prioritet, stopregel, konflikter og fuldt evalueringsspor.
|
||
- Versioneret builder, read-only simulator, aktiveringskontrol, holdbare events, skyggetilstand, kundetilladelsesliste og separat aktivering for interne tider.
|
||
- Tags, hierarki, nøgleord, AI-forslag med godkendelse, beslutningshistorik, manuel overstyring og afregning ved økonomisk godkendelse.
|
||
- Aftale-/kortdækning, månedspris, afrunding, sikkert klippekorttræk, fastprisforbrug, lokale ordrekladder og beskyttet e-conomic-eksport/afstemning.
|
||
- Database-events for tid, sager, tags, kunder, modtagne mails og TODO-opgaver. Udgående mails, drafts og outbox er filtreret fra `mail.received`.
|
||
- Lokale handlinger: tags, manuel vurdering, sagsprioritet/status, gruppetildeling, medarbejdertildeling, TODO, reminder, frontendnotifikation og kædet workflow.
|
||
|
||
## Afgrænsninger og resterende integration
|
||
|
||
- `sla.changed`, `reminder.due` og `notification.created` findes i triggerkataloget og kan leveres gennem den fælles transaktionelle eventadapter. Der er endnu ingen automatisk kilde til disse tre triggers.
|
||
- Der er ikke en verificeret sags-SLA-motor at koble på. Sagsdeadline og Bottom Barens regel for gamle hastesager er ikke blevet omdefineret til SLA. Automatisk SLA/eskalering kræver integration med en faktisk SLA-kilde.
|
||
- Udløb af fastprisaftaler har endnu ingen automatisk `agreement.expiring`-trigger. Eksisterende start-, slut- og opsigelsesdatoer bruges til afregningsvalidering.
|
||
- Sagsbaserede handlinger kræver en faktisk sag. Kunde-/mailregler kan klassificere og tagge, men kan ikke oprette en sag gennem denne motor. Reminders og frontendnotifikationer kræver sagstilknytning.
|
||
- Workflow-notifikationer bruger kun den eksisterende frontend. Motoren sender ikke automatisk e-mail eller Mattermost-beskeder.
|
||
- Den nye motor erstatter ikke eksisterende mail-/tagautomatisering. Flytning af eksisterende regler og dokumenteret adfærdsparitet mangler; aktivér ikke samme handling i begge motorer.
|
||
- Automatisk fjernelse af tags beskytter altid manuelle og historiske tags, også hvis en regel forsøger at tillade manuel fjernelse.
|
||
- Genberegning af afregnede tider eller geneksport af en uafklaret ordre er blokeret. Korrektion af allerede gennemført afregning kræver et særskilt økonomisk korrektionsforløb.
|
||
|
||
## Drift og tilbagerulning
|
||
|
||
Funktionen er slået fra som standard. Start med skyggetilstand i testmiljøet, og aktivér kun verificerede kunder. Tilbagerulning deaktiverer adfærd og bevarer revisionsspor og gennemførte afregninger; en databasegendannelse er et særskilt indgreb, der også kan fjerne nyere data. Se `workflow-rollback.md` for den konkrete procedure.
|
||
|
||
Lokale testresultater er ikke dokumentation for produktion eller en gennemført ekstern e-conomic-eksport.
|
||
|
||
## Verificering 8. oktober 2026
|
||
|
||
Migrationerne 1062–1066 er installeret i den lokale `bmc_hub` i én transaktion. Runtime er deaktiveret, og ingen workflows er aktiveret. Der er ikke foretaget produktionsinstallation.
|
||
|
||
149 fokuserede Python-tests består; de 15 databasecases, som normalt springes over, er afprøvet særskilt mod `bmc_workflow_test_20261008`. De dækker samtidighed, rollback, gentagen behandling, manuel overstyring, eksport og afinstallation. 21 eksisterende JavaScript-tests består. Skabeloner, JavaScript og Python er kontrolleret; visuel browserkontrol var ikke tilgængelig.
|
||
|
||
Den oprindelige databasebackup er gendannet i testdatabasen. Baselinebackup ligger i `/private/tmp/bmc-workflow-backup-20261008`; et ekstra checkpoint med kildekode og manifest ligger i `/private/tmp/bmc-workflow-backup-6i_a037k`. Disse mapper er private, men `/private/tmp` er ikke permanent backupopbevaring.
|
||
|
||
## Sider og menu – 8. oktober 2026
|
||
|
||
De fem nye sider bruger Hub’ens fælles layout, kort og temafarver med kompakte, responsive felter og tydelige tomme/indlæsnings-/fejltilstande. Hovedmenuen Automatisering følger de eksisterende effektive grupperettigheder og personlige menuvalg. Der er ikke tildelt nye rettigheder til nogen grupper.
|
||
|
||
Workflows/Workflowdrift kræver `workflows.view`; Aftaledækning kræver `workflows.view` og `workflows.manage`; Tagklassifikation kræver `system.admin`. Hvorfor kræver `workflows.decisions.view` og åbnes via tidsregistreringen. Skriveknapper følger de tilsvarende API-rettigheder. Klassifikations- og ressourceeditoren har også adgangskontrol ved direkte sideåbning.
|
||
|
||
Render-, syntaks- og rettighedstests er udført lokalt. Visuel kontrol i en browser er ikke udført i denne session. Se [manuel testplan](workflow-manuel-testplan.md) for menu-, rolle- og temakontrol.
|
||
|
||
## Kundekortaktivering – 8. oktober 2026
|
||
|
||
CRM → Kunde → Oversigt har en Workflows-sektion. Brug workflows for kunden gemmes med bruger, tidspunkt og begrundelse og gælder uden genstart pr. kunde. Et gemt Til eller Fra overstyrer den gamle `WORKFLOWS_CUSTOMER_IDS`-standard, også efter genstart. En tom miljøliste er nu tilladt i aktiv tilstand; kun tilvalgte kunder får aktiv behandling.
|
||
|
||
Global `WORKFLOWS_ENABLED` og shadow/active er fortsat hovedkontroller. Kundekortet viser både tilvalget og den faktiske tilstand. Ændring kræver `customers.edit` og `workflows.activate`; læsning kræver `customers.view` eller `workflows.view`. Eksisterende tider genbehandles ikke automatisk. Afregningskontrol, worker og driftsstatus læser samme kundevalg.
|
||
|
||
Migration 1067 er installeret lokalt. Motoren er fortsat slukket, og ingen kundetilvalg er foretaget som del af installationen. Backup før ændringen ligger i `/private/tmp/bmc-workflow-backup-_tf0w3xd`. Afinstallation og auditbackup omfatter de to nye kundetilvalgstabeller.
|
||
|
||
139 workflow-/kundekorttests består med 17 databasecases sprunget over i standardkørslen. Databasepakken består særskilt med 27 tests (heraf 10 overlappende mailtests), inklusive persistens, samtidige kundetilvalg og afinstallation. Kundekortets seks JavaScript-adfærdscases indgår i standardkørslen. Manuel browserkontrol og produktionsinstallation er ikke udført.
|