Vorjahre und aktuelle Monatssummen in einem Balkendiagramm

Manchmal sind unsere Kunden mutiger als wir selbst. Wir erhielten die Anfrage, ob man in Qlik die zwei Vorjahre und die aktuellen Monatsperioden in einem Chart gemeinsam darstellen kann.

Zwei Vorjahre und die aktuellen Perioden (verschobenes Geschäftsjahr) in einem gemeinsamen Chart


Intuitiv hätte ich gesagt "NEIN, eher nicht", weil JAHR und MONAT zwei verschiedene Dimensionen sind.

In QlikView hätte man natürlich die Möglichkeit zwei Charts nebeneinander zu schummeln, aber spätestens beim Export wäre das Negativ aufgefallen. Die zweite Möglichkeit die mir Adhoc eingefallen wäre, wäre eine Formel für jede einzelnen Balken zu schreiben. Das ist aber aufwändig und in Kombination mit den gewünschten Stacked Bars auch nicht ohne weiteres möglich. Eine Lösung im Datenmodell wäre wohl machbar, ist aber immer extra Arbeit.

Der Kunde ist dann selbst mit einer sehr interessanten Lösung auf uns zugekommen, die ich hier vorstellen möchte. Unterhalb das Ergebnis als animiertes .gif - in der Qlik Sense Applikation sind zwei Balkendiagramme. Im oberen Balkendiagramm werden die Monatswerte einzeln dargestellt, im unteren Balkendiagramm sind die Monatswerte akkumuliert (Dezember 2017 zeigt das Gesamtjahresergebnis). Die Tabelle rechts dient zur Validierung der Zahlen.



Die Lösung besteht aus zwei Teilen: Einer dynamischen Dimension, und einer etwas komplexeren Formel.

Die dynamische Dimension:

=if(GetFieldSelections(Jahr,',')=Jahr, 
monthname(Bestelldatum),dual(Jahr,makedate(Jahr,12,31)))

Die Formel prüft welches Jahr der User gewählt hat, und zeigt für eben dieses die Monatsnamen an. Das Dual im ELSE-Zweig stellt sicher, dass die Sortierung der Balken sinnvoll ist.

Die Chart-Formel selbst überschreibt dann mit Set Analysis die Jahresselektion, damit alle 3 Jahre angezeigt werden:

sum({<Jahr=>} Anzahl*Einzelpreis)


Ein wenig komplexer wird die Formel für das untere Barchart, weil wir die einzelnen Monate akkumulieren wollen.

if(GetFieldSelections(Jahr,',')=only(Jahr), 

    rangesum( 
     if(month(Bestelldatum) = 1,
             0, //Im Jänner nicht above nehmen
             above([Jahr Monat Umsatz Aggregiert])
        ),      
        sum(Anzahl*Einzelpreis)
    ),
    sum({<Jahr=>} Anzahl*Einzelpreis) //nicht selektierte Jahre
)

Interessant hier, dass man in der Formeldefinition mit "Jahr Monat Umsatz Aggregiert" wieder rekursiv auf die Master Item Bezeichnungsformel zugreifen kann.

Qlik Sense Master Item
Rekursive Definition des Master Items über die "Bezeichnungsformel"


Achtung: Auf einer Qonnections hat das Qlik Scalability Team davor gewarnt, dass  dynamische Expressions mit mehr als einem Feld den Qlik Server Cache brechen. Bei sehr großen Applikationen kann es also CPU-hungrig werden! Bitte vorab testen!

Ein Beispiel für Qlik Sense findet sich hier. Für QlikView funktioniert der Trick genauso!


Qlik Sense - Dashboards (Offline) am IPhone

Mit dem Qlik Sense February 2018 Release gibt es jetzt Qlik Sense am IPhone - Online und Offline. Wer also Qlik Sense mal schnell testen möchte - einfacher war es noch nie! Unterhalb die Schritt für Schritt Anleitung!


1) Im AppStore nach "Qlik Sense Mobile suchen"


2) App Starten und den Demo Hub wählen. Für die Offline Funktionalität auf die 3 Punkte beim "Executive Dashboard" drücken.


3) Herunterladen wählen


4) Qlik Sense App wird auf das IPhone heruntergeladen


5) Offline öffnen

6) Die App-Übersicht

7) Reiter "KPI Dashboard" wählen 

