Quantcast
Channel: QlikView + Qlik Sense Blog von Heldendaten
Viewing all 102 articles
Browse latest View live

Qlik Sense - QMC und Hub CSS Farbe setzen

$
0
0
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



Qlik Sense Theme - Zebra Striped Tables & Pivots

$
0
0
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 :-)




Reuse Section Access in NPrinting

$
0
0
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








Implementing version control for Qlik Sense - Layouts

$
0
0
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











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

Zusätzliche Features mit der Qlik Sense Enterprise Lizenz

$
0
0
Die Qlik Sense Enterprise Lizenz schaltet mehr Features & Software Produkte frei als man glauben könnte: Erweiterte Geoanalysen, Webkonnektoren zu Anbietern wie Google Analytics, Microsoft Dynamics CRM  sowie das Qlik Datamarket Essentials Paket. Hier ein kleiner Überblick was man mit der Qlik Sense Lizenz alles machen kann.

Qlik Geo Analytics mit Qlik Sense Lizenz
Qlik Geo Analytics mit Fahrtzeiten. Freigeschalten mit der Qlik Sense Lizenz

Im Qlik Sense LEF File finden sich einige interessante Einträge mit dem Keyword "YES".  Wir  wollen hier Schritt für Schritt darauf eingehen was welcher Eintrag bedeutet.

Die markierten Einträge erlauben es, mit der gleichen Lizenz nicht nur Qlik Sense Enterprise zu aktivieren, sondern auch die Qlik Produkte GeoAnalytics, Webconnectors und Qlik Datamarket Essentials.

Diese Addons sind Akquisitionen die die Qlik in den vergangenen Jahren getätigt hat. Als Qlik Sense Kunde darf man diese nun "mitbenutzen". Die Download stehen auf der Qlik Downloadseite bereit, sofern Ihr Qlik Community User dafür korrekt freigeschalten ist. Ansonsten nehmen Sie bitte Kontakt mit uns auf.


Qlik Datamarket Essentials

Qlik hat Ende 2014 die Firma Datamarket.com gekauft. Mit dem Lizenzeintrag "QDM_ESSENTIALS" wird bei der Qlik Sense Installation ein zusätzliches Datenpaket "Essentials" freigeschalten, das folgende Dateninhalte im Qlik Sense Datamanager bereitstellt.

Qlik DataMarket Essentials Paket
Qlik DataMarket Essentials Paket

Wählt man zum Beispiel "Currency", kann man sich über einen Dialog die Währungsumrechnungen in den Daten ergänzen.

Qlik Datamanager bietet einen Wizard zum Hinzufügen der Daten

Das Paket ist ganz nett, aber gleichzeitig auch recht eingeschränkt. Es gibt weitere kommerzielle Pakete, oder man nutzt andere APIs um zum Beispiel detailliertere Wetterdaten zu bekommen.


Webconnectors

2016 hat Qlik die Firma Industrial Codebox gekauft. Diese hat sich auf die Entwicklung von Konnektoren zu Webservice wie Google Analytics, Facebook, Twitter, Microsoft Dynamics CRM konzentriert.

Die Qlik WebConnectors sind ein eigenes Setup, dass man als Windows Service laufen lassen kann. Das Qlik Ladescript greift dann auf die Daten via HTTP zu und übergibt die Parameter in der URL.

Die Standardkonnektoren kann jeder QlikView und Qlik Sense Kunde frei installieren. Mit der Lizenzzeile "WEBCONNECTORS" können Sie aber auch alle Premium Konnektoren nutzen, und unterliegen nicht dem halbjährlichen Upgradezwang der Standardkonnektoren.

Qlik Sense Lizenz einspielen um Premium Konnektoren zu aktivieren
Qlik Sense Lizenz einspielen um Premium Konnektoren zu aktivieren


Diese zusätzlichen Konnektoren sind nun freigeschalten




Geo Analytics

Qlik hat die skandinavische Geo Analytics Firma Idevio Maps im Jahr 2017 gekauft. Diese bot  kommerzielle Extensions für QlikView und Qlik Sense an. Seither wandern viele Features von Idevio in das Qlik Sense Standard-Kartenobjekt. Die Idevio Funktionalität existiert aber weiterhin und kann mit den Lizenzeinträge GEOPLUS und GEO ANALYTICS installiert & freigeschalten werden.

Unterhalb sieht man wie sich die Qlik Sense Extensions sogar noch als "Idevio" registrieren.



Die Extensions bieten einige interessante Darstellungen wie Fahrzeitanalysen zu Standorten an. Dafür werden jedoch Daten in die Cloud geschickt.

Weiters besteht natürlich das Risiko, dass diese Extensions langsam "sterben", wenn alle Features in das Qlik Sense Standardkartenobjekt wandern. Auch der Druck mit NPrinting und die Integration in Stories ist nicht möglich.

Qlik Geo Analytics Travel Time
Qlik Geo Analytics Travel Time

Catchment area
Qlik Geo Analytics Catchment Area


Qlik Geo Analytics - Potential for new location



Weiters kann man den Geo Analytics Connector Qlik GeoAnalytics Connector im Qlik Datamanager nutzen. Leider ist aber hier die Address Lookup Funktion nicht freigeschalten.

Qlik Geo Analytics Connector


Qlik Geo Analytics Connector - Operatoren



"Qlik on Steroids" für Admins - QIX & Audit Log

$
0
0
Mit dem November 2018 Release hat auch QlikView den QIX-Log bekommen. Bisher war das Verhalten der Qlik Engine eine ziemliche Blackbox. Warum und wodurch wieviel RAM benutzt wird, war sehr schwer zu sehen. Mit dem neuen QIX-Log plus einem aktiven Audit Log können Qlik-Administratoren jetzt tief eintauchen und genau sehen was auf ihren Servern so vor sich geht!

Jedes Objekt und Dokument das bestimmte CPU- oder Memory-Grenzen übersteigt wird im QIX Log protokolliert. Auf Basis dieser Daten kann ein Dashboard gebaut werden, welches die teuren Dashboards & Objekte der gesamten Umgebung aufzeigt, und durch welche Userinteraktionen viel Leistung verbraucht wird.

Heldendaten Analyse QIX und Audit Log
Analyse Applikation zum QIX Log

Der QIX Log wird über die settings.ini des QlikView Servers aktiviert. Eine genaue Beschreibung der Felder und Einstellungsmöglichkeiten finden sich in der QIX Perfomance Log Hilfe

In unserem Beispiel haben wir sehr niedrige Grenzen gewählt. Ein QIX Logeintrag entsteht, wenn:

- Warning wenn Object Process Time> 2 Sekunden
- Error wenn Object Process Time> 4 Sekunden
- Warning Peak Memory wenn mehr als ~500 MB
- Error Peak Memory wenn mehr als ~1GB

Diese Parameter müssen Sie entsprechend Ihrer Umgebung anpassen. Bei 2 Sekunden bekommen Sie wahrscheinlich zu viele Warnings.

QlikView Server settings


Im Beispiel sehen wir, dass das Chart CH454 bis zu 763MB für die Berechnung benötigt.

Heldendaten QIX Analyse
Problemobjekte pro Qlik Anwendung


Das allein ist eine interessante Information, die ohne QIX Log am Server bisher nicht ersichtlich war. Noch spannender wird es, wenn man in der QMC den AuditLog aufgedreht hat. Audit Log und QÍX Log lassen sich nämlich über das gemeinsame Feld "SessionId" verschneiden.


Qlik Audit Log
Audit Log in der QMC


Somit sieht man welcher User in welcher Session mit welchen Selektionen das "teure" Chart verursacht hat. Im "QIX Warnings und Errors" Diagramm am Screenshot unterhalb sieht man, dass der User in der Session das Objekt dreimal aufgerufen hat, und es jedes Mal zu einem QIX-Error geführt hat.


Wählt man nun die betroffene SessionId, kann man sich den genauen Verlauf des Problems ansehen.
In unserem Fall sind die Einträge des QIX-Log rot, die Einträge des AuditLog blau.

Man sieht, dass der User  im Feld "Segment_Long_Name_Filter""Austria" gewählt hat. Darauf hin rechnet das CH454 für 19 Sekunden und verbraucht 464MB RAM. Danach wählt der User im Feld "Month_Filter" den Wert "Jun", das Chart rechnet 34 Sekunden und verbraucht 763MB RAM.

QIX Audit Log Zeitverlauf einer Session
QIX und Audit Log im Zeitverlauf verschnitten

