Creëer zaakobject conform OpenZaak API
Op het endpoint base-url/api/zgw/zaken/api/v1/zaakobjecten/ kan een POST worden geplaatst waarmee OpenWave een zaakobject van objectType adres kan toevoegen aan een bestaande zaak.
Op grond van deze adresgegevens wordt sowieso een kaart aangemaakt (of bijgewerkt) in tbzaakkadperc die de eigenschap hoofdprojectlocatie krijgt. Daarnaast wordt getracht de zaak op grond van deze adresinformatie te (her)koppelen aan een kaart van tbperceeladressen (de OpenWave lokatie-tabel).
De base_url is de implementatie van OpenWave waar tegenaan gepraat moet worden, bijvoorbeeld: https://acc.rommeldam.open-wave.nl.
Whitelist
De zender die hier een creëer rolbericht POST zal gewhitelist moeten worden. Dit kan in de tabellen tbendpointlist en tbipauthorisationlist onder de tegel Endpoints whitelist op het nieuwe beheerportaal onder de kolom Gebruikers.
In de tabel tbendpointlist zal minimaal het endpoint /api/zgw gedefinieerd moeten zijn met daaronder (in de tabel tbipauthorisationlist) het IP-adres van de zender.
Authorisation Token
In de Authorization header van dit POST bericht moet een valide JWT-token worden meegegeven onder Bearer Token. Zie voorbeeld bij Creëer ZGW zaak conform OpenZaak API.
Voor het verkrijgen van een token (met beperkte geldigheidsduur!) zie: ZGW OpenZaak API Functionaliteit.
De token wordt opgezocht in de tabel tbaccesstoken en het tijdstip van aanvraag wordt getoetst aan de geldigheidsduur van de gevonden rij.
(robot) Medewerker moet gelinkt zijn aan endpoint
De gevonden token is gelinkt aan een (robot)-medewerker (degene onder wiens credentials het token is gecreëerd). Bij de betreffende medewerkers kaart moet de kolom Endpoint (robotmedewerker is gedefinieerd voor binnenkomende berichten op endpoint) (dnkeyendpointlist) in blok login verwijzen naar een kaart in tbendpointlist waarvan de inhoud van de kolom dvendpointurl een substring is van dit endpoint api/zgw/zaken/api/v1/zaakobjecten/ / waarop dit creer zaakobjectbericht wordt gepost: bijvoorbeeld: /api/zgw
Headers
De enige verplichte header variabele is: Content-Type met als waarde application/json
Body
In application/JSON.
Voorbeeld
{ "zaak": "https://acc.rommeldam.open-wave.nl/api/zgw/zaken/api/v1/zaken/dc594a1a-61ac-49d2-88cd-535029033fe3", "objectType": "adres", "objectIdentificatie": { "identificatie": "0106010000000006", "wplWoonplaatsNaam": "Rommeldam", "gorOpenbareRuimteNaam": "Wasstraat", "huisnummer": 14, "huisletter": null, "huisnummertoevoeging": null, "postcode": null } }
Zie Github: zie POST Maak een ZAAKOBJECT aan op https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/vng-Realisatie/zaken-api/1.5.1/src/openapi.yaml#tag/zaakobjecten/operation/zaakobject_create
OpenWave ondersteunt alleen het objectType met waarde adres
De verwerking van het bericht door OpenWave wordt gelogd in tbmessagelog indien
- de instelling Sectie: ZGW en Item: Messagelog aangevinkt staat
- EN de instelling Sectie: OWB en Item: MessageLog aangevinkt staat
In principe leidt de inhoud van de body tot de aanmaak van een nieuwe projectlocatie (of het wijzigen van een projectlocatie) in tbzaakkadperc en tot het herkoppelen van de zaak aan een kaart in tbperceeladressen. Dit alles bij een een omgevingzaak of apv/overige zaak die eerder is aangemaakt en voorzien is van een gevulde kolom dvzgwuuid.
Die bestaande zaak is reeds gekoppeld aan een perceeladres bij het verwerken van een creeerzaakbericht. Dit zal altijd een dummylokatie zijn (onbekend adres) omdat het creerzaak-bericht geen lokatieinformatie bevat. Een uitzondering is wanneer waarnemingsgegevens zijn opgenomnen als extra items in dat creeerzaakbericht, deze worden dus niet ondersteund door de Open Zaak Api, maar Openwave verwerkt deze optionele gegevens in de klachtenkolommen van een omgevingzaak EN tracht tevens de zaak aan een bestaand valide adres in tbperceeladressen te koppelen.
Indien er geometrie is opegeven in het creeerzaakbericht dan heeft OpenWave al een een projectlocatiekaart aangemaakt in tbzaakkadperc en deze kaart voorzien van de eigenschap hoofdprojectlocatie. Is dat het geval dan wordt deze projectlocatiekaart met dit creeerzaakobject-bericht bijgewerkt. Anders wordt dus een nieuwe kaart aangemaakt bij de zaak in tbzaakkadperc.
Dit alles, mits aan de nodige voorwaarden in de OpenWave implementatie is voldaan:
- De robotmedewerker die verbonden is aan de uitgereikte token moet gekoppeld zijn aan de rechtengroep die het functionele recht tbomgrechten.dlbomgins (insertrecht op de omgevingstabel) aangevinkt heeft staan (indien de zaak een omngevingzaak is), en anders - dus als de zaak een apvoverige zaak is - het functionele recht tbovrechten.dlbovvins.
- Er moet een unieke kaart zijn in tbomgvergunning waarvoor geldt dat tbomgvergunning.dvzgwuuid gelijk is aan de waarde (een UUID-code) vanaf de laatste slash van item zaak OF er moet een unieke kaart zijn in tbovvergunningen waarvoor geldt dat tbovvergunningen.dvzgwuuid gelijk is aan deze waarde.
Projectlocatie
Op grond van de zaak-identifier wordt de zaak opgezicht in tbomgvergunning.dvzgwuuid danwel tbovvergunningen.dvzgwuuid. Bij de gevonden zaak wordt gekeken of er een kaart is in de tabel tbzaakkadperc (de projectlocaties) met eigenschap dlhoofdprojectlocatie = 'T'. Zo ja, dan wordt deze kaart bijgewerkt met de objectIdentificatie gegegevens uit het bericht. Zo nee dan wordt met deze gegegvens een nieuwe kaart aangemaakt met dlhoofdprojectlocatie = 'T'.
Indien het item identificatie uit zestien cijfers bestaat, waarbij posities 5 + 6 samen één van de volgende combinaties vormt: 01, 02, 03, 10, 20 of 30, dan beschouwt OpenWave de identificatie als een BAG-identificatie en wordt de kolom tbzaakkadperc.dvbagid daarmee gevuld.
De kolom tbzaakkadperc.dvzgwuuid wordt overschreven met een op dat moment uitgetrokken unieke UUID-code.
Perceeladressen
Indien het item identificatie uit zestien cijfers bestaat, waarbij posities 5 + 6 samen één van de volgende combinaties vormt: 01, 02, 03, 10, 20 of 30, dan beschouwt OpenWave de identificatie als een BAG-identificatie en wordt daarmee in tbperceeladressen getracht een unieke kaart te vinden (dus op verblijfsobject, pandidentifiztie of nummeraanduiding). Niet gevonden of identifcatie voldoet niet aan deze specificaties dan wordt getracht een unieke kaart te vinden in tbperceeladressen op grond van de adresgegevens.
Indien niet gevonden, dan wordt dnkeyperceeladressen niet gewijzigd bij de omgeving- danwel apv/overigezaak.
Indien wel een unieke perceeladreslokatie is gevonden (op grond van identificatie danwel adres), dan wordt de dnkeyperceeladressen bij de zaak gewizjgd met deze gevonden dnkey-waarde.
Responsebericht
Indien de rol niet kon worden aangemaakt wordt een responsecode anders dan 200/201 geretourneerd met in de body de oorzaak van het falen.
Indien de rol succesvol is aangemaakt wordt onder de responsecode 201 het oorspronkelijke bericht geretourneerd aangevuld met de verplichte items, waarbij
- in het item uuid de code wordt geretourneerd die opgeslagen is bij het zaakobject ( tbzaaakkadperc.dvzgwuuid)
Voorbeeld response body
{ "url": "https://acc.rommeldam.open-wave.nl/api/zgw/zaken/api/v1/zaakobjecten/095be615-a8ad-4c33-8e9c-c7612fbf6c9f", "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f", "zaak": "https://acc.rommeldam.open-wave.nl/api/zgw/zaken/api/v1/zaken/dc594a1a-61ac-49d2-88cd-535029033fe3", "objectType": "adres", "objectIdentificatie": { "identificatie": "0106010000000006", "wplWoonplaatsNaam": "Rommeldam", "gorOpenbareRuimteNaam": "Wasstraat", "huisnummer": 14, "huisletter": null, "huisnummertoevoeging": null, "postcode": null } }