Inleiding

Door middel van een batchmodule gebouwd rondom webservices van Swing is het mogelijk om gegevens van een Swing versie te kopiëren naar een andere Swing versie.

 

 

Stuurbestand

Als basis van de batchmodule wordt een Excel stuurbestand gebruikt. In dit stuurbestand staat welke acties uitgevoerd moeten worden.

De onderstaande soorten acties zijn mogelijk:

  • Copy

    Geeft aan dat er een copy actie moet plaatsvinden van (meta) data

  • CopyFull

    Geeft aan dat er een copy actie moet plaatsvinden van onderwerpen plus bijhorende data en metadata (zoals bron en eenheid, aggregatieonderwerp)

  • Delete

    Geeft aan dat er een delete actie moet plaatsvinden

  • Command

    Geeft aan dat er een commando moet worden uitgevoerd

Alleen het eerste tabblad van het stuurbestand wordt gebruikt. Per regel kan worden aangegeven welke actie uitgevoerd moet worden. Op de volgende pagina’s volgt een overzicht van alle mogelijke acties.

Zie "R:\SFW\SwingOntwikkeling\Swing5 Batchmodule\Jive2Jive\handleiding_jive2Jive.xlsx" voor een voorbeeld stuurbestand. Naast een extra handleiding dient dit bestand ook als basis voor een op te stellen stuurbestand.

 

Copy

Met de actie Copy wordt data gekopieerd van onderwerpen, zonder alle bijbehorende metadata.

Per batchregel worden de volgende velden verwacht:

   
Kolom 1: 0: niet uitvoeren, 1: uitvoeren
Kolom 2: actie
Kolom 3: tabel/type data
Kolom 4: parameter 1
Kolom 5 etc.: parameter 2
 

Metadata

Voor onderstaande data types kunnen vanaf kolom 4 de parameters filter en parent opgegeven worden. De volgorde van de parameters is niet van belang.

0/1 Actie Datatype parameter 1 parameter 2
1 copy Accessgroup    
1 copy Datasource filter:abf,cak columns:broncode,korte naam
1 copy Dimension
1 copy Dimlevel
1 copy Dimmember parent:…
1 copy Externaldatasource
1 copy Geolevel   exclude_columns:selecteertype
1 copy Geoitem parent:gemeente filter:3,5,363,1681
1 copy Unit filter:d:\unit.xlsx columns:eenheidcode
1 copy Unitlabel parent:…
1 copy Urllink
1 copy User
1 copy Usergroup
1 copy Variable protectvariables
 
Toelichting

Filter: Met deze parameter kan bepaald worden welke items gekopieerd worden. Als deze parameter ontbreekt dan worden alle items gekopieerd.

  • ‘filter:code1,code2’

    Geeft aan dat er items met code ‘code1’ en ‘code2’ gekopieerd moeten worden.

  • ‘filter:d:\data\bron.xlsx’

    Geeft aan dat er items met codes verkregen uit een Excel bestand gekopieerd moeten worden. Het Excel bestand bevat een lijst van codes in de eerste kolom van het eerste tabblad. De waarde van de eerste rij wordt overgeslagen.

Columns: Kopieer alleen specifieke kolommen. Stel dat je eenheden wilt kopiëren, dan kun je er bijvoorbeeld voor kiezen om alleen specifieke kolommen te kopiëren. De kolom met de code (bijv. onderwerpcode voor variable) moet altijd opgenomen worden.

Exclude_columns: Kopieer specifieke kolommen niet. Stel dat je gebiedsniveau’s wilt kopiëren, dan kun je er bijvoorbeeld voor kiezen om het selecteertype niet te kopiëren.

Parent: Deze parameter is nodig voor het kopiëren van geoitems, dimmembers en unitlabels. Voor de overige datatypes kan deze parameter weggelaten worden.

  • ‘parent:code1’

    Geeft aan dat er items gekopieerd moeten worden met parent code gelijk aan ‘code1’.

    Voorbeeld: ‘parent:gemeente’ in combinatie met kolom 3: Geoitem betekent dat er geoitems gekopieerd moeten worden van gebiedsniveau ‘gemeente’.

