Auslagerung der Qlik-Skripte

Für jede Anpassung im Dateneditor einer Qlik Sense Applikation muss die App kopiert, das Skript angepasst und die gesamte App neu veröffentlicht werden. Für eine kleine Code-Änderung und ohne dass an den Visualisierungen irgendetwas gemacht wurde, ist dieser Prozess eher aufwändig.
Für diese Fälle kann das Skript aus der Applikation ausgelagert werden. Denn das Skript lässt sich ganz einfach in einem Textdokument speichern und durch den Befehl Must_Include als Datei im Dateneditor einbinden. Die Textdatei kann mit der Endung qvs gespeichert werden. Damit können Editoren den Text als Qlik-Code erkennen und entsprechend highlighten. Beispielsweise kann das Skript dann mit Notepad++ oder mit Visual Studio Code bearbeitet werden.

Im Qlik-Dateneditor sind dann nur noch der Befehl zum Einbinden sowie Pfad und Dateiname anzugeben:

So kann nun das Skript in der ausgelagerten Datei jederzeit angepasst werden, ohne dass die Qlik-Applikation verändert werden muss.
Ein weiterer Vorteil dieser Auslagerung ist, dass ein Skript für mehrere Apps verwendet werden kann und Änderungen immer nur an einer Stelle durchgeführt werden müssen. Die Applikationen beziehen diese Änderungen automatisch und müssen nicht alle einzeln manuell angepasst werden.

Code-Versionierung

Bei größeren Projekten mit mehreren Qlik-Entwicklern ist es nun auch hilfreich, den Code zu versionieren. Dies ermöglicht es zu sehen, wer wann zuletzt welche Änderung durchgeführt hat. Zudem kann bei Problemen einfach auf den letzten funktionierenden Stand zurückgekehrt werden.

GIT bietet diese Versionsverwaltung kostenlos und als Open Source-Software. Wird der Pfad, auf dem die Skripte liegen, nun mit GIT verwaltet, dann kopiert sich jeder Entwickler den Ordner mit den Skripten und führt Änderungen immer nur in seinem Ordner durch.

Beispiel: In diesem Fall sind drei Entwickler Hannah, Stephen und Tom beteiligt, alle können parallel die Skripte in ihrem eigenen Ordner bearbeiten. Die produktiven Apps beziehen sich die Skripte aus dem master-Ordner, indem der Must_Include-Pfad um den master-Ordner erweitert wird:

$ (Must_Include=[lib://Qlik-Skripte/master/Datenmodell.qvs]);

Die eigenen Änderungen am Code können dann in einer Kopie der App getestet werden. Dafür muss lediglich der Pfad angepasst werden und auf den eigenen Ordner verweisen.

Nach erfolgreichem Test können die Änderungen mit GIT in den master-Ordner übernommen werden und die produktive App lädt beim nächsten Ladelauf automatisch das geänderte Skript.

Die Änderungen selbst werden auf sogenannten Branches durchgeführt. Auf einem Ordner ist immer ein Branch eingestellt, der master-Branch liegt dabei immer auf dem master-Ordner. So kann nun jederzeit nachvollzogen werden, welcher Entwickler wann was gemacht hat. Die Qlik-Skripte haben damit eine Versionierung und bei Problemen kann auf einen alten Stand zurückgegriffen werden.

In diesem Beispiel ist der master in rot dargestellt.
Zuerst hat Stephen einen neuen Branch erstellt (blau), um ein neues Feld im QVD-Generator einzufügen. Seine erste Änderung hat er direkt in den master überführt. Währenddessen hat Hannah eine Korrektur im Datenmodell durchgeführt (gelb) und dann hat Tom den Schlüssel für den Masterkalender geändert (grau). Anschließend hat Stephen einen weiteren Branch erstellt, um ein Problem mit doppelten Werten zu beheben (grün – noch nicht in den master übernommen), bevor er auf seinem ursprünglichen Branch (blau) weitergearbeitet hat.

Ein Entwickler kann mehrere Branches erstellen und dadurch an mehreren Stellen parallel und völlig unabhängig von einander arbeiten. Stephen hat gleichzeitig einen Branch für das neue Feld und einen für den Fix. Seinen Ordner kann er mit GIT umschalten.

Anwendungsfall: Self-Service

Das Prinzip eignet sich auch hervorragend im Rahmen von Self-Service-Projekten. Auf ihren eigenen Branches können die Fachbereiche selbst Änderungen durchführen und testen. Anschließend stellen sie Pull Requests, damit ihre Änderungen in den master übernommen werden. Hier kann dann eingestellt werden, dass bestimmte Qlik-Entwickler oder der Betrieb die Änderungen zunächst prüfen und genehmigen.

Über die Autorin

Daniela Pohl berät und betreut als Senior Consultant Kunden im Bereich Reporting und Analytics. Ihr Schwerpunkt liegt dabei auf den Themen Frontendentwicklung und Konzeption.

Daniela Pohl gehört zum Team Reporting & Analytics.