概述
Human Task 是BPM流程中的节点必需通过人为的手动操作才能够执行。jBPM 5 通过 User Task(jBPM5示例之 User Task) 节点来支持Human Task。Human Task通常要求流程设计者在设计流程时指定流程运行相关的属性,流程类型,流程的执行者,流程运行相关的数据。流程运行时我们根据这些属性运行流程。
Human Task 是BPM核心,为什么可以这样说呢?一位BPM专家曾在某次BPM技术峰会上这样定义BPM:“BPM is a blending of process management/workflow with application integration technology...to support rich human interaction and deep application connectivity”。注意他所表达BPM的目的或价值就是为复杂的企业应用提供广泛的人为操作的可能性。
本文主要目的是通过实验理解jBPM Human Task ,我们所需要的工具包括git,Maven,JBoss等,这些安装可参照软件安装及资料下载。本文主要内容包括:
- 下载编译jBPM Human Task 代码
- 部署jBPM Human Task 服务到JBoss
- jBPM Human Task 数据模型
- 通过TaskClient与Human Task 服务端交互
- Human Task的生命周期
下载编译jBPM Human Task 代码
本部分我们下载编译jBPM 5.2.x代码(https://github.com/droolsjbpm/jbpm/tree/5.2.x),具体使用如下git命令克隆:
git clone --branch=5.2.x git@github.com:droolsjbpm/jbpm.git
克隆完成使用如下maven命令编译jBPM 5.2.x代码:
mvn clean install -Dmaven.test.skip=true
如以上步骤没有出现错误则该部分完成,我们需要如下编译生成的包或Maven本地仓库中的包来供我们使用:
- jbpm-human-task-war-5.2.6-SNAPSHOT-EE6.war - 位于jbpm-human-task-war/target目录下
部署jBPM Human Task 服务到JBoss
本部分我们部署jbpm-human-task-war-5.2.6-SNAPSHOT-EE6.war到JBoss 7。具体参照使用4种方式部署应用到JBoss7/WildFly。
我们需要基于jbpm-human-task-war-5.2.6-SNAPSHOT-EE6.war做如下操作:
1. 重命名
unzip jbpm-human-task-war-5.2.6-SNAPSHOT-EE6.war jbpm-human-task.war
2. 创建数据库
jBPM Human Task执行过程需要存储数据在数据库中,我们本实验使用mysql数据库,我们使用如下SQL语句创建数据库jbpm,jbpm_user用来操作数据库jbpm,jbpm_user对应密码jbpm_pass:
CREATE DATABASE jbpm;
create user 'jbpm_user'@'localhost' identified by 'jbpm_pass';
grant a