首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

JBPM之流程定义治理,流程执行管理

2013-10-29 
JBPM之流程定义管理,流程执行管理JBPM之流程定义管理,流程执行管理其实,我们学习JBPM框架的时候,只要弄懂

JBPM之流程定义管理,流程执行管理
JBPM之流程定义管理,流程执行管理      其实,我们学习JBPM框架的时候,只要弄懂了什么是JBPM的流程定义,流程执行的管理,那么我们在OA做流转审批的时候,就直接可以来用JBPM了,只需要通过Spring来整合一下就行了。那么下面来说一下吧。      1.什么是JBPM?       jBPM(JBoss Business Process Management业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。JBPM具有很强的灵活性,他可以应用的桌面程序,也可以应用的Web服务,而且提供了一种图形化的业务分析建模工具,并可以将这些业务模型部署的数据库中,任务实例的执行也可以被持久化。     2.JBPM可以来做什么?      业务流程UML图形化,定义控制流程跳转,分派任务定时,执行任务,事件处理等等     3.  JBPM入门:      在了解JBPM的时候,我们首先要明白一个概念,那就是什么是流程图? 一个流程图是由节点(Node)和转换(Transition)组成的。一个流程就是一个有向图,流程图有多种表示方式:XML,Java类,数据库中的记录。那么有哪些节点呢? 比如start节点(流程的入口),end节点(流程的结束),state节点(状态节点),我用下面很好的一张图来说明一下,大家看着图就很清楚了。    JBPM之流程定义治理,流程执行管理一个流程图     像流程图这个,一般都是给用户看的,而让电脑识别的是xml文件,eclipse中安装JBPM插件后,我们画上流程图结构示意图之后,相应的xml文件会自动生成,这个我们不用自己写。     下面就说说,有了xml文件(也就是表示了让服务器识别xml文件)之后,我们就在java代码中如何定义一个流程,如何对流程定义进行管理,这里我贴出代码来。

/** * 执行流程(流程实例) * @author tyg * */public class ProcessInstanceExecute {private ProcessEngine processEngine = Configuration.getProcessEngine();// 启动流程实例@Testpublic void startProcessInstance() {// 使用指定key的最新版本的流程定义启动流程实例ProcessInstance pi = processEngine.getExecutionService().startProcessInstanceByKey("test");System.out.println("id=" + pi.getId()//+ ", state=" + pi.getState()//+ ", processDefinitionId=" + pi.getProcessDefinitionId());}// 查询我的未办理完的任务列表@Testpublic void findMyTaskList() {// String userId = "员工";// String userId = "部门经理";String userId = "总经理";// 查询我所有未办理的任务的列表// List<Task> list = processEngine.getTaskService().findPersonalTasks(userId);// 分页的查询List<Task> list = processEngine.getTaskService()//.createTaskQuery()//.assignee(userId)//.list();// 显示System.out.println("【未办理的任务列表如下】");for (Task t : list) {System.out.println("id=" + t.getId()//+ ", name=" + t.getName()// 任务的名称+ ", assignee=" + t.getAssignee()// 任务的办理人+ ", createTime=" + t.getCreateTime()// 任务的创建时间+ ", executionId=" + t.getExecutionId()); // 所属的执行对象的id}}// 办理任务@Testpublic void completeTask() {String taskId = "120001";processEngine.getTaskService().completeTask(taskId);}}
      上面代码有不懂的,可以跟我留言......
                

热点排行