Aufruf des Optimierungsservers aus einem OCX 
Die nachfolgenden Informationen sind für Pilotprojekte gedacht. Wir sichern eine Kompatibilität nicht zu, d.h. die beschriebenen Funktionen können jederzeit von der SAP AG ohne vorherige Benachrichtigung verändert oder entfernt werden.
Aus diesem Grund dürfen die nachfolgend beschriebenen Techniken in produktiven Szenarien und Systemen nur mit Zustimmung der SAP AG bzw. nach Rücksprache mit der SAP AG eingesetzt werden. Für eine Rücksprache erstellen Sie eine Kundenmeldung auf der Komponente APO-INT-EXT.
Sie können den Optimierungsserver aus einem OCX über die Funktion BAPI_APXSRVAPS_REQSRVSTART aufrufen. Dafür verwenden Sie ein Event. Die Importparameter und -tabellen werden mittels Properties gefüllt, die bei Auslösen des Events gelesen und an die Funktion übergeben werden. Nach Beendigung der Funktion werden die Exportparameter und -tabellen als Properties wieder an das OCX zurückgegeben.

Mit der Funktion BAPI_APXSRVAPS_REQSRVSTART wird das BAdI /SAPAPO/APX_BADI_01 mit der Methode CHANGE_START_OPT_SERVER_REQ aufgerufen. Hiermit können Sie die übertragenen Daten manipulieren und mit dem Debugger prüfen, ob die Funktion überhaupt aufgerufen wird (z.B. zum Testen der Events aus einem OCX).
Um den Optimierungsserver aus dem OCX starten zu können, müssen Sie folgende Einstellungen vornehmen:
Definieren Sie im OCX einen Event für das Starten des Optimierungsservers.
Stellen Sie im APX-Customizing ein, dass auf diesen Event reagiert werden soll.
Fügen Sie dazu im APX-Customizing folgenden Eintrag hinzu:
Feldname:OCX_START_OPT_SERVER_REQ_EVTID; Feldwert:<EventID>

Geben Sie den numerischen Wert EventID des Events an, den Sie für das Starten des Optimierungsservers angegeben haben. Die EventID ist nicht notwendigerweise der Name des von Ihnen definierten Events. In manchen Programmiersprachen können Sie einem Event explizit eine EventID zuordnen. In anderen Programmiersprachen (z.B.
VisualBasic
) ist dies nicht möglich. In diesem Fall kann die EventID über die Anzeige der
TypeLib
für dieses OCX z.B. mit Hilfe des
Microsoft OLE/COM Object Viewers
(Bestandteil des
Microsoft Visual Studios
) ermittelt werden. In Abhängigkeit von der Entwicklungsumgebung kann die EventID beim Hinzufügen oder Löschen von Events neu vergeben werden.
Beispiel für VisualBasic
Im OCX wurde ein Event „StartOptimizerServer“ definiert. In der „TypeLib“ für dieses OCX existiert ein Eintrag wie z.B. der folgende:
dispinterface __OcxExample {
properties:
methods:
[id(0x00000001)]
void StartOptimizerServer([…
Die EventID für diesen Event ist1