Describe the issue/error/question
When setting up merge nodes, they will
initiate previous nodes (even if they haven’t been activated). Reducing this to a very simple example:
NoOp1 (even though not set to run) is forced to run (
Merge requires its data and therefore initiates it).
What I am trying to achieve is as follows (desired behaviour; achieved for now with photoshop):
The purpose of wanting the desired behaviour is to be able to have two triggers (at NoOp and NoOp1), but for only the relevant pathway to run based on which trigger is activated (to allow for common nodes, but then nodes specific to the trigger)
How can we modify the workflow below to achieve the desired behaviour?
@pb84, this is the expected behaviour I am afraid. The Merge node will pull in data from connected input branches nodes, even if these branches wouldn’t normally run.
In your example the solution is simple though, simply don’t use a merge node.
With the Merge node, the top branch will run:
Without it the top branch won’t run and you would only get one item on your final node:
I know this is confusing and can make things more complicated, so please accept my apologies for the inconvenience this causes.
You might want to leave a vote on this feature request to have this changed in the future:
The idea is:
The Merge node has a unique behavior in which it activates connected nodes independently (please also add an explanation in the documentation here: Merge | Docs). I think it’s something that should be configurable in the node.
My use case:
I had multiple cases in which the Merge node triggered nodes that were not supposed to be triggered (usually in an unused path of an IF node).
I think it would be beneficial to add this because:
It gives more control of the Merge node, in …
@MutedJam, your explanation makes sense. No issue this end if there is a functionality workaround.
See if we don’t use a merge node, the problem is that
NoOp10 will still run; and then that we’ll get three items (rather than 1) running into NoOp9
Any thoughts on how we could get the following to work:
(but with one output from
NoOp10 only runs if NoOp6 has run (i.e. it is an ALL conditional running into the node, not an OR conditional)