QlikView and Qlik Sense - Important Security Fix now available in new Service Releases and Patches

Bitte folgenden Beitrag auf dem Qlik Support Blog beachten:



https://community.qlik.com/t5/Qlik-Support-Updates-Blog/QlikView-and-Qlik-Sense-Important-Security-Fix-now-available-in/ba-p/1569608


Wenn Sie Unterstützung benötigen, bitte nehmen Sie Kontakt mit uns auf!

Folgende FAQ hat Qlik nun bereitgestellt: https://support.qlik.com/articles/000073349


Implementing version control for Qlik Sense - Layouts

Auf QlikFix ist ein netter Artikel erschienen wie man die Qlik Sense Skripte versionieren kann. Außen vor gelassen wurde aber das Thema, wie man seine Qlik Sense Layouts in sein Versioningtool einchecken kann, ohne das es explodiert.

Das Problem ist, dass Qlik die Dashboarddefinition & das Datensegment in einem großen, binärem File speichert. Auch wenn Ihre Balkendiagramme, Pivottabellen und Geodarstellungen nur ein paar Megabyte benötigen - bei Dashboards mit einigen Millionen Datensätze ist das interne File gerne einige hundert Megabyte oder auch einige Gigabyte groß. Das tut natürlich weh, wenn man diese Dateien in das Versioning System bringen will.

Seit einigen Versionen erlaubt Qlik Sense zumindest die Applikation ohne Datensegment zu exportieren, womit die  Qlik Dashboards nur noch einige Megabyte groß sind.

Zwar ist das exportierte .qvf weiter ein binäres File (für Vergleiche also nur bedingt nutzbar), aber mit dieser Größe lässt es sich besser in Git und Konsorten zwecks Historisierung hinzufügen. Auch für Backups sind diese Dateien komfortabler, weil die Daten normalerweise aus der Quelle oder aus .qvds sowieso wiederhergestellt werden können.

Export QlikSense with no Data
Diesen Haken herausnehmen, dann hat das Dashboard nur wenige Megabyte


Leider erlaubt die QMC immer nur einzelne Qlik Sense Dashboards zu exportieren. Um den Vorgang also zu Automatisieren, bietet sich ein Blick in die Repository APIs an.


Wer sich nicht selbst ein Tool bauen kann oder will, dem ist mit dem Qlik-Cli Powershell Tool sehr geholfen. Unterhalb eine Beschreibung wie man damit automatisiert alle Dashboards ohne Daten aus der QMC exportieren kann:

Mit einer aktuellen Powershell 5 bitte die Anleitung hier beachten.

Qlik Clik install
Load Qlik-Cli

Qlik-Cli bietet viele andere Funktionen die nicht Teil dieses Blogposts sind, ein Blick in die Hilfe könnte aber interessant sein.

Qlik Cli Help
get-help Qlik


Für uns relevant ist die Funktion export-qlikapp mit dem Parameter -SkipData
Setzen wir den Parameter, werden die Qlik Sense Applikationen ohne Datensegment exportiert.

get-help export-qlikapp
get-help export-qlikapp

Wer sich für den Powershell Code interessiert, findet diesen unter C:\Program Files\WindowsPowerShell\Modules\Qlik-Cli\1.14.1\resources\app.ps1

Ich habe einige Debug Statements ergänzt, und dann das Modul mit "import-module Qlik-Cli" neu geladen.




Das eigentliche Exportieren lässt sich jetzt mit der Get-QlikApp Funktion kombinieren. Dort kann man alle relevanten Apps auf einmal filtern, und dann mit einer Pipe an die Export-QlikApp -Skipdata übergeben.

Wie man am Screenshot sieht, entstehen mit dem Befehl alle Qlik Sense Apps aus dem "Everyone" Stream. Die meisten sind zwischen 0.5 und 5 Megabyte. Die Applikation mit 15 Megabyte dürfte einiges an .kml-Dateien direkt enthalten, und ist entsprechend größer.



