Bessere Publisher Alarme & neuer "Getting Started Excel Wizard" in QlikView 11.20 Service Release 6

Letzte Woche ist das QlikView 11.20 Service Release 6 erschienen. Neben Bugfixes, Win2012R2-Support und einer neuen Startseite im QlikView Developer, stellt dieses Release zwei neue Dinge bereit die wir hier genauer besprechen wollen!

SR6 Update1 21.05.2014 

Heute wurde auf der Downloadseite das Release QV11.20SR6 auf die Buildnummer 12354 aktualisiert!

Bitte stellen Sie sicher, dass Sie die richtige Buildnummer einsetzen! Die Hash-Funktionen liefern zwischen SR5 und dem orginalen SR6 unterschiedliche Ergebnisse. Dies wurde nun in Build 12354 wieder behoben. Siehe Details hier!

Bessere Publisher Alarme

Schlägt eine Publisher-Task fehl, lassen Sie sich hoffentlich schon heute eine Alarm-Email zustellen. Mit den neuen Tags [TaskLogHyperlink],[DocumentLogHyperlink]  und [DocumentLog] kann diese Email aussagekräftiger gestaltet werden. Da laut Releasenotes diese Tags in bestehenden Installationen nicht automatisch gesetzt werden, schlagen wir allen bestehenden Installationen vor nach dem Upgrade auf SR6 in der QlikView Management Console das Email-Template für Alert Emails wiefolgt abzuändern:


 Folgende Erklärung der neuen Tags in den ReleaseNotes
[TaskLogHyperlink] - Creates a hyperlink to the task log in HTML, writes the full path to the task log in
Plain
[DocumentLogHyperlink] - Creates a hyperlink to the document log in HTML, writes the full path to the
document log in Plain
[DocumentLog] – Adds the line of the error in the document log along with the line number. E.g Line 45 -
Error: <error message>

 Die neue Information in der AlertEmail sieht dann exemplarisch so aus:

Neuer "Getting Started-Excel Wizard"

Service Release 6 hat neben einer neuen Startseite auch einen neuen "Excel Wizard" bekommen. Mit der QlikView Personal Edition kam immer schon ein Wizard mit, der es erleichtern soll sein erste QlikView Applikation auf Basis einer Excel-Tabelle zu erstellen.

Der alte Wizard war - sagen wir es vorsichtig - altbacken, weswegen ich zumeist vorschlug ihn in den Benutzereinstellungen zu deaktivieren.

Der alte "altbackene" Getting Started-Wizard

Der neue Wizard ist Qlik aber sehr gut gelungen! Er hat zwar genaugenommen sogar weniger Funktionalität als der Alte (zB. kann man nun keine Pivot mehr bauen) - aber das ganze Look&Feel plus das resultierende Ergebnis sehen viel besser aus. Also für all jene, die den Wizard deaktiviert hatten und QlikView Skripte nicht zum Frühstück lesen -  geben Sie ihm mit QlikView 11.20SR6 eine neue Chance!

Einstellungen|Benutzereinstellungen "Getting Started-Assistent" wieder aktivieren


Unterhalb ein paar Screenshots wie der neue Wizard aussieht! Ich denke das wird vielen Personen den Einstieg in QlikView erleichtern, ohne eine Zeile Skript geschrieben zu haben!

Wähle Excel Datenquelle
Vorschau der Exceldaten + Spaltenbeschriftungen

.qvw abspeichern

Erstes Chart bauen

Kreisdiagramm: Dimension und Aggregationsformel definieren

Balkendiagramm: Dimension und Aggregationsformel definieren

Liniendiagramm: Dimension und Aggregationsformel definieren

Listboxen oder Tabellenbox definieren

Die fertige Applikation inklusive Auswahlbox und globaler Suche




qvheroes.com - Die besten Blogs über QlikView

Seit ich 2008 zur QlikTech gestoßen bin, ist die Qlik Community immens gewachsen. Wie kann man den Überblick bewahren und immer am aktuellen Stand bleiben? qvheroes.com zeigt die Artikel der interessantesten und lehrreichsten QlikView Blogs und liefert eine Volltextsuche über alle Beiträge zurück bis 2009!

qvheroes.com - Die besten Blogs über QlikView

Die QlikCommunity müsste mittlerweile laut Qlik über 100.000 registrierte User haben. Unter diesen Usern gibt es eine handvoll Experten die regelmäßig spannende &  inspirierende Blogbeiträge zu QlikView Themen veröffentlichen.  qvheroes.com ist die zentrale Anlaufstelle um all diese Einträge auf einem Blick zu lesen.


