SAP に対するすべての IDOC 呼び出しは内部的に tRFC 呼び出しとして扱われ、アダプターは tRFC クライアントとして機能し、SAP で RFC を呼び出して IDOC を送信します。 このセクションでは、Microsoft BizTalk Adapter for mySAP Business Suite と BizTalk Server を使用して SAP に IDOC を送信する方法について説明します。 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. Consume Adapter Service アドインを使用して、IDOC ノードから SendIdoc 操作のスキーマを生成します。 オーケストレーションのデザイン時間 1. フラット ファイル IDOC を受信する 2. フラットファイルの逆アセンブルツールを使用して、フラットファイルIDocをXMLに変換します。この場合、XMLメッセージには、フラットファイルIDocメッセージ全体を含む<idocData>ノードが含まれます。 3. アクションを SendIdoc 操作に設定します。 |
SendIdoc メッセージ |
XML IDOC |
メタデータのデザイン時間 - アダプター サービス アドインを使用して、特定の IDOC の 送信 操作のスキーマを生成します。 オーケストレーションのデザイン時間 1. XML IDOC を受信します。 2. アクションを 送信 操作に設定します。 |
メッセージの送信 |
XML メッセージ内のフラット ファイル IDOC |
メタデータのデザイン時間 - Consume Adapter Service アドインを使用して、IDOC ノードから SendIdoc 操作のスキーマを生成します。 オーケストレーションのデザイン時間 1. XML メッセージを受信します。 2. アクションを SendIdoc 操作に設定します。 |
SendIdoc メッセージ |
SAP システムに IDOC を送信する方法
BizTalk Server を使用して SAP システムで操作を実行するには、「 SAP アプリケーションを作成するための構成要素」で説明されている手順に従います。 SAP システムに IDOC を送信するには、次のタスクを実行します。
BizTalk プロジェクトを作成し、SAP システムで呼び出す IDOC のスキーマを生成します。 スキーマを生成するときは、前の表に示すように、必要なバインド プロパティを設定してください。 バインディング・プロパティーを設定する方法については、 SAP アダプターのバインディング・プロパティーの構成を参照してください。
SAP システムからメッセージを送受信するためのメッセージを BizTalk プロジェクトに作成します。
IDOC を SAP システムに送信するオーケストレーションを作成します。
BizTalk プロジェクトをビルドして展開します。
物理送受信ポートを作成して BizTalk アプリケーションを構成します。
BizTalk アプリケーションを起動します。
このトピックでは、これらのタスクを実行する手順について説明します。
このトピックに基づくサンプル
このトピックに基づくサンプル IDOCSend は、BizTalk アダプター パックでも提供されています。 詳細については、 SAP アダプターのサンプルを参照してください。
スキーマの生成
このトピックでは、\IDOC\ORDERS\ORDERS05\ORDERS05 で送信操作のスキーマを生成して、IDOC を SAP システムに 送信 する方法について説明します。V3(620) IDOC。 特定の IDOC のスキーマを生成する方法の詳細については 、SAP での IDOC 操作のメタデータの参照、検索、および取得 を参照してください。
メッセージとメッセージの種類の定義
前に生成したスキーマでは、オーケストレーション内のメッセージに必要な "型" が記述されています。 通常、メッセージは変数であり、対応するスキーマによって定義される型です。 最初の手順で生成したスキーマを、BizTalk プロジェクトのオーケストレーション ビューからメッセージにリンクする必要があります。
このトピックでは、2 つのメッセージ (1 つは SAP システムに IDOC を送信し、もう 1 つは応答を受信するメッセージ) を作成する必要があります。
メッセージを作成し、スキーマにリンクするには、次の手順を実行します。
メッセージを作成し、スキーマにリンクするには
オーケストレーション ビューを開きます。まだ開いていない場合は、BizTalk プロジェクトを開きます。 [ 表示] をクリックし、[ その他のウィンドウ] をポイントして、[ オーケストレーション ビュー] をクリックします。
オーケストレーション ビューで、[メッセージ] を右クリックし、[新しいメッセージ] をクリックします。
新しく作成したメッセージを右クリックし、[ プロパティ ウィンドウ] を選択します。
Message_1の [プロパティ] ウィンドウで、次の操作を行います。
これを使用する 目的 識別子 「IDOCSend」と入力します。 メッセージの種類 ドロップダウン リストから [ スキーマ] を展開し、 IDOCSend.SAPBindingSchema3 を選択します。 IDOCSend は BizTalk プロジェクトの名前です。 SAPBindingSchema3 は、送信操作用に生成されるスキーマです。 前の手順を繰り返して、新しいメッセージを作成します。 新しいメッセージの [プロパティ ] ウィンドウで、次の操作を行います。
これを使用する 目的 識別子 「IDOCResponse」と入力します。 メッセージの種類 ドロップダウン リストから [ スキーマ] を展開し、 IDOCSend.SAPBindingSchema4 を選択します。
オーケストレーションの設定
BizTalk Server を使用して IDOC を SAP システムに送信するには、BizTalk オーケストレーションを作成する必要があります。 このオーケストレーションでは、定義された受信場所にフラット ファイル IDOC をドロップします。 このファイルは、フラット ファイル逆アセンブラーを使用して XML 要求メッセージに変換されます。 SAP アダプターはこのメッセージを使用して SAP システムに渡します。 GUID を含む応答は SAP から受信され、別の場所に保存されます。 IDOC を SAP システムに送信して応答を受信するには、送受信図形を含める必要があります。 フラット ファイルを XML ファイルに変換するには、フラット ファイル逆アセンブラーも含める必要があります。 SAP システムに IDOC を送信する一般的なオーケストレーションには、次の要素が含まれます。
SAP システムにメッセージを送信し、応答を受信する図形を送受信します。
SAP システムに送信するフラット ファイル IDOC を受信する一方向の受信ポート。
フラット ファイル IDOC を XML ファイルに変換するフラット ファイル逆アセンブラー。
IDOC を SAP システムに送信し、応答を受信する双方向送信ポート。
SAP システムからフォルダーに応答を送信する一方向の送信ポート。
サンプル オーケストレーションは次のようになります。
メッセージ図形の追加
メッセージ図形ごとに次のプロパティを指定してください。 [図形] 列に表示される名前は、上記のオーケストレーションに表示されるメッセージ図形の名前です。
形 | 図形の種類 | 特性 |
---|---|---|
ファイル受信 | 受け取る | - 名前を ReceiveFile に設定する - アクティブ化を True に設定する |
SendToLOB | 送信 | - 名前を SendToLOB に設定する |
レスポンスを受け取る | 受け取る | - 名前を ReceiveResponse に設定する - アクティブ化を False に設定する |
SendResponse | 送信 | - 名前を SendResponse に設定する |
ポートの追加
論理ポートごとに次のプロパティを指定してください。 [ ポート ] 列に表示される名前は、オーケストレーションに表示されるポートの名前です。
港 / ポート | 特性 |
---|---|
ファイルイン | - 識別子を FileIn に設定する - 型を FileInType に設定する - 通信パターンを一方向に設定する - 通信方向を受信に設定する |
LOBPort | - 識別子を LOBPort に設定する - 型を LOBPortType に設定する - 通信パターンを Request-Response に設定する - 通信方向を送受信に設定する |
応答を保存 | - 識別子を SaveResponse に設定する - 型を SaveResponseType に設定する - 通信パターンを一方向に設定する - 通信方向を送信に設定する |
フラット ファイルディスアセンブラーの追加
フラット ファイルの IDOC を XML 形式に変換するには、フラット ファイル逆アセンブラーをオーケストレーションに追加する必要があります。
フラットファイルの逆アセンブラーを追加する方法
BizTalk プロジェクトを右クリックし、[ 追加] をポイントして、[ 新しい項目] を選択します。
ダイアログ ボックスで、次の操作を行います。
これを使用する 目的 カテゴリ パイプラインファイル Visual Studio にインストールされたテンプレート 受信パイプライン 名前 IDOCReceive パイプライン デザイナーが開きます。 BizTalk パイプライン コンポーネント ツールボックスから、フラット ファイル逆アセンブラー パイプライン コンポーネントを受信パイプラインの逆アセンブル ステージにドラッグします。
[パイプライン コンポーネントのプロパティ] ビューで、ドキュメント スキーマ プロパティの値を指定します。 ドロップダウンから、IDOC 送信操作に対応するスキーマを選択してください。
アクション図形のメッセージを指定し、ポートに接続する
次の表は、アクション図形のメッセージを指定し、それらをポートにリンクするために設定するプロパティとその値を指定します。 [図形] 列に表示される名前は、上記のオーケストレーションに表示されるメッセージ図形の名前です。
形 | 特性 |
---|---|
ファイル受信 | - メッセージを IDOCSend に設定する - 操作を FileIn.SendIDOC.Request に設定する |
SendToLob | - メッセージを IDOCSend に設定する - 操作を LOBPort.SendIDOC.Request に設定する |
レスポンスを受け取る | - メッセージを IDOCResponse に設定する - 操作を LOBPort.SendIDOC.Response に設定する |
SendResponse | - メッセージを IDOCResponse に設定する - 操作を SaveResponse.SendIDOC.Request に設定する |
これらのプロパティを指定すると、メッセージの図形とポートが接続され、オーケストレーションが完了します。
BizTalk ソリューションをビルドし、BizTalk Server に展開する必要があります。 詳細については、「オーケストレーションの ビルドと実行」を参照してください。
BizTalk アプリケーションの構成
BizTalk プロジェクトを展開すると、前に作成したオーケストレーションが BizTalk Server 管理コンソールの [ オーケストレーション ] ウィンドウの下に一覧表示されます。 BizTalk Server 管理コンソールを使用してアプリケーションを構成する必要があります。 アプリケーションの構成の詳細については、「アプリケーション を構成する方法」を参照してください。
アプリケーションの構成には、次の作業が含まれます。
アプリケーションのホストの選択。
オーケストレーションで作成したポートを BizTalk Server 管理コンソールの物理ポートにマッピングします。 このオーケストレーションでは、次の操作を行う必要があります。
ハード ディスク上の場所と、要求メッセージをドロップする対応するファイル ポートを定義します。 BizTalk オーケストレーションは、要求メッセージを使用して SAP システムに送信します。
Von Bedeutung
このポートの XMLReceive パイプラインでは、 必ず IDOCReceive を選択してください。 このパイプラインは、BizTalk プロジェクトの一部として作成しました。
ハード ディスク上の場所と、BizTalk オーケストレーションが SAP システムからの応答を含む応答メッセージを削除する対応するファイル ポートを定義します。
SAP システムにメッセージを送信する物理 WCF-Custom または送信ポート WCF-SAP 定義します。 また、送信ポートでアクションを指定する必要があります。 ポートを作成する方法については、「 SAP アダプターへの物理ポート バインドを手動で構成する」を参照してください。
注
AutoConfirmSentIdocs バインド プロパティを設定して、IDOC を SAP システムに自動的にコミットすることもできます。 その場合、IDOC をコミットするために RfcConfirmTransID 操作を明示的に呼び出す必要はありません。 バインド プロパティの詳細については、「 BizTalk Adapter for mySAP Business Suite Binding Properties」を参照してください。 RfcConfirmTransID 操作の詳細については、 SAP の tRFC に対する操作を参照してください。
注
Consume Adapter Service BizTalk Project アドインを使用してスキーマを生成すると、ポートに関する情報と、それらのポートに設定するアクションを含むバインディング ファイルも作成されます。 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 操作を呼び出す方法を示しています。
注
AutoConfirmSentIdocs バインド プロパティを True に設定した場合は、RfcConfirmTransID 操作を呼び出す必要はありません。
考えられる例外
BizTalk Server を使用して SAP システムに IDOC を送信するときに発生する可能性がある例外については、「 SAP アダプターでの例外とエラー処理」を参照してください。
ベスト プラクティス
BizTalk プロジェクトを展開して構成したら、構成設定をバインド ファイルと呼ばれる XML ファイルにエクスポートできます。 バインド ファイルを生成したら、同じオーケストレーションの送信ポートや受信ポートなどを作成する必要がないように、ファイルから構成設定をインポートできます。 バインディング・ファイルの詳細については、 SAP アダプター・バインディングの再利用を参照してください。