Im rechten Balkendiagramm sieht man auch, dass am Anfang der Session sehr viele Selektionen getroffen werden (Blaue Balken des Audit Logs). Dies sind wahrscheinlich viele initiale Selektionen die in der QlikView App definiert sind. Danach kommen viele QIX-Alarme (rote Balken). In der Applikation dürfte es also mehrere Objekte auf einem Dashboard geben, die viel Rechenleistung benötigen.

Das QlikView Dashboard finden Sie hier.



Für Qlik Sense existiert ein ähnliches Dashboard. Siehe Video unterhalb. Der Download findet sich auf Github.


QIX und Audit Log bilden eine neue Sicht auf die Performance des Qlik Servers. Mit der gewonnenen Information kann der Qlik Administrator gezieht auf die Entwickler des Dashboards zugehen und auf gewisse Objekte aufmerksam machen. Oft können durch einfache Anzeigebedingungen, oder Überarbeitung der Formeln die größten Performancefresser schnell beseitigt werden.

Process Mining mit Qlik Sense

$
0
0

Das Thema Process Mining begleitet uns seit einigen Jahren durch unsere Qlik Projekte.  Mit der Process Mining Extension von Mehrwerk für Qlik Sense ergeben sich ganz neue Möglichkeiten beim Bau eines Qlik Dashboards.

Process Mining mit Qlik Sense
Process Mining mit Qlik Sense


Die Darstellung von Prozessen in QlikView war stets schwierig, weil Prozessinstanzen beliebig viele Prozessschritte haben können, und keine Standarddarstellung hier ein befriedigendes Ergebnis liefert.

In einigen Projekten haben wir uns mit dem Parallel Coordinates Diagramm beholfen, um so etwas wie einen "Happy Path" darzustellen. Wenn im Prozess jedoch "Schleifen" vorkamen, oder der gleiche Prozessschritt von der Prozessinstanz mehrmals durchlaufen wurde, war die Darstellung nicht ideal.


QlikView - Parallel Coordinates für Prozessdarstellung
QlikView - Parallel Coordinates für Prozessdarstellung. Die dicke Linie ist die häufigste Prozessvariante



In Qlik Sense sieht die "Process Mining-Welt" nun anders aus: Die Qlik Sense Extension von Mehrwerk kommt einerseits mit der graphischen Extension, andererseits aber auch mit einem fertigen Script um die Prozessvarianten inklusive Schleifen zu erkennen und in einem Qlik Sense Template Dashboard darzustellen.


Datentechnisch ist der Input für Process Mining relativ straight forward. Typischerweise haben die Kunden diese Daten in Ihrem ERP oder MES-Systemen so oder so ähnlich vorliegen. Zwingend sind die 4 Spalten:

  • CaseID
  • ActivityName
  • ActivityStart
  • ActivityEnd

Process Mining Vorlage
Process Mining - Vorlage Datenstruktur

Zusätzlich können die Daten natürlich in Qlik angereichert werden. So kann sowohl für jede einzelne Process-Instanz (CaseID) als auch bei den einzelnen Activities verschiedene Attribute wie Kosten pro Maschinenstunde, etc. hinterlegt werden.

Um das Qlik Sense Process Mining Template zu beladen, muss man entsprechend im Script einige Zeilen auf die Namenskonventionen des Templates anpassen. Der Rest wird dann durch das mitgelieferte Qlik Sense Script angereichert. Die Rohdaten bleiben im Qlik Dashboard aber immer erhalten und können dort zur Validierung der Zahlen herangezogen werden.

Process Mining Qlik Template Script
Template Script um eigene Processdaten zu laden


Somit hat man nach kurzer Zeit ein befülltes Process Mining Dashboard um erste eigene Prozess-Daten sichten zu können. Und bisher war das immer ein spannender Augenblick :-)


Im Beispiel unterhalb sieht man, dass es für unseren Prozess 7059 verschiedene Ausprägungen existieren. Die graphische Process Mining Extension rechts zeigt defaultmäßig die Top 10 Varianten, mit denen 74,94% aller Prozessinstanzen abgedeckt werden.

Process Mining Qlik Dashboard
Process Mining Dashboard

Process Mining Qlik Extension Details
Die Process Mining Extension im Detail
Die Activities und Prozesskanten können natürlich wie gewohnt in Qlik Sense selektiert werden, und das restliche Dashboard passt sich entsprechend an.

Für komplexere Abfragen von Prozessen kann man auch den integrierten Querybuilder nutzen. Damit lassen sich dann Abfragen bilden wie: Gib mir alle Prozessvarianten die als zweite Aktivität "Change Quantity" haben, und später die Aktivität "Remove Payment Block" vorkommt. Eine solche Abfrage wäre mit der normalen Qlik Grün/Weiß/Grau-Logik nicht einfach zu bewerkstelligen.

Process Mining Qlik Query Builder
Query Builder um bestimmte Prozessvarianten abzufragen

Das Qlik Sense Process Mining Template enthält noch viele spannende Themen wie:

  • Abweichungen vom Standardprozess 
  • Comparison von Prozessinstanzen mit Qlik Alternate States (Auswahlräumen)
  • Impact Analysen
  • Time Analysis

Natürlich kann die Qlik Sense Applikationen wie gehabt nach Ihren Wünschen angepasst und um eigene Arbeitsblätter erweitert werden.

Unterhalb noch einige Screenshots. Am meisten Spaß macht es aber das Thema mit den eigenen Daten auszuprobieren. Bei Interesse, nehmen Sie gerne mit uns Kontakt auf!

Process Deviation Analysis
Process Deviation Analysis - Abweichungen vom Sollprozess


Comparison Analysis mit Qlik Alternate States
Comparison Analysis mit Qlik Alternate States

Raw Data die das Dashboard befüllt
Raw Data, die das Dashboard befüllt



GetObjectDimension & GetObjectMeasure - undokumentierte Qlik Chart Funktionen

$
0
0
Qlik vergisst gerade gerne neue Funktionen in den Release Notes zu erwähnen. Barry Harmsen hat gerade das neue Autonumber Script Statement beschrieben. Die beiden Chart Funktionen getObjectDimension und getObjectMeasure werden zwar von der Qlik Code Completion vorgeschlagen, in der Dokumentation sind sie aber nur bei der Funktion "GetObjectField" angedeutet.

Die GetObject* Funktionen in der Qlik Auto Completion
Die GetObject* Funktionen in der Qlik Auto Completion


Seit einigen Versionen hat auch Qlik Sense die Funktionalität Spalten (Dimensionen und Kennzahlen) in Diagrammen dynamisch ein- und auszublenden.

Hier kann man sich die getObjectDimension und getObjectMeasure zu nutzen machen, um abzufragen was denn gerade der Titel der jeweiligen Spalte ist:

Ist die Spalte "Count" eingeblendet wird "Anteil der Firmen" angezeigt

Ist die Spalte "Revenue" eingeblendet wird "Anteil des Umsatzes" angezeigt

Die Funktionen können als Kennzahl genutzt werden


oder zur Definition der Hintergrund/Textfarben. Leider kann man momentan die Funktionen nicht für die Titelbeschreibung der Charts nutzen.



Die Funktionen liefern die Beschriftung der Spalten, und nicht deren Definition.  Fügt man also zb. das Feld "Region" als Spalte ein, ändert aber den Titel auf "State" so liefert GetObjectDimension(1) auch die Bezeichnung "State".


Ändert man die Spaltenreihenfolge mittels Drag&Drop ändern sich die Formelergebnisse ebenfalls nicht. Es scheint also so, als würden die beiden Funktionen auch interne Indexe zugreifen!


Mit GetObjectDimension() kann man auch auf Alternative Dimensionen zugreifen. Zum Beispiel könnte man sagen für "Kategoriename" macht man ein normales PieChart, wenn aber auf "Artikelname" geswitcht wird, nutzt man die Radius-Formel  für ein RoseChart. Damit kann man wieder einiges steuern, wo wir in QlikView die Zyklische Gruppe & getcurrentfield()-Funktion hatten.

GetObjectDimension für Alternative Dimensionen 1
PieChart mit "KategorieName" als Dimension und "Artikelname" als Alternative Dimension



GetObjectDimension für Alternative Dimensionen 2
Wenn man auf die Alternative Dimension "Artikelname" switcht, wird ein Rose Chart daraus.



GetObjectDimension in Formel nutzen
Hier die Radiusformel mit GetObjectDimension(0) um das Rose Chart zu generieren.




