当前位置: 首页 > 工具软件 > Joinwork > 使用案例 >

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

鄢选
2023-12-01
转自【[url=http://www.bpmn123.net/bpmn/20110825/%E4%BD%BF%E7%94%A8process-studio%E5%88%9B%E5%BB%BA%E5%B8%A6%E6%89%A9%E5%B1%95%E5%B1%9E%E6%80%A7%E7%9A%84jbpm%E5%92%8Cactiviti%E6%B5%81%E7%A8%8B%E5%AE%9A%E4%B9%89%E6%96%87%E4%BB%B6.html]www.bpmn123.net[/url]】

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

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

[b]jBpm[/b]
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左侧的流程定义模型树中选择根节点,然后在属性页面中点击"增加命名空间"打开"命名空间属性"窗口。

[img]http://www.bpmn123.net/doc-image/ext_element_1.png[/img]

分别在"命名空间属性"窗口中的"前缀"和"uri"中输入"tns"和"http://www.jboss.org/drools"
,选择确定。
前缀不一定必须是"tns",只要不与现有的命名空间前缀重复就可以。jBpm的uri必须是http://www.jboss.org/drools。

2、在左侧的流程定义模型树中选择要添加扩展属性的"Process"节点,在下方的Process属性标签页面中选择"备注"标签页。

[img]http://www.bpmn123.net/doc-image/ext_element_2.png[/img]

在备注标签页中单击"增加扩展属性"打开"扩展属性"窗口,"扩展属性"窗口的"扩展命名空间"下拉列表框中选择前面添加的jBpm命名空间,在"属性名称"中输入"packageName",属性值中输入"com.sample",选择确定。

3、在备注标签页中的"扩展元素"输入框中输入以下内容:

<tns:import name="java.util.List" />
<tns:import name="java.util.ArrayList" />


[img]http://www.bpmn123.net/doc-image/ext_element_3.png[/img]

4、保存BPMN定义文件,结束。

[b]Activiti[/b]

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规范,也是建立和遵循标准的意义所在。
 类似资料: