Dit is een oude revisie van het document!
Maak zaakeigenschap aan conform OpenZaak API
Op het endpoint base-url/api/zgw/zaken/api/v1/zaken/{identifier}/zaakeigenschappen/ kan een POST worden geplaatst waarmee OpenWave een zaakeigenschap kan toevoegen aan een bestaande zaak.
De {identifier} in bovengenoemd endpoint is de UUID die toegekend is aan een eerder aangebrachte zaak op het endpoint base-url/api/zgw/zaken/api/v1/zaken en in de response daarvan is opgenomen. Deze UUID is bij de aangemaakte zaak opgeslagen in de kolom tbomgvergunning.dvzgwuuid of tbsoortovverg.dvzgeuuid.
Hieronder wordt een voorbeeld uitgwerkt waarbij op dit endpoint een inrichtingsnummer in de body wordt gestuurd op grond waarvan Openwave een eerder aangemaakte zaak (de uuid identifier in het endpoint) kan koppelen aan de bijbehorende inrichting.
De base_url is de implementatie van OpenWave waar tegenaan gepraat moet worden, bijvoorbeeld: https://acc.rommeldam.open-wave.nl.
Gebaseerd op versie Open Zaak API 1.2
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/zaken/ waarop dit maakzaakeigenschap-bericht wordt gepost: bijvoorbeeld: /api/zgw
Headers
De enige verplichte header variabele is: Content-Type met als waarde application/json
Body voor doorgeven zaakeigenschap
Voorbeeld maken zaakeiegenschap
{
"zaak": "https://acc.rommeldam.open-wave.nl/api/zgw/catalogi/api/v1/zaken/6995c3ada4ed431bb5e5edab33fe41c4",
"eigenschap": "https://acc.rommeldam.open-wave.nl/api/zgw/catalogi/api/v1/eigenschappen/80a2f657-172d-41fb-b7c7-4e48b8222bdc",
"waarde": "2018E1544"
}
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.
De url van de zaak verwijst naar dezelfde zaak als de {ïdentifier} (de path-parameter) van het endpoint.
De url van eigenschap verwijst naar een plek in Openwave waar een instructie is opegslagen hoe en waar de waarde moet worden verwerkt.
In bovenstaand voorbeeld verwijst de eigenschap-uuid (de string vanaf de positie van de laatse slash in de eigenschap-url) naar een rij in de tabel tbdsospecvraagid.
De beheerder van OpenWave heeft bij het zaaktype (tbsoortomgverg of tbsoortovverg) waaronder de zaak valt een kaart aangemaakt in tbdsospecvraagid met in de kolom dvdsovraagid de eigenschap-uuid, die nu in de body wordt doorgegeven. Zie beheerportaal op het detailscherm van zaaktypes omgeving of apvoverig in het blok zaakeigenschappen.
Deze eigenschap-uuid of url moet dus doorgegeven worden aan de zender of kan opgehaald worden met Opvragen lijst met eigenschappen conform OpenZaak API.
Het item waarde bevat bijvoorbeeeld een inrichtingsnr.
Die kaart in tbdspsecvraagid kan er bijvooreeld als volgt uitzien:
Bij verwerking van de body vervangt Openwave de variabelen:
- %dsoantwoord% met de inhoud van het item waarde. Op het %dsoantwoord% mogen SQL-functies gebruikt worden bijv substr(%dsoantwoord%,1,2) of %dsoantwoord%::integer
- %keypointer% met de primary key van tbomgvergunning of tbovvergunningen op grond van de Path parameter (de UUID waarde doorgegeven in de {identifier}).
Dat betekent na substitutie dat: Op de omgevingskaart met dnkey = de gevonden primary key de kolom dnkeymilinrichtingen wordt vervangen met de dnkey van tbmilinrichtingen waarvoor geldt dat dvinrichtingnr = '2018E1544'
Responsebericht adres
Indien het adres niet kon worden aangemaakt of gekoppeld wordt een responsecode anders dan 200/201 geretourneerd met in de body de oorzaak van het falen.
Indien het adres wel succesvol is aangemaakt of gekoppeld 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 (tbzaakkadperc.dvzgwuuid)
Voorbeeld response body adres
{
"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
}
}
Body voor doorgeven MEDEWERKER
voorbeeld objecttype medewerker
{
"zaak": "acc.rommeldam.open-wave.nl/api/zgw/zaken/api/v1/zaken/fb03f6c9678349688c726179fffc1efc",
"objectType": "medewerker",
"objectIdentificatie": {
"identificatie": "pdeboer@rem.nl",
"achternaam": "Boer",
"voorletters": "P.A.",
"voorvoegselAchternaam": "de"
}
}
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.
Openwave zal op grond van het item identificatie van het medewerkersbericht de medewerker opzoeken in de tabel tbmedewerkers. Indien gevonden dan wordt deze medewerker opgenomen als actieve behandelaar in de tabel tbinbehandelingbij bij de betreffende zaak.
Als dit medewerker-zaakobject bericht meerdere malen wordt verstuurd, wordt alleen een nieuwe tbinbehandelingbij-kaart aangemaakt indien de actieve behandelaar een andere is dan wordt doorgegeven.
Die betreffende zaak wordt opgezocht op grond van de uuid-code aan het eind van het item zaak (in bovenstaand voorbeeld: fb03f6c9678349688c726179fffc1efc) in tbomgvergunning.dvzgwuuid danwel tbovvergunning.dvzgwuuid.
Op welke kolom van de tbmedewerkers de identificatie wordt gezocht is afhankelijk van een instelling.
Indien de kolom Tekst van sectie ZGW en Item: BehandelaarIdentificatieKolom is:
- dvmwexterncode dan wordt gezocht op de kolom dvwexterncode (van de niet vervallen kaarten)
- dvloginnnaam dan wordt gezocht op de kolom dvloginnaam (van de niet vervallen kaarten)
- dvcode dan wordt gezocht op de kolom dvcode (van de niet vervallen kaarten)
- dvemail dan wordt gezocht op de kolom dvemail (van de niet vervallen kaarten)
Indien de instelling ontbreekt dan wordt gezocht op dvemail
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 APV/Overige 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.
Responsebericht medewerker
Indien de inbehandelingbij kaart niet kon worden aangemaakt wordt een responsecode anders dan 200/201 geretourneerd met in de body de oorzaak van het falen.
Indien de rij in tbinbehandelingbij wel 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 de combinatie zaak/behandelaar (tbinbehandelingbij.dvzgwuuid)
Voorbeeld response body medewerker
{ "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", "zaak": "acc.rommeldam.open-wave.nl/api/zgw/zaken/api/v1/zaken/fb03f6c9678349688c726179fffc1efc", "objectType": "medewerker", "objectIdentificatie": { "identificatie": "pdeboer@rem.nl", "achternaam": "Boer", "voorletters": "P.A.", "voorvoegselAchternaam": "de" } }