Bij een groeiende Qlik Sense omgeving met meerdere Apps kan het lastig zijn om de expressies van meetwaarden te beheren. Er zijn grofweg twee oplossingen die gebruikt worden om expressies van meetwaarden centraal te onderhouden:
– Master Item Meetwaarden
– Expressies vastgelegd in een script
Beide methoden hebben hun voor- en nadelen:
Master Item Meetwaarden
Expressies
Voor het beheren van Master Items is een mooie tool beschikbaar, de Master Item Manager van GINQO (https://github.com/GINQO/Master-Item-Manager). Met behulp van deze tool kun je in een centraal opgeslagen Excel document alle Master Item expressies beheren en via een extensie de Master Items aanmaken of bijwerken. Er is een duidelijke handleiding inbegrepen en een voorbeeld xlsx bestand waar je de expressies in kunt toevoegen.
Het gebruik van de GINQO Master Item Manager lost het eerst genoemde nadeel van de Master Items op, maar nog steeds heb je het nadeel dat je Master Items niet overal kunt gebruiken. En in bijvoorbeeld een Gauge Chart wil je de kleuren reeksen afhankelijk laten zijn van een doelstelling of budgetwaarde of budget waarden opnemen in de voettekst van de visualisatie:
Dit is niet mogelijk met een Master Item.
Nu kun je natuurlijk zowel Master Items als Expressies gebruiken, maar dan loop je het risico dat de definities door de tijd heen gaan afwijken. De oplossing hiervoor is om de expressies te genereren op basis van hetzelfde template xlsx bestand dat gebruikt wordt voor het genereren en bijwerken van de Master Items.
Met een simpele toevoeging aan het load script kun je expressies creëren voor elke meetwaarde uit de MasterItem xls.
Het standaard load script voor de Master Item Manager gegevens is:
MI_Measures:
LOAD
%MI%MeasureName
, %MI%MeasureLabelExpression
, %MI%MeasureExpression
, %MI%MeasureDescription
, %MI%MeasureColor
, %MI%MeasureTags
, %MI%MeasureId
FROM [lib://Bestandslocatie/Master Item Template File.xlsx] (ooxml, embedded labels, table is Measures)
;
Het onderstaande stukje script voegen we hieronder toe. Dit script leest de zojuist geladen meetwaarden in en maakt een expressie aan voor elke meetwaarde:
Expressions:
LOAD
‘exp’&[%MI%MeasureName] as Variable
, %MI%MeasureExpression as Expression
Resident MI_Measures;Let vExpressionCount = NoOfRows(‘Expressions’);
For vI = 0 to (vExpressionCount – 1)
Let vExpressionNr = Peek(‘Variable’,vI,’Expressions’);
Let [$(vExpressionNr)] = Peek(‘Expression’,vI,’Expressions’);
Next
Nu heeft elke Master Item Meetwaarde een corresponderende expressie met prefix ‘exp’.
Op deze manier kun je zowel Master Items als expressies gebruiken gebaseerd op eenzelfde bronbestand. Verder kun je dit xlsx bestand nog uitbreiden met extra kolommen ten behoeve van documentatie of selectie van expressies.
Wat tips:
- Een toelichting of business definitie bij KPI’s, die je vervolgens op een tabblad definities kunt tonen aan de (eind)gebruikers van het dashboard.
- De eigenaar (of aanspreekpunt) van de definitie
- Kolommen per dashboard met 0/1 die je kunt gebruiken om de juiste expressies voor een dashboard in te laden.