Posts mit dem Label Qlik Sense werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Qlik Sense werden angezeigt. Alle Posts anzeigen

Bundesländer & Bezirke - Automatisch in Qlik Sense

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.


Dateneingabe und Planung in Qlik mit write.bi

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



Qlik Sense BBQ

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.


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.

Die Qlik-Funktionen Fractile und FractileExc

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.

Karten Features im Qlik Sense Geo Objekt

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,

Volltextsuche & Wordcloud in Qlik

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

Process Mining mit Qlik Sense


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


heldendaten GmbH,2020