Use of Node node

You can define the behaviour of a node or node type using the Action element. This Action is executed when the process arrives to the node.

The Action to be executed can be defined in two ways:

  • Using a BeanShell script.
  • Using an action handler, this is a Java class which implements the ActionHandler interface.

Below we are going to create a sample process with a node node which make use of an implementation of the ActionHandler interface.

Sample

Download the sample code Workflow_samples.zip.

This is the process definition graph:

This process begins in a "start" node and go to a "node" node where the action to be performed is defined by the class "MyAction" which implements the ActionHandler interface.

public class MyAction implements ActionHandler {
    private static final long serialVersionUID = 1L;
 
    @Override
    public void execute(ExecutionContext executionContext) throws Exception {
        System.out.println("Executing programmed action...");
 
        // Go to next node
        executionContext.getToken().signal();
    }
}

The last line of this action tell the jBPM engine to go to the next node, which in this case is the "end" node.  

<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="node node">
    <start-state name="start">
        <transition to="node"></transition>
    </start-state>
    <node name="node">
        <action class="com.openkm.sample.MyAction"></action>
        <transition to="end"></transition>
    </node>
   <end-state name="end"></end-state>
</process-definition>