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