`

[转]使用Joinwork Process Studio创建jBpm和Activiti流程定义文件

 
阅读更多

转自【www.bpmn123.net

   BPMN2.0规范提供了通用的扩展机制,方便BPMN软件工具或引擎厂家添加自己特有的属性。大家熟悉的开源BPMN项目jBpm和Activiti就大量的使用了BPMN标准扩展机制,来实现自己特有的功能。

下面介绍如何使用Joinwork Process Studio创建带扩展属性的jBpm和Activiti流程定义文件。

jBpm
jBpm 5 在Process元素中增加了扩展属性"packageName"指定流程所属的包名,另外还增加了扩展元素"import"来引用java Class。下面这段BPMN定义文件片段就使用了这两个扩展属性:

Xml代码  收藏代码
  1. < process   id = "Import"   name = "Import Process"   tns:packageName = "com.sample"   >   
  2.   
  3.    < extensionElements >   
  4.       < tns:import   name = "java.util.List"   />   
  5.       < tns:import   name = "java.util.ArrayList"   />   
  6.    </ extensionElements >   
  7. ...  
  8. </ 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、在备注标签页中的"扩展元素"输入框中输入以下内容:

Xml代码  收藏代码
  1. < tns:import   name = "java.util.List"   />   
  2. < 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、在任务"备注"标签页的"扩展元素"输入框里输入以下内容:

Xml代码  收藏代码
  1. < activiti:field   name = "from"   stringValue = "order-shipping@thecompany.com"   />   
  2. < activiti:field   name = "to"   expression = "${recipient}"   />   
  3. < activiti:field   name = "subject"   expression = "Your order ${orderId} has been shipped"   />   
  4. < activiti:field   name = "html" >   
  5. < activiti:expression >   
  6. <![CDATA[  
  7. <html>  
  8. <body>  
  9. Hello ${male ? 'Mr.' : 'Mrs.' } ${recipientName},<br/><br/>  
  10. As of ${now}, your order has been <b>processed and shipped</b>.<br/><br/>  
  11. Kind regards,<br/>  
  12.  
  13. TheCompany.  
  14. </body>  
  15. </html>  
  16. ]]>   
  17. </ activiti:expression >   
  18. </ activiti:field >   



4、保存更新的BPMN文件即可。

   使用类似Joinwork Process Studio这样的通用BPMN 2.0 建模工具就能够方便的为第三方符合BPMN标准的软件创建BPMN定义文件,这完全得益于新的BPMN 2.0规范,也是建立和遵循标准的意义所在。

分享到:
评论

相关推荐

    joinwork2.jar

    工作流引擎的主要任务是定义、执行和监控业务流程,JoinWork2.jar通过强大的规则引擎和灵活的流程设计,满足了各种复杂业务场景的需求。 二、主要功能 1. **流程定义**:JoinWork2.jar支持基于XML的流程定义语言,...

    joinwork API

    这套API允许程序员通过编程方式执行各种工作流相关的操作,如创建、更新、查询和管理工作流程实例,从而实现自动化业务处理。在深入探讨Joinwork API之前,我们首先需要理解工作流的基本概念。 工作流是一种定义和...

    Joinwork工作流引擎总体设计分享.pdf

    流程模板XML文件格式说明是指 Joinwork工作流引擎使用XML文件格式来描述流程模板的定义和结构。该格式说明包括流程模板的基本结构、流程步骤、流程变量、流程条件等几个方面,旨在提供一套统一的流程模板定义语言。 ...

    fox999_国内工作流产品分析小记.pdf

    - **工作流产品定义**:工作流产品是一种用于自动化和管理业务流程的软件工具,旨在提高工作效率和减少人为错误。 - **市场概况**:文中提到,虽然国内从事OA(办公自动化)和平台建设的公司众多,但在工作流领域...

    OA数据库设计.doc

    在设计OA(办公自动化)系统的数据库时,我们需要考虑的关键知识点包括数据表的设计、数据关系以及字段的定义。以下是对给定文件中提到的各个表的详细解释: 1. 用户信息表(UserInfo): - UserId:作为主键,用于...

    OA数据库设计.docx

    在设计OA(Office Automation,办公自动化)系统的数据库时,我们需要考虑如何有效地组织和存储与办公相关的数据。以下是对给出的数据库表设计的详细解析: **1. 用户信息表(UserInfo)** - `UserId`:作为主键,...

    OA数据库设计.pdf

    Graduation是毕业院校,Discipline是专业,StydyId、DegreedId分别关联学历和学位信息,LanguageId关联语种,LangLevelID记录外语水平,Ficate是获得的证书,FileLeave是档案存放地,JobTime和JoinWork分别表示参加...

    OA数据库设计(1).doc

    - **JobTime**,**JoinWork**:参加工作时间和加入公司时间。 3. **用户角色表(RoleInfo)**: - **RoleId**:角色的唯一标识。 - **RoleName**:角色的名称,如管理员、普通用户等。 - **RoleDesc**:角色的...

Global site tag (gtag.js) - Google Analytics