環境準備
- Liferay Portal Professional 4.2.1 (Tomcat + JDK 5.0 版)
- 使用內建 HSQLDB,不修改資料庫設定
- 下載
liferay-portal-servicemix-4.2.1.war、liferay-portal-jbpm-4.2.1.war
部署流程
- 將兩個 WAR 重命名:
jbpm-web.war、servicemix-web.war
- 複製至 Tomcat
webapps/ 目錄
- 將
webapps/jbpm-web/WEB-INF/sql/hsqldb.create.jbpm.3.1.sql 重命名為 jbpm.script,放入 Tomcat bin/ 目錄(HSQLDB 啟動時自動執行建表)
- 啟動 Tomcat (
startup.bat)
- 瀏覽器開啟
https://localhost:8080/,以 test@liferay.com / test 登入
- 新增 Workflow Portlet → Definitions 標籤 → Add
- 在文字區塊貼上 jPDL 3.1 流程定義 XML(範例見下)
- 送出 → 產生工作流程定義
- Tasks View → Manage 執行任務
範例流程定義 (jPDL)
<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="Example Process">
<start-state name="start">
<task>
<assignment class="com.liferay.jbpm.handler.IdentityAssignmentHandler">
<companyId>liferay.com</companyId>
<type>user</type>
<name>test@liferay.com</name>
</assignment>
<controller>
<variable name="text:color" />
<variable name="text:size" />
</controller>
</task>
<transition name="to_t" to="t"/>
</start-state>
<task-node name="t">
<task name="t">
<controller>
<variable name="text:color" access="read"/>
<variable name="text:size" access="read"/>
</controller>
<assignment class="com.liferay.jbpm.handler.IdentityAssignmentHandler"> ... </assignment>
</task>
<transition name="to_end" to="end"/>
</task-node>
<end-state name="end"/>
</process-definition>
關鍵說明
IdentityAssignmentHandler:Liferay 專用指派處理器,將任務指派給指定使用者。
controller/variable:定義任務表單欄位與讀寫權限。
- 此部署方式適用於 Liferay 4.2.x + jBPM 3.1,新版本請參考官方文件調整。