You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Raymond (Jira)" <ji...@apache.org> on 2019/09/12 20:01:00 UTC
[jira] [Comment Edited] (NIFI-6619) RouteOnAttribute: Create new
Routing Strategy to route only first rule that is true
[ https://issues.apache.org/jira/browse/NIFI-6619?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16928854#comment-16928854 ]
Raymond edited comment on NIFI-6619 at 9/12/19 8:00 PM:
--------------------------------------------------------
Thanks for your reply. I think that for RouteByOrder is a valid use case as well. This routing strategy is however one step further from how the current processor works. As Joseph says there is now no ordering implied. I've seen such routing processors at other integration systems. Those go mostly like:
1) Define the rules
2) Set the order (mostly the user moves rules up and down)
3) The processors start a the top rule and goes down. If a rule is true, the processor stops further execution (if none than unmatched)
I think that use case would be better in a separate routing processor to avoid confusion.
The use case of this ticket is more about that rules for example rule A and rule B can both true, but next step expects exactly one message. Now you always gets two messages. This can only be avoided with boolean logic of the expression language (for simple cases, but not with many rules based on multiple attributes) or by making multiple routing steps. New routing strategy would make this possible, but probably when a RouteByOrder processor maybe this strategy would be less nescesary.
was (Author: skin27):
Thanks for your reply. I think that for RouteByOrder is a valid use case as well. This routing strategy is however one step further from how the current processor works. As Joseph says there is now no ordering implied. I've seen such routing processors at other integration system. Those go mostly like:
1) Define the rules
2) Set the order (mostly the user moves rules up and down)
3) The processors start a the top rule and goes down. If a rule is true, the processor stops further execution (if none than unmatched)
I think that use case would be better in a separate routing processor to avoid confusion.
The use case of this ticket is more that there rule A and rule B, those rule can also both true. Now if you always gets two messages. This can only be avoided with boolean logic of the expression language (for simple cases, but not with many rules based on multiple attributes) or by making multiple routing steps
> RouteOnAttribute: Create new Routing Strategy to route only first rule that is true
> -----------------------------------------------------------------------------------
>
> Key: NIFI-6619
> URL: https://issues.apache.org/jira/browse/NIFI-6619
> Project: Apache NiFi
> Issue Type: Improvement
> Components: Configuration
> Affects Versions: 1.9.2
> Reporter: Raymond
> Priority: Major
> Attachments: image-2019-09-12-22-15-51-027.png
>
>
> Currently the RouteOnAttribute has the strategy "Route to Property name". The behavior is that for each rule that is true a message (clone of flowfile) will be sent to the next step.
> I would like to have another strategy:
> "Route to first matched Property name" or "Route to Property name by first match" or Route to first Property name which evaluates true".
> This will ensure that next step gets exactly one message.
>
>
--
This message was sent by Atlassian Jira
(v8.3.2#803003)