===== Maak zaakeigenschap aan conform OpenZaak API ===== {{tag>dev:applicatiebeheer:functionaliteiten:zgw}} 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 path-parameter {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 uitgewerkt 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 De zender die hier een creëer rolbericht POST zal gewhitelist moeten worden. Dit kan in de tabellen tbendpointlist en tbipauthorisationlist onder de tegel [[dev:applicatiebeheer:probleemoplossing:portalen_en_moduleschermen:beheerportaal_nieuw:tegels_kolom_gebruikers: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 [[dev:applicatiebeheer:probleemoplossing:programmablokken:zgw_open_zaak_api_functionaliteit:creeer_zgw_zaak]]. Voor het verkrijgen van een token (met beperkte geldigheidsduur!) zie: [[dev:applicatiebeheer:probleemoplossing:programmablokken:zgw_open_zaak_api_functionaliteit]].\\ De token wordt opgezocht in de tabel tbaccesstoken en het tijdstip van aanvraag wordt getoetst aan de geldigheidsduur van de gevonden rij. 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===== { "zaak": "https://acc.rommeldam.open-wave.nl/api/zgw/zaken/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.\\ Deze zaak-uuid wordt opgezocht in tbomgvergunning.dvzgwuuid of tbovvergunningen.dvzgwuuid om zo de juiste zaak te bepalen waar de eigenschap aan toegevoegd moet worden. De url van eigenschap verwijst naar een plek in Openwave waar een instructie is opgeslagen hoe en waar de //waarde// moet worden verwerkt. In bovenstaand voorbeeld verwijst de eigenschap-uuid (de string vanaf de positie van de laatste 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 APV/Overig in het blok zaakeigenschappen. Deze eigenschap-uuid of URL moet dus doorgegeven worden aan de zender of kan opgehaald worden met [[opvragen_lijst_eigenschappen|]]. Het item //waarde// bevat bijvoorbeeld een inrichtingsnr. Die kaart in tbdspsecvraagid kan er als volgt uitzien:\\ {{:openwave:applicatiebeheer:probleemoplossing:programmablokken:zgw_open_zaak_api_functionaliteit:detailkaartzgwzaakeigenschap.png?800|}} 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 bijvoorbeeld //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 ==== Indien de eigenschap niet kon worden aangemaakt of gekoppeld wordt een responsecode anders dan 200/201 geretourneerd met in de body de oorzaak van het falen. Indien de eigenschap wel succesvol is aangemaakt wordt onder de responsecode 201 het oorspronkelijke bericht geretourneerd aangevuld met de verplichte items, waarbij * in de items //uuid// en //url// een fake-uuid wordt geretourneerd die NIET is opgeslagen bij de aangemaakte eigenschap. Dus de eigenschap kan niet later nog eens gewijzigd worden { "uuid": "6667c3ada4ed431bb5e5edab12345678", "url": "https://acc.rommeldam.open-wave.nl/api/zgw/zaken/api/v1/zaken/eigenschappen/6667c3ada4ed431bb5e5edab12345678", "naam": "Koppel klacht aan inrichtingsnummer", "zaak": "https://acc.rommeldam.open-wave.nl/api/zgw/zaken/api/v1/zaken/6995c3ada4ed431bb5e5edab33fe41c4", "eigenschap": "https://acc.rommeldam.open-wave.nl/api/zgw/catalogi/api/v1/eigenschappen/80a2f657-172d-41fb-b7c7-4e48b8222bdc", "waarde": "2018E1544" }