Datasource: Voor het gebruik van de jiveservices van de bronnenbeheer server moet een brondatabase opgegeven worden.

  • ‘datasource:T:\brn\Bronnen\CBS\Cbs_StatLine\AOW\G16J16\aow.mdb’
  • Wanneer een bestand niet bestaat wordt geprobeerd het juiste pad op te bouwen.

    bijv. ‘datasource:S:\BRN\Bronnen\CBS\Cbs_StatLine\Allochtonen\cbsall.sdf’ resulteert in:

    S:\BRN\Bronnen\CBS\Cbs_StatLine\Allochtonen\G18J17\cbsall.sdf

  • Als de map van de datasource een .io bestand bevat dan wordt de huidige regel overgeslagen. Dit kan weer overruled worden door de parameter allowio op te nemen.

     

Datasourceto: Voor het gebruik van de jiveservices van de bronnenbeheer server kan optioneel een doeldatabase opgegeven worden.

  • ‘datasourceto: T:\BRN\Bronnen\CBS\Cbs_StatLine\Huishoudens\G17J16\hhs.mdb

Protectvariables: Gebruik deze parameter om voor onderwerpen het verborgen veld "protected" in de doelversie in te schakelen. Deze onderwerpen kunnen worden vervolgens niet meer aangepast worden.

Prefix: De codes van alle gekopieerde gegevens worden voorafgegaan door een prefix

  • ‘prefix:abf_’ (bijv. abf_gemeente, abf_uren, etc.)
 

Themaboom

Voor het importeren van een themaboom zijn er vier parameters. Alleen de eerste twee zijn vereist.

0/1 Actie Datatype parameter 1 parameter 2 parameter 3 parameter 4
1 copy CategoryTree Thema’s\Bevolking Thema’s 0  
1 copy CategoryTree Thema’s\Bevolking Thema’s\Bevolking 1 prefix:abf_
 
Toelichting
  • Parameter 1: Verwijzing naar plek in themaboom van Jive-schil source.

  • Parameter 2: Verwijzing naar plek in themaboom van Jive-schil target.

  • Parameter 3: 0: root thema gebruiken, 1: root thema negeren

    Deze parameter dient om dubbele categorieën te voorkomen.

    bijv. parameter 1: ’Thema’s', parameter 2: ’Thema’s' en parameter 3: ’1’ resulteert in pad ‘Thema’s’ en niet in ‘Thema’s\Thema’s.'

    De standaard waarde van parameter 3 is ‘0’.

  • Parameter 4: Prefix parameter: De onderwerpcodes van alle onderwerpen in de themaboom worden voorafgegaan door een prefix. Gebruik deze parameter in combinatie met copyfull (zie volgend hoofdstuk).

 

Preselectie/Rapport/Gebiedsaggregatie

Het importeren van deze data types vereist het opgeven van parameters in de daarvoor bestemde kolommen. De volgorde van de parameters zijn hier dus wel van belang.

0/1 Actie Datatype parameter 1 parameter 2
1 copy Preselection presentatiecode  
1 copy Report rapportcode  
1 copy Geolevelhierarchie Gebiedsniveaucode ouder Gebiedsniveaucode kind
 

Onderwerpdata

Voor het kopiëren van onderwerpdata kunnen vanaf kolom 4 de parameters variables, geolevels en periods opgegeven worden. Volgorde van de parameters is niet van belang.

0/1 Actie Datatype parameter 1 parameter 2 parameter 3
1 copy Data variables:… geolevels:… periods:…
 
Toelichting

Variables: Deze parameter geeft aan voor welke onderwerpen data gekopieerd moet worden. Er zijn verschillende opties om onderwerpen te selecteren:

  • Rechtstreeks: variables: bevtotaal,bev65
  • Stuurbestand: variables: d:\data\variables.xlsx
  • Themaboom: variables: Thema’s\Bevolking

Geolevels: Deze parameter selecteert data voor specifieke gebiedsniveaus. Het weglaten van deze parameter betekent dat onderwerpdata van alle gebiedsniveaus gekopieerd wordt.

  • geolevels:gemeente,postcode
  • geolevels:d:\data\geolevels.xlsx

Periods: Deze parameter selecteert data voor specifieke perioden. Het weglaten van deze parameter zorgt ervoor dat onderwerpdata van alle perioden gekopieerd wordt.

  • periods:2013,2014
  • periods:d:\data\periods.xlsx

Periodfrom en periodto: Met deze parameter wordt data voor een specifieke range van jaren gekopieerd.

  • periodfrom:2010 & periodto:2017 (kopieer alle data vanaf 2010 t/m 2017)
  • periodfrom:2010 (kopieer alle data vanaf 2010)
  • periodfrom:2017 (kopieer alle data t/m 2017)

