搭配使用篩選與接收訊息圖形
篩選條件運算式是選擇性的參數,可以套用至將 [啟動] 屬性指定為 True 值的協調流程接收圖形。. 如果有指定篩選條件運算式,協調流程便只會在內送訊息符合篩選條件運算式中指定的條件時啟動。 如果沒有指定篩選條件運算式,協調流程所訂閱的任何內送訊息都會啟動該協調流程。
若要建立篩選條件運算式,您可以比較運算式左邊的內送訊息屬性和運算式右邊的常數。 您也可以將 AND 和 OR 運算子套用至兩個或多個運算式,以便建立複合運算式。 您也可以將篩選條件運算式留白,在此情況下,便會接受所有的訊息。
篩選條件運算式可能會與下列相似:
InvoiceSchema.Quantity >= 1000
在此範例中,會對協調流程展示內送訊息。 協調流程具有啟用 接收 圖形, (Activation 屬性設定為 True ,讓收到特定訊息會導致協調流程) 套用上述篩選運算式。 傳入訊息預期在命名空間 InvoiceSchema中具有名為 Quantity 的屬性。 協調流程只接受 1000 個以上項目的發票,因此執行階段引擎會在執行之前檢查內送訊息。
下表顯示您可以在篩選條件運算式中使用的運算子。
運算子 | 描述 | 範例 |
---|---|---|
== | 等於 | ReqMsg(Total) == 100 |
!= | 不等於 | ReqMsg(Total) != 100 |
< | 小於 | ReqMsg (總計) < 100 |
> | 大於 | ReqMsg (總計) > 100 |
<= | 小於或等於 | ReqMsg (Total) < = 100 |
>= | 大於或等於 | ReqMsg (Total) > = 100 |
exists | exists | ReqMsg(Description) exists |
注意
篩選運算式中的字串值會以引號括住,例如:ReqMsg (Description) = 「Purchase Order Status」。 您無法在篩選條件運算式中使用字元值。
注意
如果您的啟動接收與某個直接繫結連接埠關聯,而且後來針對篩選條件所測試的屬性,傳送具有相同值之相同類型的訊息,就會建立無限的迴圈。 該訊息會移至 MessageBox,並會因為符合篩選準則,而被再度收取。 若要避免這個問題,您應該針對不同的屬性篩選、傳送不同類型的訊息,或是確定在將相同類型的訊息傳送出去之前變更屬性的值。