How To SAP BI – Prompt für Variablen der Planungsfunktion aufrufen

Analysis Prompt für Variablen der SAP IP Planungsfunktion Aufrufen
How To SAP BI – Prompt für Variablen der Planungsfunktion aufrufen
4.5 Sterne
6 Bewertungen


Im Planungsumfeld besteht oft die Anforderung, Variablen erst bei der Ausführung einer bestimmten Planungsfunktion abzufragen. Leider kommt die Eingabeaufforderung bei Analysis for Office (AO), im Gegensatz zum Web Application Designer (WAD), nicht automatisch bei der Ausführung. Die Elementauswahl muss explizit über das (etwas versteckte) API SAPCallMemberSelector aufgerufen werden.

Leider steht dabei nicht der gesamte Umfang der Elementenauswahl zur Verfügung. So können Sie nicht ändern wie Elemente in der Auswahl angezeigt werden, zum Beispiel Anzeige von Schlüssel auf Text ändern. Außerdem muss das InfoObject im Aufriss oder als ein freies Merkmal verfügbar sein.

Die Funktionsweise diesen APIs möchte ich anhand eines Beispiels erläutern. Betrachten wir die folgende Planungsfunktion.

Kopie Planungsfunktion

Planungsfunktion

Wir wollen einen Betrag von Buchungskreis 1000 nach Buchungskreis 2000 kopieren. Zielmonat ist immer Dezember. Quellmonat wird von dem Benutzer bei der Ausführung der Planungsfunktion festgelegt. Es können mehrere Quellmonate ausgewählt werden.

Variable Buchungsperiode

Quellmonat Variable

Diese Planungsfunktion ist in einem Workbook gekapselt. Die Variable wird in diesem Beispiel aus einer Zelle gefüllt.

Setup der Planungsfunktion

Planungsfunktion in der Mappe

Bei der Ausführung der Planungsfunktion soll nun eine Variablenabfrage auftauchen. Dazu rufen wir über ein VBA Makro das SAPCallMemberSelector Interface auf. Die Syntax sieht wie folgt aus:

Dim lResult As Variant
lResult= Application.Run(„SAPCallMemberSelector“, „Alias„, „Auswahltyp„, „Name der Variable oder Dimension„, „Referenzzelle„, „Anzahl Werte„)

Alias
Geben Sie den Alias der Formel der Datenquelle oder des Planungsobjekts an. Sie können den Alias beim Konfigurieren der Datenquelle in der Registerkarte Komponenten im Designbereich festlegen.

Alias der Datenquelle bzw. der Formel

Alias

Sie müssen diesen Parameter definieren, wenn die Variablen in der Arbeitsmappe nicht zusammengefasst sind. Wenn die Variablen in der Arbeitsmappe zusammengefasst sind, können Sie diesen Parameter definieren, müssen es aber nicht.
Auswahltyp

  • PROMPT – Auswahl der Eingabeaufforderung
  • FILTER – Auswahl der Dimensionselemente aus dem Filter
  • FILTER_MASTERDATA – Auswahl aller Elemente der Stammdaten einer ausgewählten Dimension
  • PLAN_PARAMETER – Auswahl der Variablen eines Planungsobjekts.

Name
Geben Sie den Namen der Variablen oder der Dimension ein.

Referenzzelle
Mit dem Parameter Referenzzelle können Sie die Zelle festlegen in der die Auswahl angezeigt wird. Mit ActiveCell (ohne Anführungszeichen) wird die Auswahl in der gerade aktiven, also ausgewählten, Zelle angezeigt.

Anzahl Werte

  • SINGLE – nur ein Element kann zum Filtern ausgewählt werden
  • MULTIPLE – mehrere Elemente können zum Filtern ausgewählt werden.

Dieser Parameter ist optional.

Betrachten wir folgende Beispiele:

Auswahltyp PROMPT

Bei diesem Typ können Sie die Werte aus der Eingabeaufforderung übernehmen. Das Makro kann wie folgt aussehen:


Sub StartPF()
Dim vResult As Variant
Dim lResult As Long
vResult = Application.Run("SAPCallMemberSelector", "DS_1", "PROMPT", "0FISCPER3_CMMYA_001")
'schreibe Auswahl in die Zelle D2
Tabelle2.Range("D2").Value = vResult
'starte Planungsfunktion
lResult = Application.Run("SAPExecutePlanningFunction", "PF_1")
End Sub

Beim Aufrufen der Arbeitsmappe schränkt der Benutzer die gewünschten Monate ein. Diese Variable ist im Filter der Query definiert.

Auswahl der Filterkriterien

Auswahl Buchungsperioden

Über unser Makro greifen wir bei der Ausführung der Planunungsfunktion diese Auswahl auf. Die beim Aufrufen selektieren Monate sind schon ausgewählt. Der Benutzer kann die Auswahl jedoch anpassen und erweitern (kann bei Planungssequenzen Anwendung finden).

Auswahl Buchungsperiode

Auswahl Variable

Anschließend werden die ausgewählten Werte in die definierte Zelle geschrieben und die Planungsfunktion ausgeführt.

Planungsfunktion erfolgreich ausgeführt

Planungsfunktion ausgeführt

Die selektierten Monate werden kopiert.

