フィルター式は、Activate プロパティの値 True を指定するオーケストレーション受信図形に適用できる省略可能なパラメーターです。 フィルター式が指定されている場合、受信メッセージがフィルター式で指定された条件と一致する場合にのみオーケストレーションがアクティブになります。 フィルター式が指定されていない場合は、オーケストレーションがサブスクライブする受信メッセージによってオーケストレーションがアクティブ化されます。
フィルター式を作成するには、式の左側にある受信メッセージのプロパティと、式の右側にある定数を比較します。 AND 演算子と OR 演算子を 2 つ以上の式に適用して、複合式を作成することもできます。 フィルター式を空白のままにしてもかまいません。その場合、すべてのメッセージが受け入れられます。
フィルター式は次のようになります。
InvoiceSchema.Quantity >= 1000
この例では、受信メッセージがオーケストレーションに表示されます。 オーケストレーションには、前述のフィルター式が適用されたアクティブ化 受信 図形があります (特定のメッセージを受信するとオーケストレーションが実行されるように、 Activation プロパティが True に設定されています)。 受信メッセージには、 名前空間 InvoiceSchema に Quantity というプロパティが必要です。 オーケストレーションは、1000 個以上の項目の請求書のみを受け入れるため、ランタイム エンジンは、実行前に受信メッセージを確認します。
次の表に、フィルター式で使用できる演算子を示します。
| オペレーター | 説明 | 例 |
|---|---|---|
| == | 等しい | ReqMsg(Total) == 100 |
| != | 等しくない | ReqMsg(Total) != 100 |
| < | より小さい | ReqMsg(Total) < 100 |
| > | より大きい | ReqMsg(Total) > 100 |
| <= | 以下 | ReqMsg(Total) <= 100 |
| >= | 以上 | リクエストメッセージ(合計) >= 100 |
| 存在 | 存在 | ReqMsg(Description) が存在します |
注
フィルター式の文字列値は引用符で囲まれます。たとえば、ReqMsg(Description) = "発注書の状態" です。 フィルター式で文字値を使用することはできません。
注
アクティブ化受信がダイレクト バインド ポートに関連付けられている場合、その後、フィルターでテストされたプロパティに対して同じ値を持つ同じ型のメッセージを送信すると、無限ループが作成されます。 メッセージは MessageBox に移動し、フィルター条件に一致するため、メッセージが再び取得されます。 これを回避するには、別のプロパティでフィルター処理するか、別の型のメッセージを送信するか、同じ型のメッセージを送信する前にプロパティの値を必ず変更する必要があります。
こちらもご覧ください
受信図形を構成する方法
オーケストレーションでの相関関係の使用
識別フィールドとプロパティ フィールドの使用
オーケストレーションでのメッセージの使用