Corrigeer Belang
Casusbeschrijving
In deze casus wordt een correctie verwerkt op een Belang waarbij een verkeerde persoon was gekoppeld als eigenaar aan een WOZ-object. Aangezien correctie een complex proces veronderstellen we dat een domein-expert het te corrigeren Belang heeft geraadpleegd en dus het belangId bekend is. Dit belangId is van het correctie_commando.
Alhoewel de identificatie van de persoon (partijId) geen onderdeel is van de technische sleutel wordt in dit geval geen correctie uitgevoerd op de waarde van de partijId. Dit omdat de partijId, samen met het wozObjectnummer samen de functionele sleutel van het Belang vormen. Het laten vervallen van het oude Belang en het registreren van een nieuw Belang doet in dit geval de aard van de correctie het meeste recht aan.
In het commando waarmee deze wijziging wordt doorgevoerd is dus het belangId opgenomen van het Belang dat komt te vervallen. Daarnaast zijn de gegevens opgenomen waarmee een nieuw Belang kan worden geregistreerd. In dit geval is de Partij die aan het nieuwe Belang is gekoppeld reeds bekend.
De situatie dat er een nieuwe Partij moet worden geregistreerd is in deze casus niet geïmplementeerd, maar die is wel beproefd in de casus Overdracht eigendom en/of beperkt recht.
Command corrigeer_belang
command_str = """
{
"command": {
"commandId": "56fccbdf-a279-4598-8bd4-58a4077bf67c",
"commandType": "corrigeer_belang"
},
"data": {
"belang_vervallen": {
"belangId": "51e45c80-7484-49d8-aad4-9be044453bb0",
"wozObjectnummer": "e8d5375b-0a30-46b4-ab62-ac6b8ca10bf6",
"partijId": "4bec755e-d9de-43fd-8c6b-cca75fd1a41d"
},
"belang_toevoegen": {
"geldigVanaf":"2025-03-09T11:05:00Z",
"partijId": "00e976f3-310e-455d-8d23-dd08774e2c15",
"wozObjectnummer": "d6b33e05-a6ea-43d7-b9d0-7380c74e3c39",
"aandeel": "70",
"soortBelang": "eigenaar",
"aardZakelijkRecht": "606"
}
}
}
"""
Commando Corrigeer Belang
wordt gepersisteerd door claims voor het objecttype “Commando” vast te leggen in het commando-register.
In deze weergave is er voor gekozen om de waarde van de rol content
in te korten, anders zou er geen goede weergave te tonen zijn. Daarnaast is het belangrijk te weten dat de waarde van de rol content
als Base64 is vastgelegd en die inhoud wordt hier onbewerkt getoond (en is dus niet interpreteerbaar door mensen)
Van commando naar effecten.
Comandohandler corrigeer_belang
heeft als doel het commando dat opgesteld te transformeren naar effecten (gevolgen?) die op het WOZ-register impact hebben.
Om deze effecten (gevolgen?) samen stellen vinden de volgende bewerkingsstappen plaats:
Commandhandler
corrigeer_belang
ontvangt commandocorrigeer_belang
Commandohandler
corrigeer_belang
interpreteert inhoud van commandocorrigeer_belang
- Inhoud is (semantisch) niet interpreteerbaar -> registreert semantische error (“Commando is niet interpreteerbaar”)
- Inhoud is (semantisch) interpreteerbaar -> registreert resultaat (“is wel interpreteerbaar”) en verder naar productie commando in de WOZ-context.
CommandoHandler
corrigeer_belang
maakt effecten aan die als verwerkingsstappen die aangeboden kunnen worden aan de register-engine.De volgende effecten (gevolgen) worden samengesteld op basis van het commando
corrigeer_belang
.- Het bestaande Belang met het belangId zoals dat is opgenomen in het commando wordt opgezocht en beëindigd.
- Er wordt een nieuw Belang geregistreerdIndien een Partij nog niet bekend is in het WOZ-Register wordt deze partij geregistreerd (inclusief Partij-identificator indien aangeboden).
- De nieuwe belangen worden geregistreerd.
De effecten (gevolgen) worden geregistreerd. - Het inhoud van ieder effect wordt geregistreerd. - De relatie naar commando
corrigeer_belang
wordt vastgelegd.
Lineage van de verwerking
Het weergeven van de lineage kan worden wordt met de lineage-code gerealiseerd. Hiermee worden alle commands, gevolgen en claims in beeld gebracht die als gevolg van het uitvoeren van een command zijn uitgevoerd. (Zie de Readme van de poc-python repository hoe deze moet worden uitgevoerd).
Pre-condities: Het command-id van het command corrigeer_belang
moet opgenomen zijn bij de command-ids in regel 33 van lineage.py en de test test_woz moet succesvol uitgevoerd zijn.
Bij de lineage zijn er drie typen weergave beschikbaar:
- Alleen de rollen en hun waarden.
- Volledige claimexpressies in state-vorm –> Deze weergave is alleen mogelijk als vul_partijen is verwerkt met schema_variant=“structure_state.gql” (regel 27)
- Volledige claimexpressies in event-vorm –> Deze weergave is alleen mogelijk als vul_partijen is verwerkt met schema_variant=“structure_event.gql” (regel 27)
De lineage geeft de context weer tussen command, gevolgen en claims per objecttype. Het is niet mogelijk een leesbare image te presenteren dus het is mogelijk om via de link een weergave op mermaid.live te krijgen. Hier kan overgeschakeld worden naar een full-screen view en er kan ingezoomd worden.
Lineage-roles
In deze weergave worden alleen de claimroles met hun waarden getoond. (Klik op de afbeelding voor grotere weergave op mermaid.live. Daar wordt ook de mogelijkheid geboden om full-screen weer te geven en in te zoomen. )
Lineage-state
In deze weergave worden de volledige claim-expressies in de “state”- variant getoond. (Klik op de afbeelding voor grotere weergave op mermaid.live. Daar wordt ook de mogelijkheid geboden om full-screen weer te geven en in te zoomen. )
Lineage-event
In deze weergave worden de volledige claim-expressies in de “event”- variant getoond. (Klik op de afbeelding voor grotere weergave op mermaid.live. Daar wordt ook de mogelijkheid geboden om full-screen weer te geven en in te zoomen. )
De relevante objecten nadat het commando is verwerkt
Vervallen Belang en nieuw Belang
Let hierbij op dat het reeds bestaande Belang een Expired
annotatie heeeft gekregen om aan te geven dat de registratie vervallen is.
Er is voor gekozen om niet alle claims individueel van een Expired
-annotatie te voorzien, maar alleen op de ExistentiePostulerende claim deze annotatie toe te voegen.
Ook zie je dat het nieuwe belang een validFrom
-annotatie heeft die exact hetzelfde geldigheidmoment aangeeft als de validFrom
-annotatie van het vervallen Belang.