BizTalk Serverを使用して IDOC を SAP に送信する

SAP に対するすべての IDOC 呼び出しは内部的に tRFC 呼び出しとして扱われ、アダプターは tRFC クライアントとして機能し、SAP で RFC を呼び出して IDOC を送信します。 このセクションでは、microsoft BizTalk Adapter for mySAP Business Suite with BizTalk Serverを使用して IDOC を SAP に送信する方法について説明します。 SAP アダプターは、IDOC を送信する 2 つの異なる操作を表示します。

  • 送信 操作を使用すると、アダプター クライアントは厳密に型指定されたスキーマを持つ IDOC を送信できます。

  • SendIdoc 操作を使用すると、アダプター クライアントは、弱く型指定されたスキーマを持つ IDOC を送信できます。 これを使用すると、アダプター クライアントはフラット ファイル IDOC を SAP システムに送信できます。 フラット ファイル IDOC 全体は、SendIdoc XML メッセージ内のノード値になります。

    SAP アダプターが SAP システムへの IDOC の送信をサポートする方法の詳細については、「SAP の IDOC に対する操作」を参照してください。 IDOC を送信するための SOAP メッセージの構造の詳細については、「IDOC 操作のメッセージ スキーマ」を参照してください。

SAP アダプターを使用して IDOC を送信するための BizTalk シナリオ

次の表に、IDOC を SAP システムに送信するための BizTalk の主なシナリオを示します。

BizTalk への入力 BizTalk 処理 アダプターへの出力
フラット ファイル IDOC メタデータのデザイン時間

1. バインド プロパティ GenerateFlatFileCompatibleIdocSchema を True に設定 します
2. アダプター サービス アドインを使用して、特定の IDOC の 送信 操作のスキーマを生成します。

オーケストレーションのデザイン時間

1. フラット ファイル IDOC を受信する
2. フラット ファイル逆アセンブラーを使用して、先ほど生成したスキーマを使用してフラット ファイル IDOC を XML IDOC に変換します。
3. アクションを 送信 操作に設定します。
メッセージを送信する
フラット ファイル IDOC メタデータのデザイン時間

1. バインド プロパティ GenerateFlatFileCompatibleIdocSchema を True に設定 します
2. アダプター サービス アドインを使用して、IDOC ノードから SendIdoc 操作のスキーマを生成します。

オーケストレーションのデザイン時間

1. フラット ファイル IDOC を受信する
2. フラット ファイル逆アセンブラーを使用して、フラット ファイル IDOC を XML に変換します (この場合、XML メッセージには、フラット ファイル Idoc メッセージ全体を含む idocData> ノードが含まれています<)。生成されたスキーマを使用します。
3. アクションを SendIdoc 操作に設定します。
SendIdoc メッセージ
XML IDOC メタデータのデザイン時間

- アダプター サービス アドインを使用して、特定の IDOC の 送信 操作のスキーマを生成します。

オーケストレーションのデザイン時間

1. XML IDOC を受信します。
2. アクションを 送信 操作に設定します。
メッセージを送信する
XML メッセージ内のフラット ファイル IDOC メタデータのデザイン時間

- アダプター サービス アドインを使用して、IDOC ノードから SendIdoc 操作のスキーマを生成します。

オーケストレーションのデザイン時間

1. XML メッセージを受信します。
2. アクションを SendIdoc 操作に設定します。
SendIdoc メッセージ

SAP システムに IDOC を送信する方法

BizTalk Serverを使用して SAP システムで操作を実行するには、「SAP アプリケーションを作成するための構成要素」で説明されている手続き型タスクが含まれます。 SAP システムに IDOC を送信するには、次のタスクを実行します。

  1. BizTalk プロジェクトを作成し、SAP システムで呼び出す IDOC のスキーマを生成します。 スキーマの生成中に、前の表に示すように、必要なバインド プロパティを設定してください。 バインド プロパティを設定する方法については、「 SAP アダプターのバインド プロパティを構成する」を参照してください。

  2. SAP システムからメッセージを送受信するためのメッセージを BizTalk プロジェクトに作成します。

  3. IDOC を SAP システムに送信するオーケストレーションを作成します。

  4. BizTalk プロジェクトをビルドして展開します。

  5. 物理送受信ポートを作成して BizTalk アプリケーションを構成します。

  6. BizTalk アプリケーションを起動します。

    このトピックでは、これらのタスクを実行する手順について説明します。

