在此流程中,我已验证当过滤器返回“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 的顶部,后者将其传递到选择分支之后的流的下一部分包含过滤器。