Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

The Result object contains all sorts of interesting results pertaining to the execution, including the number of errors, parsed files and much more as described over here.

Note: command line arguments are not to be confused with named parameters.

Want to add parameters, variables or arguments to your transformation execution?

Code Block

try {
  for (String key : parameterMap.keySet()) {
    transMeta.setParameterValue(key, parameterMap.get(key));
  }
  for (String key : variableMap.keySet()) {
    transMeta.setVariable(key, variableMap.get(key));
  }
} catch (UnknownParamException e) {
    error(e.getMessage());
}

transMeta.setArguments(arguments);

Retrieving data from a step

To retrieve rows of data from any Kettle step copy you can attach a row listener to the step.

Code Block

Trans Trans = new Trans(transMeta);

// prepare the execution of the transformation (instead of simply execute)
//
trans.prepareExecution(arguments);


// Find a step thread (ready to run but not yet started)
// You can also use method Trans.findBaseStep which gives back a list of all the step copies
//
StepInterface step = trans.findRunThread("Your Step Name");


// Attach a row listener to a step copy
//
step.addRowListener(new RowAdapter() {

    public void rowReadEvent(RowMetaInterface rowMeta, Object[] row) throws KettleStepException {
       // Here you get the rows as they are read by the step     
    }

    public void rowWrittenEvent(RowMetaInterface rowMeta, Object[] row) throws KettleStepException {
       // Here you get the rows as they are written by the step
    }
  }
);


// Now start the transformation threads...
//
trans.startThreads();

// If you want to wait until the transformation is finished...
//
trans.waitUntilFinished(); //

// If you want to know about the execution result.
//
Result result = trans.getResult();

Passing rows of data to a transformation

To pass rows of data to a Kettle transformation you can use an Inject step as a placeholder.

See the documentation for more information regarding Kettle API usage.