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