SAP アダプターは、SAP システムによって公開されている RFC を、アダプター クライアントから呼び出すことができる操作として表示します。 このセクションでは、Microsoft BizTalk Server で SAP アダプターを使用して SAP システムで RFC を呼び出す方法について説明します。 SAP アダプターが SAP システムでの RFC の呼び出しをサポートする方法の詳細については、「SAP での RFC に対する操作」を参照してください。 RFC を呼び出すための SOAP メッセージの構造の詳細については、「RFC 操作のメッセージ スキーマ」を参照してください。
SAP システムで RFC を呼び出す方法
BizTalk Server で SAP アダプターを使用して SAP システムに対して操作を実行するには、「SAP アプリケーションを 作成するための構成要素」で説明されている手続き型タスクが含まれます。 SAP システムで RFC を呼び出すには、次のタスクを実行します。
BizTalk プロジェクトを作成し、SAP システムで呼び出す RFC のスキーマを生成します。
SAP システムからメッセージを送受信するためのメッセージを BizTalk プロジェクトに作成します。
SAP システムで RFC を呼び出すオーケストレーションを作成します。
BizTalk プロジェクトをビルドして展開します。
物理送受信ポートを作成して BizTalk アプリケーションを構成します。
BizTalk アプリケーションを起動します。
このトピックでは、これらのタスクを実行する手順について説明します。
スキーマの生成
このトピックでは、SAP システムで RFC を呼び出す方法を示すために、 RFC_CUSTOMER_GETのスキーマを生成します。 スキーマの生成方法の詳細については、 SAP の RFC 操作のメタデータの参照、検索、および取得 を参照してください。
メッセージとメッセージの種類の定義
前に生成したスキーマでは、オーケストレーション内のメッセージに必要な "型" が記述されています。 通常、メッセージは変数であり、対応するスキーマによって定義される型です。 BizTalk プロジェクトのオーケストレーション ビューから、生成したスキーマをメッセージにリンクする必要があります。
このトピックでは、2 つのメッセージ (1 つは SAP システムに要求を送信し、もう 1 つは応答を受信するメッセージ) を作成する必要があります。
メッセージを作成し、スキーマにリンクするには、次の手順を実行します。
メッセージを作成し、スキーマにリンクするには
オーケストレーション ビューを開きます。まだ開いていない場合は、BizTalk プロジェクトを開きます。 [ 表示] をクリックし、[ その他のウィンドウ] をポイントして、[ オーケストレーション ビュー] をクリックします。
オーケストレーション ビューで、[メッセージ] を右クリックし、[新しいメッセージ] をクリックします。
新しく作成したメッセージを右クリックし、[ プロパティ ウィンドウ] を選択します。
Message_1の [プロパティ] ウィンドウで、次の操作を行います。
これを使用する 目的 識別子 「要求」を入力してください。 メッセージの種類 ドロップダウン リストから [ スキーマ] を展開し、 InvokeRFC.SAPBindingSchema.RFC_CUSTOMER_GETを選択します。 InvokeRFC は BizTalk プロジェクトの名前です。 SAPBindingSchema は、 RFC_CUSTOMER_GET用に生成されるスキーマです。 前の手順を繰り返して、新しいメッセージを作成します。 新しいメッセージの [プロパティ ] ウィンドウで、次の操作を行います。
これを使用する 目的 識別子 「 応答」と入力します。 メッセージの種類 ドロップダウン リストから [ スキーマ] を展開し、 InvokeRFC.SAPBindingSchema.RFC_CUSTOMER_GETResponseを選択します。
オーケストレーションの設定
SAP システムで RFC を呼び出すために BizTalk Server を使用するには、BizTalk オーケストレーションを作成する必要があります。 このオーケストレーションでは、定義された受信場所に要求メッセージをドロップします。 SAP アダプターはメッセージを取り込み、SAP システムに転送します。 SAP システムからの応答は、別の場所に保存されます。 SAP システムで RFC を呼び出すための一般的なオーケストレーションには、次のものが含まれます。
SAP システムにメッセージを送信し、応答を受信する図形を送受信します。
SAP システムに送信する要求メッセージを受信する一方向の受信ポート。
SAP システムに要求メッセージを送信し、応答を受信するための双方向送信ポート。
SAP システムからフォルダーに応答を送信する一方向の送信ポート。
サンプル オーケストレーションは次のようになります。
メッセージ図形の追加
メッセージ図形ごとに次のプロパティを指定してください。 [図形] 列に表示される名前は、前のオーケストレーションに表示されるメッセージ図形の名前です。
形 | 図形の種類 | 特性 |
---|---|---|
リクエスト受信 | 受け取る | - 名前を Receive_Request に設定する - アクティブ化を True に設定する |
Send_LOB | 送信 | - 名前を Send_LOB に設定する |
Receive_LOB | 受け取る | - 名前をReceive_LOBに設定する - アクティブ化を False に設定する |
応答を送信 | 送信 | - 名前をSend_Responseに設定する |
ポートの追加
論理ポートごとに次のプロパティを指定します。 [ ポート ] 列に表示される名前は、オーケストレーションに表示されるポートの名前です。
港 / ポート | 特性 |
---|---|
受信メッセージポート | - 識別子を ReceiveMsgPort に設定する - 型を「ReceiveMsgPortType」として設定する - 通信パターンを一方向に設定する - 通信方向を受信に設定する |
SendToLOBPort | - 識別子を SendToLOBPort に設定する - 型を SendToLOBPortType に設定する - 通信パターンを Request-Response に設定する - 通信方向を送受信に設定する |
SendMsgPort | - 識別子を SendMsgPort に設定する - 型を SendMsgPortType に設定する - 通信パターンを一方向に設定する - 通信方向を送信に設定する |
アクション図形のメッセージを指定し、ポートに接続する
次の表は、アクション図形のメッセージを指定し、それらをポートにリンクするために設定するプロパティとその値を指定します。 [図形] 列に表示される名前は、前のオーケストレーションに表示されるメッセージ図形の名前です。
形 | 特性 |
---|---|
要求を受け取る | - メッセージを要求に設定する - 操作を ReceiveMsgPort.Operation_1.Request に設定する |
Send_LOB | - メッセージを要求に設定する - 操作を SendToLOBPort.Operation_1.Request に設定する |
Receive_LOB | - メッセージを応答に設定する - 操作を SendToLOBPort.Operation_1.Response に設定する |
応答を送信 | - メッセージを応答に設定する - 操作を SendMsgPort.Operation_1.Request に設定する |
これらのプロパティを指定すると、メッセージの図形とポートが接続され、オーケストレーションが完了します。
BizTalk ソリューションをビルドし、BizTalk Server に展開する必要があります。 詳細については、「オーケストレーションの ビルドと実行」を参照してください。
BizTalk アプリケーションの構成
BizTalk プロジェクトを展開すると、前に作成したオーケストレーションが BizTalk Server 管理コンソールの [ オーケストレーション ] ウィンドウの下に一覧表示されます。 BizTalk Server 管理コンソールを使用してアプリケーションを構成する必要があります。 アプリケーションの構成の詳細については、「アプリケーション を構成する方法」を参照してください。
アプリケーションの構成には、次の作業が含まれます。
アプリケーションのホストの選択。
オーケストレーションで作成したポートを BizTalk Server 管理コンソールの物理ポートにマッピングします。 このオーケストレーションでは、次の操作を行う必要があります。
ハード ディスク上の場所と、要求メッセージをドロップする対応するファイル ポートを定義します。 BizTalk オーケストレーションは、要求メッセージを使用して SAP システムに送信します。
ハード ディスク上の場所と、BizTalk オーケストレーションが SAP システムからの応答を含む応答メッセージを削除する対応するファイル ポートを定義します。
SAP システムにメッセージを送信する物理 WCF-Custom または送信ポート WCF-SAP 定義します。 また、送信ポートでアクションを指定する必要があります。 ポートを作成する方法については、「 SAP アダプターへの物理ポート バインドを手動で構成する」を参照してください。
注
Consume Adapter Service BizTalk Project アドインを使用してスキーマを生成すると、ポートに関する情報と、それらのポートに設定するアクションを含むバインディング ファイルも作成されます。 BizTalk Server 管理コンソールからこのバインド ファイルをインポートして、送信ポート (発信呼び出し用) または受信ポート (受信呼び出し用) を作成できます。 詳細については、「 SAP へのポート バインド ファイルを使用して物理ポート バインドを構成する」を参照してください。
アプリケーションの起動
SAP システムで RFC を呼び出すには、BizTalk アプリケーションを起動する必要があります。 BizTalk アプリケーションを起動する手順については、「オーケストレーションを 開始する方法 」または 「アプリケーションを起動する方法」を参照してください。
この段階で、次のことを確認します。
オーケストレーションの要求メッセージを受信する FILE 受信ポートが実行されています。
オーケストレーションからの応答メッセージを受信する FILE 送信ポートが実行中です。
SAP システムにメッセージを送信するための WCF-Custom または WCF-SAP 送信ポートが実行されています。
操作の BizTalk オーケストレーションが実行されています。
操作の実行
アプリケーションを実行した後、オーケストレーションの要求メッセージを定義済みの場所にドロップする必要があります。 SAP システムで RFC を呼び出すための要求メッセージのスキーマについては、 RFC 操作 のメッセージ スキーマを参照してください。 たとえば、RFC_CUSTOMER_GETを呼び出す要求メッセージは次のとおりです。
<RFC_CUSTOMER_GET xmlns="http://Microsoft.LobServices.Sap/2007/03/Rfc/">
<KUNNR>0000001390</KUNNR>
<NAME1>*</NAME1>
<CUSTOMER_T/>
</RFC_CUSTOMER_GET>
オーケストレーションによってメッセージがコンシュームされ、SAP システムに送信されます。 SAP システムからの応答は、オーケストレーションの一部として定義されている他のファイルの場所に保存されます。 たとえば、上記の要求メッセージに対する SAP システムからの応答は次のようになります。
<?xml version="1.0" encoding="utf-8" ?>
<RFC_CUSTOMER_GETResponse xmlns="http://Microsoft.LobServices.Sap/2007/03/Rfc/">
<CUSTOMER_T>
<RFCCUST xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">
<KUNNR>0000001390</KUNNR>
<ANRED>Firma</ANRED>
<NAME1>Contoso, Ltd.</NAME1>
<PFACH />
<STRAS>4567 Main Street</STRAS>
<PSTLZ>98052</PSTLZ>
<ORT01>USA</ORT01>
<TELF1>555-0101</TELF1>
<TELFX>555-0102</TELFX>
</RFCCUST>
</CUSTOMER_T>
</RFC_CUSTOMER_GETResponse>
考えられる例外
BizTalk Server を使用して SAP システムで RFC を呼び出すときに発生する可能性がある例外については、「 SAP アダプターでの例外とエラー処理」を参照してください。
ベスト プラクティス
BizTalk プロジェクトを展開して構成したら、構成設定をバインド ファイルと呼ばれる XML ファイルにエクスポートできます。 バインド ファイルを生成したら、同じオーケストレーションの送信ポートや受信ポートなどを作成する必要がないように、ファイルから構成設定をインポートできます。 バインディング・ファイルの詳細については、 SAP アダプター・バインディングの再利用を参照してください。