External Tool (Labs)

Process the input data using an external application. Upon execution the node will write the input table (possibly split into different chunks) to disk, call the external process as given in the command line field and read the generated output into a KNIME table. This table is finally merged with the original input data based upon the row IDs of the input table. The dialog of the node has different tabs that allow the user to change input/output format of the data, the command line and the chunking of the input data.

The different tabs are described below.


External Tool

Enter the command line here. Use the place holders %inFile% and %outFile%, which will finally be replaced by the true path to the generated input file (input file = input data to the external tool = input data of the node) and the output file. Note that the command is executed as an ordinary system call. If you wanted to run the command in a (bash or tcsh) shell, you can call (for bash): /bin/bash -c "<cmd>".

You can partition the input data using the Chunk Size Handling panel. A separate process is spawned for each chunk of input data, e.g. if you choose "Each row individually" it will run as many processes as there are row in the input table. Note that the number of concurrent jobs can be controlled in the Executor tab.

Input File

Choose the format of the input file(s) that are written prior external tool execution. This list will contain only the CSV file format by default, but may be expanded if there are additional plug-ins installed in the KNIME installation (e.g. chemistry aware file formats). You can change the format of the file, whereby each format has different writer settings (e.g. for CSV whether or not to write the column headers).

You may also set the path for the input file in the text field at the bottom. By default the node will choose a path in the system temp folder, whereby it will use a dedicated folder for each execution (with different sub-folders if chunking is enabled).

Output File

Set the file format that will be generated by the external process upon execution. This is analog to the settings in the input file tab, whereby the file format list may contain additional formats (other than just CSV) as new plug-ins are installed. Make sure that the process generates valid row IDs in order to ensure joining of the result with the input table. E.g. if the output is CSV, make sure that the first column contains the original row IDs of the input table. Note that the external process must retain the same row ordering in the output table as given in the input table, though it may give an arbitrary number of matches (an input row can produce multiple output rows or none at all).


Contains the list of registered executors. This is by default only the local execution. Each executor has its own set of parameters, e.g. for local execution you can change the number of concurrent processes (if chunking is enabled).

Input Ports

Table provided as input to the external application.

Output Ports

Table containing result from the external application, joined with the input data.


This node has no views




You want to see the source code for this node? Click the following button and we’ll use our super-powers to find it for you.