External tool


I run a program using external tool which does not produce any output,
but I also understand that this does not allow external tool like I do?
I tried to append a node Writer CVS but not allow me to configure
or report error.

thanks Pam

Hi Pam,

I am not quite sure if I understand the problem.
I assume you are using our External Tool Node to run an external program that doesn’t produce any output. That shouldn’t be a problem. The node does require an output file, so it can provide data at its output, but you could just specify the input file as output file.
Now, what are you trying to do with the CSV Writer? Does your external tool need a special data format that can’t be written with the ExtToolNode? Then it is not really possible to synchronize the ExtToolNode with the CSVWriter. KNIME will execute nodes in parallel if the workflow permits. Thus the ExtToolNode would be executed while the CSVWriter is still writing to the input file.
But maybe I not getting the problem right. Let me know if this didn’t really help.

  • Peter.

Dear Peter,

Well … then I have only partially solved the problem, now I explain better. I have a file format that It’s not supported by CSV Write (FITS), but I have a converter transforms a CSV file to FITS file.
I need an output FITS file, did all the operations through a pipeline finishing with a CSV Write, how could synchronize the output of the latter with the entrance to an External Tool (which effects the conversion)?



Hi Pam!
How about you call a shell script in the external tool node?(Shell script or batch file under windows.)
Would that work?
I think of a script that first translates CSV to FITS and then calls the external tool.

  • Peter.

Goodmorning Peter,

I tried to configure External Tool (E.T.) with a bath file (that invokes my converter) for executable file, for input and output file an empty file the same for both ( prova.csv ).
But External Tool return an error of execution (“Execute failed - invalid number of columns specified ('0 ')”).
Additionally, the node CSV (that It’s connected at the exit of E.T.) does not allow me to configure it. Consider that the bath file is working as I have tested.


Guten Abend Pam,
here is the flow I have in mind:
Your ExtToolNode is connected to a node that creates a (preferably not empty) data table.
The ExtToolNode is configured to write to the input file (for example) “/tmp/infile.csv”, using a comma as separator.
The output file is set to “/tmp/outfile.csv” - again with comma as separator.
The Path to the Executable should be then “/tmp/myScript” (e.g., and the script must be executable).
The content of that script is something like this:
/home/pam/scripts/convertCsvToFITS -input=/tmp/infile.csv -output=/tmp/infile.fits
/tools/fitstool/bin/tool -input /tmp/infile.fits -output /tmp/fileForKnime.fits
/home/pam/scripts/convertFITStoCSV -input=/tmp/fileForKnime.fits -output=/tmp/outfile.csv
Now, if the tool doesn’t create an output file (because it writes into a data base for example), the ExtToolNode still needs an output file to read. In this case, set the output file in the node’s dialog to the same path as the input file (and delete the last line in my example script). The node provides the input data at it’s output port then, and you can ignore it. The output file that you specify in the node’s dialog shouldn’t be empty.
Not sure if this was somehow helpful. Keep asking, I’ll get it one day…

  • Peter.

Hello Peter,
the problem of conversion is solved, the problem now is that I have to create two workflow as I can synchronize the output of the first workflow with the entrance of the second workflow? The fictional is the only viable solution at the moment? is expected to issue a node format conversion?
you can read and interpret correctly the XML file within the node or if it has no need for External conversion tool?


Hi Pam,
at the moment there is no way to synchronize two independend workflows.
You could, if you can, create a “super-flow” that contains two Meta-Nodes and paste each of your workflows in one of the meta nodes. (You would need some data to flow from the first meta node to the second one though.)
Is that something that seems doable?

  • Peter