Get and set process variable:
// Set variable
kcontext.setVariable("XYZ", "9000001214");
// Get variable
System.out.println("\t##### Process variable XYZ: " +
kcontext.getVariable("XYZ"));
On-Exit action example:
System.out.println("Entering " + kcontext.getNodeInstance().getNodeName() +" Node");
Vehicle vehicle = (Vehicle)((org.jbpm.workflow.instance.node.WorkItemNodeInstance)kcontext.getNodeInstance()).getWorkItem().getParameter("vehicle");
System.out.println(vehicle.getModel());
System.out.println("Actor ID: " + ((org.jbpm.workflow.instance.node.HumanTaskNodeInstance)(kcontext.getNodeInstance())).getWorkItem().getResult("ActorId") );
NOTE: You cannot
getWorkItem()
in onEntry script, it will result null. Because the WorkItem is not created yet... I guess
Getting output variable names:
HumanTaskNodeInstance nodeInstance = (HumanTaskNodeInstance) kcontext.getNodeInstance();
HumanTaskNode htNode = nodeInstance.getHumanTaskNode();
Map<String,String> outMap = htNode.getOutMappings();
for (Map.Entry<String, String> entry : outMap.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
System.out.println("output task variable "+key+" is mapped to the process variable"+value);
}
Sending event
//kcontext.getKnowledgeRuntime().signalEvent(eventType, data, kcontext.getProcessInstance().getId());
kcontext.getKnowledgeRuntime().signalEvent("TEST_EVENT", null, kcontext.getProcessInstance().getId());