次の方法で共有


SAP での tRFC に対する操作

トランザクション RFC (tRFC) は、論理作業単位 (LUW) の一部として呼び出される RFC です。 SAP システムでは、LUW には、ビジネス タスクまたはプログラミング タスクを完了するために必要なすべての手順が含まれています。 tRFC は RFC を呼び出す方法を表します。一意の SAP 成果物ではありません。

microsoft BizTalk Adapter for mySAP Business Suite は、tRFC クライアントと tRFC サーバーの両方として使用できます。

  • tRFC クライアントとして、アダプターを使用すると、アプリケーションは SAP システム上の LUW で 1 つの RFC を呼び出すことができます。 これにより、RFC の 1 回限りの実行が保証されます。 トランザクション動作を意味するものではありません。

  • tRFC サーバーとして、アダプターを使用すると、LUW 内で複数の RFC を受信できます。 アダプターは、トランザクション コンテキストでの受信 tRFC 呼び出しをサポートします。コミットとロールバックの動作がサポートされています。

tRFC 操作

tRFC は RFC を呼び出す方法を意味します。これは個別の SAP 成果物ではありません。 したがって、SAP システム上のすべての RFC (アダプターがメタデータを取得できる) も、SAP アダプターによって tRFC として表示されます。 tRFC は、TRFC メタデータ カテゴリ ノードの操作として RFC 名で表示されます。 (アダプター サービス参照プラグインの追加またはアダプター サービスアドインの使用を使用する場合は、 TRFC ノードで tRFC を参照または検索できます)。

SAP アダプターでは、tRFC で次の処理がサポートされています。

  • IMPORT パラメーター

  • CHANGING パラメーター (CHANGING パラメーターの入力側のみがサポートされます)

Note

tRFC は非同期的に実行されるため、出力値 (EXPORT パラメーターまたは CHANGING パラメーター) は返されません。

GUID パラメーターは、tRFC 操作用のアダプターによって表示されます。 この GUID は、アダプターによって tRFC に関連付けられている SAP トランザクション ID (TID) にマップされます。 この GUID パラメーターを使用すると、次のことができます。

  • tRFC クライアント呼び出しで SAP システム上の tRFC を確認します。 これを行うには、RfcConfirmTransId 操作を呼び出します。 これは、SAP システムで TID を確認するためにアダプターによって表示される特別な操作です。

  • tRFC クライアントと tRFC サーバーの両方のシナリオで、アダプターから tRFC に使用される実際の SAP TID を取得します。 これを行うには、SAP ユーティリティ メソッド ConvertGuidToTid を呼び出します。

    これらの操作の詳細については、「 特殊な操作」を参照してください。 アダプターによって tRFC に使用されるメッセージ構造と SOAP アクションの詳細については、「 tRFC 操作のメッセージ スキーマ」を参照してください。

SAP システムでのトランザクション RFC の呼び出し

通常、tRFC は、1 つの LUW 内で 1 つ以上の RFC 呼び出しを実行するために使用されます。ただし、SAP RFC SDK の制限により、SAP アダプターは LUW ごとに 1 つの tRFC のみをサポートします。 このため、アダプターは tRFC ごとに LUW (SAP TID) を作成します。 このようなクライアントの場合、SAP は、RFC の "1 回限りの" 実行を保証するメカニズムとして LUW を定義し、コミットおよびロールバックベースのトランザクションを意味しません。

次の手順は、SAP アダプターを使用して RFC クライアント呼び出しで実行されるタスクをまとめたものです。 これらの手順の一部はアダプター クライアントによって実行され、一部はアダプターによって実行されます。

  1. アダプター クライアントは、tRFC 操作の要求メッセージを送信します。 アダプター クライアントは、必要に応じて、このメッセージに GUID を指定できます。

  2. SAP アダプターは要求メッセージを受信し、RFC SDK を使用して SAP システムからトランザクション ID (TID) を取得します。 要求メッセージに GUID が含まれている場合、アダプターはこの GUID を SAP TID にマップします。それ以外の場合、アダプターは新しい GUID を作成し、それを SAP TID にマップします

  3. アダプターは TID を使用して、SAP サーバーへの tRFC 呼び出しを行います。 TID の状態は、SAP システムで FINISHED としてマークされます。

  4. アダプターは、(TID にマップされている) GUID を応答メッセージのアダプター クライアントに返します。

  5. アダプター クライアントは、前の手順で返された GUID を使用して、アダプターに対して RfcConfirmTransID 操作を呼び出します。

  6. アダプターは RfcConfirmTransID 要求メッセージの GUID を使用して SAP TID を識別し、SAP システムでの tRFC 呼び出しを確認します。 これにより、SAP サーバーはそのデータベースから TID エントリを削除します。

Note

tRFC クライアント呼び出しでは、EXPORT パラメーターまたは CHANGING パラメーターは返されません。

詳細情報は、次のとおりです。

SAP システムからの受信トランザクション RFC 呼び出しの受信

アダプターを tRFC サーバーとして使用して、SAP から tRFC を受信できます。 tRFC サーバーとして、アダプターが tRFC を受信すると、アプリケーションで対応する tRFC 操作が呼び出されます。 アダプターは、tRFC サーバーとして機能する場合に、次の機能をサポートします。

  • LUW (SAP TID で識別) には、複数の tRFC (RFC 呼び出し) を含めることができます。

  • アダプターは、SAP TID ごとにコミット可能なトランザクションを作成します。 アプリケーション コードは、このトランザクションに参加できます。

  • コミットとロールバックがサポートされています。

    このセクションの残りの部分では、アダプターを tRFC サーバーとして使用する方法に関する一般的な情報を提供します。 詳細については、以下を参照してください。

  • BizTalk Serverを使用して受信 tRFC 呼び出しを受信する方法については、「BizTalk Serverを使用して SAP から受信 tRFC 呼び出しを受信する」を参照してください。

  • WCF サービス モデルを使用して受信 tRFC 呼び出しを受信する方法については、「WCF サービス モデルを使用して SAP で受信 tRFC 呼び出しを受信する」を参照してください。

TID データベース

tRFC サーバーとして機能するアダプターは、SQL Server データベース (TID データベース) を使用して、SAP システムから受信するトランザクション ID を管理します。 たとえば、TID データベースを使用して、TID をコミット、ロールバック、確認するための SAP システムからの呼び出しを管理します。 アダプターは、作成し、各 SAP TID に関連付ける GUID も TID データベースに格納します。

前提条件

アダプターを tRFC サーバーとして実行するには、次のことが当てはまることを確認する必要があります。

  • RFC は SAP システムで宣言する必要があります。 これは、アダプターが SAP システムから RFC を記述するメタデータを取得できるようにするためです。 RFC は実際にはアプリケーションに実装されています。

  • アダプターは、SAP ゲートウェイの RFC 宛先に登録する必要があります。 登録は、プログラム ID と呼ばれる論理名に基づいています。 接続 URI にパラメーターを指定して、この登録のプログラム ID、SAP ゲートウェイ、および SAP サーバーを指定します。

  • TID データベースは、SQL Serverで作成する必要があります。 これを行うには、セットアップによってインストールされる SQL スクリプトを実行する必要があります。 SQL スクリプトは通常、インストール ドライブ>:\Program Files\Microsoft BizTalk Adapter Pack に<インストールされます。 詳細については、「 BizTalk アダプター パックのインストール」を参照してください。

  • TidDatabaseConnectionString バインド プロパティは、TID データベースの SQL データベース 接続文字列に設定する必要があります。 TidDatabaseConnectionString バインド プロパティの詳細については、「BizTalk Adapter for mySAP Business Suite のバインド プロパティについて」を参照してください。

Note

