VNG-Realisatie / gemma-zaken

Samen ontwikkelen van API's voor Zaakgericht werken
https://vng-realisatie.github.io/gemma-zaken/
Other
41 stars 26 forks source link

ZTC 1.3: waarom is het veld zaaktype -> informatieobjecttypen anders gedefinieerd dan besluittypen? #2445

Open johannesbattjes opened 2 months ago

johannesbattjes commented 2 months ago

image

De definitie van het veld besluittype is begrijpelijk: het definieert een array van url's naar een besluittype. En als client moet ik een geldig besluittype hebben als ik een besluit wil aanmaken. Dus ik zie dat dit kan werken.

Het zou wel mooi zijn als het woord geldige werd toegevoegd aan de beschrijving: URL-referenties naar de geldige BESLUITTYPEN die mogelijk zijn binnen dit ZAAKTYPE.

Maar bij informatieobjecttype komt een string terug. Is dat de IOT-omschrijving? In dat geval moet een client eerst een geldig IOT ophalen voordat daze een informatieobject kan maken. Er staat ook niet dat het een array is. Ik zou zoiets verwachten:

Array of strings  (heeft relevante informatieobjecttypen) unique [ items <uri > ]URL-referenties naar de geldige INFORMATIEOBJECTTYPEN die mogelijk zijn binnen dit ZAAKTYPE.

HenriKorver commented 2 months ago

Ik zie dat sinds versie 1.3.0 van de Catalogi API de definitie van het attribuut "informatieobjecttypen" ten onrechte gewijzigd is van array naar string. In de 1.2.1 versie was deze namelijk nog goed:

https://vng-realisatie.github.io/gemma-zaken/standaard/catalogi/redoc-1.2.1#tag/zaaktypen/operation/zaaktype_retrieve

afbeelding

Dat komt waarschijnlijk doordat destijds de OAS niet goed vanuit de code van de referentie-implementatie is gegenereerd. Dus een zelfde soort bug als ztc-issue-001.

@michielverhoef: Kun je voor de zekerheid mijn observatie bevestigen?

michielverhoef commented 1 month ago

Dit is een gevolg van het invoeren van het Historiemodel. https://github.com/VNG-Realisatie/gemma-zaken/issues?q=label%3AHistoriemodel+is%3Aclosed

De relatie tussen Zaaktype en Besluittype is versieonafhankelijk en wordt gelegd via zaaktype.omschrijving. Op eenzelfde manier is de relatie tussen zaaktype en informatieobjecttype versieonafhankelijk en deze wordt gelegd vanuit ZaaktypeInformatieobjecttype via Informatiobjecttype.omschrijving.

Op deze manier kan een nieuwe versie van een Besluittype gemaakt worden zonder dat het bijbehorende Zaaktype gewijzigde hoeft te worden. Idem voor Zaaktype en Informatiobjecttype.

Omdat Roltype, Statustype, Kenmerken, Resultaattype en ZaaktypeInformatieobjecttype eigenlijk groepsattributen van Zaaktype zijn worden deze nog wel 1-op-1 gekoppeld aan een versie van een Zaaktype en wordt deze relatie gelegd via een url.

johannesbattjes commented 1 month ago

Maar wat is de conclusie: is de huidige omschrijving van Informatieobjecttypen (zie mijn screendump) wel of niet correct?