openwave:1.33:applicatiebeheer:probleemoplossing:programmablokken:generiekebulkimport

Verschillen

Dit geeft de verschillen weer tussen de geselecteerde revisie en de huidige revisie van de pagina.

Link naar deze vergelijking

Beide kanten vorige revisie Vorige revisie
Volgende revisie
Vorige revisie
openwave:1.33:applicatiebeheer:probleemoplossing:programmablokken:generiekebulkimport [2025/10/30 14:42] – [Geaccepteerde definities van bron/kolom aanwijzing van importbestand] Lonneke van Dijkopenwave:1.33:applicatiebeheer:probleemoplossing:programmablokken:generiekebulkimport [2025/10/31 13:55] (huidige) – [Bestand met de in te lezen data] Marc Pullens
Regel 22: Regel 22:
 </adm> </adm>
  
-===== Inrichten van bulk import proces ===== +Op deze pagina wordt in het algemeen uitgelegd hoe de generieke bulk importactie werkt en hoe deze acties ingericht kunnen worden. 
-Een generieke bulk importactie zal eerst ingericht moeten worden alvorens deze gestart kan worden. Het inrichten vindt plaats in beheerportaal(nieuw) onder kolom //Dieper beheer//. Hiervoor zijn de tegels **Import Matrijzen** en **Import sleutels** benodigd. Deze zijn standaard toegewezen aan medewerkers met beheersniveau > 98. Voor tegeldefinities zie pagina's [[openwave:1.33:applicatiebeheer:probleemoplossing:portalen_en_moduleschermen:beheerportaal_nieuw:tegels_kolom_dieperbeheer:import_matrijzen|Import matrijzen]] en  [[openwave:1.33:applicatiebeheer:probleemoplossing:portalen_en_moduleschermen:beheerportaal_nieuw:tegels_kolom_dieperbeheer:import_sleutels|Import Sleutels]].+Tevens zijn er twee voorbeeldsituaties uitgeschreven op onderliggende pagina'in de DokuWiki: daar staat uitgeschreven hoe men in tbimportmatrijs, tbimportmatrijsregels en tbimportsleutel de inrichting moet maken om de voorbeeld bulk importactie te kunnen uitvoeren.\\ 
 +Zie voor deze voorbeelden:  
 +  * [[openwave:1.33:applicatiebeheer:probleemoplossing:programmablokken:generiekebulkimport:voorbeeld_inspecties|Voorbeeld: Inspecties aanmaken bij inrichtingen]]  
 +  [[openwave:1.33:applicatiebeheer:probleemoplossing:programmablokken:generiekebulkimport:voorbeeld_toezichtzaken|VoorbeeldToezicht zaken aanmaken bij inrichtingen]] 
  
-Onder de tegel //Import Matrijzen// wordt ingericht in welke tabel(len) een importactie regels gaat inlezen en hoe de programmatuur de data moet gaan opslaan in deze tabel(len). Voor de inrichting kan het mogelijk zijn, afhankelijk van wat men wilt, om met vaste sleutelwaardes te werken. Deze sleutelwaardes definieert men of vooraf bij de importsleuteltabel, of ze worden ingelezen in de importsleuteltabel tijdens een generieke bulk importactie. De importsleutelfunctionaliteit wordt verderop uitgelegd onder kopje //Import sleutels// op deze pagina.  
  
-Hier wordt eerst uitgelegd hoe de importmatrijzen gevuld moeten worden om een importactie in te richten. Afhankelijk van wat er gewenst is zal men voor een importactie, één hoofdactie inrichten met eventueel vervolgacties. Zowel de hoofdactie als vervolgacties zijn aparte regels in de tabel tbimportmatrijs. Bij het definiëren van deze regels in tbimportmatrijs wordt de hoofd- en vervolgrelatie opgegeven. Samen vormen deze regels dan één generieke bulk importactie. 
  
