Programmierschnittstelle
Die Programmierschnittstelle des BW-BPS umfasst eine Menge von Funktionen, die Sie verwenden können, um aus Ihren eigenen Anwendungen heraus auf die Planungsobjekte und -funktionen des BW-BPS zugreifen zu können.
Die Programmierschnittstelle des BW-BPS ermöglicht es Ihnen, von Ihnen erstellte Endanwender-orientierte Programmoberflächen mit der Funktionalität von BW-BPS auszustatten. Dadurch verbinden Sie die Leistungsfähigkeit von BW-BPS mit der einfachen Bedienung einer vertrauten Oberfläche wie z.B. Microsoft Excel oder einer Web-Anwendung.
Sie können den Benutzern der von Ihnen erstellten Anwendungen eine von Ihnen bestimmte Teilmenge der Planungsfunktionalität anbieten, wobei die Nutzung der Funktionalität völlig transparent erfolgen kann. BW-BPS arbeitet "unsichtbar" mit Ihrer Anwendung zusammen. Dies hat den Vorteil, dass Ihre Anwender den Umgang mit BW-BPS nicht erlernen müssen.
Die folgende Grafik zeigt schematisch eine typische Folge von Zugriffen auf die Programmierschnittstelle. Als Client-Anwendung, die auf die Schnittstelle zugreift, wird dabei eine selbstdefinierte Transaktion mit den dazugehörigen Programmen angenommen, die Plandaten in einer eigenen eingabebereiten Tabelle (z.B. ALV Grid Control) anzeigen kann. Der Zweck dieser Anwendung besteht darin, eine einfache Umwertung durchzuführen und eine Möglichkeit zur manuellen Datenänderung anzubieten:

Die Zahlen in der Grafik bezeichnen folgende Schritte:
...
1. Datenbeschaffung aus der Datenbasis.
Beim ersten Aufruf der Funktion API_SEMBPS_GETDATA ist der Pufferspeicher von BW-BPS noch leer. Die Funktion liest die Daten daher aus dem InfoCube, der dem adressierten Planungsgebiet zugeordnet ist (1.1), bereitet die Werte entsprechend dem als Parameter übergebenen Planungslayout auf, füllt automatisch den Puffer mit den gelesenen Daten und überträgt die Daten in die eingabebereite Tabelle (1.3).
2. Manuelle Änderung der Plandaten
Der Benutzer der Client-Anwendung ändert in der eingabebereiten Tabelle die Werte. Anschließend wählt er eine von der Anwendung angebotene Funktion "Prozentuale Erhöhung", mit der die aktuellen Werte um 10% erhöht werden sollen.
3. Umwertung
Die Funktion "Prozentuale Erhöhung" der Client-Anwendung (3.1) ist so ausgelegt, dass die aktuell angezeigten Daten mit der Funktion API_SEMBPS_SETDATA in den von BW-BPS verwalteten Pufferspeicher geschrieben werden (3.2). Anschließend wird durch einen entsprechend parametrisierten Aufruf der Funktion API_SEMBPS_FUNCTION_EXECUTE die gewünschte Umwertung durchgeführt (3.3). Dabei wird die eigentliche Umwertung nicht etwa von der Schnittstellenfunktion vorgenommen. Vielmehr ruft diese ihrerseits eine zuvor in der Planungsumgebung angelegte Planungsfunktion vom Typ Umwertung auf, und zwar unter Angabe einer Parametergruppe, die den Umwertungsfaktor (10%) enthält. Die um 10% erhöhten Werte befinden sich jetzt im Puffer und werden durch einen weiteren Aufruf der Funktion API_SEMBPS_GETDATA (3.4) in die eingabebereite Tabelle übertragen (3.5), so dass das Ergebnis der Umwertung sichtbar wird. Da zu diesem Zeitpunkt bereits Daten im Puffer vorliegen, greift die Funktion – anders als beim ersten Aufruf (1.1) – diesmal nur auf den Puffer (und nicht auf den InfoCube) zu. Hierdurch wird eine erhebliche Verbesserung der Antwortzeiten erzielt.
4. Erneute manuelle Änderung der Plandaten
Der Benutzer der Client-Anwendung ändert in der eingabebereiten Tabelle die jetzt erhöhten Werte noch einmal.
5. Beenden der Anwendung
Abschließend beendet der Benutzer die Client-Anwendung. Hierbei sorgt die Anwendung dafür, dass der aktuelle Stand der Daten aus der eingabebereiten Tabelle durch Aufruf der Funktion API_SEMBPS_SETDATA noch einmal in den Puffer übertragen wird (5.2) und durch einen abschließenden Aufruf der Funktion API_SEMBPS_POST die im Puffer befindlichen Daten persistent in der Datenbasis gespeichert werden (5.3). In Anlehnung an das Transaktionskonzept von BW-BPS bleiben bei Zugriffen über die Programmierschnittstelle die betroffenen Objekte gesperrt, bis die Verbindung zum System aufgehoben wird. Dies erfolgt in der Regel dadurch, dass Sie Ihre externe Anwendung beenden. Wenn Sie die Objekte bereits früher freigeben möchten, können Sie dies mit der Funktion API_SEMBPS_REFRESH (5.4) erreichen.
Die von Ihnen erstellten Anwendungen sind nicht auf selbstdefinierte Transaktionen, Reports oder andere SAP-Programmierobjekte beschränkt. Vielmehr können Sie unter Verwendung der entsprechenden SAP-Technologien die BW-BPS-Programmierschnittstelle auch aus einer externen PC-Anwendung heraus ansprechen. Voraussetzung hierfür ist, dass die externe Anwendung die Rolle eines OLE-Automation-Controllers übernehmen kann. Dies ist z.B. bei allen Produkten der Microsoft-Office-Familie der Fall, die über eine Makrosprache bzw. eine Integration mit Visual Basic for Applications (VBA) verfügen.
Um Ihnen bei der Entwicklung Ihrer Programme die Fehlersuche zu erleichtern, bietet BW-BPS eine spezielle Trace-Funktion, mit deren Hilfe Sie die internen Funktionsaufrufe von BW-BPS protokollieren lassen können. Diese Funktion ist nicht in die Planungsumgebung integriert, sondern muss explizit mit der Transaktion BPS_TRACE aufgerufen werden. Dort werden Ihnen folgende Funktionen angeboten:
· Benutzerübersicht: Sie können für jeden Benutzer wählen, ob Trace-Listen erzeugt werden sollen oder nicht. Außerdem erhalten Sie eine Übersicht über alle Benutzer, für die die Trace-Funktion aktiviert ist.
·
Trace-Übersicht: Sie erhalten eine Übersicht
über alle im System gespeicherten Traces. Die Trace-Liste können Sie nach
Benutzer oder nach Datum/Uhrzeit sortieren. Mit Doppelklick auf einen Trace
wird der Inhalt des Trace dargestellt, wobei jeder Aufruf eines
Funktionsbausteins in einer eigenen Zeile angezeigt wird. Mit der Funktion
Trace abspielen
können Sie einen im Trace-Protokoll aufgezeichneten Funktionsaufruf im
Debugger exakt so ablaufen lassen wie zum Zeitpunkt der
Aufzeichnung.
Die Programmierschnittstelle besteht aus einer Menge von Funktionen, die in der Funktionsgruppe UPC_API zusammengefasst sind. Sie umfasst Funktionen für folgende Aufgaben:
· Auslesen der Objekte der Planungsarchitektur (Planungsgebiete, -ebenen und -pakete; siehe Planungsumgebung) mit Hilfe eines als Parameter zu übergebenden Planungslayouts der manuellen Planung

