Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / JBPM API初认识

JBPM为我们提供了一系列管理流程的服务。从定义流程,到实例化流程定义,流程实例执行过程中,对流程的管理,流程结束后,纳入历史流程,进行管理。JBPM的流程管理,提供了完整的API,提高了流程执行的效率。JBPM提供的服务API为我们实现了:(1)流程部署(2)流程实例(3)流程任务(4)流程历史 ProcessEngine提供了6个服务API。ProcessEngine是由Configuration类构建的,即工作流引擎根据配置产生。(1)RepositoryService——流程资源服务的接口。提供对流程定义的部署、查询、删除等操作(2)ExecutionService——流程执行服务的接口。提供启动流程实例、“执行”推进、设置流程变量等操作。(3)ManagementService——流程管理控制服务的接口。(4)TaskService——任务服务接口。提供对任务的创建、提交、查询、保存、删除等操作。(5)HistoryService——流程历史服务接口。提供对历史流程实例、历史活动实例等记录的查询。(6)IdentityService——身份认证服务的接口。提供对流程用户、用户组以及组成员关系的相关服务。private RepositoryService repositoryService;//部署流程服务private ExecutionService executionService;//流程执行服务private TaskService taskService;//任务服务private HistoryService historyService;//历史服务private ManagementService managementService;//流程管理服务private IdentityService identityService;//身份认证服务 ProcessEngineprocessEngine = Configuration.getProcessEngine();repositoryService=processEngine.getRepositoryService();executionService=processEngine.getExecutionService();taskService=processEngine.getTaskService();historyService=processEngine.getHistoryService();managementService=processEngine.getManagementService();identityService=processEngine.getIdentityService(); } 1,部署流程定义     public void deploy(){    repositoryService.createDeployment().addResourceFromClasspath("task.jpdl.xml").deploy()} 2,启动流程实例     public voidcreateInstance() { ProcessInstanceprocessInstance = executionService.startProcessInstanceByKey("task"); print("流程实例ID", processInstance.getId()); } 3,获取个人任务     public void getPersonalTask(StringuserId) {     List<Task>tasks=taskService.findPersonalTasks(userId);//根据办理人名称获取个人任务        print("任务数量",tasks.size());        print("任务名称", tasks.get(0).getActivityName());            print("任务ID",tasks.get(0).getId());     } 4,获取组任务     public void getGroupTasks(String userId) {          List<Task> taskList =processEngine.getTaskService().findGroupTasks(userId);//根据办理人名称获取组任务     } 5,分配任务        public void assinTask(String taskId,String userId){         taskService.assignTask(taskId, userId);//将任务Id为taskId的任务分配给userId        }6,拾取任务        public void taskTask(String taskId,String userId){         taskService.takeTask(taskId, userId);//用户userId拾取任务taskId       }5,获取当前任务public void getCurrentTask(String processInstanceId) {                           Stringname=executionService.createProcessInstanceQuery().processInstanceId(processInstanceId).uniqueResult().findActiveActivityNames().toString();//根据流程实例Id获取当前正在执行的任务        print("当前节点名称:", name);}    6,完成任务     public void completeTask(String taskId) {     taskService.completeTask(taskId);//根据任务Id,完成该任务        }        ......JBPM 提供了整个流程管理的Service API,使一个流程实例走完它的整个生命周期过程。JBPM 提供的API几乎完美,当然也有些许不够完善的地方,但是足够应用了。要想熟练使用JBPM为我们工作,熟悉API是第一步。目前对高校中JBPM的应用安排,第一阶段:完成几个demo,目的是熟悉API;第二阶段:结合高校中具体业务,结合JBPM,完成几个实现效果;第三阶段:依据业务中JBPM的应用,对公共部分进行抽象;第四阶段:研究回退、会签、自由流;第五阶段:修正、完善;第六阶段:应用;第七阶段:维护、完善目前处于第二三阶段,即,起步+提升阶段。JBPM4.4部署在Tomcat6以上的版本jar包冲突 http://www.linuxidc.com/Linux/2014-04/99476.htmJBPM工作流开发指南 PDF http://www.linuxidc.com/Linux/2014-06/103823.htmJBPM流程实例(PV)Process Variables http://www.linuxidc.com/Linux/2014-06/102859.htmJBPM流程实例(PI)Process Instance http://www.linuxidc.com/Linux/2014-06/102858.htmJBPM流程部署校验 http://www.linuxidc.com/Linux/2014-06/102860.htmJBPM 的详细介绍:请点这里
JBPM 的下载地址:请点这里本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-11/110027.htm