-Om de regels aan te maken in tbimportmatrijs moet men het proces van de gewenste importactie uitwerken: +===== Inrichten van bulk import proces ===== 
-  * wat moet de importactie doen? Bijvoorbeeld stel men wilt inrichtingen aanmaken en daaronder inspecties aanmaken en daaronder weer inspectiebezoeken. Dan zal ingericht moeten worden:+Een generieke bulk importactie zal eerst ingericht moeten worden alvorens deze gestart kan worden. Het inrichten vindt plaats in beheerportaal(nieuw) onder kolom //Dieper beheer//. Hiervoor zijn de tegels **Import Matrijzen** en **Import sleutels** benodigd. Deze zijn standaard toegewezen aan medewerkers met beheerniveau > 98. Voor tegeldefinities zie pagina's [[openwave:1.33:applicatiebeheer:probleemoplossing:portalen_en_moduleschermen:beheerportaal_nieuw:tegels_kolom_dieperbeheer:import_matrijzen|Import matrijzen]] en  [[openwave:1.33:applicatiebeheer:probleemoplossing:portalen_en_moduleschermen:beheerportaal_nieuw:tegels_kolom_dieperbeheer:import_sleutels|Import Sleutels]]. 
 + 
 +Voordat men begint met het inrichten van een generieke bulk importactie moet men het proces van de gewenste importactie uitwerken: 
 +  * wat moet de importactie doen? Stel men wilt bijvoorbeeld inrichtingen aanmaken met daaronder inspecties en daaronder weer inspectiebezoeken. Dan zal ingericht moeten worden:
     * een hoofdactie voor het aanmaken van inrichtingen (nieuwe regel in tbimportmatrijs met dlhoofdmatrijs = T)     * een hoofdactie voor het aanmaken van inrichtingen (nieuwe regel in tbimportmatrijs met dlhoofdmatrijs = T)
     * een vervolgactie voor aanmaken inspecties onder de aangemaakte inrichtingen (nieuwe regel in tbimportmatrijs met dlhoofdmatrijs = F)     * een vervolgactie voor aanmaken inspecties onder de aangemaakte inrichtingen (nieuwe regel in tbimportmatrijs met dlhoofdmatrijs = F)
-    * bij de hoofdmatrijs als vervolgmatrijs kiezen de net aangemaakte vervolgactie voor inspecties aanmaken+    * bij de hoofdmatrijs als vervolgmatrijs kiezen de net aangemaakte vervolgactie voor het aanmaken van inspecties
     * een tweede vervolgactie voor aanmaken inspectiebezoeken onder de aangemaakte inspecties (nieuwe regel in tbimportmatrijs met dlhoofdmatrijs = F)     * een tweede vervolgactie voor aanmaken inspectiebezoeken onder de aangemaakte inspecties (nieuwe regel in tbimportmatrijs met dlhoofdmatrijs = F)
-    * bij de importmastrijs voor inspecties aanmaken als vervolgmatrijs kiezen de net aangemaakte vervolgactie voor bezoeken aanmaken+    * bij de importmatrijs voor het aanmaken van inspecties als vervolgmatrijs kiezende net aangemaakte vervolgactie voor het aanmaken van de inspectiebezoeken
   * welke gegevens zijn er nodig voor het kunnen aanmaken van regels in de tabellen?   * welke gegevens zijn er nodig voor het kunnen aanmaken van regels in de tabellen?