Das Planungslayout, das Sie als Datenquelle verwenden möchten, muss so konfiguriert sein, dass die Selektion im Kopfbereich eindeutig ist. Anderenfalls kann das System nicht ermitteln, welche Daten über die Schnittstelle geliefert werden sollen.
· Auslesen von Stammdaten
· Lesen und Schreiben von Bewegungsdaten
· Auslesen von BW-Merkmalshierarchien („externer“ Hierarchien, siehe Hierarchisch strukturierte Planung)
· Auslesen von Variablen
· Ausführen von Planungsfunktionen

Falls Sie Daten aus BW-BPS über die Programmierschnittstelle nicht nur anzeigen, sondern auch ändern möchten, sollten Sie hierfür die in der Planungsumgebung definierten Planungsfunktionen verwenden (und keine lokalen Funktionen innerhalb Ihrer Anwendung). Der Grund hierfür ist, dass die über die Programmierschnittstelle angelieferten Daten nicht unverändert aus der Datenbasis weitergereicht, sondern unter Verwendung eines Planungslayouts der manuellen Planung aufbereitet werden. Die in der Layoutdefinition herrschenden Einstellungen in Bezug auf Skalierungsfaktoren, Dezimalstellen und Vorzeichenumkehr wirken sich unmittelbar auf die übergebenen Kennzahlwerte aus, ohne dass aus der externen Anwendung heraus erkennbar ist, ob eine derartige Aufbereitung stattgefunden hat oder nicht. Außerdem kann eine Aufbereitung mit wenigen Dezimalstellen zu unbemerkten Rundungsfehlern führen.
· Explizite Freigabe aller gesperrten Objekte

Weitere Information (z.B. zum Zusammenspiel der verschiedenen Funktionen oder der Parameterversorgung) finden Sie im System in der Dokumentation zu den Funktionsbausteinen der Funktionsgruppe UPC_API.
Die Programmierschnittstelle von BW-BPS ermöglicht die Integration der Planungsfunktionalität in beliebige andere Anwendungen. Wenn Sie aus einer externen PC-Anwendung heraus auf die Funktionen der Programmierschnittstelle zugreifen möchten, können Sie dies mit Hilfe des SAP Automation Interface erreichen. Informationen zur Nutzung dieses Service finden Sie unter SAP Automation RFC and BAPI Interfaces. Von besonderem Interesse sind hier folgende Objekte:
· Logon Control
· Table Control
· Function Control