天天看點

activiti自定義流程之整合(五):啟動流程時擷取自定義表單

流程定義部署之後,自然就是流程定義清單了,但和前一節一樣的是,這裡也是和之前單獨的activiti沒什麼差別,是以也不多說。我們先看看清單頁面以及對應的代碼,然後在一步步說明點選啟動按鈕時如何調用自定義的form表單。

流程定義清單頁面如下:

activiti自定義流程之整合(五):啟動流程時擷取自定義表單

對應的html代碼:

對應的angularjs代碼:

在上邊的代碼中就有需要注意的地方了,從代碼中可以看到,當我們點選頁面的啟動按鈕時,會觸發toprocess方法,而這個方法就使用到了dialog對話框,對話框中顯示的内容便是之前自定義的表單,從背景資料庫中請求過來。

那麼讀取的時候發送了getstartform.do的請求,背景對應的代碼如下:

要說明的是這裡之是以能使用formservice.getrenderedstartform方法,便是因為在上一節部署的時候進行了設定,否則這個方法是無法正常使用的。

那麼這個對話框彈出界面視圖如下:

activiti自定義流程之整合(五):啟動流程時擷取自定義表單

需要注意的是dialog的css樣式在jquery-ui.css中,不要忘了導入進來,當然了,也可以按自己的喜好修改。

那麼填寫好相關的資料點選送出,同過上邊的js可以知道就走到了背景getstartformandstartprocess這裡,啟動流程執行個體:

而這裡最重要的是對前台資料的處理,如果大家使用了ueditor插件,會發現他傳遞到背景的資料是存放在request中的一個map中,而map的key都是data_1、data_2、data_3的形式。

這樣問題就來了,到後邊對任務進行操作的時候,這些資料還是這樣從data_1開始,那麼如果我們原樣儲存到資料庫,以後查詢時自然就會有問題了,是以這裡就根據每個流程中流程節點行号的唯一性進行了重新組合,然後把這些資料儲存為流程變量。