Voorbeeld: Toezichtzaken aanmaken bij inrichtingen/ locatiedossiers
Op deze pagina wordt stap voor stap beschreven hoe men een generieke bulk importactie in kan richten die toezichtzaken zal aanmaken bij inrichtingen/locatiedossiers.
Dat betekent dat deze bulk importactie uit 1 actie bestaat in dit voorbeeld:
- insert in tabel tbomgvergunning
Een voorbeeld van een bulk importactie met meerdere insert acties is beschreven op pagina Voorbeeld: Inspecties aanmaken bij inrichtingen/locatiedossiers.
Voor de bovengenoemde insert actie moet er een regel in de importmatrijstabel (tbimportmatrijs) aangemaakt worden. Onder deze importmatrijs hangen importmatrijsregels die ook aangemaakt moeten worden.
Voordat deze insert acties ingericht worden, wordt eerst uitgelegd hoe het bestand met de in te lezen data eruit moet zien. Daarna wordt een voorbeeld getoond hoe men vaste sleutelwaardes kan gebruiken benodigd voor de insert actie.
Algemene uitleg bulk import
De algemene uitleg van de generieke bulk import vindt men hier: Generieke bulk import
Bestand met in te lezen gegevens
Zoals beschreven op pagina Generieke bulk import is er voor iedere generieke bulk importactie een bestand benodigd met daarin de gegevens die ingelezen moeten worden.
In het voorbeeld op deze pagina wordt uitgegaan van een CSV bestand met daarin een kopregel die aangeeft welke kolom, welke waarde voorstelt en daaronder regels met de gegevens voor de aan te maken toezichtzaken. De kopregel is niet verplicht: men mag ook gelijk beginnen met vanaf de eerste regel de in te lezen waardes.
De programmatuur gaat straks voor iedere regel (minus de kopregel in dit geval) een insert actie proberen uit te voeren. Het is dus de bedoeling dat in dit voorbeeld per regel, alle informatie staat voor één regel aanmaken in tbomgvergunning. Er is in dit voorbeeld gekozen voor de productvelden vullen van tbomgvergunning. Uitgaande van maar één product per zaak.
Aangezien de toezichtzaken moeten worden aangemaakt bij bestaande inrichtingen, zal er voor ieder aan te maken toezichtzaak verwezen moeten worden naar de inrichting waaronder deze moet worden aangemaakt. Dat betekent dat er in het bestand waarin de in te lezen gegevens staan, voor iedere regel een kolom bestaat met (bijvoorbeeld) het inrichtingnummer van de inrichting/locatie dossier waaronder de inspectie aangemaakt moet worden.
Zie voorbeeldplaatje hieronder voor hoe de CSV er uit ziet:
Eventueel zoeksleutels aanmaken
Voordat de import matrijs wordt ingericht moet er eerst worden nagedacht over hoe er naar de bestaande inrichtingen/locatiedossiers in OpenWave verwezen wordt.
Immers de dnkey van deze inrichtingen/locatiedossiers (tbmilinrichtingen.dnkey) is benodigd voor het kunnen aanmaken van de toezichtzaken onder de juiste inrichting/locatiedossier.
Dit kan op twee manieren:
- via een select statement in de importmatrijsregels wordt de dnkey opgehaald met behulp van de waarde van de bestandskolom met daarin het unieke inrichtingnummer
- via de importmatrijsregels wordt de dnkey opgehaald met behulp van de vaste sleutelwaarde voor de inrichting uit tabel tbimportsleutels
In het voorbeeld wat hier beschreven wordt, gaat het om een sleutelwaarde ophalen uit de tabel tbimportsleutels. Dat betekent dat er bij het inrichten rijtjes moeten worden aangemaakt voor alle inrichtingen/locatiedossiers in het bestand.
Via tegel Import sleutels in het beheerportaal-nieuw klikken op de plus-knop in de lijst geeft de wizard voor het aanmaken van een nieuwe zoeksleutel.
Daarin wordt gevuld:
- Naam van (moeder)tabel. Het gaat om een verwijzing naar een inrichting/locatiedossier dus hier moet gekozen worden
tbmilinrichtingen - Pointer/keywaarde uit (moeder)tabel. Dit is de dnkey van de inrichting/locatiedossier. De waarde kan men vinden als men in de URL kijkt als men op het inrichtingportaal in OpenWave staat. Bijvoorbeeld als de URL eindigt op :
/#inrichtingdetail/24588dan is de pointer/keywaarde die gevuld moet worden22542 - Zoeksleutel. Hier wordt de waarde gevuld waarop later gezocht gaat worden. In het voorbeeld is dit het inrichtingnummer.
De waardes in de wizard worden zo gevuld dat men uiteindelijk het volgende rijtjes aan zoeksleutels heeft:
Import matrijs + regels aanmaken
Import matrijs Toezichtzaken
Na het eventueel aanmaken van de zoeksleutels, kunnen de import matrijzen aangemaakt worden.
Afhankelijk van wat men wilt doen, moet men 1 of meer matrijzen aanmaken. In het voorbeeld dat hier beschreven wordt, is de gewenste actie rijen aanmaken in tbomgvergunning. Omdat dit om een insert in een enkele tabel gaat, betekent dit dat er ook maar één matrijs hoeft te worden aangemaakt.
De import matrijzen worden aangemaakt via de plus-knop in lijst van Import matrijzen, deze zit onder de tegel Import matrijzen in het beheerportaal-nieuw.
De wizard zal vragen om:
- Naam van de matrijs: mag men zelf bepalen. In het beschreven voorbeeld is de waarde
Lon_oudeImportTest_toezicht_CSV - Doeltabel: de tabel waarop regels worden ingelezen. De waarde voor het voorbeeld is
tbomgvergunning - Type van te importeren file: vooralsnog alleen de keuze uit Excel of CSV. In het voorbeeld gaat het om een CSV file dus moet de waarde zijn
csv-bestand - Doel van import: vooralsnog alleen de keuze voor insert.
- Hoofdmatrijs: geeft aan of het de start is van een generieke bulk importactie. In dit geval is dat zo dus moet dit vakje worden aangevinkt.
Na het doorlopen van de wizard, worden de gegevens van de matrijs aangevuld in het detailscherm. Daar kunnen niet verplichte gegevens gevuld worden zoals bijvoorbeeld een omschrijving om toe te lichten wat deze insert actie doet, maar zijn ook een aantal relevante zaken nog te vullen.
In het voorbeeldbestand bestaat een kopregel, dit betekent dat de programmatuur straks pas vanaf de tweede regel het bestand moet doorlopen. Dit wordt aangegeven door veld beginregel te vullen met waarde 2.
De velden in het blok Indien csv moeten gevuld worden want er wordt in dit voorbeeld een CSV bestand gebruikt voor de in te lezen data.
In het veld:
- Scheidingsteken tussen de kolommen moet waarde
,staan: in het CSV bestand is dit het teken dat de kolommen scheidt. - Begrenzingsteken waarde in kolom mag leeg blijven: er zitten geen tekens om de waardes binnen een kolom in dit voorbeeld CSV bestand.
- Nullwaardes ook begrensd? mag uitgevinkt blijven: hoeft alleen aangevinkt als eventuele null/lege waardes omgrenzingstekens zouden bevatten.
De velden in het blok Indien xslx mogen leeggelaten worden: deze zijn alleen belangrijk indien het om een Excel bestand zou gaan.
Het veld met de waarde voor ID van de vervolgmatrijs is in dit geval leeg: er is geen vervolg importactie in dit voorbeeld.
Zie hieronder hoe de import matrijs gedefinieerd is voor het voorbeeld. In het plaatje ziet men ook de importmatrijsregels (in de Kolommen-lijst). Dit wordt nader toegelicht onder het plaatje:
Matrijsregels aanmaken
Na het aanvullen van de detailgegevens van de import matrijs, worden in hetzelfde scherm via de lijst Kolommen de importmatrijsregels aangemaakt. Deze lijst is de beschrijving van hoe een insert actie op tbomgvergunning er uit komt te zien. Voor ieder veld in tbomgvergunning benodigd voor de insert actie, moet een regel bestaan in tbimportmatrijsregels.
De matrijsregels worden aangemaakt via de plus-knop in de Kolommen-lijst.
De wizard zal vragen om:
- Kolomnaam in doeltabel: drop down keuzelijst van alle mogelijke velden uit (in dit geval) tbomgvergunning EN de waarde IkBenSleutelveld. Voor het voorbeeld kiezen we voor waarde
dnkeyperceeladressen - Kolomnummers(s) met bewerking uit importbestand: de bron/kolombewerking staat hier. In het voorbeeld zullen we de dnkey van het perceeladres gaan ophalen bij de inrichting/locatiedossier waaronder de toezichtzaak moet worden aangemaakt. Hiervoor moeten we een select statement schrijven dat bij de juiste tbmilinrchtingen.dnkey, de dnkeyperceeladressen ophaalt. De tbmilinrchtingen.dnkey gaan we ophalen uit de sleuteltabel: hiervoor hebben we eerder als zoeksleutel in tbimportsleutels het inrichtingnummer opgeslagen. Het inrichtingnummer van de inrichting/locatiedossier staat vervolgens in kolom 1 van het CSV bestand. De uiteindelijke waarde voor dit veld in de matrijsregel wordt dan
select dnkeyperceeladressen from tbmilinrichtingen where dnkey = (select dvpointer from tbimportsleutels where dvtabelnaam = 'tbmilinrichtingen' and dvimportsleutel = '{kolom:1}') :: int4 - Sleuteltabelnaam voor tbimportsleutels: moet alleen gevuld worden indien een vaste sleutelwaarde moet opgehaald worden uit tbimportsleutels. Dat is voor dnkeyperceeladressen niet zo dus dit veld mag leeggelaten worden.
Na het aanmaken van de regel, is de definitie te bekijken/aan te passen via het detailscherm. Zie plaatje voor het detailscherm van het voorbeeld:
Voor alle overige velden in tbomgvergunning die benodigd zijn (in ons voorbeeld zijn dat ddaanvraag, dnkeymilinrichtingen, dnkeyperceeladressen, dnkeyproducten, dnkeyproductklanten, dnkeyproductwkp, dnkeysoortomgverg, dnkeysubproducten, dnkeyteamszaakverantw, dvaanvraagnaam, dvcodeaccountman en dvzaakcode) maken we ook een regel aan in de importmatrijsregeltabel.
Zie het detailscherm plaatje van de import matrijs voor uiteindelijke overzicht van alle regels.
De inrichting die hier getoond wordt, leidt tot de volgende uiteindelijke insert actie voor iedere regel in het CSV bestand:
Insert actie in tbomgvergunning
insert into tbomgvergunning(ddaanvraag, dnkeymilinrichtingen, dnkeyperceeladressen, dnkeyproducten, dnkeyproductklanten, dnkeyproductwkp, dnkeysoortomgverg, dnkeysubproducten, dnkeyteamszaakverantw, dvaanvraagnaam, dvcodeaccountman, dvzaakcode)
values (kolom 3 uit CSV bestand, de gevonden keywaarde in tbimportsleutel voor zoeksleutel = {kolom:1} bij tabel tbmilinrichtingen, select dnkeyperceeladressen from tbmilinrichtingen where dnkey = (select dvpointer from tbimportsleutels where dvtabelnaam = 'tbmilinrichtingen' and dvimportsleutel = '{kolom:1}') :: int4, kolom 7 uit CSV bestand, kolom 9 uit CSV bestand, kolom 10 uit CSV bestand, kolom 4 uit CSV bestand, kolom 8 uit CSV bestand, kolom 6 uit CSV bestand, kolom 2 uit CSV bestand, kolom 5 uit CSV bestand, kolom 11 uit CSV bestand)
;
Draaien van bulk importactie
Na het inrichten kan de bulk importactie uitgevoerd gaan worden.
Klik op de tegel Start generieke bulk import in het operationsportaal onder kolom Import.
De wizard vraagt om een hoofdmatrijs te kiezen. Kies hier voor de matrijs van de toezichtzaken en klik op volgende.
Wijs het bestand aan waarin de in te lezen gegevens staan en klik op uitvoeren.
Op de achtergrond worden nu de rijen aangemaakt in tbomgvergunning.
De voortgang van de bulk importactie is in te zien via de operationslog tegel.
In de lijst van de operationslog gaan we naar de zojuist aangemaakte regel met code GeneriekeBulkImport.
Linksonder via de button Logboek is terug te zien welke importmatrijs verwerkt is en of er regels niet aangemaakt konden worden.
Tevens kan men hier het bestand wat bij deze import is gekozen nog downloaden via de knop Download bestand van tempmap.
In de Audit log is tevens de voortgang in te zien: voor iedere regel die zojuist is aangemaakt in tbomgvergunning, is ook een regel aangemaakt in tbaudit.
Indien men de importactie terug wilt draaien (dus de aangemaakte regels in tbomgvergunning weer verwijderen) dan kan dat via de wizard achter knop VerwijderBulkImportregels linksonder in de Audit lijst. Zie voor een gedetailleerde uitleg kopje Terugdraaien van importactie op pagina Generieke bulk import.



