1

複数のレコードを含む単純なテーブルを返す StoredProcedure があります。

DECLARE @STEPS_TABLE AS TABLE (OrchestrationID uniqueidentifier, [メッセージ] nvarchar(1000));

-- ここに値をロード

XML AUTO、XMLDATA、ELEMENTS のステップとして SELECT * FROM @STEPS_TABLE

SQL Transport Schema Generation Wizard を使用してスキーマを作成し、ポートを正しく構成できました。このスキーマをオーケストレーションで使用すると、完全に機能します。BizTalk は、@STEPS_TABLE に複数のレコードがあるたびに、オーケストレーションの 1 つのインスタンスを開始します。

Microsoft の技術文書を読むと、1 回の呼び出しで複数のメッセージを取得し、XML パイプラインを使用して複数行の BizTalk メッセージを単一行の BizTalk メッセージに分解することを推奨しています。

以前に XML パイプラインを使用したことがないため、提供された手順を試しましたが、機能しませんでした。

誰かが「ハウツー」へのリンクを提供してくれますか(数時間検索した後、今まで何も見つかりませんでした)、成功するためのヒントを教えてください。

前もって感謝します。

4

1 に答える 1

2

... 数時間後、私は自分でそれを理解することができました。したがって、誰かが私と同じ問題に遭遇した場合、ここにあなたの環境でそれを機能させるためのガイドラインがあります.

最後に、Microsoft の別のウォークスルーに従い、パイプラインの推奨事項を完全に回避しました。私が見つけたドキュメントは、「SQL アダプターを使用した結果セットの逆アセンブル」と呼ばれ、まさに私が探していたものを実行します。Microsoft のチュートリアル全体に従うことができますが、送信ポートの作成を避け、受信ポートを少し調整してください。

技術文書に従うと、最終的に 2 つのスキーマが作成されます。この演習のために、これらをメッセージとエンベロープ (複数のメッセージを含む) と呼びます。オーケストレーションでは、メッセージにマップする受信ポートを作成できます。次に、それを SQL ポートとして構成し、それをストアド プロシージャ (または select ステートメント) にリンクすると、ドキュメント ルート要素名を次のように変更するだけで済みます。エンベロープ ルート名; XML 受信パイプライン (BizTalk 2006 では既定で提供) は、エンベロープに含まれるメッセージを逆アセンブルし、各メッセージのオーケストレーションをインスタンス化する魔法を実行します。

Microsoft の「SQL アダプターを使用した結果セットの逆アセンブル」チュートリアルは、次の場所にあります。

http://msdn.microsoft.com/en-us/library/aa562098(v=bts.20).aspx

任務完了 :)

于 2012-10-23T13:57:58.630 に答える