======Verwerking StUF Zaak/dms 1.2 Overdragen Zaak====== {{tag>openwave:1.33:applicatiebeheer:functionaliteiten:stuf_zaak_dms}} Vanuit een DMS kan een verzoek gedaan worden aan OpenWave om een zaak aan te maken. Hieronder een beschrijving van welke berichten daartoe uitgewisseld moeten worden, welke instellingen aan OpenWave-kant noodzakelijk zijn en welke onderdelen van het antwoord op geefZaakDetails door OpenWave verwerkt worden.\\ Naast de noodzakelijke instellingen geldt: * het externe zaaktype van de overgedragen zaak moet gemapt zijn in openwave (tbsoortomgverg of tbsoortovverg) * er moet een intiator (aanvrager) overgedragen worden * de zaak moet nog niet bestaan =====Endpoint en beveiliging via certificaten, whitelist===== Het externe zaaksysteem/dms roept het SOAP-endpoint //**base-url/**api/stuf/ontvangAsynchroonOverdragen// van OpenWave aan met het verzoekbericht //overdragenZaak_Di01//.\\ Een base-URL is een implementatie van OpenWave zoals bijvoorbeeld https://acceptatie.rommeldam.open-wave.nl.\\ De wsdl van het endpoint is bereikbaar op //**base-url**/api/stuf/ontvangAsynchroonOverdragen.wsdl// De OpenWave StUF webservice op dat SOAP-endpoint maakt gebruik van 2-way SSL onder het TLS1.2 encryptieprotocol.\\ De authenticatie gebeurt op endpoint-niveau door controle op IP-adres en aangeleverd client-certificaat: het IP-adres en de fingerprint van het client-certificaat van het externe zaaksysteem/dms wordt door OpenWave gecontroleerd in de tabel tbendpointlist (beheerportaal: zie Endpoints whitelist): * In tbendpointlist moet een rij worden gedefinieerd met als endpoint //api/stuf/ontvangasynchroonoverdragen// (dus zonder base-url). * En vervolgens dienen de IP-adressen die toestemming moeten krijgen om de StUF overdragenZaak berichten te posten op dit soap-endpoint te worden toegevoegd (dochtertabel tbipauthorisationlist), waar de fingerprint een onderdeel van de omschrijving kan zijn. Indien het bericht van het externe zaak/dms systeem NIET door deze firewall heen komt, wordt de HTTP-code 401 geretourneerd. =====Berichtenverkeer===== {{:openwave:1.33:applicatiebeheer:probleemoplossing:programmablokken:stufzaakdms_overdagenzaak.png?800|}} ====Stap 1A en 1B: overdragenZaak_Di01==== Indien het bericht van het externe zaak/dms systeem NIET door de firewall heen komt, wordt de HTTP-code 401 geretourneerd.\\ Indien het bericht van het externe zaak/dms systeem WEL door de firewall heen is, antwoord Openwave ongezien op het overdragenZaak_Di01- bericht met een Bv03 (bevestigings-)bericht. \\ Beide berichten worden opgeslagen in de messagelog-tabel onder de rubriek: //DMS overdragenZaak// mits de instellingen //sectie Koppeling ZAAK en item: Messagelog// EN de instelling //Sectie: OWB en Item: MessageLog// aangevinkt staan. Di01 Rommeldam RDApp ODRommeldam Openwave 93b81f42-f8ca-4221-97a3-7297f77f7544 20250725104913460 overdragenZaak ROM123456 Aanvraag straatfeest 24026 ====Stap 2A en 2B geefZaakDetails_ZakLv01==== OpenWave vraagt aan het externe Zaak/DMS systeem de zaakgegevens op. Uit het ontvangen //overdragenZaak_diO1// bericht worden twee gegevens gebruikt: de //Zender//: en de //Dmszaakidentificatie//: .\\ //ROM123456// in bovenstaand voorbeeld is de identificatie waaronder de zaak in het externe zaak/dms bekend is.\\ //Rommeldam// is daarin de naam van de zender-organisatie. De //Zender// wordt opgezocht in de medewerkerstabel in de kolom dvloginnaam. Op grond van bovenstaand voorbeeld zou de zender-organisatie //Rommeldam// dus moeten voorkomen in de dvloginnaam van de medewerkerstabel (en maar één keer). Deze robot-medewerker: * heeft geen wachtwoord, * heeft geen 2-factor authenticatie * hoeft geen loginverklaringen af te tekenen * heeft in de kolom dnmaginapp (1=robot, 2=browser, 3=beide) de waarde 3 * is lid van een rechtengroep die insertrechten heeft op de omgevingstabel en/of de apv/overige tabel * heeft in de kolom dvtelefoon een codering staan (bij afspraak bestaande uit 4 letters) die verwijst naar de kolom //dvgemeentecode// van de tabel tb33gemeente. Indien GEEN robot-medewerker gevonden dan: * wordt een kaart in tbmissingconfiguration aangemaakt onder de apinaam: //creeerStufOverdrachtZaak: geefZaakDetails//. * wordt het proces afgesloten zonder dan de externe partij dit weet: geen stuurgegevens en certificaatgegevens bekend. Openwave zoekt in de betreffende kaart van tb33gemeente naar de noodzakelijke StUf stuurgegevens-instellingen en certificaat-gegevens om een bericht aan het externe zaak/dms te kunnen sturen.\\ In het blok //StUF zaak/dms endpoint credentials// dienen de kolommen * //Endpoint asynchroon// (dvzknendpoint_ asynchroon) gevuld te worden met het asynchrone endpoint voor StUF zaak/dms 1.2 berichten van het externe zaak/dms * //Endpoint Beantwoordvraag// (dvzknendpoint_beantwoordvraag) met het beantwoordvraag endpoint voor StUF zaak/dms 1.2 berichten * //Client-Certificaatnaam// (dvzknSslKeystore) met de naam van het geinstalleerde clientcertificaat van het externe zaak/dms/ * //Client-Certificaattype// (dvzknSslKeystoreType) met het bijbehorende certiifciaat type * //Certificaat password// (dvzknSslKeystorePassword) met het bijbehorende certificaat password. Deze wordt automatisch gecrypt opgeslagen. In het blok //StUF zaak/dms stuurgegevens// dienen de kolommen * //Zender applicatie// (dvstufzknzenderapp) bijv OpenWave * //Zender organisatie// (dvstufzknzenderorg) bijv ODRommeldam * //Ontvanger applicatie// (dvstufzknontvapp) bijv RDApp (gelijk aan de zender-applicatie uit het binnengekomen overdragenZaak_Di01) * //Ontvanger organisatie// (dvstufzknontvorg) bijv Rommeldam (gelijk aan de zender-organisatie uit het binnengekomen overdragenZaak_Di01) En indien het externe zaak/dms dat verlangt kunnen ook de kolommen administratie en gebruiker worden gevuld.\\ Bovenstaande waarden moeten afgestemd zijn met het externe zaak/dms.\\ Indien GEEN kaart gevonden in tb33gemeente OF endpointgegevens en/of stuurgegevens en/of certificaat gegevens zijn niet compleet dan * wordt een kaart in tbmissingconfiguration aangemaakt onder de apinaam: //creeerStufOverdrachtZaak: geefZaakDetails//. * wordt het proces afgesloten zonder dan de externe partij dit weet: geen stuurgegevesn en certificaatgegevens bekend. Alles wel OK dan verzendt OpenWave het //geefZaakDetails_ZakLv01// naar het beantwoordVraag -endpoint met het verzoek om alle zaakdetails te retourneren voor het betreffende //Dmszaakidentificatie//nummer.\\ Het externe zaak/dms antwoord synchroon met een //geefZaakDetails_ZakLa01//. Beide berichten worden opgeslagen in de messagelog-tabel onder de rubriek: DMS overdragenZaak mits de instellingen sectie Koppeling ZAAK en item: Messagelog EN de instelling Sectie: OWB en Item: MessageLog aangevinkt staan. ====Stap 3A verwerk zaakdetails tot zaak en slotbericht overdragenZaak_Du01===== **Antwoordbericht niet volledig**\\ Het antwoordbericht kan een fault-bericht zijn (zie messagelog). In dat geval gaat iets mis in het transport.\\ Het antwoordbericht kan wel een //geefZaakDetails_ZakLa01// bericht zijn, maar het blok ontbreekt daarin.\\ In beide gevallen verzendt Openwave het slotbericht //overdragenZaak_Du01// naar het ontvangasynchroon endpoint van het externe zaak/dms. In dat bericht in de tag de boodschap: overdracht geweigerd.. Het externe zaak/dms antwoord hierop met een Bv03-bericht.\\ Beide berichten worden opgeslagen in de messagelog-tabel onder de rubriek: DMS overdragenZaak mits de instellingen //sectie Koppeling ZAAK en item: Messagelog// EN de instelling// Sectie: OWB en Item: MessageLog// aangevinkt staan. **Zoek mapping zaaktype**\\ Indien het antwoordbericht //geefZaakDetails_ZakLa01// WEL volledig is, dan is in de tag het zaaktype opgenomen, waaronder de zaak in het externe zaak/dms bekend is. OpenWave zoekt deze codering op in de kolom //dvdmszaaktypecode// van de tabel zaaktypes omgeving (tbsoortomgverg) onder de niet vervallen rijen waarvan de kolom //dlnaardms// aangevinkt is.\\ Indien niet gevonden dan wordt dezelfde zoekopracht uitgevoerd maar dan in de tabel zaaktypes apv/overig (tbsoortovverg).\\ Indien er meerdere gegadigden zijn, dan wordt de eerste de beste gepakt.\\ Indien echter geen mapping gevonden voor het zaaktype dan: * wordt een kaart in tbmissingconfiguration aangemaakt onder de apinaam: //creeerStufOverdrachtZaak: geefZaakDetails//. * wordt het slotbericht //overdragenZaak_Du01// naar het ontvangasynchroon endpoint van het externe zaak/dms gestuurd. In dat bericht in de tag de boodschap: overdracht geweigerd.. Het externe zaak/dms antwoord hierop met een Bv03-bericht. * worden beide berichten gelogd in de messagelog-tabel onder de rubriek: DMS overdragenZaak mits de instellingen //sectie Koppeling ZAAK en item: Messagelog// EN de instelling //Sectie: OWB en Item: MessageLog// aangevinkt staan. **Bestaat de zaak al?**\\ De van het antwoordbericht wordt opgezocht in tbomgvergunning.dvintzaakcode en/of in tbovvergunningen.dvintzaakcode. Indien gevonden dan bestaat de zaak reeds en * wordt een kaart in tbmissingconfiguration aangemaakt onder de apinaam: //creeerStufOverdrachtZaak: geefZaakDetails//. * wordt het slotbericht //overdragenZaak_Du01// naar het ontvangasynchroon endpoint van het externe zaak/dms gestuurd. In dat bericht in de tag de boodschap: overdracht geweigerd.. Het externe zaak/dms antwoord hierop met een Bv03-bericht. * worden beide berichten gelogd in de messagelog-tabel onder de rubriek: DMS overdragenZaak mits de instellingen //sectie Koppeling ZAAK en item: Messagelog// EN de instelling //Sectie: OWB en Item: MessageLog// aangevinkt staan. **Controle overige noodzakelijke instellingen ** \\ * Openwave dient de nieuw zaak te koppelen aan een kaart in tbperceeladressen. Indien deze niet gevonden wordt op grond van de gegevens in het blok //// dan valt Openwave terug op //Getal2// van de instelling van //Sectie: Koppeling Zaak Item: DummyLokatiePerceelkey//. Dit moet een valide keyverwijzing zijn naar een rij in tbperceeladressen. * In de tabel tbadressoort dient zowel een niet vervallen rij te bestaan voor de dvcode //AVR// (aanvrager) als voor de dvcode: //GEM// (gemachtigde). * Indien de zaaktype mapping is uitgekomen op rij uit tbsoortovverg (apv/overige zaaktypes) dan moet ook //Getal2// van de instelling //sectie Koppeling ZAAK en item: DummyMeldingAPVOVWerzKey// bestaan en verwijzen naar een valide dnkey van de tabel tbovwerkz. * Indien er geen defaultbehandelaar is gevonden bij de gevonden rij in tbsoortomgverg of tbsoortovverg met de zaaktype mapping, dan valt OpenWave terug op de kolom //Tekst// van de instelling //Sectie: Koppeling OLO en Item: dossierbehandelaar//. Indien aan deze voorwaarden niet is voldaan dan: * wordt een kaart in tbmissingconfiguration aangemaakt onder de apinaam: //creeerStufOverdrachtZaak: geefZaakDetails//. * wordt het slotbericht //overdragenZaak_Du01// naar het ontvangasynchroon endpoint van het externe zaak/dms gestuurd. In dat bericht in de tag de boodschap: overdracht geweigerd.. Het externe zaak/dms antwoord hierop met een Bv03-bericht. * worden beide berichten gelogd in de messagelog-tabel onder de rubriek: DMS overdragenZaak mits de instellingen //sectie Koppeling ZAAK en item: Messagelog// EN de instelling //Sectie: OWB en Item: MessageLog// aangevinkt staan. **Bepaling perceeladres** \\ Indien het blok //// met entiteittype= //VES// bestaat dan wordt de waarde van de tag opgezocht in tbmilinrichtingen op de kolom //dvvestigingsnr//. Indien meerdere gegadigden dan wordt de eerste de beste genomen. Het perceeladres is dat van de gevonden inrichting. Indien niet gevonden dan wordt gezocht op de gegevens uit het blok . Nog geen perceeladres gevonden, dan wordt gekeken naar het blok met //// met entiteittype= //AOA//. Indien daarbinnen de tag is gevuld, dan wordt deze opgezocht in de niet vervallen rijen van tbperceeladressen op respectievelijk de kolommen //dvidentificatiecode// en //dvbagidentcode_3// . Indien niet gevonden dan wordt gezocht op adresgegevens. Indien meerdere gegadigden dan wordt de eerste de beste genomen. Indien nog geen perceeladres gevonden dan wordt //Getal2// van de instelling van //Sectie: Koppeling Zaak Item: DummyLokatiePerceelkey// als tbperceeladressen.dnkey genomen. **Bepaling aanvrager** \\ Indien het blok //// bestaat met daarbinnen het blok //// met entiteittype= //VES// dan: * Indien tag //// gevuld, dan wordt de niet vervallen rij in tbcontactadressen gezocht met //dvvestigingsnr// = ////. Indien meerdere gegadigden dan wordt de eerste de beste genomen. Indien: * Gevonden dan is aanvrager bekend. indien //Sectie: Koppeling Zaak en Item: BestaandContactNietOverschrijven// NIET is aangevinkt, dan worden de gegevens overschreven. * Niet gevonden dan wordt een nieuwe kaart aangemaakt in tbcontactadressen met de gegevens uit dit blok. Anders, Indien het blok //// bestaat met daarbinnen het blok //// met entiteittype= //NPS// dan: * Indien tag //// gevuld, dan wordt de niet vervallen rij in tbcontactadressen gezocht met //dvsofinummer// = ////. Indien meerdere gegadigden dan wordt de eerste de beste genomen. Indien: * Gevonden dan is aanvrager bekend. indien //Sectie: Koppeling Zaak en Item: BestaandContactNietOverschrijven// NIET is aangevinkt, dan worden de gegevens overschreven. * Niet gevonden dan wordt een nieuwe kaart aangemaakt in tbcontactadressen met de gegevens uit dit blok. Anders, Indien het blok //// bestaat met daarbinnen het blok //// met entiteittype= //NNP// dan: * Indien tag //inn.nnpId// gevuld, dan wordt de niet vervallen rij in tbcontactadressen gezocht met //dvrsin// = //inn.nnpId//. Indien meerdere gegadigden dan wordt de eerste de beste genomen. Indien: * Gevonden dan is aanvrager bekend. indien //Sectie: Koppeling Zaak en Item: BestaandContactNietOverschrijven// NIET is aangevinkt, dan worden de gegevens overschreven. * Niet gevonden dan wordt een nieuwe kaart aangemaakt in tbcontactadressen met de gegevens uit dit blok. Anders, indien nog steeds geen contactadres gevonden of aangemaakt voor de aanvrager dan: * wordt een kaart in tbmissingconfiguration aangemaakt onder de apinaam: //creeerStufOverdrachtZaak: geefZaakDetails//. * wordt het slotbericht //overdragenZaak_Du01// naar het ontvangasynchroon endpoint van het externe zaak/dms gestuurd. In dat bericht in de tag de boodschap: overdracht geweigerd.. Het externe zaak/dms antwoord hierop met een Bv03-bericht. * worden beide berichten gelogd in de messagelog-tabel onder de rubriek: DMS overdragenZaak mits de instellingen //sectie Koppeling ZAAK en item: Messagelog// EN de instelling //Sectie: OWB en Item: MessageLog// aangevinkt staan. **Bepaling gemachtigde**\\ Idem als bij aanvrager maar nu bij blok . Een gemachtigde hoeft niet opgenomen te zijn in het bericht. **Aanmaken zaak in tbomgvergunning of in tbovvergunningen**\\ Op grond van de gevonden mapping van het zaaktype maakt OpenWave een zaak aan in tbomgvergunning of in tbovvergunningen, gekoopeld aan het gevonden perceeladres, waarbij (in geval van omgevingzaak) : * de kolom dvintzaakcode (de externe zaakidentifier) wordt gevuld met //Dmszaakidentificatie// (kolom //// van het antwoordbericht). * dvaanvraagnaam = //// * ddaanvraag = //// * dvzaakcode = wordt samengesteld op basis van masker en lengte uit tbsoortomgverg * ddfataledatum = //// met daarbij opgeteld Fatale Periode uit tbsoortomgverg * dvaanvraagoms = //// * dlzaakpubliceren = met publiceren ja.nee uit tbsoortomgverg * dnkeyteamszaakverantw = gekoppelde team uit tbsoortomgverg * dnkeymilinrichtingen met eventueel gevonden inrichting uit blok //// met entiteittype= //VES// **Behandelaar en aanvrager/gemachtigde toevoegen**\\ Op grond van de gevonden defaultbehandelaar uit de zaaktypes in tbsoortomgverg of tbsoortovverg wordt de behandelaar in tbinbehandelingbij toegveoegd (indien leeg dan valt OpenWave terug op de kolom// Tekst// van de instelling //Sectie: Koppeling OLO en Item: dossierbehandelaar//.\\ De aanvrager wordt toegevoegd aan de zaak (tbomgcontactennn of tbovcontactennn) met de adresrol //AVR// en de eventuele gemachtigde onder de rol //GEM//. **Processen, mappen en hyperlinks aanmaken **\\ Zoals bij een handmatig aangemaakte zaak worden nu processen toegevoegd, mappen aangemaakt en hyperlink gevuld. Mits zo is ingesteld. **Verzenden slotbericht overdragenZaak_Du01 met succesmelding**\\ Tot slot wordt het bericht overdragenZaak_Du01 naar het ontvangasynchroon endpoint van het externe zaak/dms gestuurd. In dat bericht in de tag de boodschap: overdracht geaccepteerd en in de tag de wavezaakcode waaronder de zaak is aangemaakt in OpenWave en in de tag het oorspronkelijke identificatienummer van het externe zaaksysteem.\\ Het externe zaak/dms antwoord hierop met een Bv03-bericht. \\ Beide berichten worden gelogd in de messagelog-tabel onder de rubriek: DMS overdragenZaak mits de instellingen //sectie Koppeling ZAAK en item: Messagelog// EN de instelling //Sectie: OWB en Item: MessageLog aangevinkt// staan.\\ Indien //overdracht geaccepteerd// dan komt in de kolom dvmessage_casid de wavezaakcode van de net aangemaakte zaak.