Andere Beispiele um Applikationen zu exportieren sind:

Export App by name
Get-QlikApp -filter "Name eq 'Operations Monitor'" | Export-QlikApp -Skipdata

Export all Apps of a Stream
Get-QlikApp -filter "stream.name eq 'Everyone'" | Export-QlikApp -Skipdata


Export all Apps of a specific user starts with qlikfinance
Get-QlikApp -filter "owner.name sw 'qlikfinance'" | Export-QlikApp -Skipdata




Welche Filter Sie an die "Get-Qlik" Funktion übergeben können finden Sie unter:

https://help.qlik.com/en-US/sense-developer/September2018/Subsystems/RepositoryServiceAPI/Content/Sense_RepositoryServiceAPI/RepositoryServiceAPI-Filtering.htm

https://community.qlik.com/t5/Qlik-Sense-Integration/QRS-API-Filtering/m-p/895398











Reuse Section Access in NPrinting

Wenn man seine QlikView und Qlik Sense Section Access Berechtigungen in NPrinting wiederverwenden will, ist leider die Dokumentationslage ein wenig dünn. Im Qlik STT Video "Qlik NPrinting User Management & Security" wird das Thema ganz am Ende bei den Q&A kurz behandelt: Ja, NPrinting supported Section Access. Dieser Blogpost zeigt wie es gemacht wird!

Der "UserDACH" bekommt auch im PDF-Report nur Deutschland, Österreich, Schweiz zugesendet


Die Anleitung unterhalb zeigt wie der Section Access aus QlikView bzw. Qlik Sense in NPrinting wiederverwendet werden kann, ohne manuelles Anlegen von User Filtern  in  der NPrinting Console.



1) Section Access wird in QlikView und Qlik Sense im Script definiert. Unser Demouser ist "VPS1264656\UserDACH",  und darf drei Länder Deutschland, Österreich, Schweiz sehen .

Den NPrinting-Serviceuser (in unserem Fall VPS1264656\QVSERVICE) hier als ADMIN ohne Einschränkung hinzufügen.

NPrinting Section Access Qlik Sense Script

 
2)  Loggt sich der "UserDACH" in die Applikation ein, sieht man wie der Section Access auf die drei Länder einschränkt. Genau die gleiche Einschränkung soll der User bei seinen NPrinting Reports haben.

Die Funktion "=osuser()" zeigt uns den eingeloggten User. Das sieht in Qlik Sense ein wenig anders aus als in Qlikview, zeigt aber prinzipiell genauso die Domain und den Usernamen.


NPrinting Section Access Qlik Sense

3) Damit der User einen NPrinting Bericht erhalten kann, muss er in NPrinting angelegt bzw. aus dem ActiveDirectory importiert werden. Wichtig ist, dass das Feld "Domain Account" danach ein "Valid NT Domain User" ist, weil über diesen Usernamen der Section Access angewendet wird.

NPrinting Section Access User Domain Account

4) Beim Anlegen der Connection, muss man den Haken "Apply user section access for reports" anhaken. Als Identity tragen wir den NPrinting-Serviceuser VPS1264656\QVSERVICE ein. 

NPrinting Section Access Connection

5) Den NPrinting Report wie gewünscht designen. Am besten auch eine Textbox mit osuser() auf den Bericht ziehen, damit man das Ergebnis validieren kann.

6) Die Recipients des Berichts hinzufügen. Damit mappt der NPrinting User "UserDACH" auf  den Domain User "VPS1264656\UserDACH". Das gleiche gilt für UserAT und UserDE -  und so bekommt jeder der 3 User seinen maßgeschneiderten Report
NPrinting Section Access Recipients
7) Der Benutzername kann dynamisch in der Email gesetzt werden

NPrinting Section Access Email Template

 8) Wenn Sie den Task nun anstarten, bekommt jeder User seinen "Section Access" geschneiderten Report in die Mailbox geliefert. Die osuser()-Funktion zeigt, dass Section Access greift.