Die Beispiel .qvf finden Sie hier. Hier der Qlik Knowledge Base Artikel zu den Funktionen:
https://support.qlik.com/articles/000058438



Qlik Sense Variance Waterfall für Bestände

$
0
0
Ab Qlik Sense Sept 2019 kommt im "Visualization Bundle" das Variance Waterfall Chart mitinstalliert. Die Darstellung ist viel dynamischer als das normale Wasserfalldiagramm, weil man nicht für jeden Balken eine eigene Expression schreiben muss.

Für normale YTD-Darstellungen in einer Vertriebsapplikation ist das Chart recht Straight Forward. Das Variance Waterfall Chart nutzt die gleichen Formeln wie das normale Wasserfalldiagramm, und läuft zusätzlich über das "Monat"-Feld. Im Beispiel unterhalb sieht man so auf einem Blick, dass die Monate Jänner, Februar und März noch besser als das Vorjahr waren, bevor sich dann in den Folgemonaten der Umsatz YTD schlechter entwickelt hat.

Qlik Sense Wasserfall Variance
Mit den YTD und YTD Vorjahr Formel zeigt das Variance Waterfall die Umsatzenwicklung nach Monaten aufgerissen!

Zuletzt hatten wir jedoch eine Anforderung mit diesem Charttyp die Veränderung von Beständen darzustellen. Beispiele dafür wären: Lagerbestände, Entwicklung Anzahl Kunden pro Monat, usw.

Für diese Anforderung scheint das Chart nicht unbedingt geschaffen, weil es das Konzept von Start-Bestand und End-Bestand nicht wirklich kennt, und es keine Differenz zum Vormonat bildet. Man sieht das ganz gut, wenn man sich den Javascript Code der Extension von Qlik  ansieht.

Wieder hilft uns aber ein Workaround den wir schon für die Sparklines im Climber KPI Objekt  (mittlerweile in das kommerzielle Vizlib aufgegangen) vorgestellt hatte. Mittels dimensionality(), below() und firstsortedvalue() kann man auch diese Anforderung darstellen. Die Formeln sind nur ein wenig komplizierter. Zum Test gibt es die Werte rechts als Tabelle.

Über zwei Jahre entwickelt sich der Lagerstand von 700.000 auf 670.000



STARTFORMEL:

rangesum(FirstSortedValue(distinct aggr(nodistinct sum(Bestand),Monat), Monat,1),-0)



ENDFORMEL:
if (dimensionality() = 0,
//Höhe Balken Zielmonat
rangesum(FirstSortedValue( distinct aggr(nodistinct sum(Bestand),Monat), -Monat,1))
,
//Wert des Vormonats
alt(
below(
rangesum(FirstSortedValue( distinct aggr(nodistinct sum(Bestand),Monat), -Monat,1),-0)
,1)

,

//im letzten Monate keinen Unterschied zeichnen
rangesum(FirstSortedValue( distinct aggr(nodistinct sum(Bestand ),Monat), -Monat,1))
)

)



Als Dimension nutzen wir ein eigenes Feld "MonatWasserfall" welches um ein Monat zum tatsächlichen Datum verschoben ist. Damit ist die Beschriftung dann schlüssiger.


Weil Bestände oft sehr hoch, und die Veränderungen verhältnismäßig klein sind können, haben wir auch noch die Funktion eingebaut, dass sich ein Anwender selbst den Skala-Start definieren kann. Gibt er in das Inputfeld 400.000 ein, sieht das Chart folgendermaßen aus, weil die Y-Achse nicht mehr bei 0 beginnt.


Variance Waterfall mit Y-Achse Start auf 400.000


Gibt der User gar keinen Wert ein, dann wählen wir mit der Formel =if(len(vSkala)=0, min (aggr(sum(Bestand),Datum)) * 0.95 ,vSkala) den Skalenwert dynamisch und geben ihn als Fußnote aus.



Dynamischer Y-Achse Startpunkt


Alternativ zur vorgestellten Lösung könnte ein As-Of-Ansatz im Datenmodell funktionieren wo immer das Vormonat "mitselektiert" wird. Das bleibt zu testen. Wer für unsere Lösung herausfindet wie man den letzten roten Balken im Jänner 2021 mit dem Wert 0 loswerden kann, darf sich gerne melden :-)

Der Download zum Qlik Sense Beispiel findet sich hier.

Volltextsuche & Wordcloud in Qlik

$
0
0
Qlik bietet eine Volltextsuche über alle Felder. Aber kann man Qlik auch nutzen, um zum Beispiel alle Supporttickets oder Kundenfeedbacks nach Keywords zu durchsuchen und die Häufigkeit in einer Wordcloud darstellen? Der Artikel unterhalb beschreibt wie es funktioniert.

Word Cloud Qlik
Wordcloud in Qlik 

Das Qlik auch die Häufigkeit von Millionen Wörter darstellen kann habe ich schon 2015 hier unter Qlik Sense Smart Data Compression beschrieben.

Aber wie bekommt man aus einem längeren Text die einzelnen Wörter extrahiert, um etwa zu zählen wie oft ein Wort in Supportcases vorkommt?

Die Inputdaten für das Beispiel



Hier ist die Subfield Funktion von Hilfe.
//load data
[Data]:
LOAD
[Supportcase],
//replace line breaks with blanks
replace([Text],chr(10),'') as Text

