How To BPC – Sprachabhängige Workbooks über VBA mit API Aufruf

Planungsmappen in BPC werden hauptsächlich auf Basis von Excel umgesetzt. Das heißt, dass wir unsere Überschriften, Reiternamen, Buttons usw. in Excel anlegen. Oft stehen wir vor der Herausforderung die Layouts zu lokalisieren, das heißt in verschiedenen Sprachen verfügbar zu machen. Wie stellen wir es am Besten an?

So erleichtern Sie die Entscheidungsfindung und gewinnen einen umfassenden Überblick über Ihr Geschäft! Mit meinem neuen Buch lernen Sie, SAP für die Unternehmensplanung einzurichten, zu nutzen und zu erweitern.

Eine Alternative wäre es Überschriften über eine Wenn/Dann Formel zu füllen indem man sich auf die Merkmalsbeschreibung bezieht die in verschiedenen Sprachen unterschiedliche Werte annimmt. Zum Beispiel Umsatz/Revenue. Allerdings können wir auf diese Weise keine Buttons oder Reiter umbenennen.
Die zweite Alternative wäre es, über VBA die Spracheinstellungen von Excel auszulesen und über SELECT CASE die Beschreibung der Elemente dementsprechend zu ändern. Das grundsätzliche Prinzip habe ich bereits im Beitrag „Sprachabhängige Meldungen ausgeben“ dargestellt.
Betrachten wir das folgende Planungslayout.

Planungslayout in BPC Excel

Planungslayout

In dem folgenden Coding lese ich nun beim Aufruf des Workbooks die Spracheinstellungen von Excel aus und ändere so die Beschriftung.

Function AFTER_WORKBOOK_OPEN()
AFTER_WORKBOOK_OPEN = True
'Lokalisierung
Select Case Application.LanguageSettings.LanguageID(msoLanguageIDUI)
'Deutsch
Case 1031, 3079, 5127, 4103

With Aggregated 'Worksheet Aggregated Planning
.Name = "Aggregierte Planung"
.Cells(4, 1).Value = "Absatz- und Umsatzplanung: Strategische Vorgaben"
.CommandButton1.Caption = "Umsatz berechnen"
.Cells(12, 2).Value = "Buchungskreis"
.Cells(12, 3).Value = "Verkaufsorganisation"
End With

'Englisch
Case Else
With Aggregated 'Worksheet Aggregated Planning
.Name = "Aggregated Planning"
.Cells(4, 1).Value = "Sales Planning: Strategical Guidlines"
.CommandButton1.Caption = "Calculate Revenues"
.Cells(12, 2).Value = "Company Code"
.Cells(12, 3).Value = "Sales Org."
End With

End Select
End Function

Was ist aber wenn Sie die Beschriftung nicht von der Excel-, sondern von der BPC-Einstellung abhängig machen wollen?

Benutzeroptionen BPC

BPC Spracheinstellungen


SAP Analysis for Microsoft Office: Reporting leicht gemacht

Planung und Reporting mit SAP Analysis leicht gemacht!

Lernen Sie, wie Sie mit SAP Analysis for Microsoft Office professionelle Berichte erstellen. Dieses Praxishandbuch erklärt Ihnen, wie Sie Ihre Daten auf vielfältige Weise auswerten und darstellen. Schritt-für-Schritt-Anleitungen mit zahlreichen Screenshots unterstützen Sie – von der Implementierung bis zur Anwendung.

In diesem Fall können Sie auf die von SAP bereitgestellten APIs zurückgreifen. Zunächst müssen Sie diese aktivieren. Gehen Sie dazu in der Entwicklungsumgebung (ALT+F11) auf Extras → Verweise (engl. Tools → References) und wählen Sie FPMXLClient aus.

VBA Referenzen aktivieren

VBA Verweise

Nun können Sie alle Objekte im Objektkatalog (F2) sehen. Wählen Sie in der Dropdown-Liste FPMXLClient aus.
Die Klasse EPMAddInAutomation enthält alle Makros, die für das EPM-AddIn ausgeführt werden können. Beachten Sie, dass Sie diese nicht mit der Funktion EPMExecuteAPI verwenden können.
Die Klasse IEPMExecuteAPI enthält Makros, die direkt aus einer Arbeitsblattzelle über die Funktion EPMExecuteAPI ausgeführt werden können. Beispiele für diese Funktion finden Sie in den Beiträgen Script Logic über Excel Button ausführen und Automatische Aktualisierung der Inhalte nach dem Reiterwechsel.
Uns interessiert die Methode GetUserOption. Mit dem Parameter LanguageIsoCode können wir die Anwendungssprache und mit dem Parameter LanguageEdition die Sprache der Daten auslesen. Diese Methode liefert uns eine Zeichenfolge (String) im ISO 639-1 Format. So steht zum Beispiel de für Deutsch. Weitere Parameter für dieses API können Sie dem Benutzerhandbuch für das EPM-Add-In entnehmen.
Sie können dieses API wie folgt aufrufen. Beachten Sie, dassLanguageIsoCode in Gänsefüßchen steht, da es ein Parameter und keine Variable ist.

Sub Sprache()
Dim language As String
Dim EPMObj As FPMXLClient.EPMAddInAutomation
Set EPMObj = New FPMXLClient.EPMAddInAutomation

language = EPMObj.GetUserOption("LanguageIsoCode")
Debug.Print language

End Sub

Unser Makro für die Lokalisierung würde nun wie folgt aussehen.

Function AFTER_WORKBOOK_OPEN()
AFTER_WORKBOOK_OPEN = True
'Lokalisierung
Dim language As String
Dim EPMObj As FPMXLClient.EPMAddInAutomation
Set EPMObj = New FPMXLClient.EPMAddInAutomation

language = EPMObj.GetUserOption("LanguageIsoCode")
Select Case language
'Deutsch
Case "de"

With Aggregated 'Worksheet Aggregated Planning
.Name = "Aggregierte Planung"
.Cells(4, 1).Value = "Absatz- und Umsatzplanung: Strategische Vorgaben"
.CommandButton1.Caption = "Umsatz berechnen"
.Cells(12, 2).Value = "Buchungskreis"
.Cells(12, 3).Value = "Verkaufsorganisation"
End With

'Englisch
Case Else
With Aggregated 'Worksheet Aggregated Planning
.Name = "Aggregated Planning"
.Cells(4, 1).Value = "Sales Planning: Strategical Guidlines"
.CommandButton1.Caption = "Calculate Revenues"
.Cells(12, 2).Value = "Company Code"
.Cells(12, 3).Value = "Sales Org."
End With

End Select
End Function

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.

0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.