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