FROM [lib://data/supportcases.xlsx]
(ooxml, embedded labels, table is Tabelle1);

//Split into Words
TempAllWords:
Load
[Supportcase],
trim(subfield([Text],'')) as Words
resident [Data];


Nach dem Splitten der Wörter kann man noch Satzzeichen entfernen. Zusätzlich kann man ungewünschte Füllwörter wie Pronomen, Artikel usw. entfernen, indem man ein Excel mit den irrelevanten Wörtern pflegt.
AllWords:
NoConcatenate
load
[Supportcase],
upper(Words) as Words,
applymap('IrrelevantWords',upper(Words),'relevant') as Relevanz
where len (Words) > 0;
load
[Supportcase],

(if(match(right(Words,1),'.',',','!','?',';') > 0, left(Words,len(Words)-1),Words)) as Words //cleanup
resident TempAllWords;


Was dieser Ansatz nicht macht, sind Volltextsuchen-Features wie Stemming um alle Wörter auf Ihren Wortstamm zu reduzieren. Hier könnte man die Server Side Extensions von QlikView und Qlik Sense nutzen, und die Wörter noch durch ein Python Skript für Stemming laufen lassen.

Die Wordcloud Darstellung selbst kommt mit dem Qlik Sense Visualization Bundle. Bitte auf die Sortierung und die Design|Orientation achten.

Qlik Sense Word Cloud nach Häufigkeit sortieren
Word Cloud nach Häufigkeit sortieren


Qlik Sense Word Cloud Orientations
Wordcloud Orientations auf 3


Als weiterführendes Thema kann man Sentiment Analyse betreiben. Viele Kunden haben automatisch die Qlik Sense WebConnectors lizensiert. Dort gibt es zwei Konnectoren die hier interessant sein können. Bei Gelegenheit werde ich dazu einen eigenen Blogpost schreiben.


Das komplette Beispiel zum Download findet sich hier

Karten Features im Qlik Sense Geo Objekt

$
0
0
Das Coronavirus zeigt im Internet gerade wieder wie aufschlussreich man mit Geodaten Zusammenhänge darstellen kann. Auch in der Qlik Community gibt es einige Dashboards die sich dem Thema Coronavirus widmen.

Coronavirus COVID-19 | Qlik Community Response
Coronavirus COVID-19 | Qlik Community Response

Ich will mich in diesem Blogpost ein paar generellen Features widmen, die das Qlik Sense Geo Objekt in den letzten Versionen erhalten hat.


Web Map Service (WMC) Hintergründe

Ein Web Map Service (WMS) ist eine Schnittstelle zum Abrufen von Auszügen aus Landkarten über das World Wide Web.  Spielt man das Beispiel aus der Qlik Hilfe durch, kann man sich sehr einfach eine Qlik Karte erzeugen, die Wassertemperatur und Niederschlagsmenge anzeigt. Wenn notwendig, kann auf zusätzlichen Ebenen eigentlich Daten aus dem Qlik Datenmodell angezeigt werden. In diesem Beispiel wären das die Hauptstädte der Bundesstaaten als rote Punkte.

WMS WassertemperaturNiederschlagsmengen kombiniert mit einem Qlik Sense Punktlayer
WMS Wassertemperatur & Niederschlagsmengen kombiniert mit einem Qlik Sense Punktlayer


Die Stadt Wien etwa stellt über die WMS URL https://data.wien.gv.at/daten/geo unzählige Informationen bereit, die als Hintergrund des Qlik Sense Karten Objekts genutzt werden können. Hier ein Beispiel das alle Krankenhäuser, Polizeistationen und Apotheken anzeigt.

WMS Service der Stadt Wien mit Krankenhäuern, Polizeistationen und Apotheken
WMS Service der Stadt Wien mit Krankenhäuern, Polizeistationen und Apotheken



Im Qlik Sense Edit-Modus kann auf der rechten Seite via "WMS-Einrichtung" gewählt werden, welche Informationen gerade angezeigt werden sollen.

WMS Service - Ebenen wählen
WMS Service - Ebenen wählen


Die Stadt Wien stellt so mehr als 100 Geoinformationen zu Verfügung, die Sie beliebig kombinieren können. Sie suchen einen Campingplatz in Wien in einem Biosphären-Park oder an einem stehenden Gewässer?  Kein Problem, einfach die Layer in Qlik Sense auswählen, und die Daten werden angezeigt.

Campingplätze in Wien's Biospährenpark
Campingplätze in Wiens Biosphärenpark


Bild als Hintergrund

Steht einem kein Webservice zu Verfügung, hat man im einfachsten Fall nur eine starre Bilddatei als Hintergrundkarte. Das bringt uns zu einem Feature, dass wir im Blog schon 2014 für QlikView vorgestellt hatten. Damals war es die Kabinenbelegung auf einem Kreuzfahrtschiff, in Qlik Sense wäre das Beispiel Supportmitarbeiter in einem Großraumbüro.

In der Qlik Hilfe ist dieses Bild als Sitzplätze im Großraumbüro verlinkt: https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Resources/Images/ui_map-image-background-example.png

Auf dem Bild überlegt man sich ein Koordinaten System, dass man im Qlik Script zu den Supportmitarbeitern mappt.

Will ich etwa den Mitarbeiter "Nehru" vom kleinen Besprechungstisch auf den großen Tisch setzen,

so muss man seine "Koordinaten" im Script anpassen.




Karte mit Graphikebenen

Seit einigen Versionen kann Qlik Sense neben den klassischen Punkt- und Gebietsebenen auch noch verschiedene Graphikebenen wie Kreisdiagramme, Balkendiagramme, Density Maps und Linienlayer.

Verschiedene Ebenen im Geo Objekt
Bei Kreisdiagrammen steht einem eine zusätzliche Dimension zur Verfügung, nach der man den eigentlichen Geo-Datenpunkt aufreißen kann. Im Beispiel unterhalb wird pro Postleitzahl noch zusätzlich das Feld Kategorie aufgerissen.

Die Postleitzahl aufgerissen nach Category. Der Tooltip zeigt absulte und relative Werte
Die Postleitzahl aufgerissen nach Category. Der Tooltip zeigt absolute und relative Werte

Einstellungen auf der Diagrammebene

Eigenes Symbol als Punktebene

Zu guter Letzt noch ein Feature aus dem aktuellen Qlik Sense Feb 2020 Release. In der Punktebene ist es nun möglich auch eine eigene Graphik als Punkt zu definieren.

Die französische Flagge als Bild Symbol auf der Punktebene
Die französische Flagge als Bild Symbol auf der Punktebene


Die Beispiele von oberhalb finden Sie hier. Die Demo zu Qlik Feb 2020 finden Sie direkt auf demo.qlik.com,

Profit & Loss in Qlik

$
0
0
Profit & Loss Darstellungen haben in Qlik eine lange Historie. Beginnend in QlikView mit einer hübsch formatierten Tabelle bis zur Vizlib Finance oder IBCS Hichert-konformen TrueChart Darstellung in Qlik Sense soll dieser Blogpost die möglichen Visualisierungen beleuchten.

Eine P&L Darstellung ist keine Pivottabelle. Das wird jedem schnell klar der sich mit diesem Thema beschäftigt. Summenzeilen sind keine reinen Aggregationen, sondern ergeben sich aus bestimmten Rechenregeln, manche Zeilen sollen unterschiedlich formatiert sein, und am liebsten würden Endanwender jede Zelle kommentieren können.

Die Historie

Jahrelang war sicherlich der Nachbau  eines Dashboards von Stephen Few die beliebteste Finance Demo in QlikView.

Finance Controlling QlikView Demo nach Stephen Few

Das Dashboard war im Hintergrund der blanke QlikView-Wahnsinn und bestand aus mehreren Dutzenden Objekten. Und genaugenommen umschipperte es das Thema einer konkreten "Profit and Loss"-Darstellung ganz geschickt.

So viele Objekte sind es, wenn man es sich im Entwurfsmodus ansieht



Außerdem gab es für QlikView im Qlik Design Blog eine Vorlage für P&L, die weiterhin seine Gültigkeit hat. Wer dem Beispiel folgt, merkt aber, dass eine ganz normale QlikView Straight Table benutzt wird.

Profit & Loss Statement in QlikView
Profit & Loss Statement in QlikView

Der gleiche Ansatz funktioniert in allen Qlik Sense Versionen, ebenfalls mit einer normalen Tabelle.

Profit & Loss Statement in Qlik Sense
Mit dem Qlik Sense Februar 2019 Release wurde dann die öffentliche P&L Pivot Extension in das Qlik Visualization Bundle aufgenommen, welche eine freiere Formatierung der P&L Darstellung erlaubt.

P&L Pivot als Teil des Qlik Visualization Bundles



Die vollwertigsten Lösungen inklusive Kommentarfunktion direkt in Qlik sind jedoch sicherlich die kommerziellen Extensions Vizlib Finance und das IBCS Hichert-konforme TRUECHART4QLIKSENSE (bzw TRUECHART4QLIKVIEW).

Vizlib Finance Extension

Die Finance Extension wurde ursprünglich von Climber für Qlik Sense entwickelt, und dann von Vizlib übernommen. Die aktuelle Version hat nun eine Zellen-basierte Kommentar-Funktion, die sogar in den Excel-Export übernommen wird.

Vizlib Finance Extension

Der Entwickler kann pro Kennzahl erlauben ob Kommentare erlaubt sind. Dem Endanwender werden bestehende Kommentare durch kleine Kreise mit der Anzahl der Kommentare symbolisiert.

Kommentare auf Zellenebene

Die Eingabe der Kommentare erfolgt direkt im Browser.


Via "Export to Excel with Comments" werden die Kommentare mit exportiert.

Vizlib Finance mit Export nach Excel


TRUECHART

TRUECHART ist die IBCS-konforme Extension für Qlik schlechthin. Schon seit QlikView 10 gibt es diese Extension für den AJAX Client, und stellt auch dort bereits viele Hichert Konzepte zur Verfügung. In Qlik Sense  ist das Arbeiten mit Extensions natürlich weitaus komfortabler, weil direkt im Browser gearbeitet werden kann.

Am Screenshot unterhalb sieht man, dass nicht mehr viel von der "normalen" Qlik Sense Darstellung übrig bleibt. Selbst die Filter kann man sehr kompakt über die TRUECHART Menu Bar einstellen.

TRUECHART P&L Darstellung mit Kommentaren
Auf der Webseite findet sich aktuell auch ein interessantes COVID -19 Dashboard. Hier sieht man, dass die Darstellungen weit über P&L hinaus gehen, und ein gesamtes Dashboard mit TRUECHART gestaltet werden kann.







Die verfügbaren Demoapplikationen für QlikView und Qlik Sense finden sich unter diesem Link.

Die Qlik-Funktionen Fractile und FractileExc

$
0
0
In 12 Jahren Qlik kann ich mich nicht erinnern, dass eine neue mathematische Funktion in den Release Notes erwähnt wurde. Mit Qlik Sense Nov 2019 SR3 und dem QlikView 12.50 hat sich das geändert: Willkommen FractileExc()Funktion!

Während es in Qlik schon immer eine median() und eine fractile() Funktion, durften sich Excel User bereits in der Version 2010 über zwei Funktionen verschiedene Quantil-Funktionen QUANTIL.INKL und QUANTIL.EXCL freuen.

Zur Erinnerung: die median Funktion liefert das gleiche wie die fractile(0.5) Funktion. Der Median ist jener Wert, der die höhere Hälfte der Werte von der niedrigeren Hälfte der Werte einer Datenreihe separiert. Je nach Verteilung kann dieser Wert sehr unterschiedlich liegen, und auch von anderen Mittelwerten abweichen.


Quantile für Normalverteilung und chi-Quadrat Verteilung



Warum also eine neue Funktion? Unter dem Titel "Die statischen Excel-Funktionen QUANTIL.INKL und QUANTIL.EXKL" findet sich eine schöne Abhandlung des Bloggers Gerhard Pundt. Die dort benutzte Datenserie, wollen wir in Qlik ebenfalls als Datenquelle nutzen.


Qlik Sense Nov 2019 SR3 FractileExc
FractileExc liefert für das 25% und 75% Quantil andere Werte als die Funktion Fractile


Die Ergebnisse für das 25% und 75% Quantil unterscheiden sich also zwischen der Fractile und der FractileExc Funktion. Qlik folgt den Excel Funktionen QUANTIL.INKL und QUANTIL.EXCL und liefert die gleichen Werte wie das Beispiel im oben genannten Blogpost.

Die Erklärung was FractileExc nun für eine mathematische Funktion ist, liefert das erste Kommentar von spaghettieisblog. Es verweist auf Wolfram Mathworld, wo 8 verschiedene Berechnungsmethoden für Quantile genannt werden.




Demzufolge gilt:

QlikExcelWolfram
FractileQUANTIL.INKLQ7
FractileExcQUANTIL.EXCLQ6 Weibull Quantil


Warum QlikView die Funtion FractileExc nun einige Monate später bekommen hat, beruht wohl auf der Tatsache, dass Qlik Sense und QlikView 12.X die gleiche Engine als Codebasis haben. Ähnlich wie bei der sortable Aggr oder autonumber using Funktion tauchen solche Engine Features mit etwas Versatz auch im folgenden QlikView Release auf.

Qlikview 12.50 FractileExc
Hier die FractileExc Funktion in QlikView 12.50


Die .qvf und .qvw findet sich hier.

Qlik Sense BBQ

$
0
0
Wer für den (österreichischen) Vatertag am Sonntag noch das passende Stück Fleisch zum Grillen sucht - hier die heldendaten Qlik Sense BBQ App!

Qlik Sense BBQ App
Qlik Sense BBQ

Über Kartendarstellungen habe ich hier, hier und hier schon öfter geschrieben. Ein Thema das ich selbst noch nie versucht hatte, war eine .kml-Datei aus einem Bild bzw. "Clipart" aufzubauen.

In der Qlik Community gibt es dazu eine gute Anleitung von Patric Nordström. Zur kleinen Berühmtheit schaffte es diese Feature mit diesem Qlik Sense Body Map Beispiel.

Bei uns sollen es nun eben die Teilstücke des Rindes sein. Das eignet sich vorzüglich für die Grün-Weiß-Grau Stärken von Qlik: jedes Stück kann unterschiedlich zubereitet werden (gegrillt, gekocht, geschmort) und kann unterschiedliche Verwendungen haben (Steak, Gulasch, Geschnetzeltes).

Ausgangspunkt war dieses Bild.

Bitmap Bild für interaktive Qlik Sense Karte
Bitmap Bild für interaktive Qlik Sense Karte

Beim ersten Erstellen einer .kml-Karte muss man sicherlich ein wenig Zusatzaufwand einrechnen, um alle Tools von Patric zum Laufen zu bekommen. Aber mit etwas Übung kann man ein entsprechendes Bild mit 1-2 Stunden Aufwand in Flächenpolygone umwandeln und nach .kml exportieren. Hier meine Screenshots mit den Schritten. Die größten Schwierigkeiten hatte ich mit dem Konvertieren von .shp File nach .kml. Da hat mir dann jedoch das Onlinetool mygeodata.cloud gut geholfen.

Das .kml wird dann ich Qlik Sense wie eine normale Geo-Datei eingelesen und im Kartenobjekt als Dimension benutzt.

[Rind]:
LOAD
[rind.Name] as Teilstück,
[rind.Name],
[rind.Point],
[rind.Area],
[rind.Line]
FROM [lib://shapefile_result/rind.kml]
(kml, Table is [rind/rind]);


Ansonsten habe ich mich mit eine paar Dingen beschäftigt, die ich in anderen Blogposts gefunden habe - und fertig ist das Qlik Sense BBQ :-)

1) Das Thumbprint Bild der Qlik Sense Applikation/Reiters kann ein animiertes .gif sein.
Eigentlich der pure .gif Horror, aber vielleicht ein gutes Feature um die Aufmerksamkeit von Anwendern auf einen bestimmten Reiter zu lenken :-)





