JBPM5學習資料(腳本任務scriptTask)
Junit測試的mini流程helloworld
這是一個在demo中使用的Script Task做的簡單示例,在執行到這個任務結點的時候自動輸出"hello world"
打開BPMN2-MinimalProcess.bpmn2檔案
流程如上圖,流程開始的時候自動執行這個節點,然後在節點上執行輸出的指令
看一看測試程式
?
|
在執行完成後斷言一下執行的結果為完成狀态,就是完成狀态是true
assertTrue(processInstance.getState() == ProcessInstance.STATE_COMPLETED);
在控制台中成功輸出結果
Loading process BPMN2-MinimalProcess.bpmn2
Hello World
表示示例加載運作成功
Junit測試的加載子流程的helloworld
這是一個在demo中使用子流程的示例,功能和上面一樣但是用到了子流程
流程如下圖:
調用程式如下:
?
|
完成之後狀态如上,并且在控制台同樣輸出hello world
Junit測試script task
功能和上兩個是一樣的,截圖
運作
?
|
輸出
Loading process BPMN2-ScriptTask.bpmn2
Hello World
Junit測試輸出list
功能如上,但是在script task中輸出清單
action屬性的内容如下
運作輸出
Loading process BPMN2-Import.bpmn2
[1]
Junit測試Rule Task
這次要加載的檔案有兩個,一個是BPMN2-RuleTask.bpmn2,一個是BPMN2-RuleTask.drl,一個是流程檔案,一個是規則檔案
裡面加載的是Rule Task
并且設定規則為
然後看一下drools規則檔案中的内容
?
|
定義了規則組myRules,如果滿足條件那條将加list中添中一條值
于是在我們的測試代碼中就全看到
assertTrue(list.size() == 1);
看一下完整的測試代碼
?
|
加入兩個配置檔案,并且傳入list,當結點執行完成後,list中的值自動添加了一條。測試結果正常通過。
Junit測試資料對象
這個示例示範的是從外部傳入資料,并且在内部得到資料并且顯示的示例
其中Log節點是一個Script Task,它的Action屬性裡邊設定了值employee,它的值是從外部傳入的
System.out.println("Processing evaluation for employee " + employee);
看一下測試的代碼
?
|
傳入的employee的值是"UserId-12345"
運作完成後看輸出的結果
Loading process BPMN2-DataObject.bpmn2
Processing evaluation for employee UserId-12345
顯示我們傳入的資訊,這對我們做流程判斷非常有用。