在此流程中,我已验证当过滤器返回“false”时,流程仍将继续。但有效载荷略有不同。我需要完全停止这些消息。
<foreach doc:name="For Each"> <选择文档:名称=“选择”> 当表达式="#[payload['event'] 包含'delete' ]"> <!-- 此路径与此问题无关--> </当> <否则> <flow-ref name="getMessages" doc:name="FlowToGetMessages"/> <!-- 这(下)将从上述流程返回的数组中提取单行值(映射)--> <collection-splitter doc:name="Collection Splitter"/> <expression-filter expression="#[payload['activity'] != null && payload['activity'] != "" ]" doc:name="Block Empty Rows"/> <custom-filter class="package.BlockNullAnnouncementEvents" doc:name="Block null"/> </否则> </选择> ...
下一个处理器(在选择之后)获得 A)如果消息通过了过滤器测试 BlockNullAnnouncementEvents 的单个值或 B)如果存在 null 并且过滤器未通过相同的测试,则具有一个值的数组
在我看来,如果一条消息未通过过滤器测试,那么对流 getMessages 的调用结果将返回到 for-each 的顶部,后者将其传递到选择分支之后的流的下一部分包含过滤器。