- 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.
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.