TidDatabaseConnectionString バインド プロパティを設定すると、RFC サーバーとしてではなく tRFC サーバーとして機能するようにアダプターが構成されます。 TidDatabaseConnectionString バインディング プロパティが設定され、接続 URI に RFC 宛先を指定した場合、アダプターは RFC 宛先からの着信呼び出し用の tRFC サーバーとして機能します。 このバインディング プロパティが設定されていない場合、アダプターは RFC サーバーとして機能します。

アダプターが受信 tRFC を処理する方法

次の手順は、SAP アダプターを使用して RFC クライアント呼び出しによって実行されるタスクをまとめたものです。 これらの手順の一部はアダプター クライアントによって実行され、一部はアダプターによって実行されます。

  1. SAP システムはアダプターを呼び出して、TID が既に使用されているかどうかを確認します。 アダプターは、SAP システムに適切な応答を返します。 TID が新しい場合、アダプターはコミット可能なトランザクションを作成します。 このトランザクションは、SAP プログラムがコミット (COMMIT WORK) を実行するときに、トランザクション方式で TID を TID データベースに保持するために使用されます。 また、受信 tRFC を処理するアプリケーション コードにも公開されます。 さらに、アダプターは、SAP TID に関連付ける GUID を作成します。

  2. SAP システムは、1 つ以上のトランザクション RFC をアダプターに送信します。 各 tRFC に対して、アダプターはアプリケーションで適切な tRFC 操作を呼び出します。 アダプターは、手順 1 で作成したトランザクションを、操作ごとにアプリケーションにフローします。 アダプターは、操作の要求メッセージで手順 1 で作成した GUID を渡します。

  3. SAP システムは LUW (COMMIT WORK) をコミットします。 アダプターは、SAP TID に関連付けられているトランザクションのコミットを試みます (手順 1 で作成)。

    1. 手順 2 の呼び出しでトランザクションが (アプリケーションによって) 中止された場合、アダプターがトランザクションのコミットを試みたときにエラーが発生します。 エラーは SAP に返されます。 手順 4 に進みます。

    2. コミットが成功すると、TID は TID データベースに格納されます。 手順 5 に進みます。

  4. 手順 3 でエラーが発生した場合、または SAP が LUW (RESTART_OF_BACKGROUNDTASK) をコミットする代わりにロールバックした場合、アダプターはトランザクションをロールバックします。 この場合、TID は TID データベースに永続化されません。

  5. SAP システムによって TID が確認されます。 アダプターは TID データベースから TID を削除します (手順 3 が正常に完了し、TID が TID データベースに存在すると仮定します)。

Note

tRFC サーバー操作中に TID データベースへの接続中にエラーが発生した場合、SAP からの着信呼び出しが SAP アダプターによって処理されなかったことを示すエラー コードが SAP に返されます。

tRFC サーバーとしての IDOC の受信

SAP アダプターを RFC サーバーまたは tRFC サーバーとして使用して、SAP システムから IDOC を受信します。 どちらの場合も、 ReceiveIdocFormat バインド プロパティを設定して、アダプターが IDOC データをアプリケーションに出力する形式を指定する必要があります。 アダプターを使用した IDOC の受信の詳細については、「SAP での IDOC での操作」を参照してください。 SAP アダプターのバインド プロパティの詳細については、「 BizTalk Adapter for mySAP Business Suite のバインド プロパティ」を参照してください。

特殊な tRFC 操作

SAP アダプターは、SAP システムで特定の特殊な tRFC 操作を実行することもできます。 このような操作の 1 つは RfcConfirmTransID です。

  • RfcConfirmTransID。 SAP アダプターでこの操作を呼び出して、SAP サーバーに対して行われた tRFC 呼び出しを確認します。 RfcConfirmTransID は、TRFC として IDOC を SAP サーバーに送信するためにアダプターを使用するシナリオで必要になる場合があります。 この操作は、アダプター サービス参照プラグインの追加とアダプター サービス アドインの使用を使用するときに 、TRFC ノードで使用できます。

    RfcConfirmTransID 操作のメッセージ構造と SOAP アクションの詳細については、「 tRFC 操作のメッセージ スキーマ」を参照してください。

参照

アダプターを使用して SAP システムに接続する