Optimize
Transform
Visualize
Interdobs
Interdobs de toonaangevende SAP dienstverlener op het gebied van Business Intelligence. Wij bieden advies, beheer en projectondersteuning op de SAP on-premise en de Cloud producten voor data modellering, data analyse, rapportages, dashboards, predictive analytics en HANA.
Optimize
Interdobs is als geen ander op de hoogte van de laatste stand van de mogelijkheden van de SAP Analytics software en Analytics roadmaps. In onze demo omgevingen experimenteren wij met de nieuwste versies en daardoor kunnen wij uit eerste hand vertellen waar integratie en content aanwezig is en waar nog verder doorontwikkeling benodigd is. Na het samen definiëren van de gewenste stip op de horizon stellen we een pragmatische roadmap op, waardoor de route voorwaarts en eventuele keuzemogelijkheden tussen optimaliseren of vervangen zich zullen openbaren. Interdobs staat voor u klaar!
Transform
Interdobs heeft zich als doel gesteld om u te helpen bij het maken van de juiste beslissing voor uw hele organisatie. Van BI Architectuur tot Analytics, van ruwe data uit uw systemen naar getransformeerde, geharmoniseerde en gevalideerde informatie in het Data Warehouse. SAP Data Warehousing is overigens allang niet meer het klassieke SAP BW van vroeger. Met alle nieuwe mogelijkheden om een agile data warehouse op te zetten, met ruimte voor continue (DevOps) ontwikkelingen, en een keuze voor techniek (BW/4HANA of het HANA SQL Data Warehouse), zijn de mogelijkheden voor uw transformatie eindeloos. Wij bepalen graag samen met u de juiste route!
Visualize
Interdobs realiseert op een methodische wijze de data visualisaties die het juiste verhaal vertellen om de vervolgacties in gang te kunnen zetten. We kijken naar ‘de vraag die achter de vraag’ en maken bij de realisatie gebruik van markt standaarden als HICHERT®SUCCESS en Stephen Few.
OPTIMIZE
TRANSFORM
VISUALIZE

SAC Analytics Designer features: een eerste blik

SAP Analytics Cloud Analytics Designer is de nieuwe cloud-based dashboard tool binnen SAP Analytics Cloud (SAC) waar SAP zijn focus meer en meer op aan het leggen is. Logischerwijs is de functionaliteit nog niet zo uitgebreid als het client-based alternatief van SAP, Lumira Designer, maar dat betekent niet dat er nog geen aantrekkelijk ogende en functionele applicaties mee gemaakt kunnen worden. Deze blog zal een eerste blik werpen op een aantal van de huidige functies binnen SAP Analytics Cloud Analytics Designer, namelijk:

  • Radio Button Group
  • Global Variables
  • Cascading Filter
  • Popups

Al deze features zijn alleen beschikbaar in de Analytics Designer en dus niet in SAC Stories. Het zijn bouwblokken voor interactieve dashboards, waarbij flexibiliteit en customization centraal staan.

Radio Button Group

Laten we beginnen met een eerste eenvoudige widget, de radio button group. In dit voorbeeld willen we door middel van twee radio buttons de mogelijkheid creëren om te switchen tussen een tabel en een grafiek.

Allereerst plaatsen we een grafiek op het canvas, Chart_Top10, waarbij de top 10 meest bekeken films worden gepresenteerd voor de gekozen selectie.

Vervolgens plaatsen we een tabel, Table_details, met dezelfde dimensies over de grafiek op het canvas en verbergen we de tabel.

Nu kan er een radio button group geplaats worden boven de grafiek en tabel. We zetten de radio buttons naast elkaar, horizontal lay-out, en zorgen voor twee waarden Graph, de default waarde, en Table.

Na het toevoegen van het object, kunnen we de functionaliteit van de knoppen coderen. Dit kan door  ‘fx’ te selecteren naast het radio button group object in de outline van de applicatie. Dit opent een nieuw venster waar het script kan worden geschreven.

