ADR-017: Registerfakta — behold begge, aldri overskriv⚓︎
Fakta kan komme fra ERS-registeret (Registerfakta, projisert fra den replikerte Sak) eller fra saksdokumenter. Begge beholdes side om side; registerfakta overskriver aldri dokumentfakta — divergens mellom dem er et faktum Regler skal kunne sjekke (f.eks.
R-SOKNADSDATO-SAMSVAR). Proveniens er strukturell (hvilken blokk et faktum ligger i), ikke en per-felt-diskriminator.
Kontekst⚓︎
ADR-016 ga Kai en vedlikeholdt, read-only replika av ERS/masterdata (Sak, VirkemiddelMasterdata,
Vurdering). Runde 3 kobler denne replikaen til regelmotoren: enkelte fakta regler i dag utleder fra
saksdokumenter (f.eks. søknadsdato) finnes allerede autoritativt i den replikerte Sak.
Spørsmålet er hvordan et register-sourcet faktum skal forholde seg til det tilsvarende dokument-ekstraherte faktumet når begge finnes for samme Sak: skal de slås sammen (registeret "vinner"), erstatte hverandre, eller leve som to separate fakta en regel eksplisitt kan sammenligne?
Beslutning⚓︎
- To kilder, aldri sammenslått.
Faktakan komme fra ERS-registeret (Registerfakta, projisert fra den replikerteSakvia enFraSak-projektor) eller fra saksdokumenter (dokumentfakta). Begge lever side om side på samme faktablokk (f.eks.TungeNullutslippFacts, skjema 3.2). - Registerfakta overskriver aldri dokumentfakta. Det finnes ingen skrivevei der et register-verdi erstatter et allerede ekstrahert dokument-felt, eller omvendt. Begge beholdes uavkortet.
- Divergens er noe Regler sjekker, ikke noe systemet løser stille. Når begge kilder har en verdi
for samme underliggende opplysning (f.eks. søknadsdato), er det en regels jobb å sammenligne dem og
flagge avvik — ikke et pre-prosesseringssteg som velger én kilde. Første eksempel:
R-SOKNADSDATO-REGISTRERT(gate: finnes registerfaktumet) ogR-SOKNADSDATO-SAMSVAR(sammenligner ERS-registerets søknadsdato mot den dokument-ekstraherte;NotMetved divergens). - Proveniens er strukturell, ikke en diskriminator. Hvorvidt et faktum stammer fra register eller
dokument avgjøres av hvilken blokk/hvilket felt det ligger i (
Registerfaktavs. dokumentfaktumet), ikke av et per-feltKilde-flagg. Det innføres derfor ingenKilde-enum — ingenting i regelmotoren gater et regelutfall på kilde; regler som bryr seg om begge kilder leser begge feltene eksplisitt.
Ikke-mål⚓︎
- Automatisk konfliktløsning mellom register- og dokumentfakta (bevisst utelatt — se over).
- Endring av
FeltProvenanceeller annen eksisterende sporing av hvor i dokumentet et dokumentfaktum kom fra. - Utvidelse av
Registerfaktautover søknadsdato i denne runden.
Konsekvenser⚓︎
- Regler som trenger å sammenligne kilder (som
R-SOKNADSDATO-SAMSVAR) blir eksplisitte, lesbare uttrykk for en forretningsregel — ikke en implisitt sammenslåingslogikk begravd i en projektor. - Faktablokker vokser med to parallelle felt for samme opplysning i overgangsperioder, men dette er synlig og forventet — ikke en datakvalitetsfeil.
- Forkastet: la registerfaktumet overskrive/erstatte dokumentfaktumet (skjuler divergens som er
verdifull signal); innføre et per-felt
Kilde-flagg (unødvendig kompleksitet når proveniens allerede følger av blokkstrukturen, og ingen regelutfall skal gates på kilde).
Bygger på ADR-016 og ADR-015.
Design: docs/specs/2026-07-06-registerfakta-round3-design.md. AB#20964.