Kategorien
Developer Schulung Qlik

Lektion 7 – Übungen

Übersicht

In dieser Lektion dürfen Sie nochmal alles gelernte eigenständig wiederholen und gelernte Techniken anwenden.

Aufgabe 1 – Dataloader Adventure Works

  1. Erstellen Sie einen Dataloader mit Verbindung auf die Access Datei – AdventureWorksSample, diese befindet sich im Verzeichnis “Admin/Common/Libs/QVComponents/Examples/DbExtract”
  2. Qualifizieren Sie die Daten und sichern Sie ins DataStaging ab (mit Variablen arbeiten)

Screenshot 2015-03-28 15.10.09

 

Binden Sie die Datenquelle als ODBC System Quelle ein.

Screenshot 2015-03-28 15.31.09

Screenshot 2015-03-28 15.32.59

Sollten Sie sich auf einem 64Bit – System bewegen, so ist es wichtig, dass Sie später bei der Nutzung von 32Bit Datenquellen die Option “Force32Bit” in QlikView aktivieren. (MS Access ist 32 Bit)

Ihr Skript für diese erste Aufgabe sollte am Ende ungefähr so aussehen:

//main Reiter
SET ThousandSep=',';
SET DecimalSep='.';
SET MoneyThousandSep=',';
SET MoneyDecimalSep='.';
SET MoneyFormat='$#,##0.00;($#,##0.00)';
SET TimeFormat='h:mm:ss TT';
SET DateFormat='M/D/YYYY';
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';
SET MonthNames='Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec';
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun';

/**
 * @author Philipp Frenzel <philipp@frenzel.net>
 * @version 1.0
 * @copyright Frenzel GmbH 2015
 * @depends - list of scripts that need to be executed before
 * @provides - list of output files
 * @schedule - * * * * * in the style of unix cron
 */

//set the environment
SET _ENV = "DEV";
SET _DEBUG = 1;

//here we load the global config
$(include=../../COMMON/00 Config/CONF_PATHS.txt);

//at this point we integrate the qv-components
$(include=../../COMMON/LIBS/QVComponents/QVC_Runtime/Qvc.qvs);
$(include=../../COMMON/LIBS/QVComponents/QVC_Runtime/language/qvc_language_GE.qvs);

//hier schreiben wir einen Kommentar in ein LogFile
CALL Qvc.Log('Starte das Laden der AdventureWorks Access Datei','INFO');

ODBC CONNECT32 TO [AdventureWorks;DBQ=D:\qlikview\qlik-master\ADMIN\COMMON\LIBS\QVComponents\Examples\DbExtract\AdventureWorksSample.mdb];

//Load Adventures Reiter
/**
 * @dataloader tbl_demo
 * @source OLEDB
 * @version 1.0
 * Lädt nur eine einzelne Datei aus der Datenbank
 */

SET varTableName = "Product";

QUALIFY "*";

$(varTableName):
LOAD 
    *;
SQL SELECT * FROM [$(varTableName)];

UNQUALIFY "*";

Trace "Saving to Path: $(PATH_DATASTAGING)";

STORE $(varTableName) INTO "$(PATH_DATASTAGING)$(varTableName).qvd" (qvd);

IF _DEBUG = 0 THEN
  Qvc.Log('Deleted the Table as we are not in Debug.');
  DROP TABLE $(varTableName);
END IF;

Let varNoRecords = NoOfRows(varTableName);
Let msgLogFile = 'Die Tabelle ' & varTableName & ' wurde mit ' & varNoRecords & ' geladen.';

//hier schreiben wir einen Kommentar in ein LogFile
CALL Qvc.Log(msgLogFile,'INFO');

//exit Reiter
EXIT SCRIPT;

Wenn Sie das Skript ausführen und alle Einstellungen in den Config-Dateien richtig gesetzt haben, sollte sich die Tabelle “Product” in Ihrem DEV/02 DATASTAGING-Verzeichnis befinden.

Aufgabe 2 – Einbinden einer Webdatenquelle

Im Internet gibt es zahlreiche Datenquellen, die meist ohne großen Anpassungsaufwand in QlikView eingebunden werden können. Eine interessante Adresse zum Stöbern bietet: http://www.programmableweb.com – am einfachsten lassen sich REST-API’s einbinden, da diese per einfachem URL-Aufruf die “Daten” holen. Wir holen uns ein paar Wetter-Informationen;) Diese bekommen wir von www.data.gv.at .

Unser Landepunkt wird hier genau beschrieben: http://at-wetter.tk/index.php?men=api

Am Ende sollte das Skript wie bei Aufgabe 1 beginnen und der Lade-Reiter wie folgt:

/**
 * @dataloader tbl_demo
 * @source OLEDB
 * @version 1.0
 * Lädt nur eine einzelne Datei aus der Datenbank
 */

SET varTableName = "WeatherData";

QUALIFY "*";

$(varTableName):
LOAD @1 AS WetterStationId, 
     @2 AS Bezeichnung, 
     @3 AS Hoehe, 
     @4 AS Datum, 
     @5 AS Zeit, 
     @6 AS Temperatur, 
     @7 AS Einheit, 
     @8 AS TimeStamp
FROM
[http://at-wetter.tk/api/v1/t/2015-03-01/2]
(txt, utf8, no labels, delimiter is ';', msq);

UNQUALIFY "*";

Trace "Saving to Path: $(PATH_DATASTAGING)";

STORE $(varTableName) INTO "$(PATH_DATASTAGING)$(varTableName).qvd" (qvd);

IF _DEBUG = 0 THEN
  Qvc.Log('Deleted the Table as we are not in Debug.');
  DROP TABLE $(varTableName);
END IF;

Let varNoRecords = NoOfRows(varTableName);
Let msgLogFile = 'Die Tabelle ' & varTableName & ' wurde mit ' & varNoRecords & ' geladen.';

//hier schreiben wir einen Kommentar in ein LogFile
CALL Qvc.Log(msgLogFile,'INFO');

Screenshot 2015-03-28 17.13.22

 Aufgabe 3 – Laden Sie die Wetterdaten aller Tage des Monats 03

Selbständiges arbeiten – 15 min Zeit.

Schreibe einen Kommentar