qvheroes.com - Webseite, Volltextsuche und Newsfeed

Als Google den GoogleReader im Juli 2013 einstellte, ging ein Raunen durch das Internet, und Google war ein weiteres mal "Evil" geworden. Mein liebster RSS-Reader musste also durch Feedly ersetzt werden, das zwar am IPAD ganz nett ist, mich aber nie so richtig vom Hocker hauen konnte!

Meine geschätzten Kollegen bei Heldendaten haben nun für QlikView Abhilfe geschaffen: qvheroes.com zeigt die Blogeinträge der lesenswertesten QlikView Blogs auf einer einzigen Webseite an, und erlaubt diese Artikel auf Jahre zurück zu durchsuchen! Einen RSS-Feed gibt es natürlich auch: http://qvheroes.com/feed  - und selbstverständlich ist auch unser eigener Blog auf qvheroes vertreten :)

qvheroes.com - Aktuelle Beiträge




qvheroes.com - Volltextsuche


Danke an Thomas Baldinger für die federführende Umsetzung, und viel Spaß beim Lesen und Durchforsten der gesammelten Beiträge der QlikView Heroes!




Gaps und Abweichungen in QlikView - Zwei Darstellungen

Plandaten finden sich in vielen (ja fast allen) QlikView Applikationen. Hat man die Plandaten sinnvoll mit den Istdaten verknüpft (zumeist mit CONCATENATE), geht es in der Darstellung zumeist um die Gegenüberstellung von Ist- zu Plandaten.

Auch abseits von Dashboards und Tachozeigern kann man hilfreiche Charts zur Visualisierung von "Ist zu Plan" bauen. In diesem Beitrag möchte ich auf zwei "spezielle" Darstellungen eingehen, die wir in Projekten erfolgreich mit QlikView umgesetzt haben.

Mind the Gap - Sales Pipeline Analysis im CRM Projekt

Diese Darstellung kommt aus einem CRM-Projekt um zu sehen wie viel Umsatz (Ist) noch fehlt um das Jahresziel (Plan) zu erreichen. Das Liniendiagramm ist eine kumulierte Darstellung von Jänner bis Dezember. Wählt man einen Monat, sieht man wie groß die Lücke zum Umsatzziel ist!

Im Beispiel unterhalb ist September gewählt.  Der Grüne Balken signalisiert uns, dass unser Ist-Umsatz momentan über dem kumulierten Planwert Jänner-September steht. Schauen wir aber in die Zukunft, so sehen wir, dass unsere Salespipeline für den Zeitraum Oktober-Dezember nicht genügend Umsatzpotential enthält. Bis Dezember würde die Lücke zum Plan aus heutiger Sicht bis auf 147k Umsatz anwachsen! Es bleibt also viel zu tun :-)

Kumulierte Istumsatz als graue Linie. Kumulierte Planumsatz als gestrichelte Linie. Gap/Lücke als Balken.
Die Berechnung in QlikView sehen Sie im Screenshot in der Tabellendarstellung unten. Das komplizierteste hier ist die Offset-Berechnung für die gestrichelte Planlinie. Diese soll vom "Ist-Wert" des Vormonats zu zeichnen beginnen. Um das zu lösen wurden die zwei Hilfsspalten "Offset" und "OffsetKum" eingefügt! Für Details kann man die .qvw vom heldendaten Accesspoint herunterladen.

Abweichungen Prozesskennzahlen von Plan

In diesem Projekt ging es um Prozesskennzahlen. In einem Geschäftsprozess wurden verschiedene KPIs wie etwa "Avg. Durchlaufzeit Geschäftsfall" und "Reklamationsquote" gemessen. Die Prozessmanager interessierte in diesem Fall weniger der absolute Wert der Kennzahl (Ist), sondern vielmehr die Abweichung vom gesetzten Ziel (Plan) um zu sehen wie sich der Geschäftsprozess über die Zeit verbessert.

Im Screenshot unterhalb sehen Sie links unten unseren ersten naiven Ansatz. Der Istwert wird als Balken dargestellt. Der Zielwert (der über die Monate steigt um die gewünschten Verbesserungen im Geschäftsprozess zu symbolisieren) wird als Linie gezeichnet. Man sieht zwar ganz gut wann der Istwert den Plan unter bzw. überschritten hat, die Abweichungen sind  aber schwer zu sehen.

