次の方法で共有


SAP での BAPI に対する操作

ビジネス アプリケーション プログラミング インターフェイス (BAPI) は、外部プロセスによって呼び出すことができる SAP ビジネス オブジェクトのメソッドです。 BAPI は SAP システム上でトランザクションです。

Microsoft BizTalk Adapter for mySAP Business Suite では、送信方向での BAPI 呼び出しがサポートされています。 BAPI は次の 2 つの方法で表示されます。

  • RFC として。 適切な RFC を呼び出すことで、BAPI を直接呼び出すことができます。

  • ビジネス オブジェクトのメソッドとして。 アダプターは、アダプター サービス BizTalk プロジェクト アドインまたはアダプター サービス参照の追加 Visual Studio プラグインを使用するときにメタデータを取得するのに役立つ便利な方法として、ビジネス オブジェクトのメソッドとして BAPI を表示します。

重要

アダプターで BAPI を RFC またはビジネス オブジェクトのメソッドとして呼び出すことができます。ただし、アダプターで BAPI を呼び出す方法に関係なく、RFC インターフェイスを介して常に SAP 上の BAPI を呼び出します。

アダプターは BAPI トランザクションをサポートします。 SAP の BAPI トランザクション モデルを使用すると、ユーザーは複数の BAPI を 1 つの論理作業単位 (LUW) に結合できます。 SAP LUW は、データベースの更新を含むトランザクションに関連するすべての手順で構成されます。

このセクションのトピックでは、BAPI をビジネス オブジェクトとして表示する方法と、BAPI トランザクション (LUW) がアダプターでサポートされる方法について説明します。

BAPI 操作 (ビジネス オブジェクト メソッドとして)

アダプターは、アダプター サービス BizTalk プロジェクト アドインまたはアダプター サービス参照の追加 Visual Studio プラグインを使用するときにメタデータを取得するのに役立つ便利な方法として、ビジネス オブジェクト メソッドとして BAPI を表示します。 アダプターは、常に RFC インターフェイスを使用して SAP システムで BAPI を呼び出します。

アダプターは、送信操作用の適切なビジネス オブジェクトの下の操作として、名前によって BAPI を表示します。 ビジネス オブジェクトは、アダプターによって BAPI カテゴリ ノードの下の機能グループによって収集されます。 ([アダプター サービス参照の追加] プラグインまたは [アダプター サービスアドインの使用] を使用する場合は、BAPI ノードでビジネス オブジェクトと BAPI を参照または検索できます)。

SAP アダプターでは、BAPI で次の機能がサポートされています。

  • IMPORT パラメーター

  • EXPORT パラメーター

  • パラメーターの変更

  • テーブル パラメーター

    ビジネス オブジェクト メソッドとして表示される BAPIs に使用されるメッセージ構造と SOAP アクションの詳細については、「 BAPI 操作のメッセージ スキーマ」を参照してください。

BAPI トランザクション

BAPI を呼び出すと、常に SAP システム上の LUW の一部になります。 これは、BAPI を RFC として呼び出すか、ビジネス オブジェクトのメソッドとして呼び出すかに関係なく当てはまります。 RFC SDK は、同じ SAP 接続経由で送信されたすべての BAPI を同じ LUW の一部として扱います。 接続でトランザクションをコミットまたはロールバックする呼び出しの後、接続経由で送信された次の BAPI によって新しい LUW が開始されます。

トランザクションをコミットまたはロールバックするには、BAPI_TRANSACTION_COMMITまたはBAPI_TRANSACTION_ROLLBACKを呼び出します。 アダプターは、次の 2 つの BAPI を表示します。

  • RFC 操作として [基準] ノードの下。

  • 各ビジネス オブジェクトの下。

    トランザクション内の BAPI を制御するには、すべて同じ SAP 接続 (トランザクションをコミットまたはロールバックする呼び出しを含む) 経由で送信されるようにします。 これを行うには、次の操作を行います。

  • BizTalk Solutions の ConnectionState メッセージ コンテキスト プロパティを使用して、トランザクション内の BAPI が同じ接続を使用して確実に送信されるようにします。 このプロパティはアダプターによって表示され、BizTalk オーケストレーションでメッセージを送信するために使用される接続を明示的に制御できます。

    BizTalk Serverを使用して BAPI トランザクションを実行する場合、SAP アダプターは次のメッセージ コンテキスト プロパティをサポートします。

    フィールド 説明
    OPEN トランザクションの新しいチャネルを開きます。
    再 利用 トランザクションの既存のチャネルを再利用します。
    CLOSE トランザクションをコミットし、既存のチャネルを閉じます。
    ABORT トランザクションを中止し、既存のチャネルを閉じます。

    詳細については、「BizTalk Serverを使用して SAP で BAPI トランザクションを実行する」を参照してください。

    Note

    BizTalk Serverを使用してトランザクションを実行する場合は、EnableBizTalkCompatibilityModeバインド プロパティを設定してください。

  • トランザクション内の BAPI が同じ WCF クライアントを使用して送信されるようにすることで、WCF サービス モデル ソリューション。 詳細については、「 WCF サービス モデルを使用して SAP で BAPI を呼び出す」を参照してください。

  • トランザクション内の BAPI が同じ WCF チャネル経由で送信されるようにすることで、WCF チャネル モデル ソリューション。 詳細については、「 WCF チャネル モデルを使用してアプリケーションを開発する」を参照してください。

BAPI トランザクションに関する制限事項

BAPI トランザクションには、次の制限が適用されます。

  • 1 つの LUW 内の同じインスタンスに対して 2 つの書き込みアクセスを行うことはできません。 たとえば、注文を作成して同じトランザクションで更新することはできません。

  • BizTalk Serverを使用して BAPI トランザクションを実行する場合は、すべてのメッセージを送信ポートの 1 つのホスト インスタンス経由で送信する必要があります。

  • 書き込み BAPI を使用してインスタンスが作成、更新、または削除された場合、書き込み BAPI がコミットされるまで、読み取り BAPI は最新のデータを表示できません。

  • LUW を呼び出す外部クライアントは、LUW に含まれるすべての BAPI を同じ SAP 接続で呼び出す必要があります。

重要

リリース 3.1 に属する BAPI は、実装の一環として COMMIT WORK を呼び出します。 つまり、これらの BAPI は LUW 内の他の BAPI に含めることができません (トランザクションがコミットされるため)。 詳しくは、SAP のドキュメントをご覧ください。

参照

アダプターを使用して実行できる操作