NPrinting Section Access 3 different Reports








Qlik Sense Theme - Zebra Striped Tables & Pivots

Seit Qlik Sense Februar 2018 gibt es die Möglichkeit eigene Themes für Qlik Sense zu bauen. Diese Woche habe ich eine interessante Frage bekommen: kann man die Zeilen in Tabellen und Pivottabellen alternierend einfärben um die Lesbarkeit zu erhöhen? JA, kann man!

Qlik Sense Default Objekte with Zebra stripes
Die Tabellen mit alternierend weißen und grauen Zeilen in Default Qlik Sense Objekten
Aus QlikView kennen wir das Feature einfach als Einstellung beim Objekt. In Qlik Sense gibt es dieses Property nicht, dafür hat man natürlich den Vorteil, dass man den Qlik Sense Webclient über CSS steuern kann.

QlikView vs. Qlik Sense Zebra Stripes
QlikView Stripes vs. Qlik Sense Table

Wie man Zebra Stripes mit CSS definiere kann findet man unter w3schools.com. Als Ausgangspunkt für ein Qlik Sense Theme habe ich das QDT-Theme vom Qlik Demo Team hergenommen. Dort sieht man in der theme.css bereits einige Styles definiert. Zusätzlich habe ich folgendes eingefügt.

css for Qlik Sense zebra stripes
.css Anweisung für Zebra Stripes
Das .zip File mit dem modifizierten Theme steht hier zum Download.

Um das Theme am Qlik Sense Server zu deployen, das .zip File in der QMC als Extension importieren.



Dann kann das Theme "qdt theme" über die Qlik Sense App Settings eingestellt werden.



Voilà - alle Tabellen werden jetzt schön gestreift dargestellt! Sogar wenn man das Balkendiagramm rechtsklickt und sagt "Daten anzeigen", wird die Tabelle gestreift. Das hat sogar mich positiv überrascht :-)





Folgende .css ergänzt auch ein Hovering, damit man die markierte Zeile besser sehen kann
 .qv-object-content-container .qv-object-content table tr:hover {
          background-color: #ffff99;
 }



Will man das Feature in allen Themes, ohne die Themes anzupassen, kann man die Styles am Ende der client.css ergänzen. Bitte bei jedem Update mitziehen.





Qlik Sense - QMC und Hub CSS Farbe setzen

Wer viele Tabs in seinem Browser offen hat, und zudem noch mehrere Qlik Sense Systeme (DEV, TEST, PROD) sein Eigen nennt, ist wohl manchmal verwirrt welche Qlik Sense Umgebung er gerade nutzt.

Leider gibt es kein direktes Feature um die verschiedenen Umgebungen farblich klar zu trennen, aber man kann sich die .css von QMC und HUB mal genauer ansehen.

Qlik Sense Hub und QMC in rot gefärbt

Als Helferlein dient hier am besten das Dev Tool in Chrome, welches man mittels F12 einblenden kann. Mit dem DOM-Inspektor sieht man, dass etwa die qmc.css den Style "qmc-toolbar" setzt.


Nicht ganz offensichtlich ist, wo denn die qmc.css im Filesystem liegt. Das war in Qlikview einfacher, weil wir den IIS/QVWS mit klaren Mountpoints hatten. Für den Qlik Sense Proxy Service findet man die Datei unter: C:\Program Files\Qlik\Sense\Client\qmc.css

Dort kann man zum Beispiel "Background-color: red;" für den Style "qmc-toolbar"einfügen.


.css Änderung bewirkt roten Balken in QMC



Für den Hub liegt die Datei unter C:\Program Files\Qlik\Sense\Client\hub\hub.css.  Dort ist es der Style "hub-toolbar".


Die .css ist komprimiert, und somit unangenehmer zu editieren. Wer aber zum Beispiel mit notepad++ nach "hub-toolbar{" sucht, sollte auch schnell fündig werden.





.css Änderung bewirkt roten Balken in Hub


heldendaten GmbH,2017