I ran into a strange issue in any version since 5.2.3: in some workflows, KNIME reports missing nodes, although another node of exactly the same type is present in the workflow.
In this specific case it is the Row Splitter Node, please see screenshot:
Also, if try to ‘repair’ this by following the ‘Do you want to install the missing node extension?’ process, it refers back to the Base Nodes, tries to install them but the problem still persists.
That’s an interesting problem . Could you share the workflow or even just a copy of it with only these two nodes? The knime.log might also be interesting to look at in order to find out what could have gone wrong when loading the base nodes plugin.
I think the dialog pops up because it just sees “node/extension missing” (i.e. not loaded/activated), therefore suggests to install it. It does not know more about why the node is missing. Installation would only solve the problem if it really is the case that the extension is not installed, but the base nodes extension is shipped with every AP installation. The “missing node? → install extension” routine just does not know that.
Hmm weird. Maybe it has to do with me using the Row Filter modern UI and the Row Filter (deprecated) in the same WF? And this then confuses @kowisoft 's KNIME because it is V5.2 and the facelift was only done with 5.3?
Thanks for the hint! Since MartinDDD provided a screenshot I think he used 5.3 to build the workflow. You can see the new Row Splitter and the old, deprecated, Row Splitter:
The one that is missing for you is the new one, because it is not available in 5.2. Making the confusion perfect is the fact that the old one was not deprecated in 5.2 yet, so both are called “Row Splitter” for you. If you go into the workflow’s XML definition, you should see the missing one has the org.knime.base.node.preproc.filter.row3.RowSplitterNodeFactory as factory, and the non-missing one has org.knime.base.node.preproc.filter.row.RowFilter2PortNodeFactory. You can also check by dragging the nodes from Hub: deprecated Row Splitter, new Row Splitter.
So the problem is, that AP is not “forwards-compatible”: if you load a workflow from a “future” version, the behavior is not really “well defined” – in general anything can happen. It should also show a warning popup when opening such a workflow from a newer version in an older version of AP.
For this particular instance, I think it would make sense to not offer the install, if it does not solve the problem and instead show some better error message like “This node is missing since the workflow was created in a newer version (5.3) and this node is only available in version 5.3 and later. The current version is 5.2.5.” (for the newer nodes we have this information). This should be less confusing.
I’ll have a look what is up with the Rule Engine topic separately. If you are certain that you opened a 5.2 workflow in 5.3 (and not vice-versa), then that’s a separate problem.
– @MartinDDDD you are correct and beat me by a minute
On second thought, the old AP version does not know in which version the missing node is available, obviously. But since it contains the factory ID, we could at least link to Hub, where this version info is available.
Maybe some explanation as to why I chose to use both, old and new, versions of the row splitter:
Especially in the context of recursive loops it is very beneficial if you can easily “chop off” a part of a table - in this example the supplier table where only the first supplier of the remaining table of suppliers is “processed”.
The old row splitter makes it very easy by using the row number feature, which unfortunately is not available anymore as far as I know in the new version…
I know there are alternatives, but I have not yet found one that is as convenient…