2

オーケストレーション名を知っている BizTalk オーケストレーションを動的に呼び出すにはどうすればよいですか?

呼び出しオーケストレーション シェイプは、設計時にオーケストレーションの名前とパラメーターを認識する必要があります。「call」XLang キーワードを使用してみましたが、式の形のように設計時にオーケストレーション名も必要でした。次のように記述できます。

call BizTalkApplication1.Orchestration1(param1,param2);

着信メッセージまたは SSO 構成ストアからの呼び出し元のオーケストレーション名を指定する方法を探しています。

編集: BizTalk 2006 R1 を使用しています (ESB ガイダンスは R2 用であり、問​​題を解決する方法がわかりませんでした)

4

2 に答える 2

4

私が過去に同様のことを達成した方法は、オーケストレーションでダイレクト バインディング ポートを使用し、MsgBox に面倒な作業を任せることでした。基本的には、次のようになります。

  1. 呼び出し可能なオーケストレーションが、アクティブ化された受信シェイプにアタッチされた直接バインドされたポートを使用するようにします。
  2. カスタム コンテキスト ベースのプロパティを使用してアクティブ化受信図形にフィルター式を設定し、それをオーケストレーションを一意に識別する値 (オーケストレーション名など) と等しくなるように設定します。
  3. 呼び出し元のオーケストレーションで、新しいオーケストレーションを起動するために使用するメッセージを作成します。そのメッセージで、カスタム コンテキスト プロパティを、起動する特定のオーケストレーションで使用されるフィルターと一致する値に設定します。
  4. メッセージが MsgBox に直接送信されるように、直接バインドされた送信ポートを介してメッセージを送信し、BizTalk の Pub/Sub メカニズムが残りを処理します。

手順 4 で注意すべき点: これを正しく機能させるには、カスタム コンテキスト プロパティを含む新しい相関セット タイプを作成し、直接バインドされた送信ポートが相関セットに「従う」ようにする必要があります。送信します。そうしないと、カスタム プロパティは msg コンテキストにのみ書き込まれ (昇格されず)、ルーティングは失敗します。

お役に立てれば!

于 2008-09-18T13:08:58.097 に答える
-1

ESBガイダンスをご覧ください(www.codeplex.com/esb)このパッケージは、探している機能を提供します

于 2008-09-16T13:44:15.423 に答える