Voor de parameters waarbij een Excel bestand is opgegeven moet de eerste kolom van het eerste tabblad gebruikt moet worden om een lijst van onderwerpen/gebiedsniveaus/perioden op te geven. De waarde van de eerste rij wordt overgeslagen.

Copyaggregateddata: Het toevoegen van de parameter copyaggregateddata i.c.m. met het opgeven van de parameter geolevels heeft als resultaat dat er geprobeerd wordt om data geaggregeerd te kopiëren wanneer er voor een geolevel geen data aanwezig is in de bron, maar wel op een lager niveau.

Generatedataforformulavariables: Het toevoegen van de parameter generatedataforformulavariables heeft als resultaat dat er ook voor formuleonderwerpen data wordt gekopieerd.

Ignorelastupdate: Standaard wordt onderwerpdata niet gekopieerd wanneer het onderwerp al aanwezig is in de doel Jive-schil en de waarde ‘Laatste wijziging’ gelijk is aan de waarde ‘Laatste wijziging’ in de bron Jive-schil. Door deze parameter op te nemen wordt dit gedrag overruled.

Protectvariables: Gebruik deze parameter om voor onderwerpen het verborgen veld "protected" in de doelversie in te schakelen. Deze onderwerpen kunnen worden vervolgens niet meer aangepast worden.

Deleteexistingdata: Gebruik deze parameter om voor onderwerpen eerst alle bestaande data te verwijderen voordat de nieuwe data wordt geïmporteerd.

Dataimportunknownitemcheck: Gebruik deze parameter bij het importeren van onderwerpdata om te controleren op onbekende kenmerken (bijv. gebieden). Zo niet dan worden records met onbekende kenmerken overgeslagen zonder foutmelding.

Dimlevels: Kopieer data voor specifieke dimensieniveaus.

  • dimlevels:lftkl10,geslacht,burgerlijke_staat

Verifydata: Gebruik deze parameter bij het kopiëren van onderwerpdata om te controleren of de input en het resultaat van de kopie actie gelijk aan elkaar zijn. Hierbij wordt na het kopiëren data uit de doel versie geëxporteerd en vergeleken met de input.

Noprefix: Kopieer data zonder een prefix toe te passen op de opgegeven types. (In v5.5 alleen mogelijk voor ‘geolevel’)

Bij gebruik van ‘dimlevel’ worden ook dimensies niet voorzien van een prefix.

  • bijv. ‘noprefix:geolevel,unit,datasource,variable,dimlevel

Appenddata: Zonder deze parameter wordt een record volledig overschreven met nieuwe data. Als deze parameter wel wordt gebruikt dan wordt een eventueel bestaand record aangevuld met nieuwe data.

 

CopyFull

Met de actie CopyFull kunnen onderwerpen gekopieerd worden waarbij ook alle bijbehorende gegevens gekopieerd worden. Een overzicht van deze gegevens:

  • Onderwerp
  • Eenheid
  • Eenheid label
  • Bron
  • Onderwerpdata
  • Aggegratieonderwerp, basisonderwerp, steekproefonderwerp, drempelonderwerp, allocatieonderwerp, stddev-onderwerp
  • Bestanden onder ‘Meer informatie’. Bijbehorende css en javascript bestanden worden echter niet gekopieerd.

Een batchregel moet de volgende velden bevatten:

   
Kolom 1: 0: niet uitvoeren, 1: uitvoeren
Kolom 2: actie
Kolom 3: tabel/type data
Kolom 4: parameter 1
Kolom 5 etc.: parameter 2
 
0/1 Actie Datatype parameter 1 parameter 2 parameter 3
1 CopyFull Variable variables:code1,code2 geolevels:gemeente,postcode  
1 CopyFull Variable variables:code1,code2 geolevels:d:\geolevels.xlsx  
1 CopyFull Variable variables:d:\variables.xlsx geolevels:gemeente,postcode  
1 CopyFull Variable variables:d:\variables.xlsx geolevels:d:\geolevels.xlsx  
1 CopyFull Variable variables:code1,code2 geolevels:gemeente,postcode  
1 CopyFull Variable variables:code1,code2 geolevels:d:\geolevels.xlsx prefix:abf_
1 CopyFull Variable variables:d:\variables.xlsx geolevels:gemeente,postcode ignorelastupdate
1 CopyFull CategoryTree thema:Thema's\Bevolking geolevels:gemeente,postcode  
 
