快速掌握JBPM工作流

搭建开发环境


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()方法),否则改动并不会生效
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值