2) Emojis in Tabellen einbauen
Qlik Sense Feb 2020 hat einige Improvments bei Table Indicators bekommen. Für Qlik Sense June 2020 erwarten wir Sparklines in Tabellen. In dieser Spaßapplikation haben wir Emojis für die Zubereitungsarten(Grillen ... 🔥) benutzt.

Search Results

Web result with site links



3) Hintergrundbild ohne Qlik Sense Theme

Qlik Sense Themes müssen als Extensions auf den Qlik Sense Server installiert werden. Manchmal will man nur eine Kleinigkeit - wie zum Beispiel ein Hintergrundbild für genau einen Reiter - ändern. Vielen Dank für diese kleine Zauberei an Dennis Jaskowiak von Qlik. Anstatt ein Qlik Sense Theme zu bauen, nutze ich am ersten Reiter das Multi KPI-Objekt um ein paar Styles zu setzen.

#grid-wrap { 
background: url("http://content.heldendaten.eu/glowing2.jpg");background-repeat: no-repeat;
background-attachment: fixed;
background-position: center;
background-size: cover;
position: absolute;
}
.qv-object-text-image {
background-color: rgba( 1 , 1 , 1 , 0.55) !important;
}

div[tid=hnWD] {
opacity: 0;
}

div[tid=vQSHxMD]{
background-color:rgba(255,255,255,0.85);
}

}

Im Multi KPI Objekt hier die Styles eintragen.



Die Objekt-IDs findet man über Rechtsklick/Diagramm Einbetten. Um das Multi-KPI Objekt selbst zu verbergen, habe ich den Style opacity: 0; gesetzt.



Die Qlik Sense Applikation zum Download finden Sie hier. Am Reiter About finden Sie gesammelt alle Infos zu der Applikation.


Qlik Server Eastereggs Sammlung

$
0
0

Die Qlik Knowledge Base zieht gerade um. Ich mochte die alte Qlik Knowledge Base eigentlich immer ganz gerne, wenn man eine konkrete Problemstellung/Logentry hatte. Die Suche hat stets sehr gut funktioniert. In der neuen Knowledge Base darf man zu den Artikeln Kommentare verfassen, um so direkt mit dem Qlik Support Mitarbeitern diskutieren und direktes Feedback geben zu können.


Die neue Qlik Support Section auf der Qlik Community
Die neue Qlik Support Section auf der Qlik Community


Wofür die Knowledge Base meiner Meinung nach nicht sehr gut funktioniert: sich einen Überblick über mögliche Einstellungen zu verschaffen. Man muss also zuerst auf ein Problem gestoßen sein, bevor man in der Knowledge Base etwas dazu finden kann. 

Sowohl in der alten als auch in der neuen Knowledge Base ist mir kein Eintrag bekannt, der alle Easter Egg Settings für den QlikView Server bzw. die Qlik Sense Engine auflistet. Über die letzten Jahre haben wir hier einige Einträge gesammelt und - wenn vorhanden - den jeweiligen Knowledge Base Artikel verlinkt. 

Die Liste ist ziemlich sicher nicht vollständig, aber über folgende Easteregg - die man in der Settings.ini manuell eintragen muss - sind wir bisher "gestolpert".


User Selektion im AJAX Client Excel Export

SelectionStampInBIFFExport=1

https://support.qlik.com/articles/000002517


QlikView 12.20 Fibre Loop Event Log entries

DisableCacheQueue=1

https://support.qlik.com/articles/000059269

 

AAALR Message in QlikView Server EventLog

DisableNewRowApplicator=0

https://support.qlik.com/articles/000019323

 

Lizenzinformationen von QVS auch als XML Datei

PgoAsXmlAlso=1

https://support.qlik.com/articles/000052992

 

Altes QlikView Set Analysis Verhalten (vor QlikView 12.20)

EnableSingleQuoteExactSearch=0

https://support.qlik.com/articles/000063567

 

QlikView Server Cache leeren