We willen dus kunnen wisselen tussen de standaard getoonde grafiek en de tabel. Als eerste wordt de geselecteerde  waarde van de radio button group weggeschreven in een variabele.

 

var selectedvalue = RadioButtonGroup_1.getSelectedKey();

 

Door middel van een if-statement bepalen we vervolgens aan de hand van de waarde in variabele selectedvalue wat er moet worden getoond. Als deze waarde “Table” is, wordt de grafiek, Chart_Top10, op onzichtbaar gezet en de tabel, Table_details, op zichtbaar. Echter, is de waarde niet “Table” (en dus “Graph”), wordt de grafiek getoond en de tabel verborgen.

 

if(selectedvalue === “Table”) {

Chart_Top10.setVisible(false);

Table_details.setVisible(true);

}

 

else{

Chart_Top10.setVisible(true);

Table_details.setVisible(false);

}

Global Variables

Met global variables is het mogelijk om binnen een applicatie waarden op te slaan in een variabele die daarna ook in andere objecten opgeroepen kunnen worden. In dit voorbeeld maken we twee globale variabelen voor de gekozen filterwaarden uit twee dropdown boxen, country en zip code.

Globale variabelen kunnen eenvoudig worden aangemaakt in de applicatie, door op de plus naast  Global Variables te klikken.

Vervolgens moet er een naam worden gegeven aan de variabele, met een eventuele omschrijving. Daarnaast is het belangrijk om een type te definiëren, met als opties string, boolean, integer en number. In ons geval maken we twee globale variabelen van het type string.

Deze variabelen zullen op verschillende plekken in de applicatie gevuld worden.

Om te beginnen in het onInitialization script van de applicatie, als er nog niets gefilterd is.

 

Countryfilter = “All”;

Zipcodefilter = “None”;

 

Als er een land wordt geselecteerd wordt in de country dropdown, zal het desbetreffende land in Countryfilter worden gezet en wordt Zipcode op “All” gezet. Deze code zetten we in het onSelect script van DD_COUNTRY.

 

var selectedcountry = DD_COUNTRY.getSelectedKey();

Countryfilter = selectedcountry;

Zipcodefilter = “All”;

 

Wordt in deze dropdown echter het filter weer verwijderd, dan worden de variabelen weer teruggezet.

 

Countryfilter = “All”;

Zipcodefilter = “None”;

 

In het onSelect script van DD_ZIPCODE wordt vervolgens de geselecteerde zipcode weggeschreven in de variabele.

 

var selectedzipcode = DD_ZIPCODE.getSelectedKey();

Zipcodefilter = selectedzipcode;

 

Cascading filter

Cascading filters in dropdowns zijn erg populair, nu is ook dit mogelijk in de SAC Analytics Designer. In dit scenario hebben we twee dropdown objecten. In de eerste dropdown kan er gekozen worden welke measure er in de onderliggende tabel wordt getoond en in de tweede dropdown kan een dimensie worden gekozen.

Om de dropdown te vullen en acties te laten uitvoeren voegen we aan het onSelect script van de eerste dropdown, Dropdown_Measure, code toe.

We beginnen met een variabele waarin de geselecteerde measure wordt weggeschreven.

var sel = Dropdown_MeasureGroup.getSelectedKey();

 

Aan de hand van de gekozen waarde worden de getoonde kengetallen bepaald in het volgende if-statement. Per gekozen waarde wordt er hardcoded bepaald welke measures er in de kolommen worden gezet. In dit voorbeeld is er dus de keuze tussen ‘Gross Margin’ of ‘Discount’.

if (sel == ‘Gross_Margin’) {

Table.getDataSource().setDimensionFilter(“Account_BestRunJ_sold”,                                                [“[Account_BestRunJ_sold].[parentId].&[Gross_MarginActual]”,

“[Account_BestRunJ_sold].[parentId].&[Gross_MarginPlan]”,

“[Account_BestRunJ_sold].[parentId].&[Gross_Margin_Abs]”,

“[Account_BestRunJ_sold].[parentId].&[Gross_Margin_Percent]”]);

}

