Voorbeeld: Inspecties aanmaken bij inrichtingen/locatiedossiers
Op deze pagina wordt stap voor stap beschreven hoe men een generieke bulk importactie in kan richten die inspecties zal aanmaken bij inrichtingen/locatiedossiers. Onder deze inspecties zal vervolgens een eerste bezoek, en een eerste product worden aangemaakt.
Dat betekent dat deze bulk importactie uit drie verschillende acties bestaat:
- insert in tabel tbinspecties
- insert in tabel tbinspbezoeken
- insert in tabel tbzaakproducten
Algemene uitleg bulk import
De algemene uitleg van de generieke bulk import vindt men hier: Generieke bulk import
Voor de bovengenoemde insert acties moet er een regel in de importmatrijstabel (tbimportmatrijs) aangemaakt worden. Onder deze importmatrijzen 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 acties.
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 Excel bestand met daarin een kopregel die aangeeft welke kolom, welke waarde voorstelt en daaronder regels met de gegevens voor de aan te maken inspecties en bezoeken. De kopregel is niet verplicht: men mag ook gelijk beginnen met vanaf de eerste regel de in te lezen waardes.
Aangezien de inspecties moeten worden aangemaakt bij bestaande inrichtingen, zal er voor ieder aan te maken inspectie 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.
Het bestand mag zo zijn dat de gegevens voor de inspecties op het eerste tabblad staan, en de gegevens voor de bezoeken op een ander tabblad. Maar dat hoeft niet.
In het hier beschreven voorbeeld wordt uitgegaan van dat iedere regel in het bestand (minus de kopregel) gegevens bevat benodigd voor zowel het aanmaken van een inspectietraject, als het bezoek en eerste product onder deze inspectie.
Zie voorbeeldplaatje hieronder voor hoe de Excel er uit ziet:
Eventueel zoeksleutels aanmaken
Voordat de importmatrijzen worden 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 inspecties 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/22542dan 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 inspecties
Na het eventueel aanmaken van de zoeksleutels, kunnen de import matrijzen aangemaakt worden.
Men begint met het aanmaken van de import matrijs voor de start van de importactie (zogenaamde hoofdimportmatrijs). Dat is in dit geval de matrijs voor het aanmaken van regels in tbinspecties.
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_oudeImport_test_inspecties - Doeltabel: de tabel waarop regels worden ingelezen. De waarde voor het voorbeeld is
tbinspecties - Type van te importeren file: vooralsnog alleen de keuze uit Excel of CSV. In het voorbeeld gaat het om een Excel file dus moet de waarde zijn
excel-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. Daarnaast is Naam werkblad voor een Excel-file interessant in het geval dat er meerdere tabbladen zijn. In dit voorbeeld is het niet relevant en wordt het veld Naam werkblad leeggelaten. Dat betekent dat het eerste tabblad in het bestand wordt gezien als bevat de in te lezen gegevens.
De waardes voor een CSV bestand zijn hier uiteraard leeg. Het veld met de waarde voor ID van de vervolgmatrijs moet wel nog gevuld worden maar dat kan pas nadat deze vervolgmatrijs is aangemaakt. Dit komt later terug bij het onderstaand kopje Import matrijs bezoeken.
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:
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 tbinspecties er uit komt te zien. Voor ieder veld in tbinspecties benodigd voor de insert actie, moet een regel bestaan in tbimportmatrijsregels.
De matrijsregels worden aangemaakt via de plus-knop in Kolommen-lijst.
De wizard zal vragen om:
- Kolomnaam in doeltabel: drop down keuzelijst van alle mogelijke velden uit (in dit geval) tbinspecties EN de waarde IkBenSleutelveld. Voor het voorbeeld kiezen we voor waarde
dnkeyinspaanleiding - Kolomnummers(s) met bewerking uit importbestand: de bron/kolombewerking staat hier. In het voorbeeld staat de code van de inspectieaanleiding in kolom 2 van de Excel-file. De dnkey van de code gaan we ophalen met een select statement. De waarde wordt dan
select dnkey from tbinspaanleiding where upper(dvcode) = '{kolom:2}' - Sleuteltabelnaam voor tbimportsleutels: moet alleen gevuld worden indien een vaste sleutelwaarde moet opgehaald worden uit tbimportsleutels. Dat is voor dnkeyinspaanleiding 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 tbinspecties die benodigd zijn (in ons voorbeeld zijn dat ddrappel, dnkeyinspaanleiding, dnkeyinsponderwerpen, dnkeymilinrichtingen en dvcodemedewerkers) maken we ook een regel aan in de importmatrijsregeltabel.
Tevens moet er 1 importmatrijsregel aangemaakt worden die ervoor zorgt dat er na iedere insert in tbinspecties, de dnkey van de aangemaakte kaart in tbinspecties als vaste sleutelwaarde wordt opgeslagen in tbimportsleutels.
Dit doet men ook via de importmatrijsregel wizard maar dan wordt de wizard als volgt gevuld:
- Kolomnaam in doeltabel: kies voor
IkBenSleutelveld - Kolomnummers(s) met bewerking uit importbestand: in het voorbeeld krijgt dit waarde
{kolom:1} || ':' || {kolom:2} || ':' || {kolom:3}. Dit betekent dat de inhoud van deze kolommen uit de Excel-file, gescheiden door dubbele punt teken, samen de waarde van de zoeksleutel gaan vormen - Sleuteltabelnaam voor tbimportsleutels: leeglaten
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 Excel bestand:
Insert actie in tbinspecties
insert into tbinspecties(ddrappel,dnkeyinspaanleiding,dnkeyinsponderwerpen,dnkeymilinrichtingen,dvcodemedewerkers)
values (kolom 4 uit Excel bestand, select dnkey from tbinspaanleiding where upper(dvcode) = '{kolom:2}', kolom 3 uit Excel bestand, de gevonden keywaarde in tbimportsleutel voor zoeksleutel = {kolom:1} bij tabel tbmilinrichtingen,kolom 5 uit Excel bestand)
;
En, indien het aanmaken van de regel in tbinspecties gelukt is, tot een insert in tbimportsleutels. Hier wordt de dnkey van de net aangemaakte inspectie opgeslagen als vaste sleutelwaarde zodat bij de vervolgactie van aanmaken van inspectiebezoeken, er verwezen kan worden naar de aangemaakte inspectie dnkey. De insert in tbimportsleutels ziet er als volgt uit:
Insert actie in tbimportsleutels
insert into tbimportsleutels(dvtabelnaam,dvpointer,dvimportsleutel)
values (doeltabel van de importmatrijs dus in het voorbeeld: tbinspecties, de dnkey van de net aangemaakte regel in tbinspecties, de waarde van de inhoud van {kolom:1} || ':' || {kolom:2} || ':' || {kolom:3})
;
Import matrijs bezoeken
Nadat het inrichten van de hoofdmatrijs voor inspecties aanmaken klaar is, wordt de eerstvolgende vervolgmatrijs aangemaakt: de import matrijs voor aanmaken van inspectiebezoeken.
De import matrijs voor bezoeken aanmaken gebeurd weer via de plus-knop in lijst van Import matrijzen.
De wizard wordt als volgt gevuld:
- Naam van de matrijs: mag men zelf bepalen. In het beschreven voorbeeld is de waarde
Lon_oudeImportTest_bezoeken - Doeltabel: de tabel waarop regels worden ingelezen. De waarde voor het voorbeeld is
tbinspbezoeken - Type van te importeren file: vooralsnog alleen de keuze uit Excel of CSV. In het voorbeeld gaat het om een Excel file dus moet de waarde zijn
excel-bestand. Wordt eigenlijk niet naar gekeken bij een vervolgmatrijs: het bij de hoofdmatrijs aangegeven bestandstype is leidend. - 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 NIET zo dus moet dit vakje leeg blijven.
In het detailscherm vullen we eventueel nog de omschrijving. Tevens moet ook hier de beginregel worden gevuld. Dit doen we weer met waarde = 2.
Na het aanmaken van de import matrijs, moet de relatie nog aangegeven worden met de hoofdmatrijs. Dit om ervoor te zorgen dat bij het draaien van de generieke bulk import de programmatuur weet dat na het afronden van aanmaken van de regels in tbinspecties, er een vervolgproces is namelijk het aanmaken van inspectiebezoeken.
Ga terug naar het detailscherm van de importmatrijs voor inspecties en kies hier in het veld ID van de vervolgmatrijs uit de keuzelijst voor de net aangemaakte import matrijs voor bezoeken. Het vullen van dit veld zorgt automatisch voor het vullen van veld ID van de parent bij de import matrijs voor bezoeken aanmaken met de dnkey van de hoofdmatrijs (dus die van aanmaken inspecties).
Zie het uiteindelijke voorbeeld van het detailscherm van de import matrijs voor bezoeken aanmaken:
Uiteraard komt er straks ook een vervolg ID bij deze importmatrijs maar die kan pas gevuld worden zodra de import matrijs voor aanmaken van product bestaat.
De regels in tbimportmatrijsregels worden vervolgens aangemaakt zoals men ziet in bovenstaand voorbeeldplaatje.
De inrichting die hier getoond wordt, leidt tot de volgende uiteindelijke insert actie voor iedere regel in het Excel bestand:
Insert actie in tbinspbezoeken
insert into tbinsbezoeken (ddgepland,dnkeyinspecties,dnkeyinspsoortbezoek,dvcodemedewerkers)
values (kolom 7 uit Excel bestand, de gevonden keywaarde in tbimportsleutel voor zoeksleutel = {kolom:1} || ':' || {kolom:2} || ':' || {kolom:3} bij tabel tbinspbezoeken, kolom 6 uit Excel bestand, kolom 8 uit Excel bestand)
;
Import matrijs Product
Nadat het inrichten van de vervolgmatrijs voor inspectiebezoeken aanmaken klaar is, wordt de volgende (en tevens laatste) vervolgmatrijs aangemaakt: de import matrijs voor aanmaken van producten (tbzaakproducten).
De import matrijs voor producten aanmaken gebeurd weer via de plus-knop in lijst van Import matrijzen.
De wizard wordt als volgt gevuld:
- Naam van de matrijs: mag men zelf bepalen. In het beschreven voorbeeld is de waarde
Lon_oudeImport_test_inspZaakprod - Doeltabel: de tabel waarop regels worden ingelezen. De waarde voor het voorbeeld is
tbzaakproducten - Type van te importeren file:
excel-filekiezen - 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 NIET zo dus moet dit vakje leeg blijven.
In het detailscherm eventueel nog de omschrijving vullen en niet vergeten weer de beginregel te vullen met waarde = 2.
Na het aanmaken van de import matrijs zal er bij de import matrijs van inspectiebezoeken aanmaken, aangegeven moeten worden dat deze als vervolgmatrijs de net aangemaakte matrijs voor producten heeft.
Ga terug naar het detailscherm van de import matrijs voor bezoeken en kies hier in het veld ID van de vervolgmatrijs uit de keuzelijst voor de net aangemaakte import matrijs voor producten. Het vullen van dit veld zorgt automatisch voor het vullen van veld ID van de parent bij de import matrijs voor producten aanmaken met de dnkey van de hoofdmatrijs (dus die van aanmaken inspecties).
Zie het uiteindelijke voorbeeld van het detailscherm van de import matrijs voor producten aanmaken:
De regels in tbimportmatrijsregels worden vervolgens aangemaakt zoals men ziet in bovenstaand voorbeeldplaatje.
De inrichting die hier getoond wordt, leidt tot de volgende uiteindelijke insert actie voor iedere regel in het Excel bestand:
Insert actie in tbzaakproducten
insert into tbzaakproducten(dnkeyinspecties,dnkeyproducten,dnkeyproductklanten,dnkeyproductwkp,dnkeysubproducten,dvcodemuteerder)
values (de gevonden keywaarde in tbimportsleutel voor zoeksleutel = {kolom:1} || ':' || {kolom:2} || ':' || {kolom:3} bij tabel tbinspbezoeken, kolom 9 uit Excel bestand, kolom 11 uit Excel bestand, kolom 12 uit Excel bestand, kolom 10 uit Excel bestand, kolom 5 uit Excel bestand)
;
Dit is de laatste actie benodigd voor het inrichten van deze bulk importactie waarbij er bij bestaande inrichtingen/locatiedossiers inspecties, met eerste bezoek en eerste product worden aangemaakt.
Indien men tevreden is met de inrichting, kan men op gewenste datum en tijd (voor nu nog handmatig) de bulk importactie gaan starten.
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 inspecties 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 tbinspecties, tbimportsleutels, tbinspbezoeken en tbzaakproducten.
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 importmatrijzen verwerkt zijn 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 tbinspecties, tbimportsleutels, tbinspbezoeken en tbzaakproducten, is ook een regel aangemaakt in tbaudit.
Indien men de importactie terug wilt draaien (dus de aangemaakte regels in tbinspecties, tbimportsleutels, tbinspbezoeken en tbzaakproducten 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.




