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>