SAP 中 BAPIs 上的作業
商務應用程式開發介面 (BAPI) 是 SAP 商務物件的方法,可由外部進程呼叫。 BAPI 在 SAP 系統上是交易式。
Microsoft BizTalk Adapter for mySAP Business Suite 支援以輸出方向進行 BAPI 呼叫。 其以兩種方式呈現 BAPI:
作為 RFC。 您可以叫用適當的 RFC 來直接叫用 BAPI。
做為商務物件的方法。 配接器會將 BAPIs 顯示為商務物件的方法,以方便您擷取使用配接器服務 BizTalk 專案增益集或新增配接器服務參考 Visual Studio 外掛程式時擷取中繼資料。
重要
您可以將配接器上的 BAPI 叫用為 RFC 或商務物件的方法;但不論您在配接器上叫用 BAPI 的方式為何,它一律會透過 RFC 介面叫用 SAP 上的 BAPI。
配接器支援 BAPI 交易。 SAP 上的 BAPI 交易模型可讓使用者將數個 BAPI 結合成一個邏輯工作單元, (LUW) 。 SAP LUW 包含交易所涉及的所有步驟,包括更新資料庫。
本節中的主題說明 BAPI 如何呈現為商務物件,以及配接器如何支援 BAPI 交易 (LUW) 。
BAPI 作業 (做為 Business Object 方法)
配接器會將 BAPI 顯示為商務物件方法,以方便您擷取使用配接器服務 BizTalk 專案增益集或新增配接器服務參考 Visual Studio 外掛程式時擷取中繼資料。 配接器一律會使用 RFC 介面在 SAP 系統上叫用 BAPIs。
介面卡會依名稱將 BAPI 顯示為輸出作業的適當商務物件下的作業。 商務物件是由配接器在 BAPI 類別節點下的功能群組所收集。 (當您使用 [新增配接器服務參考外掛程式] 或 [取用配接器服務增益集] 時,您可以在 BAPI 節點底下流覽或搜尋商務物件和 BAPI 。)
SAP 配接器支援下列 BAPI:
IMPORT 參數
EXPORT 參數
CHANGING 參數
資料表參數
如需用於以商務物件方法呈現之 BAPIs 之訊息結構和 SOAP 動作的詳細資訊,請參閱 BAPI 作業的訊息架構。
BAPI 交易
當您叫用 BAPI 時,它一律是 SAP 系統上 LUW 的一部分。 不論您叫用 BAPI 做為 RFC 還是商務物件的方法,都是如此。 RFC SDK 會將透過相同 SAP 連線傳送的所有 BAP 視為相同 LUW 的一部分。 在連接上認可或復原交易的呼叫之後,透過連線傳送的下一個 BAPI 會開始新的 LUW。
您可以呼叫BAPI_TRANSACTION_COMMIT或BAPI_TRANSACTION_ROLLBACK來認可或復原交易。 配接器會顯示這兩個 BAPI:
在 [基礎] 節點下做為 RFC 作業。
在每個商務物件下。
您可以藉由確保它們全都透過相同的 SAP 連線傳送,以控制交易中的 BAPI, (包括認可或回復交易的呼叫) 。 您可以在下列專案中執行此動作:
BizTalk 解決方案使用 ConnectionState 訊息內容屬性,以確保交易中的 BAPI 會使用相同的連線傳送。 這個屬性是由配接器呈現,可讓您明確控制用來在 BizTalk 協調流程中傳送訊息的連線。
若要使用 BizTalk Server 執行 BAPI 交易,SAP 配接器支援下列訊息內容屬性。
欄位 Description OPEN 開啟交易的新通道。 重用 重複使用交易的現有通道。 CLOSE 認可交易並關閉現有的通道。 ABORT 中止交易並關閉現有的通道。 如需詳細資訊,請參閱使用 BizTalk Server 在 SAP 中執行 BAPI 交易。
注意
請務必在使用 BizTalk Server 執行交易時設定EnableBizTalkCompatibilityMode系結屬性。
WCF 服務模型解決方案是藉由確保交易中的 BAPI 使用相同的 WCF 用戶端傳送。 如需詳細資訊,請參閱 使用 WCF 服務模型在 SAP 中叫用 BAPIS。
藉由確保交易中的 BAPI 會透過相同的 WCF 通道傳送,來提供 WCF 通道模型解決方案。 如需詳細資訊,請參閱 使用 WCF 通道模型開發應用程式。
BAPI 交易的限制
下列限制適用于 BAPI 交易:
您無法在一個 LUW 內的相同實例上建立兩個寫入存取權。 例如,您無法建立訂單,並在相同的交易中加以更新。
使用 BizTalk Server 執行 BAPI 交易時,所有訊息都必須透過傳送埠的單一主機實例傳送。
如果使用寫入 BAPI 建立、更新或刪除實例,則讀取 BAPI 在認可寫入 BAPI 之前,無法檢視最新的資料。
叫用 LUW 的外部用戶端應該呼叫 LUW 在相同 SAP 連線上包含的所有 BAPIS。
重要
屬於 3.1 版的 BAPIS 會呼叫 COMMIT WORK 作為其實作的一部分。 這表示這些 BAPI 無法包含在 LUW (中的其他 BAPI 中,因為它們會認可交易) 。 如需詳細資訊,請參閱 SAP 檔。