8) Freie Selektion in der Offline Applikation

 9) Der gesetzte Filter wird oben rechts hervorgehoben. Wechsel auf den Reiter "Sales Analysis"


10) Der Beweis: wir sind im Flugmodus ohne WLAN. Qlik Sense funktioniert komplett Offline am IPhone!

Wenn Sie Ihre eigenen Applikationen am IPhone oder am IPad bereitstellen wollen, benötigen Sie einen Qlik Sense Enterprise Server! Bei Fragen stehen wir gerne zur Verfügung!

Sparklines auf Qlik Sense KPI Dashboards

Einer meiner Lieblingsextensions ist das Climber KPI Objekt. Das Qlik Sense KPI Objekt ist OK, aber mit dem Climber Objekt hat man weit mehr Einstellungsmöglichkeiten wenn es Dashboard-Design geht.  Außerdem hat es auch ein Trendline Feature, welches man sehr schön + platzsparend für Sparklines nutzen kann!

Das Default KPI Objekt zeigt nur 2 Kennzahlen an! Ob das "Ziel" erreicht wurde oder nicht, kann man nur mit einer Farbe, aber nicht mit einem Icon untermauern. Will man außerdem einen Verlauf  über die letzten Monate anzeigen, so muss man ein extra Balken- bzw. Liniendiagramm ergänzen. Das ist nervig - und sogar gefährlich - vor allem wenn man das Responsive Design am Smartphone in Betracht zieht!

Am Computer kann man die Balken noch als Sparkline für den Umsatz nutzen..

.. am Smartphone ist das Balkendiagramm aber unterhalb der Frachtkosten-KPI

Besser klappt es mit dem Climber KPI-Objekt! Hier kann der Trend direkt im gleichen Objekt angezeigt werden! Das spart Platz am Grid und macht keine Probleme mit dem Responsive Design.

Was allerdings interessant ist, dass die Climber-Entwickler keine eigene Formel für die Sparkline bereitstellen. Man muß die gleiche Formel wie für die Kennzahl nutzen. Das macht es schwierig, wenn man:

  • Umsatz des aktuellen Monats als Kennzahl
  • Verlauf über die letzten Monat als Sparkline
darstellen will.

Mit folgender Formel kann man es aber doch schaffen:

firstsortedvalue({<Monat={"<=$(=addmonths(max(Monat),0))"}>} distinct 
   aggr(nodistinct 
        Sum({<Monat={"<=$(=addmonths(max(Monat),0))"}>} Anzahl*Einzelpreis) 
   ,[Monat]),
-Monat,1)

Für die angedruckte Kennzahl wird also das "aktuelle"=="letzte" Monat durch firstsortedvalue geholt. Lässt man die Sparkline im Climber KPI Objekt über die Monate laufen, bekommt man in jedem Monat den korrekten Wert.

Hier die Objekte in der direkten in der Gegenüberstellung:

Links mit Default Qlik Sense Objekten - auf der rechten Seite: mit Climber KPI



Am Smartphone funktioniert das Objekt auch wunderbar, weil es eben eine gemeinsame Darstellung ist!






Das Climber KPI Objekt bietet unterschiedliche Darstellungen des Trends. Siehe unterhalb auf der rechten Seite die Möglichkeiten.



Insgesamt also eine tolle Sache. Falls jemand eine einfachere Formel findet, bitte gerne posten :-)


Die Qlik Sense Applikation finden Sie hier zum Download!

heldendaten CAL Manager for QlikView

Today I post an article about the heldendaten CAL Manager which was released on Qlik Market recently.

The QlikView Management Console allows to manage Document CALS. Unfortunately, it does not provide a good overview on how well CALs are utilized. The heldendaten CAL Manager provides a simple tool that helps you to optimize the CAL usage on your QlikView Server.


1    CAL Info

This tab gives you an overview on the overall CAL configuration of the QlikView Server.

Overview QlikView Server License & and which Documents have Document CALs assigned

 

1.1    Server Info

Shows how many Named CALs and Document CALs are „InLicense“ and how many of them are „Assigned“.

1.2    Documents with Doc CALs

This table shows which QlikView documents have Document CALs allocated (CALsAllocated) and how many of them are assigned to users (CALs Assigned).

1.3    Named CALs