このトピックに基づくサンプル

このトピックに基づくサンプル IDOCSend は、BizTalk アダプター パックでも提供されています。 詳細については、「 SAP アダプターのサンプル」を参照してください。

スキーマの生成

このトピックでは、\IDOC\ORDERS\ORDERS05\ORDERS05で 送信 操作のスキーマを生成して、IDOC を SAP システムに送信する方法について説明します。V3(620) IDOC。 特定の IDOC のスキーマを生成する方法の詳細については、「 SAP での IDOC 操作のメタデータの参照、検索、取得 」を参照してください。

メッセージとメッセージの種類の定義

前に生成したスキーマでは、オーケストレーション内のメッセージに必要な "型" について説明します。 通常、メッセージは変数であり、対応するスキーマによって定義される型です。 最初の手順で生成したスキーマを、BizTalk プロジェクトのオーケストレーション ビューからメッセージにリンクする必要があります。

このトピックでは、2 つのメッセージ (1 つは SAP システムに IDOC を送信し、もう 1 つは応答を受信するメッセージ) を作成する必要があります。

メッセージを作成し、スキーマにリンクするには、次の手順を実行します。

  1. まだ開いていない場合は、BizTalk プロジェクトをオーケストレーション ビューで開きます。 [ 表示] をクリックし、[ その他のウィンドウ] をポイントして、[ オーケストレーション ビュー] をクリックします。

  2. オーケストレーション ビューで、[メッセージ] を右クリックし、[新しいメッセージ] をクリックします。

  3. 新しく作成したメッセージを右クリックし、[ プロパティ ウィンドウ] を選択します。

  4. Message_1[プロパティ] ウィンドウで、次の操作を行います。

    プロパティ 目的
    識別子 「IDOCSend」と入力します。
    メッセージ型 ドロップダウン リストから [ スキーマ] を展開し、[ IDOCSend.SAPBindingSchema3] を選択します。 IDOCSend は BizTalk プロジェクトの名前です。 SAPBindingSchema3 は、送信操作用に生成されるスキーマです。
  5. 前の手順を繰り返して、新しいメッセージを作成します。 新しいメッセージの [プロパティ ] ウィンドウで、次の操作を行います。

    プロパティ 目的
    識別子 「IDOCResponse」と入力します
    メッセージ型 ドロップダウン リストから [ スキーマ] を展開し、[ IDOCSend.SAPBindingSchema4] を選択します。

オーケストレーションの設定

IDOC を SAP システムに送信するためにBizTalk Serverを使用するには、BizTalk オーケストレーションを作成する必要があります。 このオーケストレーションでは、定義された受信場所にフラット ファイル IDOC を削除します。 このファイルは、フラット ファイル逆アセンブラーを使用して XML 要求メッセージに変換されます。 SAP アダプターはこのメッセージを使用して SAP システムに渡します。 GUID を使用した応答は SAP から受信され、別の場所に保存されます。 SAP システムに IDOC を送信し、応答を受信するには、送受信図形を含める必要があります。 フラット ファイルを XML ファイルに変換するには、フラット ファイル逆アセンブラーも含める必要があります。 SAP システムにおよび IDOC を送信する一般的なオーケストレーションには、次のものが含まれます。

  • SAP システムにメッセージを送信し、応答を受信する図形の送受信。

  • SAP システムに送信するフラット ファイル IDOC を受信する一方向の受信ポート。

  • フラット ファイル IDOC を XML ファイルに変換するフラット ファイル逆アセンブラー。

  • IDOC を SAP システムに送信し、応答を受信するための双方向送信ポート。

  • SAP システムからフォルダーに応答を送信する一方向送信ポート。

    サンプル オーケストレーションは次のようになります。

    db1490c8-da52-4af3-8a4f-d93bd815025dSAP

メッセージ図形の追加

メッセージ図形ごとに次のプロパティを指定してください。 [図形] 列に表示される名前は、上記のオーケストレーションに表示されるメッセージ図形の名前です。

図形 図形の種類 プロパティ
ReceiveFile 受信 - 名前を ReceiveFile に設定する
- Activate をTrue に設定する
SendToLOB Send - 名前を SendToLOB に設定する
ReceiveResponse 受信 - 名前ReceiveResponse に設定する
- Activate をFalse に設定する
SendResponse Send - 名前SendResponse に設定する

