轉自【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 = "[email protected]" />
- < 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規範,也是建立和遵循標準的意義所在。