Toelichting

Variables: Met deze parameter moet aangegeven worden welke onderwerpen en onderwerpdata gekopieerd moet worden.

  • variables:bevtotaal,bev65
  • variables:d:\data\variables.xlsx
  • variables:Thema’s\Bevolking’ (kopieer alle variabelen van thema en onderliggende thema’s)

Geolevels: Met deze parameter kan aangegeven worden dat er alleen specifieke gebiedsniveaus gekopieerd moeten worden en ook alleen onderwerpdata op deze gebiedsniveaus. Weglaten van deze parameter betekent dat alle onderwerpdata en bijbehorende gebiedsniveaus gekopieerd worden.

  • geolevels:gemeente,postcode
  • geolevels:d:\data\geolevels.xlsx

Columns_...: Kopieer alleen specifieke kolommen per type metadata. Bijvoorbeeld voor bronnen, columns_datasource:beschrijving,naam. En voor onderwerpen, columns_variable:formule,vrij tekstveld.

Exclude_columns_...: Kopieer specifieke kolommen niet. Bijvoorbeeld voor eenheden, exclude_columns_unit:naam,beschrijving. En voor geolevels, exclude_columns_geolevel:selecteertype, korte naam. Voor onderwerpen, exclude_columns_variable:Alternatieve perioden namen gebruiken,Aggregeer perioden.

Periods: zie hoofdstuk Copy.

Periodfrom en periodto: zie hoofdstuk Copy.

Prefix: zie hoofdstuk Copy.

Ignorelastupdate: zie hoofdstuk Copy.

Datasource/datasourceto: zie hoofdstuk Copy.

Copyaggregateddata: zie hoofdstuk Copy.

Dimlevels: zie hoofdstuk Copy.

Verifydata: zie hoofdstuk Copy.

Noprefix: zie hoofdstuk Copy.

 

Themaboom

Via een Copyfull is het ook mogelijk om een themaboom en alle bijbehorende onderwerpen, rapporten en presentaties te kopiëren. Ten opzichte van een standaard Copyfull moet de parameter ‘variables’ vervangen worden door de parameter ‘thema’.

0/1 Actie Datatype parameter 1 parameter 2 parameter 3
1 CopyFull CategoryTree thema:Thema's\Bevolking geolevels:gemeente,postcode  
 

Delete

Met de actie delete is het mogelijk om (meta)data te verwijderen.

   
Kolom 1: 0: niet uitvoeren, 1: uitvoeren
Kolom 2: actie
Kolom 3: tabel/type data
Kolom 4: code van te verwijderen item
 
0/1 Actie Label parameter 1
1 delete Accessgroup system
1 delete Datasource abf
1 delete Dimension geslacht
1 delete Dimlevel geslacht
1 delete Externaldatasource databron1
1 delete Geolevel gemeente
1 delete Preselection urenlft
1 delete Report report1
1 delete Unit uur
1 delete Urllink abf
1 delete User 363
1 delete Usergroup 363
1 delete Variable urenhh1
1 delete Data variables:d:\variables.xlsx
1 delete Data bevtotaal

Voor het verwijderen van sommige items is de extra parameter parent vereist.

Kolom 5: parent code behorende bij item in kolom 4.

0/1 Actie Label parameter 1 parameter 2
1 delete Dimmember M geslacht
1 delete Geoitem 363 gemeente
1 delete Unitlabel 1 woonmilieus
 

Command

Met de actie Command kunnen er verschillende opdrachten aan de database worden opgegeven.

   
Kolom 1: 0: niet uitvoeren, 1: uitvoeren
Kolom 2: actie
Kolom 3: type commando
Kolom 4: parameter 1

CreateBackup – Maak een backup van de Swing database.

0/1 Actie type commando parameter 1 parameter 2
1 Command CreateBackup    

unprotectvariables – Verwijder de beschermde status van onderwerpen

0/1 Actie type commando parameter 1 parameter 2
1 Command Unprotectvariables variables:…  

Variables: Met deze parameter moet aangegeven worden welke onderwerpen onbeschermd moet worden.

  • variables:bevtotaal,bev65
  • variables:d:\data\variables.xlsx
  • variables:Thema’s\Bevolking

