按照”COCE_GIW_ALL_Index”活動所述步驟完成”Approve”活動的步驟。
右鍵點擊”SendMail”,在彈出的菜單中選擇”活動嚮導”,在彈出的對話框中,”服務類型”區域選擇”系統服務”,在”服務選擇”區域中選擇”連接現有服務”,並點擊”選擇”按鈕,在彈出的對話框中選擇”Send E-mail via SMTP”,在”屬性”標籤頁下的數據映射選項卡中填寫郵件發送的相關信息,其中”to”欄位填寫如下 JS 代碼:tw.local.approverNames[tw.local.currentApproverNumber – 1]
“messageText”欄位填寫如下 JS 代碼:tw.local.mailContents[tw.local.currentApproverNumber – 1]
contentType 欄位填寫”text/html”,”smtpHost”欄位填寫合法的 SMTP 主機 IP 或者域名,”from”欄位填寫對應的合法郵件賬戶,其他欄位填寫空字元串。右鍵點擊”COCE_GIW_ROBF_DuplicateCheck”,在彈出的界面中分別選擇”系統服務”和”新建服務”,保持名稱不變點擊”下一步”,在”活動嚮導 – 參數”頁面為新建的服務修改如圖 11 所示的參數輸入輸出映射,並點擊”完成”按鈕:
圖 11. COCE_GIW_ROBF_DuplicateCheck 參數映射
雙擊業務流程定義中”COCE_GIW_ROBF_DuplicateCheck”的節點,詳細編輯節點的子步驟。選擇 Common 區域中的”Nested Service”,在其”Properties”選項卡下的”Implementation”中的”AttachedService”區域中,點擊右邊的”Select”按鈕,在彈出的頁面中選擇”Read From HTTP”服務,最後用”序列流”將整個子步驟連接起來,完成後如圖 12 所示:
圖 12. 更改 COCE_GIW_ROBF_DuplicateCheck 的實現
返回到”SimpleRapidBPD”主流程定義頁面,點擊圖中”LoopDecision”決策網關,選擇”屬性”選項卡下的”實施”子屬性,在右邊的”決策”區域中,”to SendMail”對應的編輯框中填入相應代碼。
完成後如圖 13 所示:
如上圖所示,”to 結束”右邊默認填入”預設行”,如果”to SendMail”處於下面,並且右邊區域默認填入”預設行”,可通過右邊的上下箭頭進行交換。此時流程定義結束。點擊設計器右上方的 按鈕,Authoring Environment 將自動切換到”檢查器”視圖,左上方區域中是流程實例相關數據,右上方是 Activity 相關運行數據,左下方是當前運行實例的模擬視圖,右下方是調試數據。當前正在運行”COCE_GIW_ALL_Index”活動,由橘黃色游標指示。點擊右上角的
按鈕,會刷新出最新產生的活動,選擇其中一個活動,點擊其右邊的
按鈕,會執行該活動。通過不斷重複上述步驟,直到流程正確結束。
注意:在模擬運行流程之前,須將 SendMail 活動的數據映射中的”to”和”messageText”欄位改成任意符合條件的非空欄位,否則模擬運行時會拋出異常。
自此,基於 IBM BPM 的發票審核流程定義完成。
構建基於 IBM Business Process Manager 流程定義的應用程序
本文所描述的 JavaEE 系統主要使用 IBM BPM 所提供的 WebAPI 作為外部系統和 BPM 系統交互的通道。
打開 Eclipse 啟動程序,點擊菜單欄”File”—>”New”—->”Dynamic Web Project”,在彈出的對話框中”Project name”段中填入”LombardiSimulation”,選擇合適的”Target Runtime”和”Web Module Version”點擊”Finish”,完成工程的創建。根據情況選擇合適的”Target Runtime”和”Dynamic web module version”,項目中分別為 Apache Tomcat V6.0 和 v2.5。完成後在工作台中的 JavaEE Perspective 中的 Project 視圖中可以看見工程結構。
創建 Web 組件之前,先了解一下工程中所使用的 Web 組件。表 5 中列出了 Web 工程中主要的後台功能組件,表 6 列出了工程中的前台頁面組件。
表 5. Dynamic Web Project 功能組件
名稱 |
類型 |
訪問 URL |
描述 |
FileLoadDaemon |
Thread |
無 |
輪訓後台服務端,當出現新的文檔 Image 的時候啟動 StartPIThead 的實例 |
StartPIThread |
Thread |
無 |
根據配置文件,連接 IBM BPM 的伺服器,並啟動一個 Process 的實例 |
ApproverServlet |
Servlet |
ApproverServlet |
處理審核者的審核請求 |
DisposeIndexServlet |
Servlet |
DisposeIndexServlet |
處理髮票錄入員錄入發票數據及其他信息的請求 |
DuplicateCheckServlet |
Servlet |
DuplicateCheckServlet |
響應由 IBM BPM 服務端發送的進行重複性檢查的 HTTP 請求 |
InitServlet |
Servlet |
InitServlet |
載入並初始化整個系統所使用的參數,並根據配置文件創建 FileLoadDaemon 實例 |
LoadApproveData |
Servlet |
LoadApproveData |
為發票審核頁面載入後台需審核的數據 |
LoadProcessListData |
Servlet |
LoadProcessListData |
為初始頁面載入活動的 Process 實例列表數據 |
WebAPIUtil |
Common |
無 |
產生連接 IBM BPM 服務端的 WebAPI 實例的工具類 |
列表中為 Web 系統所使用的主要的類,包括各種 Thread 類,Servlet 類以及普通的 Java 類,圖 14 描述了各個類之間的關係:
圖 14. 類關係
以下文章點擊率最高
Loading…