Vorgänge für BAPIs in SAP
Eine Business Application Programming Interface (BAPI) ist eine Methode eines SAP-Geschäftsobjekts, das von einem externen Prozess aufgerufen werden kann. BAPIs sind im SAP-System transaktional.
Der Microsoft BizTalk-Adapter für mySAP Business Suite unterstützt BAPI-Aufrufe in ausgehender Richtung. BAPIs werden auf zwei Arten angezeigt:
Als RFC. Sie können eine BAPI direkt aufrufen, indem Sie den entsprechenden RFC aufrufen.
Als Methoden von Geschäftsobjekten. Der Adapter zeigt BAPIs als Methoden von Geschäftsobjekten an, um Sie beim Abrufen von Metadaten zu unterstützen, wenn Sie das BizTalk-Projekt-Add-In zum Verbrauchen des Adapterdiensts oder das Visual Studio-Plug-In Adapterdienstverweis hinzufügen verwenden.
Wichtig
Sie können eine BAPI auf dem Adapter als RFC oder als Methode eines Geschäftsobjekts aufrufen. Aber unabhängig davon, wie Sie die BAPI auf dem Adapter aufrufen, ruft er immer die BAPI auf SAP über die RFC-Schnittstelle auf.
Der Adapter unterstützt BAPI-Transaktionen. Das BAPI-Transaktionsmodell in SAP ermöglicht es Benutzern, mehrere BAPIs zu einer logischen Arbeitseinheit (LUW) zu kombinieren. Eine SAP LUW besteht aus allen Schritten, die an einer Transaktion beteiligt sind, einschließlich der Aktualisierung der Datenbank.
In den Themen in diesem Abschnitt wird erläutert, wie BAPIs als Geschäftsobjekte angezeigt werden und wie BAPI-Transaktionen (LUWs) vom Adapter unterstützt werden.
BAPI-Vorgänge (als Business Object-Methoden)
Der Adapter zeigt BAPIs als Geschäftsobjektmethoden an, um Ihnen das Abrufen von Metadaten zu erleichtern, wenn Sie das BizTalk-Projekt-Add-In zum Nutzen des Adapterdiensts oder das Visual Studio-Plug-In Adapterdienstverweis hinzufügen verwenden. Der Adapter ruft immer BAPIs auf dem SAP-System mithilfe der RFC-Schnittstelle auf.
Der Adapter zeigt BAPIs nach Namen als Vorgänge unter dem entsprechenden Geschäftsobjekt für ausgehende Vorgänge an. Geschäftsobjekte werden vom Adapter nach Funktionsgruppen unter dem Knoten BAPI-Kategorie gesammelt. (Sie können geschäftsobjekte und BAPIs unter dem BAPI-Knoten durchsuchen oder danach suchen, wenn Sie das Add-In Adapter Service Reference Plug-In oder das Add-In Adapterdienst nutzen verwenden.)
Der SAP-Adapter unterstützt Folgendes für BAPIs:
IMPORT-Parameter
EXPORT-Parameter
CHANGING-Parameter
Tabellenparameter
Weitere Informationen zu den Nachrichtenstrukturen und SOAP-Aktionen, die für BAPIs verwendet werden, die als Geschäftsobjektmethoden angezeigt werden, finden Sie unter Nachrichtenschemas für BAPI-Vorgänge.
BAPI-Transaktionen
Wenn Sie eine BAPI aufrufen, ist sie immer Teil einer LUW im SAP-System. Dies gilt unabhängig davon, ob Sie die BAPI als RFC oder als Methode eines Geschäftsobjekts aufrufen. Das RFC SDK behandelt alle BAPIs, die über dieselbe SAP-Verbindung gesendet werden, als Teil derselben LUW. Nach einem Aufruf zum Commit oder Rollback der Transaktion für eine Verbindung beginnt die nächste BAPI, die über die Verbindung gesendet wird, eine neue LUW.
Sie rufen BAPI_TRANSACTION_COMMIT oder BAPI_TRANSACTION_ROLLBACK auf, um die Transaktion zu committen oder ein Rollback auszuführen. Der Adapter zeigt die folgenden beiden BAPIs an:
Unter dem Knoten Basis als RFC-Vorgänge.
Unter jedem Geschäftsobjekt.
Sie steuern die BAPIs in einer Transaktion, indem Sie sicherstellen, dass sie alle über dieselbe SAP-Verbindung gesendet werden (einschließlich des Aufrufs zum Commit oder Rollback der Transaktion). Dies ist in folgenden Aktionen möglich:
BizTalk Solutions mithilfe der ConnectionState-Nachrichtenkontexteigenschaft , um sicherzustellen, dass die BAPIs in einer Transaktion mit derselben Verbindung gesendet werden. Diese Eigenschaft wird vom Adapter angezeigt und bietet Ihnen eine explizite Kontrolle über die Verbindung, die zum Senden einer Nachricht in einer BizTalk-Orchestrierung verwendet wird.
Zum Ausführen von BAPI-Transaktionen mit BizTalk Server unterstützt der SAP-Adapter die folgenden Nachrichtenkontexteigenschaften.
Feld BESCHREIBUNG OPEN Öffnet einen neuen Kanal für die Transaktion. WIEDERVERWENDEN Verwenden Sie den vorhandenen Kanal für die Transaktion wieder. CLOSE Committen Sie die Transaktion, und schließen Sie den vorhandenen Kanal. ABORT Brechen Sie die Transaktion ab, und schließen Sie den vorhandenen Kanal. Weitere Informationen finden Sie unter Ausführen von BAPI-Transaktionen in SAP mit BizTalk Server.
Hinweis
Stellen Sie sicher, dass Sie die EnableBizTalkCompatibilityMode-Bindungseigenschaftfestlegen, wenn Sie Transaktionen mit BizTalk Server ausführen.
WCF-Dienstmodelllösungen, indem sichergestellt wird, dass die BAPIs in einer Transaktion mit demselben WCF-Client gesendet werden. Weitere Informationen finden Sie unter Aufrufen von BAPIs in SAP mithilfe des WCF-Dienstmodells.
WCF-Kanalmodelllösungen, indem sichergestellt wird, dass die BAPIs in einer Transaktion über denselben WCF-Kanal gesendet werden. Weitere Informationen finden Sie unter Entwickeln von Anwendungen mit dem WCF-Kanalmodell.
Einschränkungen für BAPI-Transaktionen
Für BAPI-Transaktionen gelten die folgenden Einschränkungen:
Es ist nicht möglich, zwei Schreibzugriffe auf dieselbe instance innerhalb einer LUW vorzunehmen. Sie können beispielsweise keine Bestellung erstellen und in derselben Transaktion aktualisieren.
Beim Ausführen einer BAPI-Transaktion mit BizTalk Server müssen alle Nachrichten über einen einzelnen Host instance des Sendeports gesendet werden.
Wenn ein instance mithilfe einer Schreib-BAPI erstellt, aktualisiert oder gelöscht wird, kann eine Lese-BAPI die neuesten Daten erst anzeigen, wenn die Schreib-BAPI committet wurde.
Ein externer Client, der eine LUW aufruft, sollte alle BAPIs aufrufen, die die LUW für dieselbe SAP-Verbindung enthält.
Wichtig
BAPIs, die zu Release 3.1 gehören, rufen COMMIT WORK als Teil ihrer Implementierung auf. Dies bedeutet, dass diese BAPIs nicht in andere BAPIs in einer LUW eingeschlossen werden können (da sie die Transaktion committen). Weitere Informationen finden Sie in der SAP-Dokumentation.