Aus diesem Grund haben wir uns für die Darstellung auf der rechten Seite entschieden. Die Linie zeigt weiterhin den sich ändernden Planwert über die Zeit. Die Balken zeichnen aber nicht mehr von 0 weg, sondern zeigen die Abweichung vom Planwert.


Im rechten Chart wird der Planwert als Balkensockel benutzt. Ähnlich wie in einem Wasserfalldiagramm definieren wir damit wo die Abweichung zu zeichnen beginnen soll. Die Abweichung ist dann schlicht mit  sum(Ist)-sum(Plan)berechnet!

Geht man einen Schritt weiter, und zieht nicht einmal die Planänderung in Betracht sondern will sich ausschließlich auf die Abweichungen konzentrieren, kann das gleiche Diagramm auch so wie unterhalb aussehen: Die Planlinie ist nun eine flache Linie.


Auch dieses Beispiel findet sich am heldendaten Accesspoint zum Rumspielen! Viel Spaß damit!

QlikView /NoData im Contextmenü - Rightqlik

Wer erinnerst sich an unseren Blogpost über den QlikView /Nodata Shortcut am Desktop? Miguel García hat auf seinem Blog IQlik jetzt eine noch elegantere Lösung präsentiert: Rightqlik.

RightQlik in Action

Neben "Open without data" gibt es auch "Open in a new QV instance". Wunderbar! Bisher habe ich immer zuerst einen QVDeveloper geöffnet, und anschließend die .qvw via Drag&Drop  reingezogen. Ein Mouse-Klick Ersparnis bei ein paar tausend .qvws die ich wohl im Jahr öffne ist einiges :)

Zusammen mit einem komfortablen QVD-Viewer wie EasyQlik macht da das Arbeiten mit .qvws und .qvds auch abseits des QlikView Developers  richtig Spaß!

EasyQlik - Preview einer .qvd mit Doppelklick




Qlikview - Poor man's Print & Scroll Up Extension

Heute gibt es einen Ausflug in die dunklen Kammern der  "Quick and Dirty - getting it done" Heldendaten-Katakomben. Schon mal eine QlikView Extension programmiert? QlikView Workbench installieren, Property-Bags definieren, am Server deployen? Geht das nicht einfacher? Natürlich! Gibt es dafür Support: selbstverständlich nicht :-)

QlikView's "Full Browser Client" - vormals AJAX-Client oder ZeroFootprintClient - ist ein voller HTML5 Client. Auch der QlikView (Offline) IPAD-Client, der dieser Tage in Version 2.0 erschienen ist,  startet im Onlinemodus innerhalb der App einfach den Safari Browser.

Will man den Client funktionell und/oder graphisch erweitern, so hat man in QlikView 11 die Möglichkeit Document- bzw. Object Extensions zu entwickeln. Stefan Walther schreibt darüber gerade eine Blogserie auf qlikblog.at. Meine liebste Spaß-Extension findet sich im QlikMarket und auf unserer Demo-Seite.


Poor Man's Extensions

Ich weiß gar nicht ob es ein Feature ist, oder ein Bug. Ich weiß auch gar nicht wie ich auf die doofe Idee kam. Aber seit ich es in QlikView entdeckt habe, nenne ich es "Poor Man's" Extensions :)

Irgendwann in den 90er-Jahren, als viele Javascript noch nicht von Java unterscheiden konnten, fand man manchmal folgende verbrecherische Syntax um einen Messagebox bei Klick auf einen Hyperlink anzuzeigen:

<a href="javascript:alert('Hallo Welt!');">Dein Link</a>

Lang vergessen, kann man sich diese Syntax in QlikView zu nutzen machen. Wie? Das lesen Sie in den nächsten zwei Abschnitten!

Poor Man's JavaScript Print Extensions

In QlikView gibt es einige Aktionen die vom AJAX-Client ignoriert werden. Ein Beispiel ist die "Arbeitsblatt drucken"-Aktion.

QlikView Arbeitsblatt drucken|Print Sheet Aktion
Diese Aktion wird vom AJAX-Client ignoriert


Während im Fat-Client und im IEPlugin QlikView die Darstellung selbst in der Hand hat (und somit auch "selbst" drucken kann), ist im AJAX-Client das Rendering via HTML an den Browser ausgelagert. Somit kann man sich auch nur auf den "Druck" des jeweiligen Browser-Herstellers verlassen. Das führte wohl dazu, dass der QlikView AJAX Client diese Aktion gleich komplett ignoriert.