else if (sel == ‘Discount’) {

Table.getDataSource().setDimensionFilter(“Account_BestRunJ_sold”,                                                [“[Account_BestRunJ_sold].[parentId].&[DiscountActual]”,

“[Account_BestRunJ_sold].[parentId].&[DiscountPlan]”,

“[Account_BestRunJ_sold].[parentId].&[Discount_Abs]”,

“[Account_BestRunJ_sold].[parentId].&[Discount_Percent]”]);

}             

 

In de tweede dropdown, Dropdown_Dimensions, komt de volgende code. Ook hier starten we met een variabele waarin de gekozen waarde komt.

var sel  = Dropdown_Dimensions.getSelectedKey();

 

Vervolgens verwijderen we de huidige dimensie van de table en voegen we de, in variabele ‘sel’ opgeslagen dimensie, toe aan de rijen van de tabel.

Table.removeDimension(CurrentDimension);

Table.addDimensionToRows(sel);

 

De huidige selectie wordt als laatste nog toegevoegd aan een globale variabele CurrentDimensions, om hem zo telkens te kunnen verwijderen wanneer er een nieuwe selectie wordt gemaakt.

CurrentDimension = sel;

 

Popups

Hierboven hebben we twee globale variabelen gevuld, maar nu is het tijd om ze daadwerkelijk te gebruiken. Dit gaan we doen met een ander component, de popup. Een popup, is niets anders dan een scherm wat als een overlay op de applicatie wordt getoond en waarop componenten geplaatst kunnen worden.

Hier gebruiken we een eenvoudig voorbeeld waarbij een popup, de huidige filter waardes weergeeft.

Om een popup aan je applicatie toe te voegen, klik je simpelweg op het plusje naast Popups aan de linkerkant van het scherm.

Wat direct opvalt is dat er een nieuw canvas wordt geopend en je weer met een lege Outline start. Je moet een pop-up dan ook zien als een mini applicatie binnen de applicatie. Er is altijd weer terug te springen naar je Main Canvas, door op het pijltje naast de popup naam te klikken.

Belangrijke styling features van de popups zijn de grootte en de oriëntatie. Zo is er een aantal standaard maten beschikbaar waaronder Letter, Legal, A4 en B5, en kunnen deze zowel staand als liggend worden weergegeven. Maar het is uiteraard ook mogelijk om met je eigen maten te werken.

We voegen een aantal tekst componenten en een knop toe aan Popup_1, zodat hij er als volgt uitziet.

In het onClick script van de “Close Pop-Up” knop, komt de volgende code om de popup te sluiten.

Popup_1.close();

Nu moet er nog een knop op de hoofdapplicatie komen die de popup opent en de tekst componenten onder Country en ZIP Code vult met de waarde die op dat moment in de globale variabelen staan. Het onClick script hiervoor is als volgt.

 

Countryfilters.applyText(Countryfilter);

Zipcodefilters.applyText(Zipcodefilter);

Popup_1.open();

 

Afsluitende gedachten

Met SAC Analytics Designer heeft SAP naar mijn mening een goed begin gemaakt met dashboarding in de cloud. De meeste basis widgets die je mag verwachten, zoals hierboven een aantal de revue hebben gepasseerd, zitten er in en ook is scripting mogelijk. Er kunnen dus al echt interactieve dashboards gemaakt worden, echter zullen deze dashboards met de huidige features nog niet zo diepgaand zijn als wat er nu binnen een Lumira Designer mogelijk is.

Kijkend naar de roadmap voor SAC Analytics Designer lijkt het er op dat we in 2019 veel nieuwe features mogen verwachten. En wanneer het zover is zullen die hier uitgebreid aan bod komen.