转自【www.bpmn123.net
】
BPMN2.0规范提供了通用的扩展机制,方便BPMN软件工具或引擎厂家添加自己特有的属性。大家熟悉的开源BPMN项目jBpm和Activiti就大量的使用了BPMN标准扩展机制,来实现自己特有的功能。
下面介绍如何使用Joinwork Process Studio创建带扩展属性的jBpm和Activiti流程定义文件。
jBpm
jBpm 5 在Process元素中增加了扩展属性"packageName"指定流程所属的包名,另外还增加了扩展元素"import"来引用java Class。下面这段BPMN定义文件片段就使用了这两个扩展属性:
-
<
process
id
=
"Import"
name
=
"Import Process"
tns:packageName
=
"com.sample"
>
-
-
<
extensionElements
>
-
<
tns:import
name
=
"java.util.List"
/>
-
<
tns:import
name
=
"java.util.ArrayList"
/>
-
</
extensionElements
>
-
...
-
</
process
>
下面是在Joinwork Process Studio中创建上述内容的过程:
1、新建一个BPMN文件或打开一个已有的BPMN文件。
为加入jBpm的扩展属性,我们需要先添加一个jBpm命名空间“http://www.jboss.org/drools”。
在Stuio左侧的流程定义模型树中选择根节点,然后在属性页面中点击"增加命名空间"打开"命名空间属性"窗口。
分别在"命名空间属性"窗口中的"前缀"和"uri"中输入"tns"和"http://www.jboss.org/drools"
,选择确定。
前缀不一定必须是"tns",只要不与现有的命名空间前缀重复就可以。jBpm的uri必须是http://www.jboss.org/drools。
2、在左侧的流程定义模型树中选择要添加扩展属性的"Process"节点,在下方的Process属性标签页面中选择"备注"标签页。
在备注标签页中单击"增加扩展属性"打开"扩展属性"窗口,"扩展属性"窗口的"扩展命名空间"下拉列表框中选择前面添加的jBpm命名空间,在"属性名称"中输入"packageName",属性值中输入"com.sample",选择确定。
3、在备注标签页中的"扩展元素"输入框中输入以下内容:
-
<
tns:import
name
=
"java.util.List"
/>
-
<
tns:import
name
=
"java.util.ArrayList"
/>
4、保存BPMN定义文件,结束。
Activiti
Activiti有一个自定义的mailTask,是由标准的serviceTask扩展来的,下面创建包含mailTask的Activiti流程模型。
1、选择流程模型树的根节点,增加一个新的命名空间,前缀为:"activiti",uri为"http://activiti.org/bpmn";
2、创建一个类型为"服务-Service"的任务,在此任务的"备注"标签页里,增加一个新的扩展属性。新扩展属性的命名空间是:"activiti:http://activiti.org/bpmn",属性名称是"type",属性值是"mail";
3、在任务"备注"标签页的"扩展元素"输入框里输入以下内容:
-
<
activiti:field
name
=
"from"
stringValue
=
"order-shipping@thecompany.com"
/>
-
<
activiti:field
name
=
"to"
expression
=
"${recipient}"
/>
-
<
activiti:field
name
=
"subject"
expression
=
"Your order ${orderId} has been shipped"
/>
-
<
activiti:field
name
=
"html"
>
-
<
activiti:expression
>
-
<![CDATA[
-
<html>
-
<body>
-
Hello ${male ? 'Mr.' : 'Mrs.' } ${recipientName},<br/><br/>
-
As of ${now}, your order has been <b>processed and shipped</b>.<br/><br/>
-
Kind regards,<br/>
-
-
TheCompany.
-
</body>
-
</html>
-
]]>
-
</
activiti:expression
>
-
</
activiti:field
>
4、保存更新的BPMN文件即可。
使用类似Joinwork Process Studio这样的通用BPMN 2.0 建模工具就能够方便的为第三方符合BPMN标准的软件创建BPMN定义文件,这完全得益于新的BPMN 2.0规范,也是建立和遵循标准的意义所在。
分享到:
相关推荐
工作流引擎的主要任务是定义、执行和监控业务流程,JoinWork2.jar通过强大的规则引擎和灵活的流程设计,满足了各种复杂业务场景的需求。 二、主要功能 1. **流程定义**:JoinWork2.jar支持基于XML的流程定义语言,...
这套API允许程序员通过编程方式执行各种工作流相关的操作,如创建、更新、查询和管理工作流程实例,从而实现自动化业务处理。在深入探讨Joinwork API之前,我们首先需要理解工作流的基本概念。 工作流是一种定义和...
流程模板XML文件格式说明是指 Joinwork工作流引擎使用XML文件格式来描述流程模板的定义和结构。该格式说明包括流程模板的基本结构、流程步骤、流程变量、流程条件等几个方面,旨在提供一套统一的流程模板定义语言。 ...
- **工作流产品定义**:工作流产品是一种用于自动化和管理业务流程的软件工具,旨在提高工作效率和减少人为错误。 - **市场概况**:文中提到,虽然国内从事OA(办公自动化)和平台建设的公司众多,但在工作流领域...
在设计OA(办公自动化)系统的数据库时,我们需要考虑的关键知识点包括数据表的设计、数据关系以及字段的定义。以下是对给定文件中提到的各个表的详细解释: 1. 用户信息表(UserInfo): - UserId:作为主键,用于...
在设计OA(Office Automation,办公自动化)系统的数据库时,我们需要考虑如何有效地组织和存储与办公相关的数据。以下是对给出的数据库表设计的详细解析: **1. 用户信息表(UserInfo)** - `UserId`:作为主键,...
Graduation是毕业院校,Discipline是专业,StydyId、DegreedId分别关联学历和学位信息,LanguageId关联语种,LangLevelID记录外语水平,Ficate是获得的证书,FileLeave是档案存放地,JobTime和JoinWork分别表示参加...
- **JobTime**,**JoinWork**:参加工作时间和加入公司时间。 3. **用户角色表(RoleInfo)**: - **RoleId**:角色的唯一标识。 - **RoleName**:角色的名称,如管理员、普通用户等。 - **RoleDesc**:角色的...