オーケストレーションでロール リンクを使用するために完了する必要がある基本的なタスクを次に示します。
パーティを作成し、ポートを送信し、相互に関連付けます。
ロール リンクの種類を作成し、ポートの種類を追加するには、次の手順に従います。
ロール リンクの種類を作成するには 1. [オーケストレーション ビュー] ウィンドウで、[ 種類] を展開し、[ ロール リンクの種類] を右クリックし、[ 新しいロール リンクの種類] をクリックします。
2. 先ほど作成したロール リンクの種類をクリックします。 [プロパティ] ウィンドウの [ 識別子 ] フィールドに「Provider_Consumer_RoleLinkType
」と入力します。
3. Provider_Consumer_RoleLinkTypeを展開し、[ Role_1] をクリックします。 [プロパティ] ウィンドウの [ 識別子 ] フィールドに「ConsumerRole
」と入力します。
4. ConsumerRole を右クリックし、[ ポートの種類の追加] をクリックします。 ポートの種類ウィザードが起動します。
5. [ポートの 種類ウィザードへようこそ ] ページで、[ 次へ] をクリックします。
6. [ ポートの種類の選択] または [新しいポートの種類の作成] ページで、[ 新しいポートの種類の作成] を選択し、[ ポートの種類の名前] に「ConsumerPortType
」と入力します。
7. [通信パターン] で [ 一方向] を選択し、[ アクセス制限] で [ パブリック - 制限なし] を選択します。 [次へ] をクリックします。
8. [ ポート ウィザードの完了 ] ページで、[完了] をクリック します。
9. Provider_Consumer_RoleLinkTypeを右クリックし、[ 新しいロール] をクリックします。
10. [ Role_1] をクリックし、[プロパティ] ウィンドウの [ 識別子 ] フィールドに「ProviderRole
」と入力します。
11. ProviderRole を右クリックし、[ ポートの種類の追加] をクリックします。 ポートの種類ウィザードが起動します。
12. [ ポートの種類ウィザードへようこそ ] ページで、[ 次へ] をクリックします。
13. [ ポートの種類の選択] または [新しいポートの種類の作成] ページで、[ 新しいポートの種類の作成] を選択し、[ ポートの種類の名前] に「ProviderPortType
」と入力します。
14. 通信パターンの場合は、 一方向を選択し、 アクセス制限の場合は[ パブリック - 制限なし]を選択します。 [次へ] をクリックします。
15. [ ポート ウィザードの完了 ] ページで、[完了] をクリック します。 手記: ロール リンク内に配置された構成済みポートは、関連付けられているバインディング情報を保持しません。前の手順では、2 つのロールを含むロール リンクの種類を作成します。これは、コンシューマーからのメッセージを受信して処理する ProviderRole と、オーケストレーションが、メッセージをコンシューマーに送信するためにロールに提供された送信ポートを使用する ConsumerRole です。
注
ロール リンクの種類には、プロバイダー ロールとコンシューマー ロールを含めることができます。また、ビジネス プロセスのニーズに応じて、いずれか 1 つまたはいずれかを含めることができます。
オーケストレーションにロール リンクを追加するには、次の手順に従います。
ロール リンク ウィザードを使用してロール リンクを作成するには 1. オーケストレーション ツールボックスで、 ロール リンク 図形をデザイン画面にドラッグします。 これにより、ロール リンク ウィザードが起動します。
2. [ 役割リンク ウィザード へようこそ] ページで、[ 次へ] をクリックします。
3. [ ロール リンク名] ページの [ 名前 ] フィールドに「Provider_Consumer
」と入力します。 [次へ] をクリックします。
4. [ ロール リンクの種類] ページで、[ 既存のロール リンクの種類を使用する] を選択します。 [ ロール リンクの種類名] ドロップダウン リストで、[ Provider_Consumer_RoleLinkTypeを選択します。 [次へ] をクリックします。
5. [ロールの識別] ページで、[パートナーからのメッセージの受信と処理を行うために、このオーケストレーションが実装する役割] ボックスの一覧から [ProviderRole] を選択します。 ウィザードは、 ConsumerRole を自動的に選択します 。このオーケストレーションでは、次のロールを使用して、ロール内のポートでパートナーにメッセージを送信します。 [次へ] をクリックします。
6. [ ロール リンクの使用状況 ] ページで、[ パートナーのロールに最初のメッセージを送信します] を選択します。 [完了] をクリックします。前の手順では、ConsumerRole を開始する役割としてさらに詳しく定義します。 つまり、オーケストレーションは ConsumerRole によって提供されるポートを介してコンシューマーに最初のメッセージを送信し、ProviderRole はコンシューマーから送信されたメッセージを受信して処理を進めるということです。
注
ロール リンクの種類にロールが 1 つしかない場合は、 プロバイダー ロール を選択してビジネス プロセスでロールを定義する必要があります。最初のメッセージまたはコンシューマー ロールを受信します。前の手順の手順 5 を実行する代わりに 、最初のメッセージを送信 します。
ビジネス プロセスを設計します。 関連付けセットを利用して、受信メッセージがオーケストレーションの適切なインスタンスと一致することを確認できます。
ポートを送受信図形に関連付けます。 さらに、次の操作を実行します。
開始ロールがメッセージを送信するためのコンシューマーである場合は、オーケストレーションで DestinationParty プロパティを明示的に設定します (1 回のみ)。 これを行うには、次の例のように、式図形の DestinationParty の値を設定します。ConfirmOrder はロール リンクの名前、PartnerName と OrganizationName はパーティのパラメーターです。
ConfirmOrder(Microsoft.XLANGs.BaseTypes.DestinationParty) = new Microsoft.XLANGs.BaseTypes.Party("PartnerName", "OrganizationName");
開始ロールがメッセージを受信するためのプロバイダーである場合、 DestinationParty プロパティは受信側によって自動的に初期化されます。 DestinationParty はプロバイダー自体に設定されます。 SourceParty プロパティは読み取り専用であり、信頼されたパイプライン コンポーネントを介して提供され、送信者のセキュリティ識別子 (SID) またはパーティに関連付けられている証明書に基づいてパーティー名を解決します。 パイプライン コンポーネントを実行しているホストは、 認証信頼済みとしてマークされている必要があります。 次のサンプル コードを使用して、式図形の SourceParty の値を取得できます。
PartyName = Buyer_Supplier(Microsoft.XLANGs.BaseTypes.SourceParty);
ロール リンクの使用例
https://go.microsoft.com/fwlink/?LinkId=73703にある BizTalk Server コード サンプルから、SDK サンプルの "役割リンクの使用" をダウンロードします。