【JBPM4】流程分支fork - join
流程分支、聚合。流程每个分支节点都全部处理完成后,聚合到下一个节点。
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的更多相关文章
- 013-多线程-基础-Fork/Join框架、parallelStream讲解
		一.概述 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架. 它同ThreadPoolExecut ... 
- Java并发——Fork/Join框架
		为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/ShiJiaqi. http://www.cnblogs.com/shijiaqi1066/p/4631466. ... 
- Java 7 Fork/Join 框架
		在 Java7引入的诸多新特性中,Fork/Join 框架无疑是重要的一项.JSR166旨在标准化一个实质上可扩展的框架,以将并行计算的通用工具类组织成一个类似java.util中Collection ... 
- 《java.util.concurrent 包源码阅读》26  Fork/Join框架之Join
		接下来看看调用ForkJoinTask的join方法都发生了什么: public final V join() { // doJoin方法返回该任务的状态,状态值有三种: // NORMAL, CAN ... 
- Java并发——Fork/Join框架与ForkJoinPool
		为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/ShiJiaqi. http://www.cnblogs.com/shijiaqi1066/p/4631466. ... 
- Fork/Join 框架-设计与实现(翻译自论文《A Java Fork/Join Framework》原作者 Doug Lea)
		作者简介 Dong Lea任职于纽约州立大学奥斯威戈分校(State University of New York at Oswego),他发布了第一个广泛使用的java collections框架实 ... 
- java成神之——Fork/Join基本使用
		Fork/Join 大任务分小任务,小任务结果合并 ForkJoinPool pool = new ForkJoinPool(); RecursiveTask<Integer> task1 ... 
- 并发编程学习笔记(12)----Fork/Join框架
		1. Fork/Join 的概念 Fork指的是将系统进程分成多个执行分支(线程),Join即是等待,当fork()方法创建了多个线程之后,需要等待这些分支执行完毕之后,才能得到最终的结果,因此joi ... 
- 并发编程之Fork/Join
		并发与并行 并发:多个进程交替执行. 并行:多个进程同时进行,不存在线程的上下文切换. 并发与并行的目的都是使CPU的利用率达到最大.Fork/Join就是为了尽可能提高硬件的使用率而应运而生的. 计 ... 
随机推荐
- ACE线程管理机制-线程的创建与管理
			转载于:http://www.cnblogs.com/TianFang/archive/2006/12/04/581369.html 有过在不同的操作系统下用c++进行过多线程编程的朋友对那些线程处理 ... 
- 工作中常用的Linux命令(不断更新中)
			最近工作中用到linux命令,简单总结如下: 1. pwd 查看当前所在的文件路径 2. cd 切换目录 cd .. 切换到上一级目录 3. ls 列出当前文件路径下的所有文件和文件夹 4. ll 是 ... 
- unix网络编程-套接字编程 读书笔记
			1. 学习总结(目前只看了前6章):http://note.youdao.com/noteshare?id=2a0c29f5feeddd8f6f390427f0d67114 2. 课后习题 第一章 h ... 
- Python os.walk文件遍历
			os.walk(top, topdown=True, onerror=None, followlinks=False) 可以得到一个三元tupple(dirpath, dirnames, filena ... 
- JS如何判断是不是iphoneX
			function isIphoneX(){ return /iphone/gi.test(navigator.userAgent) && (screen.height == 812 & ... 
- SNS应用好友动态Feed模块设计
			转载自:http://libo93122.blog.163.com/blog/static/122189382012112145728902/ 备注:找不到原作者了. 现在大部分SNS网站都有一个功能 ... 
- Python爬虫学习笔记之极限滑动验证码的识别
			代码: import time from io import BytesIO from PIL import Image from selenium import webdriver from sel ... 
- 上下文路径request.getContextPath();与${pageContext.request.contextPath}
			(1) request.getContextPath();与${pageContext.request.contextPath}都是获取上下文路径: 1. request.getContextPath ... 
- 杭电多校第八场-A-Character Encoding
			题目描述 In computer science, a character is a letter, a digit, a punctuation mark or some other similar ... 
- 【poj2182】【poj2828】树状数组/线段树经典模型:逆序查找-空位插入法
			poj2182题意:有一个1~n的排列,现在给定每个人前面有多少个人的编号比他大,求这个排列是什么.n<=8000 poj2182题解: 逆序做,可以确定二分最后一个是什么,然后删除这个数.树状 ... 