ClearCacheTimesPerDay=1
http://blog.heldendaten.net/2017/05/qlikview-server-das-gerucht-vom.html

 


QlikView 12.50 und Qlik Sense Sept 2019 Overload Protection

Dieses Setting ist so geheim, das hat nicht einmal einen Knowledge Base Artikel. Folgende Infos von R&D:

The new timeout setting is called OverloadExpireTimeSeconds.

 

It triggers before the working set parameter low (Min memory usage setting) is reached and it works "retroactively", so that a document that hasn't been used for that period of time is removed from memory the instant an overload situation is detected. The purpose is to preserve the QIX Engine's ability to cache results.

 

Please note: a worst-case scenario what happens with this setting on a server that is fundamentally overloaded, is that a document that is really needed could theoretically be unloaded over and over again, creating even greater load on the server.


In Qlik Sense we can't set the timeout per document. In Qlikview there is a document property that can specify the document's timout. By default this is not set, but it can be changed.

If this document timeout is set in the document, it still applies--overload or not. Which makes sense really, as it's an admin decision to set this timeout, with the purpose of controlling document life-time.

 

Bookmarks / Mail Bookmark as Link – wann verschwindet das Lesezeichen

ServerTempBookmarkDayTimeout=N

https://support.qlik.com/articles/000002746

 

Qlikview 12.30 SKIA Rendering back to GDI+

GraphicsBackEnd=0

https://support.qlik.com/articles/000063181

 

QlikView Server Debug Logging

Verbosity=900
SystemLogVerbosity=5

 https://support.qlik.com/articles/000003953

 

AJAX Container Box Darstellung – Labels abgeschnitten

NavigationAreaSizedOnlyByLabels=1
https://support.qlik.com/articles/000059276

 

Excel Export Settings

https://support.qlik.com/articles/000040322

 

Option Name

Meaning

Default Value

SELOG_Export

if print out log message related to Export function.

0: disable

1: enable

1

SendToExcelLegacyFormat

default "Send To Excel" behavior.

1: Legacy mode, export to xls

0: new mode, export to xlsx

0

QvExportTimeLimitSec

Time limit for exporting object to Xlsx. Integer number in seconds.

Use -1 if you don't want time limit;

Server: 180

Desktop: -1

QvExportMemoryLimitMB

Memory limit for exporting object to Xlsx. Integer number in MB.

Use if you don't want memory limit;

0

 

ExcelExportMixedAsText = 1
https://support.qlik.com/articles/000004098

 

Files/Pics aus dem Internet (zB Google Maps) werden nicht geladen

https://support.qlik.com/articles/000036107

 

WebFileUseWinAPI = 1 für Server und QVB.exe in Settings.ini ergänzen

AllowGeneralAccessToImagesThroughURL =1

https://support.qlik.com/articles/000023882

WebFileConnectorProxyServer=http://proxy server address
WebFileConnectorProxyPort=proxy server port

 

AJAX Hide Print und Export für neue Tables

PrintAndXLIconsForNewTables=0

https://support.qlik.com/articles/000003846

 

No/some mapping between account names and security IDs was done

 TranslateNameDisabled=1

https://support.qlik.com/articles/000002530

 

 

Session Recovery Bookmark ohne Layout

EnableApplyLayoutState=0

QlikView 11.20 SR13 introduces a server side setting that allows disabling layout state information from the session recovery bookmark. With the layout state disabled, only selections are saved in the session recovery bookmark. This means that a session will not recover to the sheet where the session was close, but instead to the application's default sheet. A bookmark without layout state information is smaller and will not require as much CPU time to be processed.

 

https://support.qlik.com/articles/000102075

https://support.qlik.com/articles/000036135

https://support.qlik.com/articles/000007868

 

Thumbnail am Accesspoint schneller aktualisieren

QvThumbnailCacheUpdateInterval=2

https://support.qlik.com/articles/000038326

ChartLegendCutoff=5000

QvMetaInterval=5

If QvMetaInterval is set to 0, preloads are performed every time the folders are scanned. QvMetaSecondsToWaitBetweenScans

Bevor in der Current Selection Box "9 von 123" Werten steht kann man hier den Wert erhöhen

MaxCurSelEntries=100

 

QixPerformanceLogVerbosity=3

 

Enter desired values for the four measurement levels

WarningProcessTimeMs=30000
ErrorProcessTimeMs=60000
WarningPeakMemory= 1073741824
ErrorPeakMemory= 2147483648

MaxRecurLevelForDefaultMissingAggr=nnn

ServerTempSecTimeout=15

RemoveExcelAfterDownload=1

MaxActionLevel=N

Aus den QlikView 12.20 SR1 Release Notes

For AJAX clients, it is now possible to change the default value for who is allowed to see a note connected to an object.

 

To change the sharing settings, you must modify the following entry in the settings.ini file:

NoteSharingDefaultAccess=0Only the creator can see the note.

NoteSharingDefaultAccess=1The note visibility is set to public and anyone can see the object (Default setting).

NoteSharingDefaultAccess=2Visibility is restricted to specific user

SilentErrorInChart=1

 

 

PS: für den QlikView Publisher haben wir eine ähnliche Liste. Diese kann ich auch bei Gelegenheit gerne posten.

Dateneingabe und Planung in Qlik mit write.bi

$
0
0

Der Wunsch nach Dateneingabe und Planung in Qlik, kenn ich, seitdem ich 2008 bei Qlik gestartet hatte.  In unserer Kommunikation war damals die Abgrenzung klar: das "View" in "QlikView" besagt ja schon, dass wir nur Lesend zugreifen. Diese Art der Antwort klappt mit dem "Sense" in Qlik Sense nicht mehr - und dankenswerter Weise gibt es mittlerweile auch etablierte Lösungen, um diese Anforderungen in Qlik abzubilden.

Dateneingabe und Planung in Qlik Sense

Die Historie

In QlikView war das Gewagteste was man anbieten konnte das Konzept der Simulation. Am Ende jeder Vertriebsdemo war in etwa folgender Reiter zu sehen:

Simulation in QlikView
Simulation in QlikView


Im QlikView Skript kann man Inputfelder definieren, die nicht der normalen Qlik Symbol-Table Komprimierung unterliegen. Dadurch kann der Planwert auf jeder Zelle vom Endanwender geändert werden. Mit den speziellen Oberflächen-Formeln inputsum, inputavg, etc. wird dann die Dateneingabe auf Gesamtsummen und die Verteilung auf die Details gesteuert. Damit kann ich etwa - wie im .gif oberhalb - sagen, dass ich insgesamt 4000 Umsatz mache, und davon 1500 in Sportswear. Die anderen Werte passen sich automatisch an.

Problematisch bei der QlikView Inputfield-Lösung ist aber, dass diese Usereingaben nur in Lesezeichen abgelegt werden können. Diese Lesezeichen landen in den binären .qvw.shared Files. Sie sind also in der Qlik-Welt "gefangen" und können nicht automatisiert in ein Vorsystem übernommen werden, oder als Input für weitere Qlik Analysen dienen. Außerdem wurden .qvw.shared Files bei vielen Inputfield-Werten und Lesezeichen gerne sehr groß, was diesem Feature eine zusätzliche technische Grenze setzte.

Inputfield QlikView Lesezeichen
Über Lesezeichen kann sich ein User seine Simulationen in QlikView "ablegen"


Integration von vollwertige Planungslösungen wie Corperate Planning, Jedox, Tagetik mit Qlik gab es schon früh, existieren bis heute und werden immer eine Berechtigung haben. Einige Anbieter hatten sich auch schon früh im QlikView AJAX-Client mittels Extensions an die Dateneingabe direkt in QlikView gewagt, doch ist das Extension Konzept dort doch recht limitiert.  Ein schöner Überblick über die Anbieter findet sich in diesem Blogpost für Writeback von Rob Wunderlich. Eine alte Extension von meinem ehemaligen Kollegen Stefan Walter schwirrt bis heute in Github herum. Das Schaubild zeigt sehr anschaulich wie Writeback-Lösungen technisch funktionieren.


Writeback in Qlik
Writeback in Qlik

Die Möglichkeiten in Qlik Sense

Dateneingabe & Datenerfassung

Bezüglich Dateneingabe & Datenerfassung gibt es in Qlik Sense mehrere kommerzielle Extensions die man in Betracht ziehen kann. Typische Anforderungen in diesem Umfeld sind:

- Ein Lagerarbeiter soll direkt in seinem Qlik-Dashboard ein Formular ausfüllen, um einen Bestellauftrag abzuschließen. Für diese Anforderungen würde sich neben write.bi auch Vizlib Writeback Table anbieten. 