Shows the assigned list of NAMED CALs with User, Last Used and QuarantinedUntil.




2    Assigned Document CALs

This table shows a list of all users and document names that have a Document CAL assigned.
Use the “Search for” input fields to filter for specific documents or usernames!

Filter for user "rva" to see which Documents have a license for this user(s)

 

 

3    Doc CAL Optimizer

This table shows the information how many Document & Named CAL assignments a single user has.
Depending on your license model, you can optimize the CAL usage:

  •  If the same user takes more than X Document CALs, a Named CAL would be better
  •  If a user has a Named CAL, no Document CAL is necessary at all!
USER A and USER B have a Named CAL and 4 Document CALs - this can be optimized


4    Get a Demo

Get a demo here. Install it on your QlikView Management Server machine, or modify the HD_CALManager.exe.config to point to the Management Service API.

Ensure that your user is member of the "QlikView Management API" group. If it does not exist, create the group on your server and add your user. Login and Logoff and then start the HD_CALManager.exe!

This group is necessary on the QlikView Server to access the Management API


5   Webservice to manage Document CALs

heldendaten CAL Manager uses the official Qlik Management APIs.  Sometimes it is necessary to integrate the QlikView CAL Management into your existing user management. To simplify the access to the Qlik Management APIs, we have extended our webservices with 3 new methods.


This allow you to manage QlikView Document CALs from your Java/Linux/Non-Windows platform with a simple HTTP GET/POST/SOAP call!

Get in touch with me if you are interested into the webservice!


What's new in November @ Qlik

Diese Woche war große Releasewoche bei Qlik: Qlik Sense, QlikView und NPrinting haben ein neues "November" Release bekomme.

Für Qlik Sense November 2017 gibt es ein  "What's New" Video:


QlikView November 2017 (oder vormals QlikView 12.20) hat als Hauptfeature sicherlich die Analytic Connections (Server Side Extensions) zu R und Python bekommen. Das ist nun der Vorteil der gemeinsamen Qix-Engine: Qlik Sense und QlikView profitieren beide von solchen Engine-Features!


In QlikView hat sich aber auch an der Oberfläche einiges getan. Vieles sind Gapfeatures zwischen IEPlugin und AJAX-Client. Hier einige Screenshots zu den wichtigsten Punkten:

Copy to Clipboard

Wer erinnert sich noch an meinen Post aus 2014 mit meiner Document Extension . Endlich kann man auch im AJAX-Client Zellenwerte in die Zwischenablage kopieren!Endlich kein Abtippen mehr!



 Attach/Detach Chart

Will man mehrere Selektionsstände gegenüberstellen, gab es in QlikView Desktop/IEPlugin immer die Möglichkeit ein Chart zu Detachen.  Wenn man danach eine Selektion tätigt, bleibt das Chart noch immer in der alten Selektion.

Funktioniert jetzt auch im AJAX Client. Wenn man Serverobjekte erlaubt, kann sich ein Analyst das Chart kopieren, detachen, und dann der aktuellen Analyse gegenüberstellen

Set Reference

Ähnliche Funktion wie Detach/Attach die auch aus QlikView Developer/IEPlugin bekannt ist. Sagt man in einer Graphik "Set Reference" wird im Hintergrund transparent der aktuelle Stand angezeigt. Ändert man die Selektion, hat man weiterhin den fixierten Wert als Referenz. Zum Löschen dann wieder "Clear Reference" klicken.


Language in AJAX Client

Sprache war bisher ein Serverweites Setting für den AJAX Client. Jetzt kann jeder User am Accesspoint rechts oben unter "Favorites & Profile" seine Menüsprache umstellen.


Send to Excel erzeugt .xlsx

Bisher hat Qlik nach .xls exportiert und alle 65k Datensätze ein neues Arbeitsblatt angelegt. Wir haben es getestet: Export von 1.000.000 Zeilen mit 2 Spalten hat als .xls funktioniert!


Der Beweis: Export von 1.000.000 Zeilen in ein .xlsx mit QlikView Nov 2017



 QMC Document Log und .qvw Name

Das gab es schon mal in QlikView 8.5! Jetzt endlich zurück: der Document Log des Tasks ist wieder in der QMC ersichtlich. Zum Taskname steht im Klammer jetzt auch noch der Pfad zur .qvw!


heldendaten GmbH,2017