HET GEBRUIK VAN QVD’S VOOR
SNELLE APPLICATIEONTWIKKELING
Frank van Dijk
Onderwijsgroep Tilburg
(ROC Tilburg)
HISTORIE
Voorjaar 2013
Resultatenbox MBO
Inrichten Qlikviewserver
Directe databasekoppeling naar Eduarte
KOPEN of ONTWIKKELEN?
OORSPRONKELIJKE ARCHITECTUUR
Publicatie
DWH
SQL-Server
Extractie, Transformatie, Laden (ETL)
Eduarte
AFAS/HRM
AFAS/Fin
Magister
WebUntis
…
HUIDIGE ARCHITECTUUR
Qlikviews
Gestandaardiseerde QVD’s
Extractie, Transformatie, Laden (ETL)
Eduarte
AFAS/HRM
AFAS/Fin
Magister
WebUntis
QVD
QVD
QVD
…
VOORDELEN QVD ARCHITECTUUR
1. Eén omgeving, één technologie
Minder schakels dus minder kans op fouten
Goedkoper (kennis/training, exploitatie)
2.
3.
4.
5.
Krachtige importfunctionaliteit
Extractie/transformatie geüniformeerd
Kleine bestanden (portable)
Rete-snel!
6. Ontwikkelsnelheid Qlikviews!
Geen trage database (verversen van Qlikviews)
Voorwerk (extractie/transformatie) is al gedaan
“Hergebruik” van code
NADELEN QVD ARCHITECTUUR
•
•
•
•
Gesloten architectuur
QVD’s lastig te browsen
Debuggen applicatie is lastig
Beperkte metadata
ONTWERPKEUZE: DIRECTE DATABASE-TOEGANG
QVD
QVD
QVD
ONTWERPKEUZE: INDIRECTE TOEGANG VIA RAPPORTAGE-TOOL
Applicatiegebonden
Rapportage-tool
QVD
QVD
QVD
WAAR MOET JE OP LETTEN (1)?
CONVENTIES
Zorg voor duidelijke(!), unieke variabele-namen
Gebruik een uniforme methodiek voor naamgeving
Markeer sleutelvelden
Versus
WAAR MOET JE OP LETTEN (2)?
STRUCTUUR (doordacht data-model)
WAAR MOET JE OP LETTEN (3)?
GENERIEKE TRANSFORMATIES
Bewerkingen die je vaak nodig hebt -> voorbereiden in een QVD
STABILITEIT
Eenmaal in gebruik, niet al te vaak meer aanpassen
PRIVACY !!!!!
Welke gegevens zijn toegankelijk voor wie?
VOORBEELD: SIMPEL DATA LADEN
OM TE DEBUGGEN: STORETEXT
// Deze sub kan worden aangeroepen om een CSV bestand te maken van een tabel;
SUB STORETEXT(FileNaam)
/***************************************
Voorbeeldaanroep :
één tabel:
call STORETEXT (‘Inschrijvingen');
alle tabellen:
call STORETEXT ('_ALL_');
***************************************/
IF FileNaam = '_ALL_' then
For i=0 to NoOfTables()-1
Let t='['&TableName($(i))&']';
Let dmp='DMP_'&TableName($(i))&'.csv';
Store $(t) into $(dmp) (txt, delimiter is ';');
next i;
ELSE
Let t='[' & FileNaam & ']';
Store $(t) into DMP_$(FileNaam).csv (txt, delimiter is ';');
ENDIF;
ENDSUB
DEMO
1. Opleidingen QVD
2. STORETEXT