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!


Set Analysis - Warum geht meine Day to Day Comparison nicht?

Einer der wiederkehrenden Fragen bei Set Analysis - neben der allgemeinen Syntax - ist ein Thema, bei dem unsere Kunden gerne die Dimension des Charts in Set Analysis überschreiben wollen. Ein typischer Fall ist die Day to Day Comparison der Umsätze zwischen zwei Jahren.

Für das  folgendes Beispiel haben wir zwei vollkommen valide Set Analysis Expressions definiert:

//Aktuelles Monat
sum({<Bestelldatum={">=01.07.2017<01.08.2017"}>} Anzahl*Einzelpreis)

//Gleiches Monat Vorjahr
sum({<Bestelldatum={">=01.07.2016<01.08.2016"}>} Anzahl*Einzelpreis)


Die Expressions funktionieren wunderbar für alle möglichen Dimensionen: Produkte, Länder, Kunden. Benutzt man aber ein Kalenderfeld als Dimension des Charts, sind die Leute meist enttäuscht! Qlik packt die Ergebnisse pro Jahr in getrennte Zeilen wenn man etwa das Bestelldatum selbst als Dimension wählt.

Vorjahres Vergleich funktioniert hier nur in der Gesamtsumme

Ja, warum denn? Wie kann ich jetzt den 31.07.2016 mit dem vom 31.07.2017 vergleichen?

Die Erklärung findet sich in dem Weg wie Set Analysis von der QIX Engine abgearbeitet wird: Bevor das Chart zum Rechnen anfängt, werden für jedes SET die relevanten Zeilen aus dem Datenmodell "markiert". Diese Zeilen werden dann dem jeweiligen Dimensionswert zugeordnet, und dann dort aggregiert (in unserem Fall summiert). Im Screenshot oberhalb werden also die relevanten Faktenzeilen

  • für die erste Expression auf die Dimensionsausprägungen 01.07.2017 bis 31.07.2017, 
  • für die zweite Expression auf die Dimensionsausprägungen 01.07.2016 bis 31.07.2016
aufgeteilt. Damit entstehen insgesamt 62 Zeilen.

Die SET Analysis wird nicht für jede Zeile neu interpretiert, sondern einmal global für das Chart gerechnet.  Das ist auch der Grund warum ich nicht am 31.07.2017  eine Set Analysis <Datum={Datum-1}> stehen haben kann um auf den Vortag zuzugreifen.  Da funktioniert tatsächlich manchmal ein IF-Statement mit Total-Qualifier besser, weil das If-Statement für jede Zeile des Datenmodells geprüft wird.

Können wir also unsere beiden Expressions nutzen, um eine Day to Day Comparison zu machen? JA, man benötigt aber ein Feld im Datenmodell, welches für beide Jahre den gleichen Wert liefert.

    
dual(
            num(day(Bestelldatum),'00')&'.'&num(month(Bestelldatum),'00'), 
           (month(Bestelldatum)*10000)+day(Bestelldatum)
) as TagMonat


Das Feld entledigt sich des Jahres, und hat intern für 31.7.2016 und den 31.07.2017 den numerischen Wert   70031. Man könnte wohl auch die daynumberofyear() Funktion nutzen, aber irgendwie vertraue ich da dem Schaltjahr trotz Dokumentation nicht.

Was passiert also jetzt im Chart wenn wir dieses Feld als Dimension nutzen? Die Set Expressions liefert den gleichen Dimensionswert für beide Jahre. Damit ist es für Qlik eine gemeinsame Zeile, mit der man dann mittels column(1)-column(2) die Day to Day Comparison machen kann.


Das neue Feld "Tag Monat" läßt den Vergleich zu

Auch in Line-Charts sieht man den Unterschied gut. Links das normale Bestelldatum: hier sind die Linien nacheinander, weil ja ein Jahr vergangen ist (noch klarer mit einem kontinuierlichen Linechart). Mit dem Tag Monat Feld haben wir die Linien übereinander.


Auf Tagesebene ist das meist nur die halbe Wahrheit, weil Handelsunternehmen meist den ersten Verkaufstag im Jahr mit dem ersten Verkaufstag des Vorjahres vergleichen wollen. In dem Fall wird man überhaupt ein eigenes Feld im Datenmodell benötigen.


Beispiel zum Downloaden gibt es hier.




PS: wer rasch auf QlikView November 2017 oder QlikSense Sept 2017 möchte, bitte folgenden Artikel nicht übersehen. Die Syntax für Set Analysis mit Single/Doublequotes wird in diesem Releases nachgeschärft! https://community.qlik.com/blogs/qlikviewdesignblog/2017/09/11/quotes-in-set-analysis




