八、
liferay4.2.2
下的
jBPM
开发
liferay4.2.2
中对
jBPM3.1.2
进行了集成,并且多
jpdl
语言做了扩展,主要表现在对表单数据类型的支持。表现形式为在原有变量表示的基础上为每个变量名加上前缀。下面我们通过一个稍微复杂的例子来具体讲解。
(这里
liferay
在
eclipse
下的工程名为
portal
,扩展工程名为
ext
)
1.
数据库的迁移
数据库的生成这里不再赘述,请参考前面章节建立数据库。数据库建立之后,修改
portal\jbpm-web\docroot\WEB-INF\classes\hibernate.cfg.xml
文件,此文件为
liferay
下的
jbpm
数据库配置文件,注释掉
<!-- Hypersonic -->
下的属性,根据数据库配置
<!-- SQL Server -->
下属性,我的配置如下:
xml 代码
-
<
property
name
=
"hibernate.dialect"
>
org.hibernate.dialect.SQLServerDialect
</
property
>
-
<
property
name
=
"hibernate.connection.driver_class"
>
net.sourceforge.jtds.jdbc.Driver
</
property
>
-
<
property
name
=
"hibernate.connection.url"
>
jdbc:jtds:sqlserver://127.0.0.1:1433;
DatabaseName
=
lportal
</
property
>
-
<
property
name
=
"hibernate.connection.username"
>
liferay
</
property
>
-
<
property
name
=
"hibernate.connection.password"
>
</
property
>
完成后保存文件。
2.
流程定义
在
portal\jbpm-web\docroot\WEB-INF\definitions
下右键新建一个流程,命名为
MessageSend
。按照下图所示建立基本流程,具体过程参照前面。
3.
定义泳道
定义一个名为
user
的泳道:
4.
定义任务
对照下图为各个节点创建任务,并将所有任务赋予泳道
user
。
5.
定义任务变量
下面分别介绍各个任务中的变量:
任务
comment
:
任务
input-name
:
任务
input-message-one
:
任务
input-message-two
:
任务
show-message
:
这里说明一下:
liferay
的
workflow portlet
对
jbpm
的变量定义经行了扩展,可以看到每个变量的名字都由多部分组成其中用冒号分隔,
workflow portlet
会根据变量的前缀自动为该变量生成
html
中的表单。
值得注意的是
jbpm
并不会区分前缀与变量名,而是将这个字符串作为该变量的名字。如:上图中
text:message name
,变量名就为“
text:message name
”。在程序中对该变量的引用也应使用“
text:message name
”。
具体每种数据类型的表示方法如下表:
6.
定义
Handler
及
Action
在流程中我们有一个
decision
节点,这里需要自定义一个类来对
decision
逻辑进行处理。首先,我们切换到
source
视图,找到
decision
标签,在标签中添加一个
handler
标签,该标签用来指定处理逻辑的类,具体内容如下:
xml 代码
-
<
decision
name
=
"more message"
>
-
<
handler
class
=
"com.liferay.jbpm.handler.MessageSendDecision"
>
</
handler
>
-
<
transition
name
=
"no"
to
=
"end"
>
</
transition
>
-
<
transition
name
=
"yes"
to
=
"message-name-input"
>
</
transition
>
-
</
decision
>
从上面可以看出定义的类为:
MessageSendDecision
,
此类的主要任务是通过判断用户的选项来决定将令牌具体传递给哪一个
transition
,下面我们实现这个类。
我们在
portal
工程中新建一个
java
文件
portal\jbpm-web\docroot\WEB-INF\src\com\liferay\jbpm\handler\MessageSendDecision.java
,内容如下:
java 代码
-
package
com.liferay.jbpm.handler;
-
-
import
org.jbpm.context.exe.ContextInstance;
-
import
org.jbpm.graph.exe.ExecutionContext;
-
import
org.jbpm.graph.node.DecisionHandler;
-
-
public
class
MessageSendDecision
implements
DecisionHandler {
-
-
public
String decide(ExecutionContext executionContext)
throws
Exception {
-
-
ContextInstance instance = executionContext.getContextInstance();
-
-
String decision =
null
;
-
-
String response = (String) instance.getVariable(
"radio:more info:yes,no"
);
-
-
if
(response.equalsIgnoreCase(
"yes"
) || response.equalsIgnoreCase(
"no"
))
-
decision = response;
-
else
-
decision =
"no"
;
-
System.out.println(decision);
-
-
-
return
decision;
-
}
-
}
保存该文件,至此该流程的定义结束,我们可以看到
jbpm-web
目录下多了
4
个文件:
7.
部署流程
Jboss
提供的
IDE
没有支持在
liferay
下自动部署流程,因此通过
jbpm-web
下的
ant
命令进行部署。
将
jbpm-web
下的
build.xml
文件拖入
ant
窗口,依次执行命令
compile
编译我们定义的
java
类。之后执行
deploy
命令,将类和流程的定义部署到
web
应用中。打开
tomcat
下的
webapp/jbpm-web
,就可以找到新添加的相应文件。
启动
tomcat
,登录
liferay
,添加
workflow portlet
,点击
definition
选项,点击
add
:
将刚才定义的流程的
processdenfinition.xml
中的内容全部拷贝到文本框中,点击
save new version
,如下:
提交成功后,可以看到列表中多了一项:
点击
add instance
,为该流程添加一个新实例,对该流程进行验证。
分享到:
相关推荐
jbpm-jpdl-suite-3.2GA -(5)分开压缩(共5个文件)jbpm下载 jbpm-jpdl-suite-3.2GA -(5)分开压缩(共5个文件)jbpm下载
- 修改jbpm-jpdl-3.2.3\db目录下的jbpm.jpdl.mysql.sql文件,为每个SQL语句末尾添加分号,以便正确执行脚本。 4. **jbpm-jpdl-suite-3.2.3部署**: - 在MySQL中执行修改后的jbpm.jpdl.mysql.sql脚本,初始化jbpm...
2. **jbpm-jpdl-designer-3.1.2.zip**:这是一个基于Eclipse的图形化流程设计工具,支持流程的可视化定制,避免直接编辑XML文件。同时,它还具有流程定义上传功能,方便将新定义的流程发布到jPDL系统。 3. **jbpm-...
jbpm-jpdl-designer-site-3.1.7.zip jbpm-jpdl-designer-site-3.1.7.zip jbpm-jpdl-designer-site-3.1.7.zip
jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,共两卷
jbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3....
jbpm-jpdl-suite-3.2.GA.zip
jbpm-jpdl-3.2.3.zip 是一个包含开源工作流引擎jbpm的版本3.2.3的压缩包。jbpm(Java Business Process Management)是一个强大的业务流程管理系统,它提供了完整的业务流程建模、执行和管理能力,特别适合于需要...
该插件是jbpm 4.4发行版的一部分,通常位于jbpm安装目录下的jbpm-4.4/install/src/gpd路径中。用户可能会因为各种原因找不到官方提供的安装源,因此这个压缩包被上传,以便有需要的开发者能够方便地获取并安装。 ...
jbpm-flow-builder-5.1.0.Final.jar jbpm5
2. **Eclipse插件**:jbpm-jpdl-designer通常作为一个Eclipse插件存在,使得开发者能够在熟悉的Eclipse集成开发环境中进行流程设计。 **压缩包内的文件说明:** 1. **release.notes.html**:这是发布说明文件,通常...
"jbpm-jpdl-designer-nodeps-3.1.4" 是一个针对Jbpm工作流管理系统中的JPDL设计工具的无依赖版本,主要用于创建和编辑JPDL(Jbpm Process Definition Language)文件。该资源包含了该工具的详细文档、许可证协议以及...
jbpm-jpdl-suite-3.2.GA.zip
这个是jbpm-jpdl-3.2.3.zip的server部分,有60多兆, 只要将"jbpm-jpdl-3.2.3(没有server部分).rar"和这个合在一起就是整个的jbpm-jpdl-3.2.3.zip "jbpm-jpdl-3.2.3(没有server部分).rar"在我的另外一个上传资源里面
jbpm-demo是jbpm附带的演示项目,它包含了多个示例流程,如请假审批流程、采购流程等,这些实例为初学者提供了实践和学习的机会。通过jbpm-demo,用户可以直观地了解如何部署和运行工作流,以及如何与工作流系统进行...
jbpm-jpdl-suite-3.2.GA.zip
jbpm-starters-kit-3.1.2.zip官方下载地址 版本里包括一个JBPM流程设计器的Eclipse插件,和一个用JBOSS作为服务器的示例流程等相关文件。解压jbpm-starters-kit-3.1.2.rar到某个特定目录,这里我们首先用到的是包里...
jbpm-jpdl-designer-3.0.13 是一个与jbpm相关的软件包,主要功能是提供jbpm流程定义的图形化设计工具。...通过深入学习和使用jbpm-jpdl-designer,开发人员和业务分析师可以更好地理解和管理复杂的企业级流程。