ポートの追加

論理ポートごとに次のプロパティを指定してください。 [ ポート ] 列に表示される名前は、オーケストレーションに表示されるポートの名前です。

Port プロパティ
FileIn - 識別子FileIn に設定する
- Typeを FileInType に設定する
- 通信パターン一方向に設定する
- 受信する通信方向を設定する
LOBPort - 識別子LOBPort に設定する
- LOBPortType に設定する
- 通信パターンRequest-Response に設定する
- [通信の方向] を [送受信] に設定する
SaveResponse - 識別子SaveResponse に設定する
- TypeSaveResponseType に設定する
- 通信パターン一方向に設定する
- [通信の方向] を [送信] に設定する

フラット ファイル逆アセンブラーの追加

フラット ファイル IDOC を XML 形式に変換するには、フラット ファイル逆アセンブラーをオーケストレーションに追加する必要があります。

フラット ファイル逆アセンブラーを追加するには
  1. BizTalk プロジェクトを右クリックし、[ 追加] をポイントして、[ 新しい項目] を選択します。

  2. ダイアログ ボックスで、次の操作を行います。

    プロパティ 目的
    Categories パイプライン ファイル
    Visual Studio のインストール済みテンプレート [受信パイプライン]
    名前 IDOCReceive
  3. パイプライン Designerが開きます。 BizTalk パイプライン コンポーネント ツールボックスから、フラット ファイル逆アセンブラー パイプライン コンポーネントを受信パイプラインの逆アセンブリ ステージにドラッグします。

  4. [ パイプライン コンポーネントのプロパティ] ビューで、 [ドキュメント スキーマ] プロパティの値を指定します。 ドロップダウンから、IDOC 送信操作に対応するスキーマを選択してください。

アクション図形のメッセージを指定し、ポートに接続する

次の表では、アクション図形のメッセージを指定し、ポートにリンクするために設定するプロパティとその値を指定します。 [図形] 列に表示される名前は、上記のオーケストレーションに表示されるメッセージ図形の名前です。

図形 プロパティ
ReceiveFile - メッセージIDOCSend に設定する
- 操作FileIn.SendIDOC.Request に設定する
SendToLob - メッセージIDOCSend に設定する
- 操作LOBPort.SendIDOC.Request に設定する
ReceiveResponse - メッセージIDOCResponse に設定する
- 操作LOBPort.SendIDOC.Response に設定する
SendResponse - メッセージIDOCResponse に設定する
- 操作SaveResponse.SendIDOC.Request に設定する

これらのプロパティを指定すると、メッセージの図形とポートが接続され、オーケストレーションが完了します。

BizTalk ソリューションをビルドし、BizTalk Serverに展開する必要があります。 詳細については、「オーケストレーションの ビルドと実行」を参照してください。

BizTalk アプリケーションの構成

BizTalk プロジェクトを展開すると、前に作成したオーケストレーションが、BizTalk Server管理コンソールの [オーケストレーション] ウィンドウの下に一覧表示されます。 アプリケーションを構成するには、BizTalk Server管理コンソールを使用する必要があります。 アプリケーションの構成の詳細については、「アプリケーション を構成する方法」を参照してください。

アプリケーションの構成には、次の作業が含まれます。

  • アプリケーションのホストの選択。

  • オーケストレーションで作成したポートを、BizTalk Server管理コンソールの物理ポートにマッピングします。 このオーケストレーションでは、次の操作を行う必要があります。

    • ハード ディスク上の場所と、要求メッセージを削除する対応するファイル ポートを定義します。 BizTalk オーケストレーションは、要求メッセージを使用して SAP システムに送信します。

      重要

      このポートの XMLReceive パイプラインでは、 必ず [IDOCReceive] を選択してください。 このパイプラインは、BizTalk プロジェクトの一部として作成しました。

    • ハード ディスク上の場所と、BizTalk オーケストレーションが SAP システムからの応答を含む応答メッセージを削除する対応するファイル ポートを定義します。

    • SAP システムにメッセージを送信するための物理 WCF-Custom または WCF-SAP 送信ポートを定義します。 また、送信ポートでアクションを指定する必要があります。 ポートを作成する方法については、「 SAP アダプターへの物理ポート バインドを手動で構成する」を参照してください。

      Note

      AutoConfirmSentIdocs バインド プロパティを設定して、IDOC を SAP システムに自動的にコミットすることもできます。 その場合、IDOC をコミットするために RfcConfirmTransID 操作を明示的に呼び出す必要はありません。 バインディング プロパティの詳細については、「 BizTalk Adapter for mySAP Business Suite Binding Properties」を参照してください。 RfcConfirmTransID 操作の詳細については、「 SAP での tRFC に対する操作」を参照してください。

      Note

      アダプター サービス BizTalk プロジェクト アドインを使用してスキーマを生成すると、ポートとそれらのポートに設定するアクションに関する情報を含むバインド ファイルも作成されます。 BizTalk 管理コンソールからこのバインド ファイルをインポートして、送信ポート (送信呼び出し用) または受信ポート (受信呼び出し用) を作成できます。 詳細については、「 SAP へのポート バインド ファイルを使用して物理ポート バインドを構成する」を参照してください。

