New feature wanted!

The external tool node saves the output from previous node to a file and feed the file to the command it runs as input. But often the file saved by external tool node is not in the right format and so cannot be used. I only specify a dummy file name here since a file name is required for running. It would be helpful if there is a "write" node (sln, sdf etc.) which can not only write contents to a file but also has a data output to link to the External tool node. In this way, the External tool node can simply pick up the saved file as input for its command.

Please let me know if there is actually a better solution!


Hi Liu,

Not sure, if I understand the problem - but couldn't you just insert that writer node in the pipeline, as a predecessor node to the ExtToolNode, and let your external tool pick up the data from the location the writer stored it to?
The ExtToolNode doesn't automatically feed the file to the external tool (as you know), you have to specify the filename in the command line as argument for the tool to pick it up from there. Couldn't you just specify the writer's location there?

I agree the ExtToolNode is not the most convenient one to configure. We probably have to improve its dialog and options some time. Some time...
- Peter.

Usually, the "writer" node has no input port, and therefore it can only be the last node in a workflow. That is why I hope there is a "writer" node that has a dummy output port so that it can be pugged in the middle of a workflow.

Hi Liu,

You are right, it won't work the way I suggested - you can't synchronize the execution of the ExtTool node on the writer.
But creating dummy ports doesn't really fit nicely into KNIME's concept, and we won't introduce it just for the ExtTool node.
I'm afraid you would have to reformat the output file in your external script with these awkward tools like awk, sed, grep, head, tail, etc.

- Peter.