开始jbpm之旅(三)
接下来要开始来学习一下标签了
一个JPDL文件中一般有以下标签:
1,start2,state3,end4,task5,sub-process6,customer7,decision8,fork-join
第一个:start,end, 一个是入口,一个是出口
<start> <transition to="a" /></start>.....<end name="z" />
<state name="a"> <transition to="b" /></state>
Execution executionInA = processInstance.findActiveExecutionIn("a");
executionService.signalExecutionById(executionInA.getId());
<state name="a"> <transition name="a1" to="b" /> <transition name="a2" to="c" /></state><state name="b" /><state name="c" />
processInstance = executionService.signalExecutionById(executionInA.getId(),"a2");
<decision expr="#{content}" name="d"> <transition name="e" to="e1"> <transition name="f" to="e2"> <transition name="g" to="e3"></decision>
Map<String,Object> map= new HashMap<String, Object>();map.put("content","f");executionService.startProcessInstanceByKey("流程名",map);
<decision name="d"> <handler /> <transition name="e" to="e1"> <transition name="f" to="e2"> <transition name="g" to="e3"></decision>
public class Content implements DecisionHandler{ public String decide(OpenExecution execution){ String content = (String) execution.getVariable("content"); if (content.equals("good")){ return "e"; } if (content.equals("bad")){ return "f"; } return "g";}}
Map<String,Object> map= new HashMap<String, Object>();map.put("content","bad");executionService.startProcessInstanceByKey("流程名",map);
<fork name="fork"> <transition name="e" to="e1"> <transition name="f" to="e2"> <transition name="g" to="e3"></fork><state name="e1"> <transition to="one join" /></state><state name="e2"> <transition to="one join" /></state><state name="e3"> <transition to="final join" /></state><join name="one join"> <transition to="another state" /></join><state name="another state"> <transition to="final join" /></state><join name="final join"> <transition to="end" /></join><end name="end" />
processInstance.findActiveExcutionIn("e1");processInstance.findActiveExcutionIn("e2");processInstance.findActiveExcutionIn("e3");
<task name="review" assignee="#{order.owner}" > <transition to="wait" /></task>
public class Order implements Serializable { String owner; public Order(String owner){ this.owner = owner ;}public String getOwner(){ return owner;}public void setOwner(String owner){ this.owner = owner;}}
Map<String,Object> map= new HashMap<String, Object>();map.put("order",new Order("tom"));executionService.startProcessInstanceByKey("流程名",map);
List<Task> taskList = taskService.findPersonalTasks("tom");
<task name="review" assignee="group" > <transition to="wait" /></task>
identityService.createGroup("group");
identityService.createUser("tom","tom","alex","jerry");
identityService.createMembership("tom","group");
taskService.findGroupTasks("tom");