アプリケーションの起動

IDOC を SAP システムに送信するには、BizTalk アプリケーションを起動する必要があります。 BizTalk アプリケーションを起動する手順については、「 オーケストレーションを開始する方法」または「 アプリケーションを起動する方法」を参照してください。

この段階で、次のことを確認します。

  • オーケストレーションの要求メッセージを受信する FILE 受信ポートが実行されています。

  • オーケストレーションから応答メッセージを受信する FILE 送信ポートが実行されています。

  • SAP システムにメッセージを送信するための WCF-Custom または WCF-SAP 送信ポートが実行されています。

  • 操作の BizTalk オーケストレーションが実行されています。

操作の実行

アプリケーションを実行した後、オーケストレーションの要求メッセージを削除する必要があります。 この例では、定義された FILE 受信場所にフラット ファイル IDOC をドロップします。 要求メッセージを削除すると、次のアクションが実行されます。

  • オーケストレーションは、このフラット ファイル IDOC を選択し、XML 要求メッセージ (前に生成したスキーマに準拠するスキーマ) に変換します。

  • 指定した要求メッセージに GUID が含まれている場合、アダプターはトランザクション ID (TID) を生成して SAP システムに送信します。

  • 指定した要求メッセージに GUID が含まれていない場合、アダプターは GUID を生成し、その GUID を使用して TID を生成します。 その後、TID が SAP システムに送信されます。

    どちらの場合も、SAP システムからの応答メッセージには GUID が含まれています。 たとえば、ORDERS05 IDOC の送信操作の応答メッセージは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>  
<SendResponse xmlns="http://Microsoft.LobServices.Sap/2007/03/Idoc/3/ORDERS05//620/Send">  
  <guid>a5afe162-d5cc-47b0-bf6f-3b0bfe06a97e</guid>  
</SendResponse>  

GUID を受け取ったら、 RfConfirmTransID 操作を呼び出して TID をコミットする必要があります。 RfcConfirmTransID 操作の詳細については、「SAP での tRFC に対する操作」を参照してください。 新しいオーケストレーションを作成してこの操作を呼び出すか、既存のオーケストレーションを変更できます。 新しいオーケストレーションを作成する場合は、SAP システム上の他のオーケストレーションと同様になります。 既存のオーケストレーションを更新する場合は、「BizTalk Serverを使用して SAP で tRFC を呼び出す」を参照してください。 トピックで説明されているように、tRFC を呼び出すためのオーケストレーションは、同じオーケストレーションから RfcConfirmTransID 操作を呼び出す方法を示しています。

Note

AutoConfirmSentIdocs バインド プロパティを True に設定した場合は、RfcConfirmTransID 操作を呼び出す必要はありません。

考えられる例外

BizTalk Serverを使用して SAP システムに IDOC を送信するときに発生する可能性がある例外については、「SAP アダプターでの例外とエラー処理」を参照してください。

ベスト プラクティス

BizTalk プロジェクトを展開して構成したら、バインド ファイルと呼ばれる XML ファイルに構成設定をエクスポートできます。 バインド ファイルを生成したら、同じオーケストレーションに対して送信ポートや受信ポートなどを作成する必要がないように、ファイルから構成設定をインポートできます。 バインド ファイルの詳細については、「 SAP アダプター バインドを再利用する」を参照してください。

参照

BizTalk アプリケーションの開発