工作流_JBPM之Helloword


<?xml version="1.0" encoding="UTF-8"?> <process name="helloword" xmlns="http://jbpm.org/4.4/jpdl">
<start g="132,24,48,48" name="start1">
<transition g="-52,-22" name="to task1" to="提交申请"/>
</start>
<end g="132,456,48,48" name="end1"/>
<task g="108,108,92,52" name="提交申请" assignee="员工">
<transition g="-49,-13" name="to task2" to="部门经理审批"/>
</task>
<task g="108,228,92,52" name="部门经理审批" assignee="部门经理">
<transition g="-48,-12" name="to task3" to="总经理审批"/>
</task>
<task g="108,348,92,52" name="总经理审批" assignee="总经理">
<transition g="-48,-11" name="to end1" to="end1"/>
</task>
</process>
package com.guilin.jbpm; import java.util.List; import org.jbpm.api.Configuration;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.task.Task;
import org.junit.Test; public class Helloword { private ProcessEngine processEngine = new Configuration().setResource("jbpm.cfg.xml").buildProcessEngine(); // 部署流程定义
@Test
public void deployProcessDefinition() {
processEngine.getRepositoryService().createDeployment()
.addResourceFromClasspath("com/guilin/jbpm/helloword.jpdl.xml")
.addResourceFromClasspath("com/guilin/jbpm/helloword.png")
.deploy();
System.out.println("部署流程完毕!");
} // 启动流程实例
@Test
public void startProcessInstance() {
processEngine.getExecutionService().startProcessInstanceByKey("helloword");
System.out.println("启动流程实例成功!");
} // 查询我的任务列表
@Test
public void findMyTaskList() {
String[] userIds = { "员工", "部门经理", "总经理" }; for (int i = 0; i < userIds.length; i++) {
// 查询任务
List<Task> tasks = processEngine.getTaskService()
.findPersonalTasks(userIds[i]); // 显示任务信息
for (Task task : tasks) {
System.out.println("-------------------------------------------------");
System.out.println("任务ID=" + task.getId() + ", 任务名称="
+ task.getName() + ", 任务办理人=" + task.getAssignee()
+ ", 任务创建时间=" + task.getCreateTime());
}
}
} // 办理任务
@Test
public void completeTask() {
// 任务 ID
String taskId = "60001";
processEngine.getTaskService().completeTask(taskId);
System.out.println(taskId + "任务完成!");
} }
- 执行部署流程:deployProcessDefinition
部署流程完毕!
- 启动第一个流程实例:startProcessInstance启动流程实例成功!
- 查询任务列表:findMyTaskList-------------------------------------------------
任务ID=10002, 任务名称=提交申请, 任务办理人=员工, 任务创建时间=2013-07-16 11:20:18.0
- 再启动第二个流程实例:startProcessInstance
- 查询任务列表:findMyTaskList任务ID=, 任务名称=提交申请, 任务办理人=员工, 任务创建时间=2013-07-16 11:22:11.0任务ID=20002, 任务名称=提交申请, 任务办理人=员工, 任务创建时间=2013-07-16 11:20:18.0任务ID=30002, 任务名称=提交申请, 任务办理人=员工, 任务创建时间=2013-07-16 11:22:19.0--------------------------------------------------------------------------------------------------
- 办理任务:completeTask; taskId 改为:1000210002任务完成!
- 查询任务列表:findMyTaskList任务ID=20002, 任务名称=提交申请, 任务办理人=员工, 任务创建时间=2013-07-16 11:22:11.0任务ID=30002, 任务名称=提交申请, 任务办理人=员工, 任务创建时间=2013-07-16 11:22:19.0-------------------------------------------------任务ID=, 任务名称=部门经理审批, 任务办理人=部门经理, 任务创建时间=2013-07-16 11:24:45.0-------------------------------------------------
-------------------------------------------------
- 办理任务:completeTask; taskId 改为:4000140001任务完成!
- 查询任务列表:findMyTaskList任务ID=20002, 任务名称=提交申请, 任务办理人=员工, 任务创建时间=2013-07-16 11:22:11.0任务ID=30002, 任务名称=提交申请, 任务办理人=员工, 任务创建时间=2013-07-16 11:22:19.0--------------------------------------------------------------------------------------------------任务ID=, 任务名称=总经理审批, 任务办理人=总经理, 任务创建时间=2013-07-16 11:28:52.0
-------------------------------------------------
- 办理任务:completeTask; taskId 改为:5000150001任务完成!
- 查询任务列表:findMyTaskList任务ID=20002, 任务名称=提交申请, 任务办理人=员工, 任务创建时间=2013-07-16 11:22:11.0任务ID=30002, 任务名称=提交申请, 任务办理人=员工, 任务创建时间=2013-07-16 11:22:19.0--------------------------------------------------------------------------------------------------
-------------------------------------------------
工作流_JBPM之Helloword的更多相关文章
- activity(工作流)初步学习记录
1.概念 工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档.信息或任务的过程自动进行,从而实现某个预期 ...
- Activiti工作流引擎学习(一)
1.部署对象和流程定义相关表:RepositoryService act_re_deployment: 部署对象表:一次部署的多个文件的信息,对于不需要的流程可以删除和修改 act_re_procde ...
- Oozie分布式任务的工作流——Spark篇
Spark是现在应用最广泛的分布式计算框架,oozie支持在它的调度中执行spark.在我的日常工作中,一部分工作就是基于oozie维护好每天的spark离线任务,合理的设计工作流并分配适合的参数对于 ...
- Oozie分布式任务的工作流——邮件篇
在大数据的当下,各种spark和hadoop的框架层出不穷.各种高端的计算框架,分布式任务如乱花般迷眼.你是否有这种困惑!--有了许多的分布式任务,但是每天需要固定时间跑任务,自己写个调度,既不稳定, ...
- 解析大型.NET ERP系统核心组件 查询设计器 报表设计器 窗体设计器 工作流设计器 任务计划设计器
企业管理软件包含一些公共的组件,这些基础的组件在每个新项目立项阶段就必须考虑.核心的稳定不变功能,方便系统开发与维护,也为系统二次开发提供了诸多便利.比如通用权限管理系统,通用附件管理,通用查询等组件 ...
- .Net开源工作流Roadflow的使用与集成
序言 最近公司要整理公司内部oa系统,需要使用到工作流,所以就开始了开源工作流挑选,使用,到集成到公司内部系统的工作. 首先在网上搜了文档,自己也有补充,整理啦国内几款工作流的比较,由于没有个个击破式 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(42)-工作流设计-表建立
系列目录 工作流在实际应用中还是比较广泛,网络中存在很多工作流的图形化插件,可以做到拉拽的工作流设计,非常简便,再配合第三方编辑器,可以直接生成表单,我没有刻意的浏览很多工作流的实际设计,我认为工作流 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(43)-工作流设计-字段分类设计
系列目录 建立好42节的表之后,每个字段英文表示都是有意义的说明.先建立,就知道表的关系和用处了,当然,我的设计只是一个参考,你可能有很多改进的地方. 我们的工作流具体细节流程是这样的: 最终我们的模 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(44)-工作流设计-设计表单
系列目录 设计表单是比较复杂的一步,完成一个表单的设计其实很漫长,主要分为四步. 开始之前先说说表的结构. 其实表Flow_Form与Flow_FormContent设计是有一个缺陷的.我总共是设置最 ...
随机推荐
- [转]比较 Rational Unified Process (RUP) 和 Microsoft Solutions Framework (MSF)
文档选项 将此页作为电子邮件发送 级别: 初级 Sandra Sergi Santos, 软件工程专家, IBM 2007 年 6 月 15 日 本文来自于 Rational Edge:Micro ...
- 1001.A+B Format (20)(思路,bug发现及其修改,提交记录)
https://github.com/031502316a/object-oriented/tree/master/1001 ---恢复内容开始--- 1.解题思路 一开始见到题目时,感觉难的就是输出 ...
- HDU3033I love sneakers!(分组背包)
http://acm.hdu.edu.cn/showproblem.php?pid=3033 本题的意思就是说现在有n种牌子的鞋子,每种品牌有一些不同的鞋,每双鞋子都有一个特定的权值,现在要求每种品牌 ...
- 在XAF(ASP.NET)中以ListEditor的形式调用百度地图API
因为项目需要,在系统中使用地图显示设备的地理位置.考虑过ArgGIS,Bing和Baidu地图.本来想用ArgGIS,看教程嫌麻烦.所以还是用Web地图吧.Bing的话还要申请个key,没心情.百度地 ...
- 两个ERP 库存调拨
(A) ERP 负责线上销售,公司为扩大规模,发展线下实体 采用另一套ERP(B) A 和B 都是 单独的ERP ,为了使两个ERP 能高效地工作,需开发一个单独衔接模块实现 ,库存的调拨,新品的 ...
- inpuy type=date
http://www.w3schools.com/html/html_form_input_types.asp http://caniuse.com/#feat=input-datetime 浏览器兼 ...
- springmvc中forward和redirect
一.跳转 import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; im ...
- SCROLLINFO结构体中fMask和nPage的理解
还是VC++中有关显示图像的问题. 我们在显示一幅比较大的图像时,要使用带标准滚动条的对话框.涉及对滚动条的操作就不得不提SCROLLINFO这个结构体.只看单词意思就这道这个结构体要储存滚动条的一些 ...
- 729 - The Hamming Distance Problem
// 题意: // 输入两个整数N, H,按照字典序输出所有长度为N,恰好包含H个1的01串 // 规模:1<=H<=N<=16 // 算法A:2^N枚举,输出1的个数为H的.采 ...
- hdu4085 Peach Blossom Spring 斯坦纳树,状态dp
(1)集合中元素表示(1<<i), i从0开始 (2)注意dp[i][ss] = min(dp[i][ss], dp[i][rr | s[i]] + dp[i][(ss ^ rr) | s ...