BizTalk Serverを使用して、SQL Serverで単一の XML パラメーターを使用してストアド プロシージャを実行する
1 つのパラメーターを受け取るストアド プロシージャの実行は、「BizTalk Serverを使用してSQL Serverストアド プロシージャを実行する」で説明されている他のストアド プロシージャの実行と似ています。 ただし、前のリンクで説明した方法では、デザイン時にストアド プロシージャのメタデータを生成し、実行時にプロシージャを呼び出すオーケストレーションを作成する必要があります。
その値に対する処理を行わずに、1 つの値をストアド プロシージャに渡すだけのシナリオを考えてみましょう。 このような場合は、メタデータの生成、オーケストレーションの作成、オーケストレーションのデプロイ、操作の実行のオーバーヘッドは必要ありません。 代わりに、ストアド プロシージャを直接呼び出す WCF-Custom または WCF-SQL 送信ポートを構成できます。 このトピックでは、BizTalk Server管理コンソールを使用してこれらのタスクを実行する方法について説明します。
Note
このトピックでは、1 つのパラメーターを受け取るストアド プロシージャを実行するための WCF-Custom 送信ポートを構成する方法について説明します。 WCF-SQL ポートを構成することで、同じ手順を実行できます。 WCF-SQL ポートの構成手順については、「 WCF-SQL アダプターを使用してポートを構成する」を参照してください。
オーケストレーションなしでストアド プロシージャを呼び出す
オーケストレーションを使用せずに単一パラメーターでストアド プロシージャを実行する方法を示すために、このトピックではストアド プロシージャADD_LAST_EMP_XML_INFO使用します。 この手順では、XML 値をパラメーターとして受け取り、Employee テーブルの Address 列に挿入します。 ストアド プロシージャに渡す XML 値が必要です。 ただし、アダプターを使用してストアド プロシージャを実行するには、プロシージャのスキーマに準拠し、Address フィールドの XML 値を含む要求メッセージをSQL Serverに送信する必要があります。 そのため、次の方法でその要求メッセージを作成する必要があります。
メッセージ テンプレートを使用して要求メッセージを作成できる、送信ポート構成で [ テンプレート ] オプションを使用します。
Address フィールドの XML 値をメッセージに格納します。
これらすべての手順については、このトピックで詳しく説明します。 次の一連のタスクを実行する必要があります。
EMPLOYEE テーブルの Address XML フィールドに挿入される XML ファイルを削除する FILE 受信ポートを作成します。 このポートが MessageIn ポートと呼ばれるとします。
FILE 受信ポートから XML ファイルを選択し、メッセージ テンプレートを使用してメッセージを構築し、ストアド プロシージャを実行するためにSQL Serverに送信する、WCF-Custom 一方向送信ポートを作成します。
このトピックでは、メッセージ テンプレートを使用して WCF-Custom 送信ポートを構成する手順について説明します。
Note
このトピックの情報では、1 つの XML パラメーターを使用してストアド プロシージャを実行する方法を示していますが、タスクを実行して、任意のデータ型の 1 つのパラメーターを受け取る操作を実行できます。 唯一の違いは、特定の操作のメッセージ テンプレートを作成する方法です。 メッセージ テンプレートを作成するには、オーケストレーションを使用して操作を実行するために使用する要求メッセージを取得し、パラメーターの値を BizTalk メッセージ本文に置き換えます。
WCF-Custom 送信ポートを構成する
WCF-Custom 送信ポートを作成する前に、FILE 受信ポート MessageIn を作成していることを確認してください。
BizTalk Server管理コンソールを起動します。
コンソール ツリーで、[ BizTalk グループ] を展開し、[アプリケーション] を展開 します。
SQL アダプターをデプロイするアプリケーションを展開します。
[ 送信ポート] を右クリックし、[ 新規] をポイントし、[ 静的一方向送信ポート] をポイントします。
[ 送信ポートのプロパティ ] ダイアログ ボックスの [ 全般 ] タブで、送信ポートの名前を入力します。
FILE 受信ポート MessageIn でドロップされたすべてのメッセージを受信するようにポートを構成します。
[ 送信ポートのプロパティ ] ダイアログ ボックスの左側のウィンドウで、[ フィルター] をクリックします。
右側のウィンドウの [ プロパティ ] 列で、グリッドをクリックし、[BTS] を選択します 。ReceivePortName プロパティ。
[演算子] 列で、"==" を選択します。
[ 値 ] 列に、FILE 受信ポート
MessageIn
の名前 を指定します。
[ 送信ポートのプロパティ ] ダイアログ ボックスの [ 全般 ] タブの [ 種類 ] ドロップダウン リストから [ WCF-Custom] を選択し、[ 構成] をクリックします。
[ WCF-Custom Transport Properties]\(WCF カスタム トランスポートのプロパティ \) ダイアログ ボックスで、次の操作を行います。
[全般] タブをクリックし、[アドレス (URI)] フィールドで、SQL Serverの接続 URI を指定します。 接続 URI の詳細については、「SQL Server接続 URI を作成する」を参照してください。
[ 全般 ] タブの [ アクション ] テキスト ボックスに、操作のアクションを入力します。 各操作のアクションの一覧については、「 メッセージとメッセージ スキーマ 」を参照してください。 たとえば、ADD_LAST_EMP_XML_INFOを呼び出すアクションは次のとおりです。
Procedure/dbo/ADD_LAST_EMP_XML_INFO
[ バインド ] タブをクリックし、[ バインドの種類 ] の一覧から [sqlBinding] を選択します。 SQL アダプターによって公開されるさまざまなバインディング プロパティを指定できます。 バインド プロパティの詳細については、「BizTalk Adapter for SQL Server adapter Binding Properties」を参照してください。
[資格情報] タブをクリックし、次のいずれかの操作を実行します。
[シングル サインオンを使用しない] オプションを選択し、SQL Serverに接続するユーザー名とパスワードを指定します。 ユーザー名とパスワードでは大文字と小文字が区別されることに注意してください。
Note
Windows 認証を使用してSQL Serverに接続する場合は、空のユーザー名とパスワードを指定します。
[ シングル サインオンの使用 ] オプションを選択し、関連する Enterprise シングル サインオン (SSO) アプリケーションを指定します。
BizTalk Serverに関するセキュリティの詳細については、「SQL アダプターとBizTalk Serverを使用したセキュリティ」を参照してください。
[ メッセージ ] タブをクリックし、[ 送信 WCF メッセージ本文 ] セクションで [ テンプレート ] オプションを選択します。
[ XML ] テキスト ボックスで、WCF メッセージの作成に使用するテンプレートを指定します。 これにより、WCF ベースの SQL アダプターのADD_LAST_EMP_XML_INFO操作に準拠するメッセージを作成します。
のテンプレートを指定する
ADD_LAST_EMP_XML_INFO ストアド プロシージャの場合は、次のテンプレートを指定する必要があります。
<ADD_LAST_EMP_XML_INFO xmlns="http://schemas.microsoft.com/Sql/2008/05/Procedures/dbo"> <xml_info> <bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="string"/> </xml_info> </ADD_LAST_EMP_XML_INFO>
重要
メッセージ テンプレート内のエンコードは、送信ポートを使用して呼び出される操作のパラメーターの型に関係なく、常に "string" である必要があります。 たとえば、ADD_LAST_EMP_XML_INFOは XML 型のパラメーターを受け取りますが、メッセージ テンプレートのエンコードは string です。
Note
このメッセージ テンプレートを作成するには、ストアド プロシージャの要求メッセージをコピーし、xml_info> タグ内の<値を BizTalk メッセージ本文に置き換えます。 ストアド プロシージャの要求メッセージを取得するには、アダプター サービス アドインを使用してプロシージャのスキーマを生成し、スキーマのインスタンスを生成して要求 XML を取得します。
[ 送信ポートのプロパティ ] ダイアログ ボックスに戻すには、[OK] をクリック します。
[ 送信ハンドラー ] ボックスの一覧から [ BizTalkServerApplication] を選択します。
[ パイプラインの送信 ] ボックスの一覧から、 PassThruTransmit に対応するパイプラインを選択します。
[OK] をクリックします。
アプリケーションを起動する
BizTalk アプリケーションを起動するには、FILE 受信場所と WCF-Custom 送信ポートの両方を個別に起動します。 ここで、XML ファイルを FILE 受信場所にマップされたフォルダーにコピーする必要があります。 BizTalk アプリケーションはファイルを使用し、XML 値は Employee テーブルの Address 列に挿入されます。 これを確認するには、SQL Server クライアントを使用し、Employee テーブルからレコードを選択します。
双方向 WCF-Custom 送信ポートの使用
このトピックの「 How to Configure a WCF-Custom Send Port」セクションの手順では、BizTalk オーケストレーションを使用せずに単一パラメーターでストアド プロシージャを実行するように一方向 WCF-Custom 送信ポートを構成する方法を示します。 ただし、このような場合は、ストアド プロシージャが正常に実行されたかどうかを確認するには、Employee テーブルの Address 列が更新されたかどうかをSQL Server データベースで確認する必要があります。
代わりに、ストアド プロシージャが正常に実行された場合にSQL Serverから応答を取得する双方向 WCF-Custom 送信ポートを作成できます。 双方向の WCF-Custom ポートを作成する場合は、追加の手順をいくつか実行する必要があります。 前の手順で説明したように、ファイルの受信場所は引き続き必要であることに注意してください。
双方向 WCF-Custom 送信ポート ( ExecProcedure など) を作成します。 送信ポートを構成する手順は、一方向の送信ポートの手順と似ています。 唯一の違いは、双方向ポートの場合は、受信パイプラインも指定する必要があるということです。 受信パイプラインに 対して [PassThruReceive ] を選択していることを確認します。
FILE 送信ポートを作成します。 このポートは、SQL Server データベースからフォルダーに応答メッセージを削除します。 [ポートのプロパティ] ダイアログ ボックスの [ フィルター ] タブを使用して、WCF-Custom 送信ポートからすべての応答メッセージを受信するように FILE 送信ポートを構成します。
[ 送信ポートのプロパティ ] ダイアログ ボックスの左側のウィンドウで、[ フィルター] をクリックします。
右側のウィンドウの [ プロパティ ] 列で、グリッドをクリックし、[BTS] を選択します 。SPName プロパティ。
[演算子] 列で、"==" を選択します。
[ 値 ] 列に、WCF-Custom 送信ポート
ExecProcedure
の名前 を指定します。
3 つのポートをすべて起動します。 XML ファイルを FILE 受信場所にマップされたフォルダーにコピーします。 FILE 送信ポートにマップされているフォルダーで応答を探します。