搭建开发环境
1.为eclipse安装流程设计器gpd插件
安装完成后检查Window?Preference中是否有Jboss jBPM
路径jbpm-4.4/install/src/gpd/jbpm-gpd-site.zip
安装完后重启eclipse
2.添加jar包:jbpm.jar和JBPM_HOME/lib/下的jar。
注意不添加以下jar包:servlet-api.jar, junit.jar。
其中junit.jar一定不要添加,因为3.8.2版本与我们使用的junit4有冲突。
在tomcat中如果访问jsp出现javax/el/ExpressionFactory异常,则需要把juel.jar, juel-engine.jar, juel-impl.jar 这三个包复制到tomcat的lib中,并删除原来的el-api.jar。还要把工程中的三个jar删掉。
Jbpm开发包中已包含mysql驱动jar包
3.配置文件可以从JBPM_HOME/examples/src/中拷贝:
jbpm.cfg.xml (jbpm的配置文件)
logging.properties (日志文件)
jbpm.hibernate.cfg.xml (jbpm的hibernate配置文件)
注意事项
修改jbpm.hibernate.cfg.xml中的数据库连接信息。如果使用MySql,使用的方言一定要是:org.hibernate.dialect.MySQL5InnoDBDialect
把jbpm.hibernate.cfg.xml的hibernate.hbm2ddl.auto配置为update,初始化流程引擎时,jbpm就会自动建表。
数据库连接编码一定要是UTF-8。否则可能会在部署含有中文字符的流程定义时会抛异常,说sql语法错误。
修改logging.properties中的日志输出级别为WARNING: java.util.logging.ConsoleHandler.level=WARNING
4.编写代码;
jbpm初始化
初始化jbpm数据库环境
new Configuration().configure("jbpm.hibernate.cfg.xml").buildSessionFactory();
注意这里Configuration要是hibernate包中的。
获取工作流引擎
processEngine = new org.jbpm.api.Configuration().buildProcessEngine();
部署流程
processEngine.getRepositoryService()
.createDeployment()
.addResourceFromClasspath("test.jpdl.xml")
.addResourceFromClasspath("test.png")
.deploy();
jbpm编程操作:
启动流程 (流程实例)
processEngine
.getExecutionService().
.startProcessInstanceByKey(“test”); //key即可流程名称
结束流程
processEngine.getExecutionService().
endProcessInstance("test.130001", ProcessInstance.STATE_ENDED);
设置流程变量,设置的流程变量可以在后续流程中获取。注意设置的流程变量要实现Serializable接口
Map map = new HashMap();
map.put("cid", "张三");
processEngine
.getExecutionService().
.startProcessInstanceByKey("test“,map);
任务处理
任务查询:
Task task = processEngine.getTaskService()
.createTaskQuery()
.assignee("张三").uniqueResult();
任务处理
processEngine.getTaskService()
.completeTask(task.getId());
控制流转
processEngine.getTaskService()
.completeTask(task.getId(),outcome);
设置任务待办人在流程定义中通过assignee直接指定。 如: #{studentName}
在流程定义assignee中使用流程变量指定。
组任务:在流程定义xml文件中配置assignment-handler,并通过AssignmentHandler实现类指定
assignee中一定为none
查询组任务,以及指定名称的组任务:
engine.getTaskService().createTaskQuery().candidate(employeeId).uniqueResult();
engine.getTaskService().createTaskQuery().
candidate(employeeId).activityName(taskName).list();
注意事项:
1. 流程图文件名为xxx.jpdl.xml,注意流程图文件名不要用中文文件名。
演示画流程图,并设置任务待办人
2. 添加xml校验schema文件,
文件位置:jbpm-4.4\src\jpdl-4.4.xsd
在Window?Preference中搜索xml catalog,然后点add添加
若仍无提示,则可以在xml任意位置打空格或者字符产生改动,xml产生变动并保存后即可有根据DTD产生提示
3. 修改xxx.jpdl.xml文件后,需要重新部署(调用delopy()方法),否则改动并不会生效
分享到:
相关推荐
jBPM工作流详解,jBPM工作流详解 jBPM工作流详解,jBPM工作流详解 jBPM工作流详解,jBPM工作流详解
jbpm工作流引擎基于J2EE的轻量级,纯java,开源的工作流管理系统。
工作流程 JBPM工作流管理工作流程 JBPM工作流管理工作流程 JBPM工作流管理工作流程 JBPM工作流管理
jbpm工作流详解
jbpm工作流基础视频,讲解工作流流程定义的整个过程,适合于jbpm的初学者学习
JBPM工作流全套学习资料!比较全面的介绍了jbpm,可以作为学习工作流的参考资料.
jbpm开发指南 jbpm开发指南 jbpm 工作流 自定义
jbpm工作流引擎介绍以及出差报销实例,详细的图解和流程
关于jbpm工作流的一些常用的问题jbpm工作流的一些常用的问题
利用jbpm工作流实现的一个工作流开发例子。对初学者有很好的参考价值。
一个JBPM工作流例子,JBPM实现销售批复
JBPM范例 可以运行 简单易懂 快速掌握JBPM
基于JBPM工作流的OA办公系统开发框架,完全支持二尺开发
jbpm工作流教程,4.1版本的Java工作流
李腾飞 JBPM 工作流引擎代码 test01到test04
jbpm 工作流的介绍。基础知识,一些参考
流程的整合,可自定义流程,完整的代码及相关包,下载后,导入工程即可
详细讲解了JBPM工作流的概念以及使用,可以让大家更加轻松把jbpm工作流应用到自己的项目中。
JBPM工作流实战_流程定义文件的上传处理视频
jbpm工作流框架 BPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。jBPM是公开源代码项目,使用它要...