受信形状
受信図形を使用してオーケストレーションを開始できます。 Activate プロパティを True に設定すると、ランタイム エンジンは受信メッセージをテストして、受信メッセージが適切な型であるかどうかを確認し、フィルターが適用されている場合はフィルター式が満たされているかどうかを確認します。 メッセージの受信条件が満たされている場合、ランタイム エンジンは新しいオーケストレーション インスタンスを作成して実行し、 受信 図形はメッセージを受信します。
注
受信図形の Activate プロパティが True に設定されている場合、 受信 はオーケストレーションの最初のアクションである必要があります。
注
すべての受信図形でActivateプロパティがFalseに設定されている場合、そのオーケストレーションを実行するには、別のオーケストレーションから呼び出す必要があります。
注
Activate プロパティが True に設定されたスコープ内に Receive 図形を配置し、変数の既定のコンストラクターの使用プロパティを False に変更せずに .NET クラス変数をオーケストレーションに追加した場合、activate receive ステートメントは生成された XLANG/S コードのスコープ外になりますが、デザイン 画面では引き続きスコープ内として表示されます。
各オーケストレーションには、Activate プロパティが True に設定された受信図形が少なくとも 1 つ必要です。
以前に送信したメッセージに対して (要求応答ポートではなく) 間接応答または非同期応答を受信する場合は、メッセージをオーケストレーションの現在実行中のインスタンスと関連付けて、回答者が正しいインスタンスへの応答を取得できるようにする必要があります。 受信メッセージ内の値に対して後続の相関関係を実行する予定の場合は、初期化関連付けセットを受信図形に適用するか、以前に初期化された関連付けセットを使用して関連付けるために次の関連付けセットを適用できます。 詳細については、「 オーケストレーションでの相関関係の使用」を参照してください。
受信図形を構成するには
メッセージとポート操作を設定します。
[オーケストレーション ビュー] ウィンドウで、受信するメッセージの種類に対して、オーケストレーションにメッセージとポート操作の両方が定義されていることを確認します。
[プロパティ] ウィンドウで、[メッセージ プロパティ] ドロップダウン リストから受信する メッセージ を選択します。
[プロパティ] ウィンドウで、[操作] ドロップダウン リストからメッセージを受信するポート 操作 を選択します。
または、
受信コネクタを 受信 図形から、メッセージを受信するポート ソケットにドラッグします。
受信図形がオーケストレーションをアクティブにすることを指定します。
[プロパティ] ウィンドウで、Activate プロパティを True に設定します。
[プロパティ] ウィンドウで、「フィルター式」プロパティの 省略記号 (...) ボタンをクリックして、この 受信シェイプ が受信するメッセージを制限するフィルターを作成します。
または、
Receive 図形を右クリックし、フィルター式の編集 をクリックします。
[ フィルター式 ] ダイアログ ボックスが表示されます。 このダイアログ ボックスを使用して、1 つ以上のフィルター式を作成します。
注
フィルターを適用する前に、メッセージの種類を定義して 受信 図形に割り当てる必要があります。
関連付けセットを指定して、受信図形が受け入れるメッセージを制限します。
追跡したい関連付けセットごとに、次の関連付けセットプロパティのドロップダウンから関連付けセットを選択します。
初期化する関連付けセットごとに、[関連付けセットの初期化] プロパティのドロップダウンから 関連付けセットを 確認します。
フィルター式のグリッドコントロール
フィルター式を作成するには、このグリッド コントロールを使用して、式を構成する述語を定義します。 グリッドのセルから述語を追加、編集、削除できます。 このグリッド コントロールには、Property、Operator、Value、Grouping の 4 つの列があります。
財産。 プロパティ参照を入力することも、セルのドロップダウン リストから参照を選択することもできます。 このリストには、受信メッセージのプロパティが含まれています。
演算子。 このセルに入力することも、ドロップダウン リストから演算子を選択することもできます。 可能な選択肢は次のとおりです。
オペランド 意味 == 次の値に等しい != 等しくない < 未満です <= 以下または等しい > より大きい >= 以上または等しい 存在する 存在する 値。 [値] 列のセルには、文字列リテラル、整数リテラル、null など、入力した任意の定数を保持できます。
注
選択したプロパティが文字列型の場合、値は引用符で囲む必要があります。 たとえば、SMTP.From = "MyServer" のように設定します。
グルーピング。 この列を使用して、述語のグループ化を制御します。 フィルター式は常に非結合標準形式 (DNF) で表されるため、グループ化を自動的に決定できます。 AND は、述語がそれに続く述語でグループ化されることを意味し、OR は述語が次の行の述語から分離されていることを意味します。 述語がグループ化されると、グリッド コントロールの左側の灰色の角かっこが表示されます。 述語グループを入れ子にすることはできません。 このセルに値を指定しない場合、セルの値は既定で AND になります。
たとえば、次のような式を作成できます。
MSMQ.MsgID = 1
このフィルターを使用すると、送信ポート グループは、MSMQ メッセージ ID が 1 のメッセージのみをサブスクライブします。
追加の式を作成し、他の式と AND または OR 関係があることを指定できます。次に例を示します。
MSMQ.MsgID = 1 OR
SMTP.From = "MyServer"
この場合、送信ポート グループは、MSMQ メッセージ ID が 1 であるか、MyServer という SMTP サーバーから送信されたすべてのメッセージをサブスクライブします。
ヒント ラベル
このフィールドは、ユーザー ガイダンスを提供します。 ラベル テキストは、アクティブ セルを含む列に応じて変わります。 このテキストには、列名とガイダンス テキストが次のように表示されます。
財産。 受信メッセージのプロパティを一覧から選択してください。
演算子。 プロパティと Value を比較する演算子を選択します。
値。 一覧からメッセージ プロパティを選択するか、リテラル値を入力します。
グルーピング。 この行を次の行とグループ化する方法を指定します。 'AND' は行を結合し、'OR' は行を区切ります。
[上へ移動] ボタン
これをクリックして、選択した行を上に移動します。 (最初に、グリッド コントロールの左側にある 右矢印 (>) ボタンをクリックして行を選択します)。
[下へ移動] ボタン
これをクリックして、選択した行を下に移動します。 (最初に、グリッド コントロールの左側にある 右矢印 (>) ボタンをクリックして行を選択します)。
作成済みフィルター式フィールド
この読み取り専用のテキスト ボックスには、作成中の式が表示されます。