- Section Access Berechtigungen für Qlik sollten eigentlich schon im Vorsystem vorliegen und in Qlik wiederverwendet werden. Wenn nicht kann man write.bi auch nutzen um die Section Access Tabelle zu pflegen. 

- Collaboration: User können Kommentare & Anmerkungen zu Kennzahlen am Dashboard oder in einer Profit&Loss Darstellung schreiben. Hier bietet Vizlib Collaboration und Vizlib Finance Lösungen. 

Diese Extensions schreiben in eine SQL-Datenbank oder zu einem REST-Webservice zurück. Startet man einen Qlik-Reload oder nutzt man Qlik Sense Direct Views hat man eine direkte Feedbackschleife.

In dem folgenden Beispiel sieht man eine Write! Edit Tabelle in der bestimmte Felder wie "Confirmed", "Sales" und "Quantity" für bestehende Order IDs vom Qlik-User geändert werden können. Man kann aber auch gleich ganz neue Orders erfassen und dabei automatisch auf Qlik Sense Kunden und Artikelinformationen zugreifen. 


Write! Edit Tabelle und Formular im Einsatz

Im Beispiel erzeugt der Qlik-User eine neue Order 77777. Man sieht wie sich die Kennzahl "Total Sales" im Qlik Dashboard automatisch aktualisiert. Es handelt sich dabei aber wohl um eine Falscheingabe durch den Anwender. Wählt man nun im Qlik Sense Filter die neue Order 77777, kann man diese auch in einer Formularansicht korrigieren. Da Qlik Sense im Hintergrund die Daten automatisch aktualisiert, ist nun die Kennzahl "Total Sales" auch wieder korrekt.


Write! Plan von write.bi

Einen Schritt weiter als reine Dateneingabe geht es bei der Planungs-Extension Write! Plan von write.bi. Diese bildet die ursprünglichen Ideen der Qlik Funktionen inputsum, inputavg ab und kann für Planung direkt in Qlik Sense genutzt werden.

Frontend

Write! Plan bietet die Möglichkeit direkt in Qlik Sense neue Budgets und Forecasts zu erstellen. Die Extension stellt eine Tabelle bereit in der man für einen Zeitraum (Jahr und Perioden) über beliebige Dimensionen (etwa Company, Region, SalesRep, Customer) beplanen kann. 

Der Summen- (bzw. Durchschnitts-)Algorithmus ermöglicht zwei Verteilungen: Top-down und Bottom-up:

Top-down Verteilung: Die Gesamtsumme des höheren Knotens wird gleichmäßig auf die unterliegenden Knoten der Hierarchie verteilt

Bottom-up Verteilung: wird eine Zahl in einer unteren Ebene neu eingetragen oder verändert, wird diese nach oben aufsummiert. Somit ändert sich hier die Gesamtsumme.

Im Video unterhalb ein Beispiel dazu. Ausgehend von einem Budget "Bad Year" für das Jahr 2019 wollen wir den Oktober anpassen. Zuerst ändern wir die Gesamtsumme auf 2 Millionen, um dann für die Region Ost den Wert auf 600.000 anzupassen. Dieses Budget speichern wir. Man sieht wie sich das Qlik Sense Linienchart oben links anpasst, und nun den Oktober mit 1.93 Millionen anzeigt. Ausgehend von diesem Budget können wir mit Write! Plan auch ein neues Budget "New Budget for 2021" erzeugen, welches wir auf das Jahr 2021 legen. Man sieht wie diese neue Budget-Variante nach dem Speichern automatisch in der Qlik Sense Listbox auftaucht und für das Jahr 2021 verfügbar ist.


Write! Plan im Einsatz

Das Write! Plan Objekt lässt sich wie gewohnt über das rechte Design Panel administrieren.

Write! Plan Design Panel auf der rechten Seite.

Der Export des Write! Plan Objekts nach Excel ist möglich.

Export der Write! Plan Dateneingaben nach Excel


Administration

Wichtig bei Planung ist wer planen darf, und wohin die Daten zurückgeschrieben werden. Für die Verwaltung der Planungsuser und der Daten-Endpoints kommt write.bi mit einer eigenen Weboberfläche.

Welcher User kann in Write! Plan Daten eingeben


User können via LDAP importiert werden. Damit kann man via Active-Directory Gruppen die Qlik Sense und write.bi User synchron halten.

write.bi User via LDAP synchronisieren

Wohin die Plandaten aus der Qlik Sense Oberfläche zurückgeschrieben werden, definiert man bei den Storage Connections. Typischerweise schreibt man nicht direkt in ein Quellsystem zurück, sondern nutze eine eigene Datenbank/Schema um die Write! Plan Daten abzulegen.


In welche Datenbank soll Write! Plan die Daten zurückschreiben

Einlesen der Plandaten

Im Qlik Skript kann man dann diese Plandaten dann ODBC/OLEDB wie herkömmliche Istdaten im Datenmodell ergänzen. Damit hat man eine vollständige Schleife zwischen Dateneingabe und Analyse in Qlik geschaffen.

Zugriff in Qlik Sense auf die Write! Plan Datenbank



Service Failure Alert Email in "QlikView April 2020"

$
0
0
Kein SCOM oder Nagios um den Status der QlikView Services zu überwachen? In QlikView 12.50 gibt es eine Alternative.

Bisher zeigte die QlikView Management Console den aktuellen Service-Status der anderen QlikView Services am Reiter "Service Status Overview" an. Mit QlikView 12.50 kann man sich diese Information aktiv als Email schicken lassen. 

ServiceFailureAlert Email QlikView April 2020
Erkennt das Management Service ein "disconnected" Qlik Service, schickt es ein Email.


Die Doku dazu ist noch ausständig, aber folgende Informationen haben wir vom Qlik Support erhalten und lokal bei uns getestet:


Um diese Einstellung zu aktivieren, müssen Sie das QlikView Management Service stoppen. Unter C:\Program Files\QlikView\Management Service die QVManagementService.exe.config die folgenden XML-Tags ergänzen:

<add key="ServiceFailureAlertEmailAddresses" value="qlikviewadmins@heldendaten.net"/>
<add key="ServiceFailureAlertEmailSubject" value="PROD QlikView Server: [SERVICE-NAME] on URL [SERVICE-URL] is down."/>
<add key="ServiceFailureAlertEmailBody" value="PROD QlikView Server: [SERVICE-NAME] on [SERVICE-URL] is down. Go to http://yourserver:4780/QMC/ServiceStatusOverview.htm for details!"/>

Die Tags [SERVICE-NAME] und [SERVICE-URL] sind Platzhalter, und werden dynamisch für das betroffene QlikView Service in das Email eingesetzt.

Das QlikView Management Service nutzt den Mailserver, den Sie in der QMC unter "System/Mail Server" konfiguriert haben. Unter Umständen müssen Sie in der QVManagementService.exe.config auch noch das bestehende Setting von false auf true umstellen:
<add key="UseSSLForSMTP" value="true"/>
QlikView 12.50 Service Failure Alert Config
Zeile 5-7 ergänzen. UseSSLForSMTP müsste schon in der .config zu finden sein.

Wenn Sie nun das QlikView Management Service starten, ist die Überwachung aktiv. Wenn man zum Test den QVS, QVWS, DSC, QDS oder Service Dispatcher Service über services.msc stoppt, sollten Sie folgende Service Failure Email bekommen.


QlikView 12.50 Service Failure Alert
Service Failure Email: Der QlikView Webserver (QVWS) ist down

Leider bekommt man keine Email wenn das Service wieder "up" geht. Und natürlich bekommt man keine Fehlermeldung wenn das QlikView Management Service selbst betroffen ist.  Deswegen ist eine Überwachung via SCOM, Nagios, SNMP, etc. noch immer zu bevorzugen bzw. zusätzlich zu aktivieren.

Den QlikView Server  (und indirekt den QVWS) kann man auch weiterhin regelmäßig über einen http-Request auf  diese URL prüfen: http://yourserver/Qvajaxzfc/QvsStatus.aspx. Der Status Up ist gut. Alles andere deutet darauf hin, dass der Server für die Endanwender nicht erreichbar ist (keine Lizenz, Service Down).

QvsStatus.aspx QlikView
QvsStatus.aspx vom QVWS sagt "Up" wenn QVS gut läuft

