Examples: Simple
From OpenKM Documentation
Process image
Process definition
<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="simple">
<start-state name="start">
<transition name="to_state" to="state"></transition>
<event type="node-leave">
<script>
print("Node start");
</script>
</event>
</start-state>
<state name="state">
<event type="node-enter">
<script>
print("Node state");
executionContext.leaveNode();
</script>
</event>
<transition name="to_end" to="end">
<action name="action" class="com.openkm.MessageActionHandler">
<message>About to finish!</message>
</action>
</transition>
</state>
<end-state name="end">
<event type="node-enter">
<script>
print("Node end ("+executionContext.getVariable("message")+")");
</script>
</event>
</end-state>
</process-definition>
Process handlers
package com.openkm;
import org.jbpm.graph.def.ActionHandler;
import org.jbpm.graph.exe.ExecutionContext;
public class MessageActionHandler implements ActionHandler {
private static final long serialVersionUID = 1L;
/**
* The message member gets its value from the configuration in the
* processdefinition. The value is injected directly by the engine.
*/
String message;
/**
* A message process variable is assigned the value of the message
* member. The process variable is created if it doesn't exist yet.
*/
@Override
public void execute(ExecutionContext context) throws Exception {
context.getContextInstance().setVariable("message", message);
System.out.println("From MessageActionHandler...");
}
}
Form definition
None