UpdateViewer – Forceer het legen van de data cache van een Viewer versie.

0/1 Actie type commando parameter 1 parameter 2
1 Command UpdateViewer url:https://swing.eu/Jive  

Let op: Het kan zijn dat de pagina https://{...}/Jive/Status.ashx niet bereikbaar is omdat de versie gebruik maakt van een login. In dit geval werkt de command UpdateViewer nog niet. Bas/Sugarka kan deze pagina vrij toegankelijk maken zodat de command wel gebruikt kan worden.

UpdateMosaic – Forceer het legen van de data cache van een Mosaic versie voor een specifieke lijst aan onderwerpen.

0/1 Actie type commando parameter 1 parameter 2
1 Command UpdateMosaic url:https://swing.eu/dashboard variables:…
 

Gebruik

De software van de batchmodule is te vinden in de map R:\SFW\SwingOntwikkeling\Swing5 Batchmodule\Jive2Jive\Software. De executable Jive2JiveBatchmodule.exe moet aangeroepen worden via een batchbestand (.bat) met de volgende parameters:

  • url source

    bijv. “https://beta.wmo-monitor.nl/Admin/JiveServices/WebServices/AdminService.svc/Secure”

  • username source

    Gebruikersnaam overeenkomstig met de setting ‘SecuredWebServicesUserName’ in de web.config (zie bijlage Installatie JiveServices)

  • password source

    Wachtwoord overeenkomstig met de setting ‘SecuredWebServicesPassword’ in de web.config (zie bijlage Installatie JiveServices)

  • url target

    bijv. “https://wmo-monitor.nl/Admin/JiveServices/WebServices/AdminService.svc/Secure”

  • username target

  • password target

  • stuurbestand

    bijv. “D:\Data\batchbestand.xlsx”

  • logbestand

    bijv. “D:\Data\log.txt”

  • email (optioneel)

    Verzenden email met samenvatting na afronden batch. Meerde emailadressen mogelijk.

    bijv. “email:reneb@abf.nl email:jive2jive@abf.nl”

  • retryCount (optioneel)

    Aantal herhaalpogingen bij onverwachte fouten in jive2jive. Bijvoorbeeld als er tijdelijk geen verbinding gemaakt kan worden met de Jive Services. Wanneer deze parameter niet is opgegeven dan gebruikt jive2jive de waarde ‘1’. Voor een herhaalpoging wordt een pauze van 5 minuten genomen voordat jive2jive verder gaat.

    bijv. “retryCount:1”

  • checkDatabaseLastModified (optioneel)

    Check om te bepalen of regels in het stuurbestand uitgevoerd dienen te worden. Hierbij wordt de laatste wijzigingsdatum van de database vergeleken met de laatste wijzigingsdatum van het opgegeven logbestand. Wanneer het logbestand meer recent gewijzigd is dan de database dan wordt een regel niet uitgevoerd. Deze check wordt per regel uitgevoerd omdat iedere doelversie naar een andere database kan verwijzen.

Compleet voorbeeld:

JiveBatchmodule.exe "https://beta.wmo-monitor.nl/Admin/JiveServices/WebServices/AdminService.svc/Secure" "username123" "password123" "https://wmo-monitor.nl/Admin/JiveServices/WebServices/AdminService.svc/Secure" "username123" "password123" "D:\Data\batchbestand.xlsx" "D:\Data\log.txt"

 

Bijlage

 

Installatie JiveServices

Voor het gebruik van de batchmodule moet JiveServices geïnstalleerd zijn zowel op. Door JiveServices te installeren onder admin (zoals in onderstaand voorbeeld) maken zowel Swing Studio als JiveServices gebruik van dezelfde database. Alle via de batchmodule geïmporteerde gegevens kunnen op deze manier gecontroleerd worden in Studio en vervolgens mogelijk live gezet worden.

Loginpagina Studio

Het is ook mogelijk om via de batchmodule direct op de live-versie gegevens te importeren. Hiervoor is een installatie van de JiveServices nodig zoals in onderstaand voorbeeld.

Loginpagina Studio

Een vereiste voor het gebruik van JiveServices is dat de website draait onder https.

In de web.config onder admin of in de root van de website zelf (afhankelijk van hoe JiveServices geïnstalleerd is) moeten onderstaande settings opgenomen voor zover deze nog niet aanwezig zijn:

 

  •