JBPM (三) 服务和实例介绍
来源:互联网 发布:apache安装无法访问 编辑:程序博客网 时间:2024/06/05 06:15
- jbpm提供的服务
jbpm提供了很多的服务来处理流程,这些服务也是这个jbpm引擎的核心对象,通过服务接口可以完成流程的部署、创建、以及增、删、改、查等操作,框架这东西似乎都是向别人提供服务、接口来供别人使用,当自己想要写一个框架了也要按着标准框架的规范来开发,遵循一个通用的标准做出来的东西才会有人愿意使用。
来看看下面这张图,清晰的展示出了jbpm核心服务对象的关系以及每个对象的作用。
- 服务的使用--流程例子
每个流程实例的创建基本都遵循这三个步骤
1.部署流程定义
2.创建流程实例
3.提交任务
在部署流程实例中首先要做的事定义流程,一般定义信息都写在了jbpm.hibernate.cfg.xml文件里了,该文件的信息对应Configuration对象,即通过Configuration对象可以获得该文件的所有配置信息,包括数据库连接、用户名、事务管理、日志等,下图为一个简单流程定义:
部署流程代码
public void testDeploy(){//得到服务引擎,管理服务的创建ProcessEngine processEngine=Configuration.getProcessEngine();//创建repositoryService服务,可以实现部署、删除流程等RepositoryService repositoryService=processEngine.getRepositoryService();//部署流程repositoryService.createDeployment().addResourceFromClasspath("test.jpdl.xml").deploy();}
创建流程实例
//创建流程实例public void testCreateInstance(){ProcessEngine processEngine=Configuration.getProcessEngine();ExecutionService executionService=processEngine.getExecutionService();//通过已经存在的实例的key值,获得实例ProcessInstance processInstance=executionService.startProcessInstanceByKey("test");System.out.println("流程实例ID===="+processInstance.getId());}
查询当前实例的人员对应的任务
public void testGetTask(){ProcessEngine processEngine=Configuration.getProcessEngine();TaskService taskService=processEngine.getTaskService();List<Task> tasks=taskService.findPersonalTasks("李四");Task task=tasks.get(0);System.out.println("任务数量:"+tasks.size());System.out.println("任务名称:"+task.getActivityName());System.out.println("任务人员:"+task.getAssignee()+"任务ID"+task.getId());}
提交任务
public void testCompeleteTask(){ProcessEngine processEngine=Configuration.getProcessEngine();TaskService taskService=processEngine.getTaskService();taskService.completeTask("8");}
- 结束语
jbpm在流程方面有独到之处,用着也很方便,在工作流上也是一个很好的解决方案,里面的操作记录处理也值得相似的功能借鉴。
2 0
- JBPM (三) 服务和实例介绍
- jbpm实例
- Jbpm Delegation机制源代码分析和实例
- Jbpm介绍
- JBPM介绍
- jbpm源代码研究(三)-------环境和上下文
- JBPM--三
- SuperSocket入门(三)-Telnet多服务实例和服务实例交互配置详解
- SuperSocket入门(三)-Telnet多服务实例和服务实例交互配置详解_0
- JBPM学习(三)--引擎与5个服务
- 工作流总结(三)JBPM 六个流程服务接口
- jbpm学习笔记(三)--管理流程实例
- Log4j2介绍和特性实例(三)--日志的异步输出
- Log4j2介绍和特性实例(三)--日志的异步输出
- Log4j2介绍和特性实例(三)--日志的异步输出
- 数据库服务和实例
- JBPM (四) 浅析JBPM中的实例变量和任务变量
- jBPM几个服务
- Google打造云中Hadoop便捷版,强势对抗AWS
- php opcache 配置
- 解含有[x]的方程
- cocos2dx 官方示例学习(一), 了解demo结构
- 智能手机的功能越来越复杂,可惜用户不买账
- JBPM (三) 服务和实例介绍
- C++常见的编译错误中英对应翻译
- [Leetcode] Unique Binary Search Trees II (Java)
- 阿牛的EOF牛肉串(参考别人的思路写的代码)
- onethink-(03)-php内置函数
- linux 安装笔记 三、JAVA配置
- 老人地铁上拍醒熟睡女孩:快起来我要坐
- 黑马程序员 <银行业务调度系统>
- 手机离线地图进行GPS定位