环境:Eclipse 3.5 + java 6 + MySQL 5.5 + jBPM 4.4
1、建立 Java Project;
2、拷贝 XML配置文件放进工程目录;
3、 建立 JPDL文件,画流程图;
4、编写测试类;
完成的项目目录:
jBPM 流程图:
helloword.jpdl.xml:
<?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>

测试类:Helloword.java
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();// 部署流程定义
    @Testpublic void deployProcessDefinition() {processEngine.getRepositoryService().createDeployment().addResourceFromClasspath("com/guilin/jbpm/helloword.jpdl.xml").addResourceFromClasspath("com/guilin/jbpm/helloword.png").deploy();System.out.println("部署流程完毕!");}// 启动流程实例
    @Testpublic void startProcessInstance() {processEngine.getExecutionService().startProcessInstanceByKey("helloword");System.out.println("启动流程实例成功!");}// 查询我的任务列表
    @Testpublic 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());}}}// 办理任务
    @Testpublic void completeTask() {// 任务 IDString 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=10002, 任务名称=提交申请, 任务办理人=员工, 任务创建时间=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 改为:10002
    10002任务完成!

  • 查询任务列表:findMyTaskList
    任务ID=20002, 任务名称=提交申请, 任务办理人=员工, 任务创建时间=2013-07-16 11:22:11.0
    任务ID=30002, 任务名称=提交申请, 任务办理人=员工, 任务创建时间=2013-07-16 11:22:19.0
    -------------------------------------------------
    任务ID=40001, 任务名称=部门经理审批, 任务办理人=部门经理, 任务创建时间=2013-07-16 11:24:45.0
    -------------------------------------------------

    -------------------------------------------------

  • 办理任务:completeTask; taskId 改为:40001

    40001任务完成!

  • 查询任务列表:findMyTaskList
    任务ID=20002, 任务名称=提交申请, 任务办理人=员工, 任务创建时间=2013-07-16 11:22:11.0
    任务ID=30002, 任务名称=提交申请, 任务办理人=员工, 任务创建时间=2013-07-16 11:22:19.0
    -------------------------------------------------
    -------------------------------------------------
    任务ID=50001, 任务名称=总经理审批, 任务办理人=总经理, 任务创建时间=2013-07-16 11:28:52.0

    -------------------------------------------------

  • 办理任务:completeTask; taskId 改为:50001
    50001任务完成!

  • 查询任务列表:findMyTaskList
    任务ID=20002, 任务名称=提交申请, 任务办理人=员工, 任务创建时间=2013-07-16 11:22:11.0
    任务ID=30002, 任务名称=提交申请, 任务办理人=员工, 任务创建时间=2013-07-16 11:22:19.0
    -------------------------------------------------
    -------------------------------------------------

    -------------------------------------------------

到此,第一个流程实例完成。

转载于:https://www.cnblogs.com/lindu/p/3193023.html

工作流_JBPM之Helloword相关推荐

  1. jbpm创建流程图_jbpm - 工作流的基本操作

    删除流程实例: Jbpm流程引擎 定义: jbpm,全称是Java Business Process Management(业务流程管理),他是覆盖了业务流程管理,工作流管理,服务协作等领域的一个开源 ...

  2. 工作流笔记第一天_简单介绍activiti

    1.什么是工作流? 工作流(Workflow),指"业务过程的部分或整体在计算机应用环境下的自动化".是对工作流程及其各操作步骤之间业务规则的抽象.概括描述. 工作流是将一组任务组 ...

  3. 工作流workflow任务调度工具argo

    转载请注明出处:工作流workflow任务调度工具argo argo简介和原理 argo是一个基于 kubernetes CRD(自定义资源) 实现的一个 Workflow(工作流) 开源工具,基于 ...

  4. Amazon SageMaker和NVIDIA NGC加速AI和ML工作流

    Amazon SageMaker和NVIDIA NGC加速AI和ML工作流 从自动驾驶汽车到药物发现,人工智能正成为主流,并迅速渗透到每个行业.但是,开发和部署AI应用程序是一项具有挑战性的工作.该过 ...

  5. Git基本命令和GitFlow工作流

    本篇博客讲解了git的一些基本的团队协作命令,和GitFlow工作流指南 git 团队协作的一些命令 1.开分支 git branch 新分支名 例如,在master分支下,新开一个开发分支: git ...

  6. SharePoint 工作流解决方案(一):顺序工作流和状态机工作流

    SharePoint 的工作流是基于 Workflow Foundation 的,我们就先谈谈 WF,只有对 WF 有正确的认识,才能找到 SharePoint 工作流的解决方案. Workflow ...

  7. .net之工作流工程展示及代码分享(二)工作流引擎

    在介绍完表单类的时候,接下来介绍工作流引擎,主要由四个类组成,分别是流程.流程步骤.流程实例.流程步骤实例类. 流程类: 1 [Serializable] 2 public class Flow 3 ...

  8. (广州)软件开发定制服务,工作流引擎 OA 库存管理系统

    本人专注于工作流的研究设计同时提供软件开发定制服务,工作流引擎 OA系统 库存管理系统 如果有机会合作共事请联系:15817167503(本人在广州) QQ:1311663711 加时请注明软件定制 ...

  9. 开始升级我的工作流系统

    终于做完了自定义工作流审批系统的第一个版本,可以说是熬完的,因为真的费了不少力气.不过也慢慢发现设计和实现中的很多问题,便想把它改进一下,改为用.net2.0和sql server2005开发,并想遵 ...

  10. E8.Net 2005工作流平台版本发布

    2007年2月,完成了EPowerFlow.Net2003版本升级到E8.Net2005版本的工作,今后E8.Net工作流平台就可以使用Microsoft Visual Studio 2005(SP1 ...

最新文章

  1. mongodb - 前端form表单数据传输,在保存和清除的数据格式的处理程序的 - 非递归...
  2. aapt.exe已停止工作 r.java_【转】android错误 aapt.exe已停止工作的解决方法
  3. java角度_java中角度或弧度的计算 | 学步园
  4. (软件工程复习核心重点)第十章面向对象设计-第一节:面向对象设计的基本概念与准则
  5. notepad++配置Zen Coding
  6. 搭建dubbo框架的遇到的一些问题
  7. Struts2中的ModelDriven机制及其运用、refreshModelBeforeResult属性解决的问题
  8. C++_智能指针shared_ptr、unique_ptr、weak_ptr、auto_ptr总结
  9. python自控_怎么自学python,大概要多久?
  10. 细说在兄弟连搞上PHP的那些事儿
  11. Fluent使用(一)
  12. 搭建直播平台,Android端直播APP源码如何实现礼物效果
  13. 【转载】分析Windows的死亡蓝屏(BSOD)机制
  14. C++中智能指针-atuo_ptr、unique_ptr
  15. Kubernetes CSI
  16. 图像去模糊(维纳滤波)
  17. linux常用命令||
  18. “成功的人,从不被这一点束缚”
  19. hadoop Permission denied (publickey,password,keyboard-interactive).
  20. html预览dwg文件,大佬救命!有关dwg文件预览的问题

热门文章

  1. 使用Fiddler进行http抓包和调试
  2. 31、Arrays数组排序(续)——自定义排序
  3. Spring中的FactoryBean
  4. 原创Netty学习系列导航
  5. WPF Ribbon 开发资料分享
  6. MyEclipse安装配置maven插件
  7. [JNI] 开发基础(1) c语言基本类型
  8. 不能bostype没有元数据异常_金蝶EAS - BOS工作笔记
  9. 鲸鱼优化算法_鲸鱼优化算法:一种群体智能最优化方法
  10. miui游戏驱动程序偏好设置_MIUI 11 期待吗?MIUI 10这几个小设置,你都了解吗?...