Eén eigenaar van één Zaak (Concept)
Auteur: Rutger Haagsma | Status: In voorbereiding
Aanleiding
Het scheiden van de data van de componenten maakt het technisch mogelijk om meerdere componenten in de business logica-laag te laten werken met dezelfde data. Dat kan bijvoorbeeld op:
Objecten in de Objecten API.
Objecten in een Domeinregistratie.
Klanten in OpenKlant.
Zaken in OpenZaak.
Constatering
Het komt voor dat meerdere componenten willen werken met dezelfde dataset. Mede daarvoor is de datalaag gescheiden van de business logica-laag. Zo kunnen meerdere componenten vanuit meerdere domeinen toegang krijgen tot Objecten en Klanten. Indien dit gebeurt via handelingsgedreven API's is de transationele integriteit gewaarborgd.
Bij de afhandeling van Zaken door meer dan één component ontstaan problemen, indien meerdere componenten direct wijzingen aanbrengen in de datalaag zonder elkaar daarover te informeren. Voorbeeld:
Zaakafhandelcomponent A stelt voor Zaak I een factuurbedrag vast van EUR 100. Deze wordt vastgelegd in het zaakdetailobject, waarna een factuur wordt aangemaakt van EUR 100.
Klantcontact centrum component B wijzigt het factuurbedrag in Zaak I naar NIHIL, nadat daarover contact is geweest met de klant.
Nu is de situatie ontstaan dat het proces van facturatie verder wordt afgewikkeld met de factuur van EUR 100, terwijl in het Zaakdetailobject een bedrag vastligt van NIHIL.
Gevolg
Inconsistentie in de datalaag.
Principes
Een Zaak wordt afgehandeld door 1 (Zaakafhandel)component.
Indien er vanuit een ander component wijzigingen gevraagd zijn op de lopende zaak, vindt dit plaats via communicatie tussen componenten.
Elke component heeft - voor zover rechten dat toelaten - leesrechten op de (status van) de zaak in de datalaag.
Last updated