流程分支、聚合。流程每个分支节点都全部处理完成后,聚合到下一个节点。

JPDL

<?xml version="1.0" encoding="UTF-8"?>

<process key="fork" name="fork" xmlns="http://jbpm.org/4.4/jpdl">
<start g="56,154,48,48" name="start1">
<transition g="-63,-25" name="to fork1" to="fork1"/>
</start>
<end g="623,278,48,48" name="end1"/>
<fork g="191,158,48,48" name="fork1">
<transition g="-36,-25" name="to A" to="A"/>
<transition g="-34,-25" name="to B" to="B"/>
<transition g="-35,-25" name="to C" to="C"/>
</fork>
<join g="509,168,48,48" name="join1">
<transition g="-25,-26" name="to task1" to="合并"/>
</join>
<task assignee="userA" g="362,54,92,52" name="A">
<transition g="-61,-25" name="to join1" to="join1"/>
</task>
<task assignee="userB" g="360,160,92,52" name="B">
<transition g="-61,-25" name="to join1" to="join1"/>
</task>
<task assignee="userC" g="369,270,92,52" name="C">
<transition g="-61,-25" name="to join1" to="join1"/>
</task>
<task assignee="userM" g="607,167,92,52" name="合并">
<transition g="-54,-12" name="to end1" to="end1"/>
</task>
</process>

流程操作代码

//流程部署
public void deploy() {
super.startUp();
repositoryService.createDeployment().addResourceFromClasspath("com/tgb/node/fork/fork.jpdl.xml").deploy();

}

//创建流程实例
public void createInstance() {
super.startUp();
ProcessInstance processInstance = executionService.startProcessInstanceByKey("fork");
print("流程实例ID",processInstance.getId());
}

获取当前节点
public void getCurrectActivity() {
super.startUp();
String name = executionService.createProcessInstanceQuery().processInstanceId("fork.10001").uniqueResult().findActiveActivityNames().toString();
print("当前节点",name);
}

//获取任务列表
public void getTask() {
super.startUp();
List<Task> tasks = taskService.findPersonalTasks("userM");
print("任务节点名称",tasks.get(0).getActivityName());
print("任务节点ID",tasks.get(0).getId());
}

//完成任务
public void completeTask() {
super.startUp();
taskService.completeTask("20001");
}

【JBPM4】流程分支fork - join的更多相关文章

  1. 013-多线程-基础-Fork/Join框架、parallelStream讲解

    一.概述 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架. 它同ThreadPoolExecut ...

  2. Java并发——Fork/Join框架

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/ShiJiaqi. http://www.cnblogs.com/shijiaqi1066/p/4631466. ...

  3. Java 7 Fork/Join 框架

    在 Java7引入的诸多新特性中,Fork/Join 框架无疑是重要的一项.JSR166旨在标准化一个实质上可扩展的框架,以将并行计算的通用工具类组织成一个类似java.util中Collection ...

  4. 《java.util.concurrent 包源码阅读》26 Fork/Join框架之Join

    接下来看看调用ForkJoinTask的join方法都发生了什么: public final V join() { // doJoin方法返回该任务的状态,状态值有三种: // NORMAL, CAN ...

  5. Java并发——Fork/Join框架与ForkJoinPool

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/ShiJiaqi. http://www.cnblogs.com/shijiaqi1066/p/4631466. ...

  6. Fork/Join 框架-设计与实现(翻译自论文《A Java Fork/Join Framework》原作者 Doug Lea)

    作者简介 Dong Lea任职于纽约州立大学奥斯威戈分校(State University of New York at Oswego),他发布了第一个广泛使用的java collections框架实 ...

  7. java成神之——Fork/Join基本使用

    Fork/Join 大任务分小任务,小任务结果合并 ForkJoinPool pool = new ForkJoinPool(); RecursiveTask<Integer> task1 ...

  8. 并发编程学习笔记(12)----Fork/Join框架

    1. Fork/Join 的概念 Fork指的是将系统进程分成多个执行分支(线程),Join即是等待,当fork()方法创建了多个线程之后,需要等待这些分支执行完毕之后,才能得到最终的结果,因此joi ...

  9. 并发编程之Fork/Join

    并发与并行 并发:多个进程交替执行. 并行:多个进程同时进行,不存在线程的上下文切换. 并发与并行的目的都是使CPU的利用率达到最大.Fork/Join就是为了尽可能提高硬件的使用率而应运而生的. 计 ...

随机推荐

  1. 如何在Linux上安装QQ

    我一直无法解决Ubuntu QQ问题,而最近我重装ubuntu之后在网络上找到与QQ相关的内容,网上有大神开发出了新版的wineQQ,解决了我们对QQ的需求.经过尝试,完成了QQ安装 如图  安装的是 ...

  2. 二叉树中和为某一值得路径 java实现

    本题来自<剑指offer> 路径为从根节点到叶节点一条路径,路径经过的各节点数值之和等于某一给定数值,则打印路径上的节点 因为需要打印满足条件的路径节点信息和各节点之和,需要栈记录经过的节 ...

  3. LightOJ 1319 - Monkey Tradition CRT除数互质版

    本题亦是非常裸的CRT. CRT的余数方程 那么定义 则 其中 为模mi的逆元. /** @Date : 2016-10-23-15.11 * @Author : Lweleth (SoungEarl ...

  4. Linux修改用户密码

    1. root修改自己 # passwd 2. root修改别人 # passwd oracle //修改oracle的密码

  5. 编译 redis 报错 error: jemalloc/jemalloc.h: No such file or directory

    gcc编译redis时报错: zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory zmalloc.h:55:2 ...

  6. kafka命令总结

    ./kafka-console-consumer.sh  --bootstrap-server IP:9092  --topic user-asset-change-v1 --partition 2  ...

  7. linux命令查看服务器的型号、序列号、内存插槽数(转)

    1,查看服务器型号.序列号: dmidecode|grep "System Information" -A9|egrep  "Manufacturer|Product|S ...

  8. 20155335《java程序设计》第一周学习总结

    18个章节的问题 (1)为什么需要JVM让java跨平台? (2)JVM与JDK,与JRE的关系? (3)为什么 -0/3 结果是 0,而 -0.0/3.0 结果是 -0.0?(注意后边的结果0带负号 ...

  9. Machine Learning(CF940F+带修改莫队)

    题目链接:http://codeforces.com/problemset/problem/940/F 题目: 题意:求次数的mex,mex的含义为某个集合(如{1,2,4,5})第一个为出现的非负数 ...

  10. CSS 竖线颜色渐变

    <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"& ...