篩選表達式是選擇性參數,可以套用至協調流程接收圖形,指定 Activate 屬性的 True 值。 如果指定篩選表達式,則只有在傳入訊息符合篩選表達式中指定的條件時,才會啟動協調流程。 如果未指定任何篩選表示式,則協調流程訂閱的任何傳入訊息都會啟動協調流程。
若要建立篩選表達式,您可以比較表達式左邊內送訊息的屬性,以及表達式右側的常數。 您也可以將 AND 和 OR 運算子套用至兩個或多個運算式,以建立複合運算式。 您也可以將篩選表示式保留空白,在此情況下會接受所有訊息。
篩選表示式看起來可能如下所示:
InvoiceSchema.Quantity >= 1000
在此範例中,傳入訊息會呈現至協調流程。 協調流程具有啟用 接收 圖形( Activation 屬性設定為 True ,以便收到特定訊息會導致執行協調流程),並套用上述篩選表達式。 傳入訊息應該在命名空間 InvoiceSchema 中具有名為 Quantity 的屬性。 協調流程只接受 1000 或更多項目的發票,因此運行時間引擎會在執行前檢查傳入訊息。
下表顯示您可以在篩選表示式中使用的運算子。
| 操作員 | 說明 | 範例 |
|---|---|---|
| == | 等於 | ReqMsg(Total) == 100 |
| != | 不等於 | ReqMsg(總計) != 100 |
| < | 小於 | ReqMsg(總計) < 100 |
| > | 大於 | ReqMsg(總計) > 100 |
| <= | 小於或等於 | ReqMsg(Total)<= 100 |
| >= | 大於或等於 | 請求訊息(總數)>= 100 |
| 存在 | 存在 | 請求消息(描述)已存在 |
備註
篩選表達式中的字串值會以引弧括住,例如:ReqMsg(Description) = “Purchase Order Status”。 您無法在篩選表示式中使用字元值。
備註
如果您的啟動接收與直接系結埠相關聯,而且您隨後會針對篩選中測試的屬性傳送具有相同值的相同型別訊息,您將建立無限迴圈。 訊息會移至 MessageBox,因為訊息符合篩選準則,因此會再次挑選該訊息。 若要避免這種情況,您應該篩選不同的屬性、傳送不同類型的訊息,或請務必變更屬性值,再傳送相同類型的訊息。