Handleiding gebruik EPBD GIPC tool
Door: Ruud van Eeghem Datum: juni 2008 Versie: 1.0
Aanleiding De “EPBD GIPC tool” is een database die ontwikkeld is om het gebruik van de generieke interface van de EPBD database te ondersteunen. Met behulp van de generieke interface kunnen afnemers een actuele replica van de EPBD database opzetten. Deze replica kan tot op de dag nauwkeurig worden bijgewerkt. Dit document beschrijft de installatie en het gebruik van deze tool. Daarnaast bevat dit document technische informatie over de interne werking van de tool gebruikt kan worden om de werking van de tool te analyseren.
SenterNovem stelt deze software gratis ter beschikking als demonstratie tool.
SenterNovem is niet aansprakelijk voor schade als gevolg van het gebruik van dit product en geeft geen garantie over de geschiktheid van deze software voor specifieke doeleinden, anders dan hierboven vermeld alsmede de correcte werking van deze software met anders software. De software wordt door SenterNovem “AS-IS” ter beschikking gesteld en de gebruiker van deze software neemt alle verantwoordelijkheid ten aanzien van het gebruik van deze software op zich.
Systeemvoorwaarden en installatie De database is ontwikkeld in Microsoft Access 2002, SP3. Om de database te kunnen gebruiken zijn verder de volgende componenten nodig: • Microsoft XML, verise 5.0 • Microsoft DAO 3.6 De database kan geinstalleerd worden door de database plus ondersteunende bestanden in een map te plaatsen. Een volledige installatie bestaat uit de volgende files: • • •
GIPC.mdb GIPC_mutation.xslt IZArc o izarcc.exe o izarce.exe o cabinet.dll o unacev2.dll o unrar3.dll
de database de transformatie stylesheet voor dagmutaties command line tool voor uitpakken zip-files
Daarnaast dient u Na installatie dient de applicatie gestart te worden met behulp van Microsoft Access voor verdere configuratie. U configureert de applicatie door in het hoofdscherm van de applicatie te kiezen voor de optie “Instellingen”. U krijgt dan een tabel te zien waarin u de waardes voor gegevens. U dient tenminste de volgende drie paden te benoemen. APPLICATION_PATH IMPORT_PATH WORK_PATH
volledige pad naar de database zelf volledige pad naar de gedownloade zip bestanden. volledige pad naar waar de gedownloade zip bestanden worden verwerkt.
Zie bijlage 2 voor geavanceerde configuratie opties.
Verwerkingsproces Het proces om te komen tot een actuele replica van de EPBD database is te verdelen in vier stappen. Deze stappen worden ook weergegeven op het hoofdscherm. Met uitzondering van stap 1 (downloaden van de GIPC bestanden via ftp) zijn alle stappen geautomatiseerd uit te voeren.
Figuur 1 Hoofdscherm GIPC tool
Bijlage 1: Verwijzingen binnen de VBA-omgeving van Microsoft Access Voor een correcte werking van de applicatie dienen in de VBA omgeving van Microsoft Access de volgende verwijzingen aanwezig te zijn.
Figuur 2 Benodigde extensies binnen de VBA omgeving.
Bijlage 2: Configuratie parameters van de applicatie De database wordt geconfigureerd voor gebruik door het opgeven van de volgende parameters: IMPORT_PATH WORK_PATH UNZIP_COMMAND
volledige pad naar de gedownloade zip bestanden. volledige pad naar waar de gedownloade zip bestanden worden verwerkt. processregel om een zip file uit te pakken, standaard wordt gebruik gemaakt van IZArc.
De waardes voor IMPORT_PATH en WORK_PATH dienen absolute paden te zijn. U kunt gebruik maken van de parameter $APPLICATION_PATH om paden t.o.v. het installatie pad op te geven. Bijvoorbeeld: IMPORT_PATH = $APPLICATION_PATH\import Verwijst naar een submap “import” aanwezig in de map waar de applicatie is geinstalleerd. Met de waarde UNZIP_COMMAND geeft u op hoe de applicatie de gedownloade zipbestanden kan uitpakken. Standaard wordt de tool IZArc meegeleverd. De waarde van UNZIP_COMMAND dient de volgende parameters te bevatten: • $SOURCE_FILE; op de plaats waar de applicatie de naam van het zip bestand moet invullen • $TARGET_FOLDER; op de plaats waar de applicatie de naam van de doel map moet invullen, deze doelmap is de waarde die opgegeven is bij de configuratie parameter WORK_PATH.
Bijlage 3: Structuur van de database De database bestaat uit een formulier en twee code modules. frmStart mod_Import mod_ShellExecute
het hoofdscherm de module met import functies de module met functies om processen op te starten
toelichting: frmStart knop “stap 2: unzip” Maakt eerst de werk directory leeg, unzipped de files in de import directory naar de werk directory en hernoemt de extensie “.dx” naar “.xml”. knop “stap 3: import” Leest eerst de meest recente totaalfile in. Een totaalfile is een file die start met de letter “v”. Import gebeurt via de Access xml import functie. Er ontstaan twee tabellen. De tabel “VolledigeActueleSet” wordt verwijderd, de tabel “Pandcertificaat” wordt hernoemd tot “tblEPC”. Daarna wordt op basis van de structuur van tabel “tblEPC” een lege mutatietabel gemaakt met de naam “MutatieBerichtPerPand”. Vervolgens worden alle dagmutatie files verwerkt waarvan de datum groter of gelijk is aan de datum van de totaalfile. De verwerking bestaat uit twee stappen: eerst wordt de file “dYYYYMMDD.xml” getransformeerd met behulp van de XSLT stylesheet “GIPC_mutation.xslt”, het resultaat hiervan wordt bewaard onder de naam “tx_dYYYYMMDD.xml”. Daarna wordt getransformeerde xml file ingelezen met behulp van de Access xml import functie. De data worden weggeschreven naar de tabel “MutatieBerichtPerPand”. Na import van alle mutatiefiles wordt de tabel hernoemd tot “tblEPCMutation” en worden de mutaties verwerkt in de volgorde zoals vastgelegd door het veld “MutatieVolgnummer”. Elke mutatie ken een “Stuurcode”. De waarde “1” is een toevoeging, de waarde “2” is een verwijdering.
toelichting: mod_Import type ApplicationConfig type SessionConfig sub InitializeSession sub SaveSession sub EmptyWorkingFolder sub UnzipFiles sub RenameFiles sub ImportDataSet_Full sub ImportDataSet_Mutations sub AddIndexEpcTable sub AddIndexEpcMutationTable sub ProcessMutations sub Unzip
toelichting: mod_ShellExecute Zie voor toelichting de beschrijving van de gebruikte Windows API functies: • CreateProcessA • WaitForSingleObject • GetExitCodeProcess • CloseHandle