From IFrame to API - using the Qlik Sense Platform

Einige Tage nachdem Qlik Ihren Chatbot vorgestellt hat, habe ich Ende Juni einen Vortrag bei der Qlik Dev Group Austria geben dürfen, um die Grundlagen hinter einer solchen Qlik Sense Integration ein wenig zu erklären!

HIC @ Dev Group inVienna
Qlik Sense große Stärke im Hintergrund ist die Vielzahl an APIs um Qlik zu erweitern, bzw. in andere Produkte einzubinden oder gar ganz neue Clients zu schaffen. Siehe Sense Excel oder eben den Chatbot.  Während sich die meisten Leute auf Extensions konzentrieren, sind die Ansätze bei denen man  programmatisch auf die Qlik Sense Engine zugreift, eigentlich die interessanteren. Die Qlik Engine ist der Datenlieferant den man beliebige "Fragen" mittels "Hypercubes" stellt. Um das Medium der Präsentation kümmert sicher der Entwickler selbst je nach Anwendungsfall - sei es eine einfache Email bis hin zu einem komplett eigenem Client.

Wer sich für die Präsentation interessiert, findet diese unter: http://content.heldendaten.eu/IFrameToAPI.zip . Einfach bei folgender Folie im PDF auf die Bilder klicken, um Beispiel für die einzelnen Integrationsmöglichkeiten zu sehen. Von der ersten Spalte zur zweiten Spalte werden die Integrationen immer komplexer, aber auch mächtiger!
 

PDF herunterladen und Beispiele ansehen.

Will man Qlik Sense für diese Integrationen nutzen, so nennt das Qlik selbst die "Qlik Analytic Platform". Das sorgt immer mal wieder für Verwirrung, ob es sich dabei denn um ein eigenständiges Software-Produkt handelt. Nein, tut es nicht! Leider ist hier die Hilfe mangels Screenshots auch nicht sehr aufschlussreich!


Qlik Analytic Platform ist genau das gleiche Qlik Sense Setup Executable, welches man auch für jede "normale" On-Premise Installationen nutzt. Erst die Lizenz macht den Unterschied: die Qlik Analytic Platform lässt in QMC bei den Engine-Settings einen neuen Reiter "Capacity-based licensing" erscheinen. Dort weist man die Anzahl der CPUs zu, die die jeweilige Engine nutzen soll. Im Gegensatz zu einer "normalen" Qlik Sense Installation, nutzt man hier ausschließlich den Qlik Dev-Hub um seine Integrationen zu implementieren!



Qlik Analytic Platform - nachdem man die Lizenz zugewiesen hat


QlikView Multidimensionales Kombichart austricksen!

Während alle auf das Qlik Sense June 2017 Release schauen, hier ein kleines Problem, welches vielleicht genauso alt wie QlikView selbst ist:

In einem Kombidiagramm mit zwei Dimensionen zum Beispiel "Jahr" und "Bestimmungsland" will ich zwei Expressions auftragen: einmal die durchschnittlichen Frachtkosten als Balken, und darüber die maximalen Frachtkosten als Punkt!

Das sieht in QlikView 12 leider genauso aus wie in QlikView 11 und vielen Versionen davor:

Zentrierte Punte? Warum das?
Die Punkte von max(Frachtkosten) werden alle über den mittleren Balken gesetzt. Jetzt kann man dann raten welches Land zu welchem Punkt gehört :-(

Der Versuch die Sache mit Errorbars zu lösen, scheitert in diesem Fall leider ebenfalls. Zudem verhält sich QlikView 11.20 hier anders als QlikView 12.10 SR6, also besser nicht nutzen!  Was bleibt, ist eine Lösung via "Bar Offset", der sonst für Wasserfalldiagramm benutzt wird. Punkte sind es leider keine, aber man sieht pro Land die maximalen Frachtkosten!

Bar Offset statt Punkten

Entscheidend ist, die eigentliche Kennzahl als "Bar Offset" zu definieren ...


.. und der Expression selbst nur einen Dummy-Wert (als Höhe des Balkens) zu setzen


Weil der Tooltip dann aber irreführend wäre, diesen auch noch explizit als dritte Expression definieren, und den default Tooltip unter "Presentation"-"PopUp" Labels deaktivieren.



Voila - Problem gelöst. Jetzt können wir uns dem Qlik Sense Release zuwenden! Ups, dort geht die Darstellung gar nicht? Ein Kombi-Diagram kann nur eine Dimension? Naja, vielleicht gibt es mal einen Blogpost über das Extension Programmieren!

Download der .qvw gibt es hier!



heldendaten GmbH,2017