fork、join
来源:互联网 发布:惰性求值 js 编辑:程序博客网 时间:2024/04/29 05:54
一、processdefinition.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="forkjointest">
<start-state name="start-state1">
<transition to="fork1"></transition>
</start-state>
<fork name="fork1">
<script>
<variable name="transNames" access="write"></variable>
<expression>
transNames=new ArrayList();
if(param>100){
transNames.add("to node1");
transNames.add("to node2");
}else{
transNames.add("to node3");
transNames.add("to node4");
}
</expression>
</script>
<transition to="node1" name="to node1"></transition>
<transition to="node2" name="to node2"></transition>
<transition to="node3" name="to node3"></transition>
<transition to="node4" name="to node4"></transition>
</fork>
<node name="node1">
<event type="node-enter">
<script >
print("经过node1…………………………");
</script>
</event>
<transition to="join1"></transition>
</node>
<node name="node2">
<event type="node-enter">
<script >
print("经过node2…………………………");
</script>
<script></script>
<script></script>
<script></script>
</event>
<transition to="join1"></transition>
</node>
<node name="node3">
<event type="node-enter">
<script>
print("经过node3…………………………");
</script>
</event>
<transition to="join1"></transition>
</node>
<node name="node4">
<event type="node-enter">
<script>
print("经过node4…………………………");
</script>
</event>
<transition to="join1"></transition>
</node>
<join name="join1">
<transition to="end-state1"></transition>
</join>
<end-state name="end-state1"></end-state>
</process-definition>
二、流程发布以后的测试类
package cn.oa.jbpm.test;
import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;
public class ForkJoinTest {
//fork 和join节点
public static void main(String[] args) {
JbpmContext jbpmContext=JbpmConfiguration.getInstance().createJbpmContext();
try {
ProcessDefinition processDefinition=jbpmContext.getGraphSession().findLatestProcessDefinition("forkjointest");
ProcessInstance pi=processDefinition.createProcessInstance();
pi.getContextInstance().setVariable("param", 55);
Token token=pi.getRootToken();
token.signal();
System.out.println("*************"+token.getNode().getName());
} finally {
jbpmContext.close();
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="forkjointest">
<start-state name="start-state1">
<transition to="fork1"></transition>
</start-state>
<fork name="fork1">
<script>
<variable name="transNames" access="write"></variable>
<expression>
transNames=new ArrayList();
if(param>100){
transNames.add("to node1");
transNames.add("to node2");
}else{
transNames.add("to node3");
transNames.add("to node4");
}
</expression>
</script>
<transition to="node1" name="to node1"></transition>
<transition to="node2" name="to node2"></transition>
<transition to="node3" name="to node3"></transition>
<transition to="node4" name="to node4"></transition>
</fork>
<node name="node1">
<event type="node-enter">
<script >
print("经过node1…………………………");
</script>
</event>
<transition to="join1"></transition>
</node>
<node name="node2">
<event type="node-enter">
<script >
print("经过node2…………………………");
</script>
<script></script>
<script></script>
<script></script>
</event>
<transition to="join1"></transition>
</node>
<node name="node3">
<event type="node-enter">
<script>
print("经过node3…………………………");
</script>
</event>
<transition to="join1"></transition>
</node>
<node name="node4">
<event type="node-enter">
<script>
print("经过node4…………………………");
</script>
</event>
<transition to="join1"></transition>
</node>
<join name="join1">
<transition to="end-state1"></transition>
</join>
<end-state name="end-state1"></end-state>
</process-definition>
二、流程发布以后的测试类
package cn.oa.jbpm.test;
import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;
public class ForkJoinTest {
//fork 和join节点
public static void main(String[] args) {
JbpmContext jbpmContext=JbpmConfiguration.getInstance().createJbpmContext();
try {
ProcessDefinition processDefinition=jbpmContext.getGraphSession().findLatestProcessDefinition("forkjointest");
ProcessInstance pi=processDefinition.createProcessInstance();
pi.getContextInstance().setVariable("param", 55);
Token token=pi.getRootToken();
token.signal();
System.out.println("*************"+token.getNode().getName());
} finally {
jbpmContext.close();
}
}
}
0 0
- fork/join
- Fork/Join
- fork/join
- fork、join
- Fork/Join框架之Fork、Join操作
- Fork/Join框架之Fork、Join操作
- Fork/Join框架之Fork、Join操作
- JBPM知识点------fork、join
- 多线程 (八) Fork/Join
- Java Fork/Join 应用
- JAVA 7 Fork join
- Fork/Join框架介绍
- Fork/Join框架介绍
- fork/join framework
- jbpm fork join
- Fork/Join(分开/联合)
- java Fork-join框架
- Fork/Join框架介绍
- MyEclipse使用总结——设置MyEclipse开发项目时使用的JDK
- 将流程发布到jbpm数据库中
- 使用java中replaceAll方法替换字符串中的反斜杠
- android studio 运行vuforia 官方demo,自学教程一
- XML学习总结(二)——XML入门
- fork、join
- .gitignore介绍
- XML学习总结(一)——XML介绍
- linux, windows, mac, ios等平台GCC预编译宏判断
- MyEclipse使用总结——设置MyEclipse使用的Tomcat服务器
- 主流程中包含子流程
- java linkedlist操作详解
- Android 通过apk文件获取包名
- javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册