Regarding my experience in working with KNIME and some questions in the forum, I think it’s a good idea to add an “Index Port” to the nodes, metanodes and components. This port transfers nothing between nodes but makes them to be executed in a specific order in case they are not connected to each other by data or variable ports. These ports can have “many to many” connections.
The image below demonstrates the index ports (black dots). A reason for not using the variable port here can be a situation where we want the latter node to be executed even if the former node has failed.
This can be achieved by adding an option to the configuration window of the nodes (and components) to specify an index number but I think the index ports are better.
Actually I have thought about this.
One knows that using this port will keep the flow running. When someone needs to keep a part of the flow (with separated nodes) running in a specific order even if one of the nodes in that part has failed, he/she can use this feature.
Anyway, to overcome this concern, one option is to add an “Index Port” tab to the configuration window of the nodes and provide 2 options to stop the flow in case of failure or keep the flow running. If we choose to stop, it behaves like a variable port but still there can be reasons not to use the variable port like preventing variable overlapping.
It says: The component on the right must be executed after the component on the left AND the CSV Writer (node 6). It waits until they are both executed successfully or failed but never runs before them or simultaneously. The left component and the CSV Writer have nothing to do with each other and they run normally.
When we execute this workflow, the left component and the table creator run, when the table creator is executed successfully then the CSV Writer (node 6) is executed. The component on the right was ready to run from the beginning but waits for both the component on the left and the CSV Writer (node 6). After they are executed successfully or failed, then it runs. The Excel Writer is ready to run when the table creator is executed but it waits for the CSV Writer to run successfully or fail.