Report-to-Report: SAP Design Studio naar SAP Analysis for Office

Report-to-Report: SAP Design Studio naar SAP Analysis for Office

Inleiding

De integraties tussen verschillende SAP (BO) tools wordt steeds beter. Het is al langer mogelijk om via OpenDocument URL’s parameters mee te sturen van de ene naar de andere applicatie. Het is bijvoorbeeld mogelijk om met Design Studio een dashboard te bouwen die een filter waarde mee stuurt naar WebI, waarin de gebruiker verdere analyse kan doen.

Een van de meest intuïtieve en gebruiksvriendelijkste tools voor data analyse is SAP Analysis for Office. Doordat Analysis makkelijk in gebruik is, en ook nog eens in Excel draait, is dit één van de meest favoriete tools voor data analisten.

Het is ook al langer mogelijk om vanuit Design Studio een Analysis for Office rapport aan te roepen (via een OpenDocument URL). Echter was het niet mogelijk om filters mee te geven. Het probleem is dus dat de gebruiker dezelfde filters die hij heeft geplaatst in zijn dashboard opnieuw moet zetten in zijn Analysis rapport.

Sinds de komst van Analysis for Office versie 2.3 is er een manier om dit probleem te omzeilen, namelijk door gebruik te maken van Report-to-Report Interface (RRI), zoals we die kennen in BW.

Met RRI kan vanuit een BEx query worden gesprongen naar verschillende bronnen, waaronder bijvoorbeeld andere BEx queries, naar URL’s of naar SAP transacties. Vanaf nu is het dus ook mogelijk om te springen naar een Analysis for Office rapport.

Voorwaarden

Om gebruik te maken van RRI naar Analysis for Office moet het BW systeem wel zijn voorzien van de juiste service packs en patches.

SAP note 2283045 geeft een overzicht welke patches nodig zijn bij welk systeem (SAP service account vereist).

Wanneer het BW systeem aan de eisen voldoet kunnen we beginnen met de voorbereiding.

Stap 1

We maken een Analysis for Office rapport en slaan deze op in BW. In de instellingen van het rapport moet de optie “Werkmap vernieuwen bij openen” aanstaan.

In mijn voorbeeld heb ik een BEx query gemaakt met 3 dimensies, namelijk Employee, Calendar Year/Month en Opleidings code. De output is in onderstaand plaatje te zien. Deze query gebruik ik in mijn Analysis for Office rapport, die ik opsla in BW.

Stap 2

In de volgende stap moeten we aangeven dat we RRI willen gebruiken voor Analysis for Office. In BW doen we dat door transactie RSBBS op te starten. Hier kunnen we aangeven dat we vanuit een bepaalde query willen springen naar een Analysis rapport. We geven de naam op van de query zoals in onderstaand plaatje en klikken daarna op Create.

In het volgende menu kiezen we Analysis Office als Report type. Bij receiver object kiezen we het Analysis for Office rapport dat we in de eerste stap hebben gemaakt.

Na het opslaan ziet het menu eruit als onderstaand plaatje. Onthoud het ID van dit object, dit hebben we straks namelijk nodig in Design Studio.

Stap 3

We gaan nu door naar Design Studio. Voor dit voorbeeld maak ik een simpel dashboard die een grafiek en tabel laat zien. We zien in zowel de grafiek als tabel een kengetal “opleidingskosten” en een dimensie Calendar Year/Month.

De bron voor de data is de BEx query die we hebben gedefinieerd in stap 2 als zender van de data.

Laten we met de tabel beginnen. In de eigenschappen van de tabel onder het kopje “User Interactivity” zetten we de Selection Type op Single. Hiermee geven we aan de er maar 1 rij in de tabel geselecteerd kan worden.

Wanneer de gebruiker het dashboard gebruikt kan hij met een rechtermuisklik op de tabel het context menu oproepen. We zien nu een optie “Jump To” waar we vervolgens het RRI object kunnen kiezen dat we in stap 2 hebben gedefinieerd.

In onderstaand voorbeeld heb ik in de rij met maand/jaar 07.2009 het context menu opgeroepen en de optie “Jump to” à RRI test aangeklikt.

Het resultaat van deze actie is dat Analysis for Office (de werkmap die we hebben opgeslagen in BW)  zal worden opgestart met een filter op de periode 07.2009. Van hieruit kan de eindgebruiker verder met zijn analyse.

We gaan nu over naar de grafiek. Wanneer de gebruiker op een staaf klikt in de grafiek willen we hetzelfde resultaat bereiken als met de tabel. Dit voorbeeld is een stukje moeilijker omdat we nu een klein script moeten gebruiken.

In dit voorbeeld klikt de gebruiker op de staaf die periode 07.2010 weergeeft.

Op dit moment moet in het “On Select” script van de grafiek de volgende code worden uitgevoerd:

DS_1.jumpToTarget(“QURY0001”, ResultSetSelectionType.DATA,

{“0CALMONTH”:INFOCHART_1.getSelectedMember(“0CALMONTH”),”20GPGWXE8NANXR5NOOVOBXI2R”:”20GPGWXE8NANXR5NOOVOBXOEB”});

Laten we dit script opdelen in kleinere stukken:

  • DS_1 is de naam (alias) van de datasource die we gebruiken in Design Studio
  • jumpToTarget is de methode die aangeroepen wordt om RRI te activeren
  • ResultSetSelectionType.DATA geeft aan dat we een deel van de data mee willen geven als parameter
  • {“0CALMONTH”:INFOCHART_1.getSelectedMember(“0CALMONTH”)is het eerste deel van de parameter die we mee sturen. Hier staat feitelijk dat we de door de gebruiker geselecteerde maand mee geven als parameter
  • “),”20GPGWXE8NANXR5NOOVOBXI2R”:”20GPGWXE8NANXR5NOOVOBXOEB”}); is het tweede deel van de parameter. Hier zien we de GUID van de kengetal structuur en de GUID van het kengetal zelf

Het resultaat is wederom dat wanneer de gebruiker van het dashboard klikt op een bepaalde maand in de grafiek, in dit geval op 07.2010, Analysis for Office opgestart zal worden met een filter op de geselecteerde maand.

Conclusie

Het is natuurlijk mogelijk om met Design Studio of WebI een dashboard en Analyse rapport te maken waarbij het niet nodig is om RRI te gebruiken om filters door te geven aan Analysis for Office. Maar als je echt gebruik wil maken van de kracht van Design Studio (dashboarding tool) en Analysis for Office (analyse tool) dan biedt RRI een mooie oplossing.

Het enige jammere aan deze oplossing is dat de Analysis for Office rapporten moet opslaan in BW. Dat wil zeggen dat het mogelijk is dat een organisatie op 2 plekken zijn rapporten moet onderhouden (bijvoorbeeld op BO en BW).

Dwain Chang