-    * dus in bovengenoemd voorbeeld: opzoeken van de verplichte, eventueel aangevuld met gewenste te vullenvelden in tbmilinrichtingen, tbinspecties en tbinspbezoeken +    * dus in bovengenoemd voorbeeld: opzoeken van de verplichte velden, eventueel aangevuld met de overige gewenste te vullen velden in tbmilinrichtingen, tbinspecties en tbinspbezoeken
-    * voor ieder opgezocht veld een regel aanmaken in tbimportmatrijsregels (via blok **Kolommen** in detailscherm van de importmatrijs): +
-      * via de plusknop maakt men voor ieder veld, één kaartje aan in tbimportmatrijsregels +
-        * in de wizard kiest men de naam van het veld uit de tabel waarin ingelezen moet worden +
-        * de kolomnummers(s) met bewerking uit importbestand (zie kopje verderop op deze pagina //Geaccepteerde definities van bron/kolom aanwijzing van importbestand//+
-        * eventueel de sleuteltabelnaam uit tbimportsleutels (indien deze gevuld is dan wordt de waarde voor het gekozen veld opgehaald uit tbimportsleutels). Is meestal alleen gevuld indien men een foreign key verwijzing op wilt halen +
-      * in het detailscherm van een importmatrijsregel kan men indien nodig de definitie nog wijzigen+
   * de benodigde gegevens beschikbaar stellen in een Excel of CSV file   * de benodigde gegevens beschikbaar stellen in een Excel of CSV file
     * dit kan bijvoorbeeld d.m.v. rapport(en) draaien en naar Excel exporteren     * dit kan bijvoorbeeld d.m.v. rapport(en) draaien en naar Excel exporteren
     * of indien men van de functionaliteit [[openwave:1.33:applicatiebeheer:probleemoplossing:programmablokken:bulkinspzaken|Bulk aanmaken van inspecties/toezichtzaken]] gebruik maakt kan men de daar gebruikte Excel mallen gebruiken     * of indien men van de functionaliteit [[openwave:1.33:applicatiebeheer:probleemoplossing:programmablokken:bulkinspzaken|Bulk aanmaken van inspecties/toezichtzaken]] gebruik maakt kan men de daar gebruikte Excel mallen gebruiken
  
-Er wordt een voorbeeldsituatie uitgeschreven voor zowel een bulk importactie gebaseerd op een Excel file als een bulk importactie gebaseerd op een CSV file. +Na het uitdenken van het proces kan men starten met het inrichten van de gewenste bulk importactie. Te beginnen met het bestand wat men wilt gaan uploaden bij deze importactie. 
-Hier wordt concreet uitgeschreven hoe men in tbimportmatrijs, tbimportmatrijsregels en tbimportsleutel de inrichting moet maken om de voorbeeld bulk importactie te kunnen uitvoeren. +==== Bestand met de in te lezen data ==== 
-Zie voor deze voorbeelden: <hier komt nog een link> +Het bestand met daarin de in OpenWave in te lezen data mag in principe zo opgesteld zijn als men zelf wilt.\\ 
- +Het is daarbij belangrijk om te weten in welke (combinatie van) kolommen, welke data staat die men wilt inlezen. Dit is benodigd voor het correct inrichten van een bulk importactie in OpenWave. \\ 
-==== File met de in te lezen data ==== +Het zal in de praktijk voorkomen dat men de basis van het bestand blijft gebruiken voor gelijke importacties. Stel dat men een import heeft ingericht voor het aanmaken van inspecties bij inrichtingen, dan zal de opzet van het bestand dat men upload steeds hetzelfde zijn (in kolom1 staat dan bijv. altijd de waarde voor inspectieaanleiding) maar de daadwerkelijke waarden per kolom/regel zullen veranderen.\\ 
-Dit is een file die qua inhoud steeds zal wijzigen voor iedere importactie: immers eenmaal ingelezen zal men niet opnieuw dezelfde data in willen lezen (m.u.v. opnieuw draaien van importactie indien men de importactie heeft teruggedraaid. Zie kopje //Terugdraaien van import actie// op deze pagina). Vandaar dat bij iedere importactie gevraagd wordt aan diegene die de actie start, om het juiste bestand aan te wijzen. +De inhoud van het bestand zal wel wijzigen voor iedere importactie: immers eenmaal ingelezen, dan zal men niet opnieuw dezelfde data in willen lezen (m.u.v. het opnieuw draaien van een importactie indien men de importactie heeft teruggedraaid. Zie kopje //Terugdraaien van import actie// op deze pagina). Vandaar dat bij iedere importactie gevraagd wordt aan diegene die de actie start, om het juiste bestand aan te wijzen.\\
-Het zal in de praktijk voorkomen dat men de basis van het bestand blijft gebruiken voor gelijke importacties. Stel dat men een import heeft ingericht voor inspecties aanmaken bij inrichtingen, dan zal de opzet van het bestand wat men upload steeds gelijk zijn (in kolom1 staat bijv. altijd de waarde voor inspectieaanleiding) maar de daadwerkelijke waardes per kolom/regel zal wijzigen.+
  
-Voor het inrichten van iedere generieke bulk importactie zijn een aantal zaken van belang om te weten die met de file te maken hebben: +Voor het inrichten van een generieke bulk importactie is een aantal zaken van belang om te weten die met de file te maken hebben: 
-  * opzet van bestand waarin de in te lezen waardes staan (in welke kolom van de CSV of Excel staat welke waarde) +  * de opzet van het bestand waarin de in te lezen waardes staan (in welke kolom van de CSV of Excel staat welke waarde) 
-  * bestandtype van de file (CSV of Excel) +  * het bestandtype van de file (CSV of Excel) 
     * indien CSV dan zal opgegeven worden bij het inrichten in tbimportmatrijs:     * indien CSV dan zal opgegeven worden bij het inrichten in tbimportmatrijs:
-      * CSVlimit: met welk teken de kolommen van elkaar gescheiden zijn (indien niet opgegeven gaat programmatuur uit van default teken: puntkomma) +      * CSVlimit: met welk teken de kolommen van elkaar gescheiden zijn (indien niet opgegeven, dan gaat de programmatuur uit van het default teken: puntkomma) 
-      * CSVQuote (omgrenzingswaarde): tussen welk teken de waarde binnen een kolom staan (indien niet opgegeven gaat programmatuur uit dat er geen omgrenzingswaarde is) +      * CSVQuote (het begrenzingsteken): tussen welke tekens de waarde binnen een kolom staan (indien niet opgegeven gaat programmatuur uit dat er geen begrenzingsteken is) 
-      * of null/lege waardes in een kolom ook omsloten zijn door het bovengenoemde omgrenzingsteken+      * of null/lege waardes in een kolom ook omsloten zijn door het bovengenoemde begrenzingsteken
     * indien Excel dan kan men met verschillende werkbladen werken:     * indien Excel dan kan men met verschillende werkbladen werken:
-      * indien dit zo is dan kan per importmatrijs opgegeven worden de naam van het werkblad waar de programmatuur naar moet kijken +      * indien dit zo is dan kan per importmatrijs opgegeven worden wat de naam is van het werkblad waar de programmatuur naar moet kijken 
-      * indien dit niet zo is dan kan bij de importmatrijs het veld voor werkblad leeggelaten worden: de programmatuur kijkt dan altijd naar het eerste tabblad van de Excel file+      * indien dit niet zo is dan kan bij de importmatrijs het veld voor het werkblad leeggelaten worden: de programmatuur kijkt dan altijd naar het eerste tabblad van de Excel file
   * de beginregel van de file (zowel bij Excel als CSV van toepassing):   * de beginregel van de file (zowel bij Excel als CSV van toepassing):
     * indien men gebruik maakt van kopregels dan moet per importmatrijs aangegeven worden vanaf welke regel de programmatuur de file moet gaan verwerken (de eerste regel waar de daadwerkelijke data staat om ingelezen te worden)     * indien men gebruik maakt van kopregels dan moet per importmatrijs aangegeven worden vanaf welke regel de programmatuur de file moet gaan verwerken (de eerste regel waar de daadwerkelijke data staat om ingelezen te worden)
-    * indien men gelijk vanaf eerste regel in de file de data om ingelezen te worden heeft staan, dan hoeft men niet de beginregel te vullen bij de importmatrijs+    * indien men gelijk vanaf regel één in de file de data om ingelezen te worden heeft staan, dan hoeft men niet de beginregel te vullen bij de importmatrijs
  
-in de importmatrijstabel wordt dus aangegeven: +Met deze informatie kan men beginnen met het daadwerkelijk aanmaken van regels in de tabellen bedoelt voor het inrichten van bulk importacties. 
 +Daarbij wordt gestart met het aanmaken van een regel in de tabel tbimportmatrijs: 
 + 
 +==== Importmatrijs ==== 
 +Onder de tegel //Import Matrijzen// wordt ingericht in welke tabel(len) een importactie regels gaat inlezen en hoe de programmatuur de data moet gaan opslaan in deze tabel(len). \\ 
 +Afhankelijk van wat er gewenst is zal men voor een importactie, één hoofdactie inrichten EN eventueel vervolgacties. Zowel de hoofdactie als vervolgacties zijn aparte regels in de tabel tbimportmatrijs. Bij het definiëren van deze regels in tbimportmatrijs wordt de hoofd- en vervolgrelatie opgegeven. Samen vormen deze regels dan één generieke bulk importactie.\\ 
 +De regels in de tbimportmatrijs tabel worden aangemaakt via de plus-knop in de lijst van **Import matrijzen**. 
 + 
 +Bij het aanmaken van een regel in de importmatrijstabel wordt aangegeven: 
   * de naam van de import   * de naam van de import
   * of het om een hoofdmatrijs gaat (start van de import? dan hoofdmatrijs AAN, vervolgactie? dan hoofdmatrijs UIT)   * of het om een hoofdmatrijs gaat (start van de import? dan hoofdmatrijs AAN, vervolgactie? dan hoofdmatrijs UIT)
Regel 84: Regel 89:
     * naam van het werkblad      * naam van het werkblad 
  
-In de lijst met importmatrijsregels, zie blok **Kolommen** in het detailscherm van een importmatrijs, wordt vervolgens per veld benodigd voor de insert in de doeltabel een regel gemaakt. \\+In de lijst met importmatrijsregels, zie blok **Kolommen** in het detailscherm van een importmatrijs, wordt vervolgens per veld benodigd voor de insert in de doeltabel een regel gemaakt om te definiëren hoe de waardes voor de insert opgehaald moeten worden. 
 + 
 +==== Importmatrijsregels ==== 
 +In de lijst met importmatrijsregels wordt via de plus-knop een wizard gestart waarmee een importmatrijsregel wordt aangemaakt.\\ 
 +Er moeten evenzoveel importmatrijsregels worden aangemaakt als men velden benodigd heeft voor een insertactie.\\ 
 +Dus bijvoorbeeld als de doeltabel van de bovenliggende matrijs 4 verplichte velden heeft en 3 velden die men ook wilt meegeven, dan moeten er 7 regels worden aangemaakt in tbimpormatrijsregels.\\ 
 +Samen maken de importmatrijsregels onder één importmatrijs dan de definitie van één insert voor een regel in de doeltabel.\\ 
 +Indien er tijdens de daadwerkelijke importactie (dus tijdens het draaien van de generieke bulk import) in de vervolgactie(s) verwezen moet worden naar de net aangemaakte kaarten in de doeltabel, dan zal er ook een kaartje aangemaakt moeten worden in tbimportsleutels.\\ 
 +Dit gebeurd automatisch indien men één importmatrijsregel aanmaakt met als naam van het veld **IkBenSleutelVeld**. In de bron/kolombewerking schrijft men vervolgens uit hoe gerefereerd gaat worden naar het aangemaakte kaartje. Zie kopje //Import sleutels// voor een voorbeeld. 
 Iedere importmatrijsregel wordt als volgt gedefinieerd: Iedere importmatrijsregel wordt als volgt gedefinieerd:
   * de naam van het veld uit de doeltabel wordt gekozen   * de naam van het veld uit de doeltabel wordt gekozen
Regel 91: Regel 105:
   * eventueel wordt de sleuteltabelnaam gevuld (alleen nodig indien een vaste sleutelwaarde moet opgehaald worden uit tbimportsleutels   * eventueel wordt de sleuteltabelnaam gevuld (alleen nodig indien een vaste sleutelwaarde moet opgehaald worden uit tbimportsleutels
  
-Samen maken de importmatrijsregels onder 1 importmatrijs dan samen de definitie van 1 insert voor een regel in de doeltabel.\\ +<adm Warning Geaccepteerde bron/kolombewerking definities> 
-Indien er tijdens de daadwerkelijke importactie (dus tijdens het draaien van de generieke bulk import) in de vervolgactie(s) verwezen moet worden naar de net aangemaakte kaarten in de doeltabel, dan zal er ook een kaartje aangemaakt moeten worden in tbimportsleutels. +De programmatuur verwacht dat er in de bron/kolomverwerking van een importmatrijsregel een SQL definitie staat OF dat er direct verwezen wordt naar een kolom uit de in te lezen file. De volgende inhoud van veld //Kolomnummers met bewerking// wordt geaccepteerd: 
-Dit gebeurd automatisch indien men 1 importmatrijsregel aanmaakt met als naam van het veld **IkBenSleutelVeld** kiestIn de bron/kolombewerking schrijft men vervolgens uit hoe gerefereerd gaat worden naar het aangemaakte kaartjeZie kopje //Import sleutels// voor een voorbeeld+  * **{kolom:nummervandekolom}**. Dus bijvoorbeeld als de waarde voor een veld in de eerste kolom van de in te lezen file staat dan is het veld //Kolomnummers met bewerking// gevuld met ''{kolom:1}'' 
- +  * een **gecombineerde waarde van kolommen waar GEEN spatie/scheidinsteken** tussen verwacht wordt. Dus bijvoorbeeld als de waarde voor een veld is de eerste kolom van de in te lezen file plus de derde kolom, dan is het veld //Kolomnummers met bewerking// gevuld met ''{kolom:1} || {kolom:3}'' 
- +  * een **gecombineerde waarde van kolommen waar WEL een spatie/scheidinsteken** tussen verwacht wordtDus bijvoorbeeld als de waarde voor een veld is de eerste drie kolommen van de in te lezen file, gescheiden door een dubbele punt: dan is het veld //Kolomnummers met bewerking// gevuld met ''{kolom:1} || ':' {kolom:2} || ':'|| {kolom:3}'' 
-==== Geaccepteerde definities van bron/kolombewerking ====+  een **SQL statement**. Eventueel met daarin verwijzingen naar kolommen uit het in te lezen bestandBijvoorbeeld ''select dnkey from tbinspaanleiding where upper(dvcode) = '{kolom:2}' ''. Let op: hier is het belangrijk dat de kolomverwijzing ''{kolom:2}'' omringd wordt door aanhalingstekentjes. Dus zoals men ook in SQL een stringwaarde zou opschrijven
 +</adm>
  
 +Klikken op een importmatrijsregel in de lijst geeft het openen van het detailscherm van de importmatrijsregel. Daar kan de definitie van de aangemaakte importmatrijsregel gewijzigd worden.\\
 +De min-knop in de lijst zal een wizard starten om een importmatrijsregel te verwijderen. 
  
  
 ==== Import sleutels ==== ==== Import sleutels ====
-<hier komt stukje uitleg over sleutels aanmaken/gebruiken> 
  
 +Voor de inrichting kan het mogelijk zijn, afhankelijk van wat men wilt, om met vaste sleutelwaardes te werken. Deze sleutelwaardes worden of vooraf gedefinieerd bij de importsleuteltabel (via tegel //Import sleutels//), of ze worden ingelezen in de importsleuteltabel tijdens een generieke bulk importactie. \\
 +Hoe dit werkt wordt aan de hand van onderstaand voorbeeld uitgelegd: \\
 +Stel in het bestand met de in te lezen data staan gegevens van aan te maken inspecties en inspectiebezoeken en de inrichtingnummers waaronder deze inspecties aan te maken.\\ 
 +Voor het inlezen van de inspecties is het nodig om de corresponderende dnkey van de inrichting op te halen. Dit kan met een select statement in tbimportmatrijsregels. Maar kan ook door in de tabel voor import sleutels de dnkeys van de inrichtingen vast te leggen.\\
 +Dit doet men als volgt:\\
 +  * klik op de plus-knop in de lijst van import sleutels
 +    * kies hier de naam van de tabel waarin het veld staat waarnaar verwezen moet worden. In het voorbeeld is dit tbmilinrichtingen
 +    * vervolgens bij //pointer/keywaarde// wordt de waarde van het veld gevuld. In dit geval de dnkey van tbmilinrichtingen (bijvoorbeeld: 123432)
 +    * bij //zoeksleutel// wordt de waarde gevuld die in het bestand staat/ met de select bij importmatrijsregel wordt opgehaald. In het voorbeeld zetten we hier het inrichtingnummer van de inrichting
 +  * dit herhaalt men totdat alle benodigde sleutels zijn aangemaakt
 +
 +De importmatrijsregel voor de dnkeymilinrichtingen vullen bij tbinpspecties is dan als volgt gedefinieerd:
 +  * doelveld = dnkeymilinrichtingen
 +  * Bron/kolombewerking = {kolom:1} 
 +    * de kolom in het bestand waarin het inrichtingnummer staat, als voorbeeld is hiervoor kolom 1 genomen
 +  * sleutel = tbmilinrichtingen
  
 +Dit zorgt ervoor dat bij het draaien van de generieke bulk import, regels worden aangemaakt in tbinspecties onder de inrichting van het opgegeven inrichtingnummer in het bestand.\\
 +Bovengenoemd voorbeeld is het vooraf vastleggen van vaste sleutelwaardes.\\
 +Het tijdens de bulk importactie vastleggen van nieuwe vaste sleutelwaardes is ook benodigd in ons voorbeeld. Want onder de aangemaakte inspecties, wil men graag bezoeken aanmaken.\\
 +Hiervoor zijn er rijtjes in tbimportsleutels nodig voor de net aangemaakte inspecties. Dit wordt geregeld, zoals hierboven al genoemd, door bij de importmatrijs voor tbinspecties, een importmatrijsregel aan te maken met als veldnaam **IkBenSleutelVeld**. \\
 +Zo'n importmatrijsregel ziet er dan als volgt uit: \\
 +  * doelveld = IkBenSleutelVeld
 +  * Bron/kolombewerking = {kolom:2} 
 +    * de kolom in het bestand waarin de verwijzing naar inspectie staat (bijvoorbeeld de aan te maken inspectiecode), als voorbeeld is hiervoor kolom 2 genomen
 +  * sleutelveld is leeg -> Niet gevuld
  
-===== Daadwerkelijk aanroepen van Generieke bulk import =====+Bij het draaien van de bulk importactie zal dan voor iedere aangemaakte rij in tbinspecties, ook een rij aangemaakt worden in de sleuteltabel met als tabelnaam //tbinspecties//, als //pointer// de dnkeywaarde van deze inspectie als //zoeksleutel// de verwijzing naar deze sleutelwaarde.\\ 
 +Voor de vervolgactie van het aanmaken van bezoeken, definieert men dan in tbimportmatrijsregels voor veld dnkeyinspecties dat deze gevuld wordt door ophalen van de juiste waarde uit de sleuteltabel.  
 +===== Starten van Generieke bulk import =====
 In het Operationsportaal is onder kolom //Import// nieuwe tegel **Start generieke bulk import** ([[openwave:1.33:applicatiebeheer:probleemoplossing:portalen_en_moduleschermen:operationsportaal:kolom_import:generieke_bulkimport|Start generieke bulk import]]) In het Operationsportaal is onder kolom //Import// nieuwe tegel **Start generieke bulk import** ([[openwave:1.33:applicatiebeheer:probleemoplossing:portalen_en_moduleschermen:operationsportaal:kolom_import:generieke_bulkimport|Start generieke bulk import]])
 zichtbaar. zichtbaar.
Regel 114: Regel 157:
 </adm> </adm>
  
 +==== Werkwijze ====
 De importactie zal beginnen met het controleren van een aantal zaken: De importactie zal beginnen met het controleren van een aantal zaken:
   * rechtencheck: de medewerker die de import start moet waarde T hebben voor veld tbmedewerkers.dlmagbulkimporteren (zie detailscherm van medewerkerkaart)   * rechtencheck: de medewerker die de import start moet waarde T hebben voor veld tbmedewerkers.dlmagbulkimporteren (zie detailscherm van medewerkerkaart)
Regel 122: Regel 166:
   * beginregel wordt opgezocht (indien leeg dan begint de programmatuur bij de eerste bestandsregel)   * beginregel wordt opgezocht (indien leeg dan begint de programmatuur bij de eerste bestandsregel)
   * indien Excel dan de werkbladnaam indien deze gevuld is   * indien Excel dan de werkbladnaam indien deze gevuld is
-  * indien CSV dan wordt er gekeken naar scheidingsteken tussen de kolommen (niet gevuld dan default verwacht puntkomma), Begrenzingsteken in kolom (niet gevuld dan wordt verwacht dat de kolomwaardes zelf niet omhult zijn met een teken) en of Null waardes ook begrensd zijn (indien F/niet aangevinkt dan niet, anders wel)+  * indien CSV dan wordt er gekeken naar scheidingsteken tussen de kolommen (niet gevuld dan default verwacht puntkomma), Begrenzingsteken in kolom (niet gevuld dan wordt verwacht dat de kolomwaardes zelf niet omhult zijn met een teken) en of null waardes ook begrensd zijn (indien F/niet aangevinkt dan niet, anders wel)
   * bepalen wat de doeltabel is van de importactie: tabel waarin data ingelezen moet worden   * bepalen wat de doeltabel is van de importactie: tabel waarin data ingelezen moet worden
   * het doel van de importactie: is voor nu altijd insert. Kan in de toekomst uitgebreid worden met update of delete bijvoorbeeld   * het doel van de importactie: is voor nu altijd insert. Kan in de toekomst uitgebreid worden met update of delete bijvoorbeeld
   * bepalen of er een vervolgmatrijs is (waarde van tbimportmatrijs.dnkeyvervolgmatrijs, mag leeg zijn)   * bepalen of er een vervolgmatrijs is (waarde van tbimportmatrijs.dnkeyvervolgmatrijs, mag leeg zijn)
  
-Vervolgens wordt er gekeken in de tabel tbimportmatrijsregels die horen bij de aangewezen importmatrijs, uit welke velden de insert actie bestaat voor iedere regel op de doeltabel. Plus hoe ieder veld gevuld moet worden: de selects/kolomverwijzingen die in de tbimportmatrijsregels staan worden door de programmatuur gecheckt met de geüploade bestandsfile om zo de juiste waardes op te halen. \\ +Vervolgens wordt er gekeken in de tabel tbimportmatrijsregels die horen bij de aangewezen importmatrijs, uit welke velden de insert actie bestaat voor iedere regel op de doeltabel. Plus hoe ieder veld gevuld moet worden: de selects/kolomverwijzingen die in de tbimportmatrijsregels staan worden door de programmatuur gecheckt met het geüploade bestand om zo de juiste waardes op te halen. \\
-De programmatuur zal vervolgens voor iedere regel in het bestand, een insert actie (proberen te) uitvoeren. Net zo lang tot er geen bestandregels meer zijn. De voortgang en foutgevallen worden bijgehouden in de logging bij de operationslogregel voor de bulk importactie.\\+
  
 <adm Example> <adm Example>
Regel 138: Regel 181:
 </adm> </adm>
  
-Bij het einde aangekomen? Dan wordt er gekeken of er nog een vervolgactie staat.\\ +De programmatuur zal vervolgens voor iedere regel in het bestand, een insert actie (proberen te) uitvoeren. Indien er een importmatrijsregel bestaat met veldnaam //IkBenSleutelVeld// dan zal na iedere insert actie in de doeltabel ook een nieuwe regel aangemaakt worden in de sleuteltabel (tbimportsleutels). \\ 
-Ook dit is een regel in tbimportmatrijs met daaronder tbimportmatrijsregels. De programmatuur gaat de vervolgactie uitvoeren op dezelfde manier als de hoofdactie. Waarbij er niet opnieuw gekeken wordt naar bestandstype (voor 1 overall bulk importactie kan dus maar 1 bestand worden geüpload) maar men wel kan aangeven op welk werkblad de gegevens staan voor de vervolgactie (indien Excel) en/of de beginregel (Excel en CSV). + 
-Na uitvoeren van de vervolgactie wordt weer gekeken of er nog een vervolg is enz. enz. tot alle acties in de bulk importactie zijn uitgevoerd.\\+<adm Warning Meer dan één keer voorkomen van veldnaam> 
 +Indien er meer dan één importmatrijsregel bestaat met dezelfde veldnaam, dan zal de programmatuur diegene kiezen met de laagste dnkey. Dit geldt ook voor als men twee keer een //IkBenSleutelVeld// importmatrijsregel aanmaakt: de programmatuur zal maar één keer een rijtje aanmaken in tbimportsleutels per insert in de doeltabel. En zal dan dus kiezen voor de //IkBenSleutelVeld// importmatrijsregel met de laagste dnkey. 
 +</adm> 
 + 
 +Als de programmatuur klaar is met het verwerken van de importmatrijs waar deze mee bezig is, alle regels in het bestand (bij Excel: de regels van het werkblad) zijn doorlopen en de insert acties zijn uitgevoerd, dan wordt er gekeken of er nog een vervolgactie is.\\ 
 +Dit is het geval indien tbimportmatrijs.dnkeyvervolgmatrijs gevuld is.\\ 
 +De programmatuur gaat (indien aanwezig) de vervolgactie uitvoeren op dezelfde manier als de hoofdactie. \\ 
 +Er wordt niet opnieuw gekeken naar het bestandstypevoor 1 overall bulk importactie kan dus maar 1 bestand worden geüpload. \\ 
 +Maar er wordt gekeken in de importmatrijstabel van de vervolgactie op welk werkblad de gegevens staan voor de vervolgactie (indien Excel) en/of naar de beginregel (Excel en CSV).\\ 
 +Na uitvoeren van de vervolgactie wordt weer gekeken of er nog een vervolg is enz. enz. tot alle inleesacties in de bulk importactie zijn uitgevoerd.\\
  
  
Regel 167: Regel 219:
 </adm> </adm>
  
-===== Terugdraaien van import actie ===== +===== Terugdraaien van importactie ===== 
-In de audit tabel van OpenWave wordt bijgehouden in welke tabellen, welke regels (primary key) worden aangemaakt tijdens een bulk importactie. Dit werkt als volgt: tijdens het draaien van een generieke bulk importactie wordt voor iedere regel die in een tabel wordt aangemaakt, in tbaudit een regel aangemaakt met naam van de tabel, primary key van de nieuwe regel, dat het om een insert gaat, en veld dvbron krijgt waarde ‘I' om aan te geven dat de regel uit de bulk import komt.+Het kan natuurlijk voorkomen dat een gedraaide bulk importactie niet het gewenste resultaat geeft, bijvoorbeeld als de inrichting niet helemaal correct is of de data uit het inleesbestand niet juist bleek.  
 +Wat de aanleiding ook is, er is altijd de mogelijkheid in OpenWave om de via de bulk import aangemaakte regels te verwijderen.\\ 
 + 
 +Omwille van het mogelijk kunnen terugdraaien van een bulk importactie wordt er in OpenWave bijgehouden in welke tabellen, welke regels (primary key) worden aangemaakt tijdens een bulk importactie. \\ 
 +Dit werkt als volgt: tijdens het draaien van een generieke bulk importactie wordt voor iedere regel die in een tabel wordt aangemaakt, in tbaudit een regel aangemaakt met naam van de tabel, primary key van de nieuwe regel, dat het om een insert gaat, en veld dvbron krijgt waarde ‘I' om aan te geven dat de regel uit de bulk import komt. 
 + 
 +<adm Inzien aangemaakte regels in Audit> 
 +Los van of men de importactie wilt terugdraaien of niet: in de audit tabel van OpenWave wordt bijgehouden welke regels in welke tabellen zijn aangemaakt via de generieke bulk import.\\ 
 +Deze regels zijn te herkennen aan de letter 'I' in de kolom //Bron// in de Audit-lijst. 
 +</adm> 
 + 
 +==== Werkwijze ====
  
 In het lijstscherm van de Audit is linksonder een knop beschikbaar gekomen die een wizard start om de bulkactie ongedaan te maken. In het lijstscherm van de Audit is linksonder een knop beschikbaar gekomen die een wizard start om de bulkactie ongedaan te maken.
Regel 193: Regel 256:
 Wat wel mogelijk is om de bovenliggende zaak/inrichting te verwijderen: dit leidt automatisch tot verwijderen van onderliggende regels uit bovengenoemde tabellen. Wat wel mogelijk is om de bovenliggende zaak/inrichting te verwijderen: dit leidt automatisch tot verwijderen van onderliggende regels uit bovengenoemde tabellen.
 </adm> </adm>
 +
 ==== Operationslog ==== ==== Operationslog ====
 De terugdraaiactie is te volgen via de operationslog. Er zal een regel worden aangemaakt met als code **GeneriekeBulkImportDeleteRegels**.\\ De terugdraaiactie is te volgen via de operationslog. Er zal een regel worden aangemaakt met als code **GeneriekeBulkImportDeleteRegels**.\\
 Tevens is in de configuratietabel terug te zien of er al een proces draait voor terugdraaien van een bulk importactie: dit is het geval indien //Getal1// = 1 bij instelling //Sectie: Operations//, //Item: GeneriekeBulkImportDeleteRegels// (de instelling wordt automatisch aangemaakt bij eerste keer starten van de terugdraaiactie).\\ Tevens is in de configuratietabel terug te zien of er al een proces draait voor terugdraaien van een bulk importactie: dit is het geval indien //Getal1// = 1 bij instelling //Sectie: Operations//, //Item: GeneriekeBulkImportDeleteRegels// (de instelling wordt automatisch aangemaakt bij eerste keer starten van de terugdraaiactie).\\
 In de logging bij de regel in de operationslog is terug te zien: In de logging bij de regel in de operationslog is terug te zien:
-  * als een regel niet verwijderd is, waarom niet (mislukt of niet gevonden of uitzonderingstabel)+  * als een regel niet verwijderd kon worden, waarom dit niet gedaan is (mislukt of niet gevonden of uitzonderingstabel)
   * of het proces klaar is   * of het proces klaar is
   * het aantal verwijderde regels   * het aantal verwijderde regels
  • openwave/1.33/applicatiebeheer/probleemoplossing/programmablokken/generiekebulkimport.1761831730.txt.gz
  • Laatst gewijzigd: 2025/10/30 14:42
  • door Lonneke van Dijk