Class ScriptTask

All Implemented Interfaces:
HasHandlers
Direct Known Subclasses:
StartProcessTask

public class ScriptTask extends Task
Task that executes arbitrary code, either synchronous or asynchronous. Override the execute() method to provide custom logic.
  • Constructor Details

  • Method Details

    • getOrCreateRef

      public static ScriptTask getOrCreateRef(JavaScriptObject jsObj)
    • create

      public JavaScriptObject create()
      Overrides:
      create in class Task
    • setIsAsync

      public ScriptTask setIsAsync(Boolean isAsync) throws IllegalStateException
      Whether the script task is asynchronous. A synchronous task is expected to return data directly from execute() and is considered complete once the execute() method exits.

      An asynchronous task is expected to start processing in execute(), and will not be considered complete until either setOutputData() or setOutputRecord() is called.

      Parameters:
      isAsync - New isAsync value. Default value is false
      Returns:
      ScriptTask instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the underlying component has been created
    • getIsAsync

      public Boolean getIsAsync()
      Whether the script task is asynchronous. A synchronous task is expected to return data directly from execute() and is considered complete once the execute() method exits.

      An asynchronous task is expected to start processing in execute(), and will not be considered complete until either setOutputData() or setOutputRecord() is called.

      Returns:
      Current isAsync value. Default value is false
    • setPassThruOutput

      public ScriptTask setPassThruOutput(Boolean passThruOutput) throws IllegalStateException
      Does this processElement pass through output from the last executed task (i.e. transient state)?

      See taskInputExpressions for details on the transient state outputs.

      Note that this property does not affect the task at all but is an indicator to the user and to the workflow editor of the behavior of the task as coded (See Process.passThruTaskOutput()).

      Overrides:
      setPassThruOutput in class ProcessElement
      Parameters:
      passThruOutput - New passThruOutput value. Default value is false
      Returns:
      ScriptTask instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the underlying component has been created
    • getPassThruOutput

      public Boolean getPassThruOutput()
      Does this processElement pass through output from the last executed task (i.e. transient state)?

      See taskInputExpressions for details on the transient state outputs.

      Note that this property does not affect the task at all but is an indicator to the user and to the workflow editor of the behavior of the task as coded (See Process.passThruTaskOutput()).

      Overrides:
      getPassThruOutput in class ProcessElement
      Returns:
      Current passThruOutput value. Default value is false
    • execute

      public Object execute(Object input, Record inputRecord)
      Execute the task.
      Parameters:
      input - the task input
      inputRecord - the task input record if an inputFieldList was specified. See TaskIO
      Returns:
      the task output. For multiple field output, call setOutputRecord() instead, and return null
    • getInputData

      public Object getInputData()
      Get the inputs to this task as specified by Task.inputField.

      For a task with a inputFieldList, use getInputRecord() to get access to other inputs.

      Returns:
      input data
      See Also:
    • getInputRecord

      public Record getInputRecord()
      Get all inputs to the task as specified by the inputFieldList, as a Record.
      Returns:
      input data
      See Also:
    • getProcess

      public Process getProcess()
      Get the process executing this task instance.
      Returns:
      the owning process
    • setOutputRecord

      public void setOutputRecord(Record outputRecord)
      Set all outputs of the task as specified by the outputFieldList, by providing a Record.
      Parameters:
      outputRecord - output record
      See Also:
    • setOutputData

      public void setOutputData(Object taskOutput)
      Set the task output as specified by outputField.

      NOTE: for an asychronous task, calling setOutputData() indicates the task is complete. For a task with multiple outputs, call ScriptTask.setOutputRecord instead.

      Parameters:
      taskOutput - task output
    • onInit_ScriptTask

      protected void onInit_ScriptTask()
    • onInit

      protected void onInit()
      Overrides:
      onInit in class ProcessElement