- <node name="node1">
- <action class="com.xj.TestAction"></action>
- <transition name="" to="state2"></transition>
- </node>
- package com.xj;
- import org.jbpm.graph.def.ActionHandler;
- import org.jbpm.graph.exe.ExecutionContext;
- /**
- *node加action变成非自动节点
- **/
- public class TestAction implements ActionHandler {
- public void execute(ExecutionContext context) throws Exception {
- System.out.println("通过Action类来解决问题!!!");
- }
- }
- <task-node name="task1">
- <task>
- <assignment actor-id="#{user}"></assignment>
- </task>
- <transition name="同意" to="state2"></transition>
- <transition name="不同意" to="node1"></transition>
- </task-node>
- public static void main(String[] args) {
- JbpmConfiguration config = JbpmConfiguration.getInstance();
- JbpmContext context = config.createJbpmContext();
- GraphSession gs = context.getGraphSession();
- ProcessDefinition pd = gs.findLatestProcessDefinition("test04");
- ProcessInstance pi = new ProcessInstance(pd);
- pi.getContextInstance().setVariable("user", "001");
- Token token = pi.getRootToken();
- TaskInstance ti = (TaskInstance)pi.getTaskMgmtInstance().getTaskInstances().iterator().next();
- System.out.println("现在工作的参与者是"+ti.getActorId());
- //获取该工作的路由
- List<Transition> tns = ti.getTask().getTaskNode().getLeavingTransitions();
- for(Transition tn : tns) {
- System.out.println("该工作的所有路由"+tn.getName());
- }
- context.close();
- }
- <!--event-->
- <task-node name="task1">
- <task>
- <assignment class="com.xj.TestAssignment"></assignment>
- </task>
- <event type="node-enter">
- <script>
- print(&qout;dd&qout;+token.getId());
- </script>
- </event>
- <transition name="" to="end1"></transition>
- </task-node>
- package com.xj;
- import org.jbpm.graph.exe.ExecutionContext;
- import org.jbpm.taskmgmt.def.AssignmentHandler;
- import org.jbpm.taskmgmt.exe.Assignable;
- public class TestAssignment implements AssignmentHandler {
- public void assign(Assignable assignale, ExecutionContext context) throws Exception {
- assignale.setActorId("北风007");
- }
- }
- <fork name="frok1">
- <script>
- <variable name="trans" access="write"></variable>
- <expression>
- trans = new ArraList();
- if(){
- trans.add("tr1");
- trans.add("tr1");
- }
- </expression>
- </script>
- <transition name="tr1" to="node3">
- <transition name="tr2" to="node3">
- <transition name="tr3" to="node3">
- <transition name="tr4" to="node3">
- </fork>
- <decision name="decision1" expression="#{trans}">
- <transition name="tr1" to="node1"></transition>
- <transition name="tr2" to="node2"></transition>
- <transition name="tr3" to="node3"></transition>
- </decision>
- <decision name="decision1" expression="#{trans}">
- <handler class="com.xj.TestDecision"></handler>
- <transition name="tr1" to="node1"></transition>
- <transition name="tr2" to="node2"></transition>
- <transition name="tr3" to="node3"></transition>
- </decision>
- package com.xj;
- import org.jbpm.graph.exe.ExecutionContext;
- import org.jbpm.graph.node.DecisionHandler;
- public class TestDecision implements DecisionHandler {
- public String decide(ExecutionContext context) throws Exception {
- return "tr3";
- }
- }
转载于:https://blog.51cto.com/12772226/881122