Jbpm4.4 使用
最近工作项目中需要用到工作流。于是找到了jbpm。关于jbpm的一些概念就不说了
1) 首先下载jbpm,这里我选择了jbpm4.4 从官网上可以下载 http://sourceforge.net/projects/jbpm/files/
下载完了之后,打开文件目录
doc: 文档说明
example:项目例子
install:安装的所需 , 如eclipse插件,数据库脚本
lib:依赖包
src:源码
2) 下载完了,开始吧 jbpm插件安装到eclipse中
Help-install new Software
3) 插件安装好了, 开始配置jbpm数据库 , 我用的sqlserver,数据库JBPMTEST 。
4) 数据库建好。新建一个java项目,导入jbpm 目录下lib的jar包以及 jbpm.jar到自己的项目环境中
5) 然后copy jbpm目录下jbpm-4.4\examples\src 下的
导入到自己项目中的src下
6) 最后修改一下 jbpm.hibernate.cfg.xml 这个配置文件,修改下数据库配置信息,这里需要注意一个属性
<property name="hibernate.hbm2ddl.auto">create-drop</property>
值为create-drop 会自动把数据库原先jbpm表删掉再新建
至此 ,jbpm配置也算搞定了 。下面开始写代码进行test吧
项目结构
建一个 test 的 jpdl 流程定义文件 ,JBPMTEST为程序入口进行测试
发布流程,
ProcessEngine engine;
public JBPMTEST() {
engine=new Configuration().getProcessEngine();
}
public void setUp(){
engine.getRepositoryService().createDeployment()
.addResourceFromClasspath("com/aoy/resource/jbpm/test.jpdl.xml").deploy();
}
查询已发布的流程
public void pdList(){
List<ProcessDefinition> definitions = engine.getRepositoryService().createProcessDefinitionQuery().list();
for (int i = 0; i < definitions.size(); i++) {
System.out.println(definitions.get(i).getDeploymentId());
System.out.println(definitions.get(i).getDescription());
System.out.println(definitions.get(i).getId());
System.out.println(definitions.get(i).getName());
}
}
启动流程实例
public void testStartProcessInstance(){
Map instanceVariables = new HashMap();
instanceVariables.put("leaver", "小明"); //请假者
instanceVariables.put("leaveDays", 7); //请假天数
instanceVariables.put("reason", "老婆生孩子"); //请假事项/原因
//启动流程实例
ProcessInstance processInstance
=engine.getExecutionService().startProcessInstanceByKey("test", instanceVariables);
System.out.println("流程实例"+processInstance.getId()+"创建!");
System.out.println(processInstance.getKey());
System.out.println(processInstance.getName());
System.out.println(processInstance.getProcessDefinitionId());
System.out.println(processInstance.getState());
System.out.println(processInstance.getPriority());
}
查询已经启动的流程实例
public void piList(){
List<ProcessInstance> pis=engine.getExecutionService().createProcessInstanceQuery().list();
for (ProcessInstance processInstance : pis) {
// System.out.println(processInstance.getIsProcessInstance());
System.out.println(processInstance.getId());
System.out.println(processInstance.getExecutionsMap());
}
Jbpm4.4 使用的更多相关文章
- jBPM4.4 no jBPM DB schema: no JBPM4_EXECUTION table. Run the create.jbpm.schema target first in the install tool.
jBPM4.4 no jBPM DB schema: no JBPM4_EXECUTION table. Run the create.jbpm.schema target first in the ...
- JBPM4.4业务流程管理框架详细解读
1. 什么是JBPM4.4业务流程管理框架? JBPM,全称是JavaBusiness Process Management(业务流程管理),它是覆盖了业务流程管理.工作流.服务协作等领域的一个开源的 ...
- Tomcat6环境JBPM4.4报错:java.lang.ClassNotFoundException: de.odysseus.el.util.SimpleResolver
Tomcat6环境JBPM4.4报错:java.lang.ClassNotFoundException: de.odysseus.el.util.SimpleResolver 报错信息:
- JBPM4.4学习API
一.流程引擎API org.jbpm.api.ProcessEngine是jbpm4所有的Service API 之源. 既所有的Service API(服务接口)都从ProcessEngine中获取 ...
- SSH整合JBPM4.4
第一步:导入所需jar包: 所需的jar包(使用了hibernate annotation和struts2的convention-plugin,可能有多余的包,没做清理): 第二步:修改jbpm配置文 ...
- JBPM4.4+SSH 整合配置及完整实例
整合jBPM4.4+ssh过程(spring接管struts2和hibernate,例中都整合在application.xml中,没有单独的jbpm.hibernate.cfg.xml): 1.在se ...
- Myeclipse10 + JBPM4.4 环境搭建图文教程
一.软件环境 IDE:Myeclipse10.0 (jbpm4.0以上版本好像只能与Myeclipse7.5以上版本集成) JBPM:4.4 与Myeclipse集成 1.解压jbpm-4.4.zip ...
- JBPM4.4与SSH2之整合
JBPM4.4与SSH2之整合(附完整源码) 这是我来到这世上二十多年来,第二次写博客啊.哈哈 这些天,想着把jbpm4.4与ssh2整合一下,由于之前从来没用过jbpm,也不知道各版本之间会有什么 ...
- Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8整合例子(附完整的请假流程例子,jbpm基础,常见问题解决)
Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8 整合例子(附完整的请假流程例子). 1.jbpm4.4 测试环境搭建 2.Jbpm4.4+hibernat ...
- JBPM4之decision节点:2、好学生|坏学生|超级学生
JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流程图的插件 JBPM4入门——3.JBPM4开发环境的搭建 JBPM4入门—— ...
随机推荐
- js中移除空白节点
//移除空白节点,空白节点的类型是3 function removeWhiteNode(node) { for (var i = 0; i < node.childNodes.lengt ...
- servlet实现文件上传,预览,下载和删除
一.准备工作 1.1 文件上传插件:uploadify: 1.2 文件上传所需jar包:commons-fileupload-1.3.1.jar和commons-io-2.2.jar 1.3 将数 ...
- 自己动手写处理器之第二阶段(2)——Verilog HDL简单介绍
将陆续上传本人写的新书<自己动手写处理器>(尚未出版),今天是第六篇.我尽量每周四篇 2.3 Verilog HDL简单介绍 本书实现的OpenMIPS处理器是使用Verilog HDL编 ...
- 理解Lucene中的Query
Query是一个接口,它有很多实现类. QueryParser是Query解析器,用于将一个字符串解析为一个Query对象,这个Query对象可能属于TermQuery,也可能属于PhraseQuer ...
- php 类和对象
⾯向对象是⼀种编程范式,它将对象作为程序的基本单元,将程序和数据封装起来, 以此来提⾼程序的重⽤性.灵活性和可扩展性. ⽬前很多语⾔都⽀持⾯向对象编程,既然对象对象是⼀种范式,其实这就和具体的编程语⾔ ...
- eclipse 中使用中文JAVA api文档
http://hi.baidu.com/danghj/item/7625a1be20946e43ba0e1202在eclipse中使用中文JAVA api文档Sun 官方的中文版 Java API 文 ...
- Excel提示“此工作簿包含一个或多个无法更新的链接”怎么办
有时打开Excel文件时会弹出一个“此工作簿包含一个或多个无法更新的链接”的提示.对于初次接触这个提示的用户,可能会感到迷惑,不知道应该如何处理,这里以Excel2007为例,介绍一下这个提示出现的原 ...
- 浅谈原始套接字 SOCK_RAW 的内幕及其应用(port scan, packet sniffer, syn flood, icmp flood)
一.SOCK_RAW 内幕 首先在讲SOCK_RAW 之前,先来看创建socket 的函数: int socket(int domain, int type, int protocol); domai ...
- Linux内核(5) - 内核学习的相关资源
“世界上最缺的不是金钱,而是资源.”当我在一份报纸上看到这句大大标题时,我的第一反应是——作者一定是个自然环保主义者,然后我在羞愧得反省自身的同时油然生出一股对这样的无产主义理想者无比崇敬的情绪来. ...
- 【Life】 Never Too Late, Just Do it Better!
开这个博客: 一来是认为自己记忆力不好,对所学的东西做个记录: 二来是希望找到很多其它志同道合的人.一起交流进步: 不论什么时候開始努力都不晚! 希望平淡的工作生活不要磨灭我们心中的梦想,与君共勉~