博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JBPM (三) 服务和实例介绍
阅读量:6847 次
发布时间:2019-06-26

本文共 1830 字,大约阅读时间需要 6 分钟。

  • 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
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在流程方面有独到之处,用着也很方便,在工作流上也是一个很好的解决方案,里面的操作记录处理也值得相似的功能借鉴。

转载于:https://www.cnblogs.com/lilongsheng1125/p/4978544.html

你可能感兴趣的文章
OSChina 周六乱弹 —— 历史总是惊人的相似
查看>>
MySQL 大小写
查看>>
div块上下左右居中
查看>>
eclipse远程debug tomcat
查看>>
CentOs6.5基本环境配置(六):Maven配置
查看>>
Python 创建Django项目
查看>>
JS获取当前项目的根路径
查看>>
操作系统引导区代码
查看>>
程序员有五种错误不应犯
查看>>
无线认证知识点
查看>>
基于python的REST框架eve测试与mongodb的数据操作
查看>>
epoll模型的理解封装与应用
查看>>
Lync 2013部署图片赏析-证书服务安装配置
查看>>
HTML5 本地缓存 (web存储)
查看>>
tomcat redis session共享(包含redis安全设置)
查看>>
iptables中DNAT、SNAT和MASQUERADE的作用
查看>>
kvm命令学习记录
查看>>
小菜鸡进阶之路-First week
查看>>
ORACLE 10g SYSAUX表空间快速增长之WRH$_ACTIVE_SESSION_HISTORY篇
查看>>
我的友情链接
查看>>