Dieses Verhalten ist natürlich nicht ganz zufriedenstellend für einen Anwendungsentwickler der beide QlikView-Clients (IE-Plugin und AJAX) für seine Analysten bereitstellen muss. Während die IEPlugin-User den Button benutzen können, muss man den AJAX-Usern erklären, dass sie umständlich im Browsermenü den Druck anstarten müssen, oder am einfachsten gleich einen Screenshot machen.

Gibt es einen Ausweg? Ja, man könnte eine "Button"-Extension programmieren die den Browser-Druck mittels Javascript "window.print()" aufruft. Geht es auch Quick and Dirty? Ja, denn QlikView lässt eine Syntax zu, die ich eben seit den 90ern nicht mehr gesehen hatte:

Es gibt eine QlikView Aktion "URL Öffnen". Ich nehme an, dass diese Aktion gedacht ist um externe URLs, webbasierte CRMs oder etwa Documentmanagement-Systeme anzuspringen, und gegebenenfalls die aktuelle QlikView-Selektionen als GET-Parameter zu übergeben.

Interessanterweise schluckt diese Aktion aber auch folgenden Befehl:  javascript:window.print()

Quick&Dirty: Javascript in Qlikview


Der Aufruf von JavaScript macht im QlikView-Fatclient keinen Sinn, da hier keine Interpretation des Befehls stattfindet. Um den Button wirklich nur im AJAX-Client anzuzeigen, benutzen wir die Clientplatform()-Funktion. Wer QlikView für das IPAD entwickelt hat, hat diese Funktion zum Erkennen der Browser-Plattform vielleicht schon benutzt:


 FatClient und IEPlugin liefern einen leeren  String für ClientPlatform(). Wir zeigen das Objekt also nur an wenn ein Browser kommt!

Kleiner Tipp am Rand
Hat man die Anzeigefunktion definiert, so verschwindet der Button natürlich sofort im QlikView-Developer. Wenn Sie den Button während der Entwicklung sehen möchten, zeigt der Shortcut CTRL+SHIFT+S alle Objekte (und damit auch den Button) an! Vor dem Speichern bitte wieder CTRL+SHIFT+S, damit das normale Verhalten wieder hergestellt ist.

Der Test auf unsere Demo-Seite funktioniert: In QV11.20SR5 mit Firefox 27 und IE11 funktioniert meine "Poor Man's Print Extension".

IE 11 Druckdialog öffnet sich
PS: Um das Druckergebnis im Browser zu verbessern, sollten Sie den Druck der Hintergrund-Graphik aktivieren. Das ist in jedem Browser (ja sogar Browser-Version) ein wenig wo anders versteckt, hier die Einstellungen für IE11 und Browser.
Firefox Hintergrund drucken

IE 11: Hintergrundfarben und -bilder drucken

Poor Man's JavaScript ScrollUp Extension

Vor kurzem erhielt wir eine weitere Anfrage: Ein Kunde hat eine Applikation die sehr viele Diagramme nach unten anzeigt. Daraus resultiert ein langer vertikaler Scrollbalken. Kann man es bewerkstelligen, dass der User mittels eines Buttons wieder ganz rauf zum Start der Applikation springt?

In JavaScript gibt es dafür eine Funktion: window.scrollTo(0,0). Es bietet sich also wieder an eine Poor Man's Extension zu schreiben :-)

Hier kommt aber nun leider ins Spiel, dass diese Vorgehensweise von Seiten der QlikTech natürlich nicht supported ist. window.scrollTo(0,0) funktionierte wunderbar im Firefox, doch IE11 wehrte sich standhaft dagegen, nach oben zu scrollen.

Ein bisschen Code-Analyse des AJAX-Clients später stellte sich heraus, dass QlikTech sich scheinbar die Scrollposition merkt. Um also die Poor Man's Extension auch im IE11 lauffähig zu machen, muss ich die Aktions-Definition erweitern auf:

javascript:Qva.binders[""].ScrollLeftToRemember=null;window.scrollTo(0,0);

Bisher konnte ich keine Nebenwirkungen unseres Hacks feststellen. Der Button funktioniert in Firefox 27, IE11, Chrome 33 und auch am IPAD mit Safari. Die Benutzung ist natürlich trotzdem auf eigenes Risiko! Zum Testen und gibt es die Applikation wie immer auf unserem Demo-Accesspoint demo.heldendaten.net




Die Aktion für ScrollUp im IE11, Firefox 27 und IPAD IOS7



Die ScrollUp-Applikation in ihrer vollen Pracht. Der Poor Man's ScrollUp Button ganz unten.

heldendaten GmbH,2020