Häufigster Problem mit inresponsive Qlik-Services - gerade bei Single Machine Installationen - ist meist, dass die Datenmenge von QlikView Server (QVS) und Publisher (QDS) gemeinsam den Server ins "Paging" bringen. Es wird mehr Arbeitsspeicher allokiert als auf der Maschine verfügbar.

Der QlikView Server meldet RAM-Ressourcenknappheit für sich selbst (also nur die QVS.exe) in seinem Event-Log unter Severity "Warning" als "WorkingSet" Meldungen. QVS.exe versucht zwar den internen Result-Caches zu leeren, wenn aber weiter neue Applikationen von Endanwendern angefordert werden, geht der Memoryverbrauch sowohl über das definierte WorkingSet Limit Low (default 70) als auch WorkingSet Limit High (default 90).

QlikView Working Set Warnings
QVS hat zuerst nur 1.8 GB WorkingSet Low. Aber auch 24 GB sind zu wenig RAM für seine .qvws.

Eine Aussage wieviel Arbeitsspeicher der Publisher mit seinen Task-Executions (qvb.exe) gerne hätte, kann man mit dem QVS Log nicht treffen. Wenn Sie Ressourcen-Knappheit im Nachgang analysieren, und den Memory-Verbrauch des Publisher mit einbezieht möchten, dann ist es besser auf das Event 2004 im Windows System Event Log zu sehen.

Hier listet Microsoft bei "Resource-Exhaustion" die Prozesse mit dem höchsten Memory-Consumption in Bytes. Das ist für gewöhnlich der QVS.exe, oder bei großen Reload-Tasks, die entsprechende qvb.exe des Publishers. 

Das Schöne ist, dass man die ProcessID des Events 2004 auch in den TaskLog.txt unter C:\ProgramData\QlikTech\DistributionService\1\Log findet kann. Damit lässt sich das Problemskript des Publishers leicht identifizieren.

QlikView Event 2004 QVB.exe Finden
Die ProcessID 7332 ist der Task "RT_Wawi_DatenmodellVertrieb" und belegt knapp 60GB RAM


Unter Qlik Sense gibt es keine qvb.exe mehr, sondern die Engine.exeübernimmt Endanwender-Anfragen als auch die Reload-Tasks. Entsprechend ist dort die Unterscheidung woher der Ressourcenbedarf kommt schwieriger. Das spricht dafür, dass man auch in Qlik Sense einen eigenen "Scheduling" Server aufsetzt, der die Beladungen übernimmt.

Qlik Sense Event 2004
Engine.exe in Qlik Sense ist QVS.exe und QVB.exe in einem gemeinsamen Prozess. 



 


Bundesländer & Bezirke - Automatisch in Qlik Sense

$
0
0
In der öffentlichen Wahrnehmung sind Kartendarstellungen wohl die "großen Gewinner" des Jahres 2020. Im Jahr 2021 geht es nahtlos so weiter, denn es wurde gerade ein neues Impfdashboard vom Gesundheitsministerium gelauncht. Die Daten dazu wurden auch auf data.gv.at veröffentlicht.  Ein guter Zeitpunkt zu prüfen, wie Qlik Sense diese Geodaten automatisch in Gebietsebenen interpretiert.

Impfdashboard in Qlik Sense mit data.gv.at Daten




Das Impfdaten .csv von data.gv.at enthält die Bundesländer-Namen als Text. 





Qlik versucht für Kartendarstellungen diese Feldinhalten automatisch mit geonames.org abzugleichen. Das wird nicht online gemacht, sondern Qlik hat einen internen Lookup der mitinstalliert wird.

Bundesländer Österreich auf geonames.org


Das funktioniert bei den 9 Bundesländern in Österreich problemlos. Um Qlik bei der Flächenfärbung in der Gebietsebene zu unterstützen, sollte man auch immer die Einstellung Standort/Standorttyp erzwingen. Im Fall von Bundesländern ist das "Verwaltungsgebiet (Ebene 1)". Ein wenig Hintergrund zu dieser Einstellung findet sich in der Qlik Community am Beispiel der Stadt Springfield.




Für Bezirke (Verwaltungsgebiet (Ebene 2)) geht man ähnlich vor. Auch hier liefert data.gv.at etwa die "Anzahl Fälle pro Bezirk" für Corona-Daten. Leider passt die Schreibweise der Bezirksnamen hier nicht ganz so gut zu den Bezirksnamen auf geonames.org. Nach dem initialen Laden der Daten bekommen wir eine lückenhafte Gebietskarte in Qlik Sense.


Um das Problem zu lösen, muss man die Schreibweise von data.gv.at auf die Schreibweisen bei geonames.org anpassen. Statt Graz(Stadt) würde sich Qlik Sense etwa Graz Stadt erwarten.

Geonames.org über Feature Class sagen was man sucht



Zur Korrektur der Bezirksnamen muss man (einmalig) ein Mapping der falschen Bezirksnamen durchführen. Wir haben hierfür ein Excel erzeugt.

Mappe alle Einträge die auf der Karte noch lückenhaft waren.




Dieses Excel nutzen wir dann um ein neues Feld "BezirkClean" zu erzeugen.

GeoNames:
Mapping
LOAD
Bezirk,
Laut_GeoNames_org
FROM [lib://data_gv_at/BezirksnamenFürQlik.xlsx]
(ooxml, embedded labels, table is Sheet1) where len(trim(Laut_GeoNames_org)) > 0;




data:
LOAD
Bezirk,
applymap('GeoNames',Bezirk,Bezirk) as BezirkClean,
Anzahl,
Anzahl_Inzidenz,
GKZ,
"Timestamp"
FROM [lib://data_gv_at/Bezirke.csv]
(txt, utf8, embedded labels, delimiter is ';', msq)
;

Mit diesem Feld erzeugen wir wieder eine Gebietsebene. Als Standorttyp wählen wir "Verwaltungsgebiet (Ebene 2)".



Wien kommt leider als eine große Fläche. Will man Wien in seine Bezirke unterteilen, so muss man eine eigene .kml Karte in Qlik Sense laden, wie hier im Blog beschrieben. Postleitzahlen von Österreich werden leider auch nicht automatisch zu einer Gebietsebene. Qlik Sense malt hier nur eine Punktebene. Für eine Gebietsebene würde man ebenfalls eine eigene .kml benötigen. Siehe Details zur Qlik Sense Geo Coverage in der QlikCommunity.

Die .qvf und das Excelmapping findet sich hier zum Download.


Qlik: Wähle alle Materialnummern aus Excelsheet mit einem Klick

$
0
0

Eine der Fragen die wir in letzter Zeit wiederholt bekommen haben: Wie kann ich in Qlik alle Materialnummern auswählen die ich zB in einem Excel gespeichert habe. Soviel sei vorab verraten: Alle Werte einzeln anklicken ist nicht die beste Antwort!

Massenselektion in Qlik Sense


Die normale Such-Lupe in einem Filter ist auf 5000 Zeichen limitiert. Selbst wenn der Endanwender also die Qlik Syntax mit 

(A1|A2|A3)

hinbekommen würde, ist bei vielen oder langen Materialnummer sehr schnell das Limit mit der Suche erreicht.

Qlik Sense Klammern Suche
Diese Suche funktioniert, aber bei 5000 Zeichen ist Schluss.


Besser ist, man macht eine "Variable Input" auf eine Variable vSearchListe. Inputboxen können längere Textketten aufnehmen. Wenn man mehrere Zeilen von Excel (oder sonst wo) nach Qlik kopiert, erhält man normalerweise Leerzeichen zwischen den Werten. Entsprechend muss man aus den Einträgen 

A1 A2 A3

in der Inputbox wieder die Qlik Syntax 

(A1|A2|A3)

machen.


Dafür benötigen wir einen Button mit der Aktion "Wähle Sie Werte aus, die dem Suchkriterium entsprechen". Der dynamische Wert ist: 

='('& replace(vSearchListe,'$(vTrennzeichen)','|') &')'



Interessanterweise scheint die Aktion keine Limitierung auf 5000 Zeichen zu haben. Somit kann man richtig viele Werte auf einmal selektieren.

Das Trennzeichen könnte natürlich auch ein Beistrich oder ein Strichpunkt sein, wenn man zum Beispiel Nummern aus einer .csv Datei kopiert. Deswegen halten wir das Trennzeichen in der Variable vTrennzeichen dynamisch.


Die Search Beispiel .qvf findet sich hier. Gleicher Trick funktioniert übrigens auch in QlikView!





Viewing all 102 articles
Browse latest View live