Anstatt die Auswahl über eine Zelle an die Planungsfunktion zu übergeben, könnten Sie auch das SAPSetPlanParameter API nutzen.
Sub StartPF()
Dim vResult As Variant
Dim lResult As Long
vResult = Application.Run("SAPCallMemberSelector", "DS_1", "PROMPT", "0FISCPER3_CMMYA_001")
'Übergebe die Auswahl
lResult = Application.Run("SAPSetPlanParameter", "PF_1", "0FISCPER3_CMMYA_001", vResult, "INPUT_STRING")
'starte Planungsfunktion
lResult = Application.Run("SAPExecutePlanningFunction", "PF_1")
End Sub

Machen wir aber mit unserem eigentlichen Thema, SAPCallMemberSelector API, weiter.

Auswahltyp FILTER

Oft ist es so, dass die in der Planungsfunktion verwendete Merkmale nicht über eine Variable bei Start der Mappe (Eingabeaufforderung) definiert werden. Wohl aber sind die Werte des Merkmals im Filter eingeschränkt. In diesem Fall sieht unser Makro so aus:

Sub StartPF()
Dim vResult As Variant
Dim lResult As Long
vResult = Application.Run("SAPCallMemberSelector", "DS_1", "FILTER", "0FISCPER3")
'schreibe Auswahl in die Zelle D2
Tabelle2.Range("D2").Value = vResult
'starte Planungsfunktion
lResult = Application.Run("SAPExecutePlanningFunction", "PF_1")
End Sub

Dabei werden nur vorhandenen Werte zur Auswahl angeboten, was übersichtlicher ist.

Prompt Planungsfunktion Filter

Auswahl Filter

Auswahltyp FILTER_MASTERDATA

Bei diesem Auswahltyp stehen alle Stammdaten des Merkmals zur Auswahl.

Sub StartPF()
Dim vResult As Variant
Dim lResult As Long
vResult = Application.Run("SAPCallMemberSelector", "DS_1", "FILTER_MASTERDATA", "0FISCPER3")
'schreibe Auswahl in die Zelle D2
Tabelle2.Range("D2").Value = vResult
'starte Planungsfunktion
lResult = Application.Run("SAPExecutePlanningFunction", "PF_1")
End Sub

SAPCallMemberSelector FILTER_MASTERDATA

Alle Stammdaten werden angezeigt

Auswahltyp PLAN_PARAMETER

Über den Parameter PLAN_PARAMETER können Variablen, die in der Planungsfunktion enthalten sind, aufgerufen werden.

Sub StartPF()
Dim vResult As Variant
Dim lResult As Long
vResult = Application.Run("SAPCallMemberSelector", "PF_1", "PLAN_PARAMETER", "0FISCPER3_CMMYA_001")
'schreibe Auswahl in die Zelle D2
Tabelle2.Range("D2").Value = vResult
'starte Planungsfunktion
lResult = Application.Run("SAPExecutePlanningFunction", "PF_1")
End Sub

Parameter PLAN_PARAMETER

Auswahl der Variablenwerte

Parameter ActiveCell und SINGLE

Mit dem Parameter SINGLE können Sie erreichen, dass nur einzelne Elemente ausgewählt werden können. Mit dem Paramter ActiveCell wird das Auswahlfenster in der gerade aktiven Zelle aufgemacht.

Sub StartPF()
Dim vResult As Variant
Dim lResult As Long
vResult = Application.Run("SAPCallMemberSelector", "PF_1", "PLAN_PARAMETER", "0FISCPER3_CMMYA_001", ActiveCell, "SINGLE")
'schreibe Auswahl in die Zelle D2
Tabelle2.Range("D2").Value = vResult
'starte Planungsfunktion
lResult = Application.Run("SAPExecutePlanningFunction", "PF_1")
End Sub

Single Parameter

Nur Einzelwerte können selektiert werden


Ihre User beklagen sich über langsame Berichte?

  • In meinem Newsletter lernen Sie, wie Sie Abhilfe schaffen.
  • Entdecken Sie die Möglichkeiten der Performanceoptimierung.
  • Praktische Anleitungen ermöglichen Ihnen schnelle Erfolge bei der Optimierung von SAP Systemen.
  • Viele Tipps und Tricks zu SAP BI Themen.
  • Holen Sie die maximale Performance aus Ihrem SAP BI!
  • Bei der Anmeldung zu meinem Newsletter erhalten Sie das Buch „High Performance SAP BI“ als Willkommensgeschenk.
Fordere SAP Performance Tricks an

Jetzt anfordern!

* Pflichtfeld
 
Kein SPAM. Ich hasse Spam genau so wie du.

Falls Ihnen dieser Beitrag weitergeholfen hat, wäre es eine sehr nette Anerkennung meiner Arbeit wenn Sie z.B. Ihre Bücher über Amazon bestellen würden. Wenn Sie ein Produkt kaufen, erhalte ich dafür eine Provision. Für Sie ändert sich am Preis des Produktes gar nichts. Ich möchte mich an dieser Stelle jetzt schon für Ihre Unterstützung bedanken.

Denis Reis ist Business Intelligence Consultant bei Dahlbeer und gibt als Buchautor sein Wissen rund um den SAP Projektalltag weiter. Des Weiteren unterrichtet er Projektmanagement und Controlling an der Wiesbaden Business School. Der aus Düsseldorf stammende Familienmensch zählt zu denjenigen, die auf komplizierte Darstellungen verzichten und das Ganze auf den Punkt bringen.

0 Kommentare

Dein Kommentar

Want to join the discussion?
Feel free to contribute!

Kommentar verfassen