普元流程開發(fā)手冊_第1頁
普元流程開發(fā)手冊_第2頁
普元流程開發(fā)手冊_第3頁
普元流程開發(fā)手冊_第4頁
普元流程開發(fā)手冊_第5頁
已閱讀5頁,還剩54頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、普元流程開發(fā)手冊浪潮通信 OSS綜合業(yè)務(wù)中心2011年6月1熟悉流程22數(shù)據(jù)庫建表52.1建表目的52.2表字段52.3Sequence63WSH生成代碼63.1生成代碼63.2修改代碼84設(shè)計BPS流程124.1配置BPS124.2創(chuàng)建BPS流程圖134.3添加活動和連接線154.4提交BPS流程234.5子流程265應(yīng)用流程設(shè)計器設(shè)計流程285.1創(chuàng)建流程信息285.2字典配置305.2.1環(huán)節(jié)分類305.2.2流程分類325.3角色庫325.4環(huán)節(jié)庫345.5表單庫管理365.6應(yīng)用流程設(shè)計器畫出流程395.7提交流程445.8表單定制455.9角色人員486制作發(fā)起頁面507EXT派發(fā)

2、抄送人員選擇對話框說明518初始化工單頁面519發(fā)起流程或者完成當(dāng)前環(huán)節(jié)5210環(huán)節(jié)信息處理5311環(huán)節(jié)駁回處理5512工單詳情頁面571 熟悉流程通過Visio畫出業(yè)務(wù)的流程圖,充分理解流程的流轉(zhuǎn)過程,流程環(huán)節(jié),角色等信息(如圖1-1)。(如圖1-1)2 數(shù)據(jù)庫建表2.1 建表目的存儲流程發(fā)起頁面的字段內(nèi)容,供流程詳情頁面使用。(如圖2-1)2.2 表字段Ø 表命名規(guī)范:以T_BNS_為前綴。Ø 工單發(fā)起頁面中除資源服務(wù)外的所有字段(上傳附件另外存儲這里不作考慮)。Ø 必須包括的字段l IDNUMBER not null表主鍵l FORM_NOVARCHAR2(

3、40)工單編號l FLOW_IDNUMBER工單流水號l PIDNUMBER流程實(shí)例號l STATENUMBER 工單狀態(tài)l TITLEVARCHAR2(200)工單主題l START_TIMEDATE派單時間l OWNER_IDNUMBER派單人IDl OWNER_NAMEVARCHAR2(50)派單人l DEPT_IDNUMBER派單人部門IDl DEPT_NAMEVARCHAR2(50)派單人部門名稱l CELL_PHONEVARCHAR2(40)派單人聯(lián)系電話l FINISH_TIMEDATE要求完成時間(可選)l COMPANY_ID NUMBER公司IDl COMPANY_NAME

4、VARCHAR2(50)公司名稱l ACCEPT_TIMEDATE受理時限l REPLY_TIME DATE回復(fù)時限其中:FORM_NO是工單發(fā)起頁面顯示的工單編號。 FLOW_ID是工單的唯一標(biāo)示。 PID是bps流程引擎生成的流程實(shí)例號。 STATE顯示工單流程狀態(tài) ACCEPT_TIME是規(guī)定時間必須受理。 REPLY_TIME是規(guī)定時間必須處理完。2.3 Sequence規(guī)則:表名+seq。3 WSH生成代碼3.1 生成代碼3.1.1 參考WSH文檔3.1.2 注意事項3.2 修改代碼以基站入網(wǎng)流程為例:Ø 增加com.inspur.app.btsIcess包。&#

5、216; 修改TbnsBtsIn.javal 增加屬性templateName,processinstDesc。同時增加get、set方法。l 增加clone();public Object clone()tryTbnsBtsIn cloneObject = (TbnsBtsIn)super.clone();return cloneObject;catch(CloneNotSupportedException ex)throw new InternalError();Ø 修改BaseTbnsBtsIn.javal 更改繼承的BasePojo為com.inspur.app.basic.

6、pojo.BasePojo。l 如有如下字段,字段類型必須符合,不符合的手工修改:² flowId Long型² formNo String型² title String型² state Long型² ownerName String型² ownerId Long型² companyName String型² companyId Long型² deptName String型² deptIdLong型² startTimejava.util.Date型² replyTimej

7、ava.util.Date型同時修改hbm配置文件。Ø 修改TbnsBtsInAction.javal 更改繼承關(guān)系,改為繼承com.inspur.app.basic.action.AbstractTBnsAction類。l 更改getModel()方法的返回值為Object。l 實(shí)現(xiàn)AbstractTBnsAction的 getTbnsService()方法返回service實(shí)現(xiàn)類;如:service實(shí)現(xiàn)類為 tbnsBtsInService;public Object getTbnsService() return tbnsBtsInService;l 增加流程模板名:prote

8、cted final static String TEMPLETNAME = "com.inspur.app.btsIcess.btsIn"Ø 更改service層TbnsBtsInServiceImpl.javal 更改繼承關(guān)系,繼承com.inspur.app.basic.service.AbstractCommonTBnsService類。l 修改生成的action配置文件名,添加前綴struts-。l 修改struts.xml加入新生成的action配置文件。l 修改生成的spring配置文件。4 設(shè)計BPS流程4.1 配置BPS圖4-1如上圖所

9、示配置好IP地址和端口號4.2 創(chuàng)建BPS流程圖(如圖4-2)Ø 新建bps流程文件:l 流程文件創(chuàng)建在各流程的對應(yīng)的process包下(如圖4-3)。(如圖4-3)l 流程名稱為英文也是流程文件名。流程文件包路徑+流程名稱在系統(tǒng)流程設(shè)計器中還要用到。Ø 設(shè)置流程屬性:l 鼠標(biāo)雙擊編輯區(qū)空白處,彈出流程屬性設(shè)置對話框。一般只需填寫顯示名稱、作者、描述(如圖4-4)。(如圖4-4)4.3 添加活動和連接線Ø 根據(jù)Visio流程圖添加流程環(huán)節(jié):l 增加流程活動:根據(jù)要添加的流程環(huán)節(jié)性質(zhì)選取圖元,從選用面板拖動到流程編輯區(qū)項目中常用活動流程編輯器中圖元對應(yīng)資源文件人工活

10、動Jsp/html文件自動活動Java方法子流程流程文件注意:² 由于在新建業(yè)務(wù)流程時,"開始圖元"和"結(jié)束圖元"默認(rèn)已經(jīng)生成,所以一般情況下無需拖拽這兩個圖元,并且在一個流程當(dāng)中"開始圖元"和"結(jié)束圖元"都有且僅有一個,不能重復(fù)拖拽。l 編輯活動屬性:² 基本信息編輯活動ID為英文,該活動ID在系統(tǒng)流程設(shè)計器中還要用到。注意: u 開始環(huán)節(jié)后的第一個環(huán)節(jié)(發(fā)起及輸入數(shù)據(jù))活動ID必須為jbr。u 結(jié)束環(huán)節(jié)前的最后一個環(huán)節(jié)(歸檔)活動ID必須為gd。² 聚合模式為確定流程運(yùn)行時該活動啟

11、動前,它的前驅(qū)活動觸發(fā)該活動的啟動條件。² 分支模式為確定流程運(yùn)行時該活動結(jié)束后,它的后繼活動將以何種方式啟動。l 指定參與者選擇參與者選項卡,可以根據(jù)需要靈活地賦予當(dāng)前活動不同的參與者。一般情況流程的第一個環(huán)節(jié)和最后一個環(huán)節(jié)的參與者應(yīng)設(shè)為流程啟動者。² 如為頁面手動選擇派發(fā)對象,則參與者應(yīng)選擇技術(shù)手段設(shè)置中的相關(guān)數(shù)據(jù),變量命名規(guī)則為assignList_ + 當(dāng)前活動ID。如下圖² 如為后臺程序自動壓入?yún)⑴c者,則需根據(jù)流程具體情況自己編寫代碼,并通過規(guī)則邏輯選擇該方法。注意更新bps引擎中的對應(yīng)文件。參數(shù)配置表中寫法如下圖如下圖² 如果兩個環(huán)節(jié)的處理人

12、相同,可以在參與者中選擇活動執(zhí)行者 點(diǎn)擊瀏覽選擇與其參與者相同的環(huán)節(jié)。如下圖²建議活動參與者在建流程圖之初都選擇流程啟動者,等整個流程流轉(zhuǎn)無問題后在對活動參與者進(jìn)行設(shè)置。l 添加連接線:在選用面板選擇連接線,在流程編輯區(qū)連接兩個活動圖元。修改活動的屬性,根據(jù)連線情況設(shè)定活動屬性中的聚合模式和分支模式。如該環(huán)節(jié)處理結(jié)束后,后繼環(huán)節(jié)為多個并行環(huán)節(jié),則分支模式選擇為多路分支(如圖4-5):圖4-5如該環(huán)節(jié)啟動前,前驅(qū)環(huán)節(jié)為并行環(huán)節(jié)則聚合模式選擇為多路聚合(如圖4-6)。圖4-6駁回操作需設(shè)置連接線屬性(如圖4-7):圖4-7如果該流程壓入的is_back的值為true就執(zhí)行該分支。(另見5

13、.5流程表單庫管理)Ø 復(fù)雜連線:圖4-8如圖4-8:l A設(shè)置的是“多路分支”l E設(shè)置的是“多路聚合”l AB條件為b=1l AC條件為c=1l AD條件為d=1當(dāng)AB、AC、AD中有一個執(zhí)行完畢后,E活動會做是否啟動的判斷,由于E有三個分支線匯入,因此會判斷是否三條線都滿足條件。如果沒有在線上設(shè)置條件,則默認(rèn)是符合條件,E活動會一直等待其余分支的完成,如果AD中d!=1,則AD不會執(zhí)行,因此E活動會因為等不到AD活動的結(jié)束而一直處于等待狀態(tài)。解決方法是聚合的線上條件要與分支的一致,即:BE條件為b=1、CE條件為c=1、DE條件為d=1。4.4 提交BPS流程Ø 操作

14、前首先確認(rèn)BPS Server已經(jīng)啟動。Ø 使用BPS流程編輯器打開流程文件,在流程編輯器中右鍵,中選擇流程定義庫交互/提交流程菜單項。Ø 提交模式選擇:l 按照默認(rèn)方式提交用戶選擇按照默認(rèn)方式提交流程時會有兩種情況: ² 如果流程定義庫已經(jīng)存在業(yè)務(wù)流程則覆蓋最新版本的流程。 ² 如果流程定義庫中不存在流程定義,則創(chuàng)建新版本流程。 l 覆蓋已有版本如果流程不是第一次提交,用戶可以從已經(jīng)存在的版本列表中選擇,指定一個已有的版本進(jìn)行覆蓋操作。 l 創(chuàng)建新版本用戶提交業(yè)務(wù)流程時,可以選擇創(chuàng)建新版本。版本生成規(guī)則是由BPS引擎控制的。如:當(dāng)前流程版本為"

15、;1.1.1",則會創(chuàng)建新版本"1.1.2";如果第一次提交版本則會創(chuàng)建版本"1.1.1"。 l 輸入版本描述,選擇是否立即發(fā)布。用戶可隨需輸入版本描述信息,系統(tǒng)默認(rèn)的注釋信息為用戶名和提交時間。用戶可以決定是否立即發(fā)布流程: ² 選中"立即發(fā)布"復(fù)選框,則為部署后馬上執(zhí)行發(fā)布動作,如果有已經(jīng)發(fā)布的舊版本則取消發(fā)布舊版本,馬上發(fā)布當(dāng)前版本。 ² 不選中"立即發(fā)布"復(fù)選框,則為部署后不執(zhí)行發(fā)布動作。如果是覆蓋舊版本則不會改變原來版本的發(fā)布狀態(tài);如果是新版本則部署后為未發(fā)布狀態(tài)。注意:&#

16、178; 項目一般用默認(rèn)方式提交。² 記住提交的版本號,之后系統(tǒng)的流程設(shè)計器會用到。² 如果忘記版本號可以去 WFPROCESSDEFINE表中查找Ø 發(fā)布結(jié)果:提交完成后會顯示提交結(jié)果信息,可以查看流程和流程所引用的業(yè)務(wù)資源是否成功提交,對于提交失敗的資源,會顯示失敗的錯誤信息。4.5 子流程l 創(chuàng)建BPS子流程:雙擊編輯區(qū)空白處,選擇流程參數(shù),設(shè)定子流程需要的參數(shù)。l 父流程引入子流程:l 設(shè)置參數(shù):l 雙擊子流程圖標(biāo),選擇多子流程策略。被迭代元素為要壓入bps流程引擎的變量名,一般為ArrayList。迭代變量為傳入每個子流程的變量名。l 選擇子流程參數(shù),點(diǎn)

17、擊瀏覽選擇要關(guān)聯(lián)的子流程。并設(shè)定上要傳入子流程的值。(迭代變量作為值傳入子流程)5 應(yīng)用流程設(shè)計器設(shè)計流程5.1 創(chuàng)建流程信息Ø 選擇流程設(shè)計器面板中的流程庫:Ø 創(chuàng)建流程信息l 流程英文名稱是bps流程文件包路徑+bps流程文件名。l 版本號與bps引擎流程模板的版本號保持一致(如果忘記版本號可查詢數(shù)據(jù)庫wfprocessdefine表)l 業(yè)務(wù)主表為之前第二步創(chuàng)建的數(shù)據(jù)表。l url為該流程action類的訪問路徑。l 是否是子流程:標(biāo)示所建流程是否是子流程,子流程選擇時可見(如下圖)。以工程管理流程為例url為勘查單錄入的action的名字Ø 添加流程圖(工

18、單處理環(huán)節(jié)流程圖查看時用到):將Visio畫出的流程圖放在項目eoms-skins/default/images/workflow下圖片文件名為流程英文名稱。文件格式為jpg。5.2 字典配置選擇流程設(shè)計器面板中的字典配置:5.2.1 環(huán)節(jié)分類流程環(huán)節(jié)分類的管理,用于環(huán)節(jié)庫管理、流程表單庫管理、流程庫管理的業(yè)務(wù)類型選擇。Ø 選擇左側(cè)面板中的環(huán)節(jié)分類Ø 創(chuàng)建環(huán)節(jié)類型點(diǎn)擊創(chuàng)建(如上圖)Ø 創(chuàng)建環(huán)節(jié)分類字典中沒有的分類。注意:顯示名、數(shù)據(jù)值唯一不允許重復(fù)。Ø 模糊查詢環(huán)節(jié)分類:查詢是否含有該流程所需的環(huán)節(jié)分類。Ø 編輯和刪除環(huán)節(jié)分類字典信息:5.2.

19、2 流程分類在角色人員中要用到Ø 選擇左側(cè)面板中的環(huán)節(jié)分類Ø 創(chuàng)建環(huán)節(jié)類型點(diǎn)擊創(chuàng)建(如上圖)Ø 填寫新的類型操作與環(huán)節(jié)分類類似5.3 角色庫Ø 單擊選擇角色庫:Ø 明確流程中的角色:根據(jù)Visio流程圖確定該流程所需的角色。Ø 模糊查詢相關(guān)角色:查詢角色庫中可以復(fù)用的角色。可根據(jù)歸屬類型、角色中文名稱,角色英文名稱查詢。Ø 創(chuàng)建角色:創(chuàng)建角色庫沒有的角色。l 右鍵點(diǎn)擊歸屬類型選擇添加角色:Ø 修改與刪除角色:根據(jù)具體需要修改或刪除角色。注意:刪除是在數(shù)據(jù)庫中做刪除標(biāo)志。1為刪除。5.4 環(huán)節(jié)庫l 維護(hù)流程中的環(huán)節(jié):

20、根據(jù)Visio流程圖確定該流程所需的環(huán)節(jié)。l 模糊查詢相關(guān)環(huán)節(jié):查詢環(huán)節(jié)庫中可以復(fù)用的環(huán)節(jié)。l 創(chuàng)建環(huán)節(jié):創(chuàng)建環(huán)節(jié)庫中沒有的環(huán)節(jié)。注意:l 環(huán)節(jié)的中文名稱和英文名稱在環(huán)節(jié)庫中唯一,不允許重復(fù)。l 環(huán)節(jié)關(guān)聯(lián)信息暫不操作。Ø 修改與刪除環(huán)節(jié):根據(jù)具體需要修改或刪除環(huán)節(jié)。注意:刪除是在數(shù)據(jù)庫中做刪除標(biāo)志。Y為刪除。5.5 表單庫管理Ø 創(chuàng)建流程各環(huán)節(jié)表單:流程中除發(fā)起工單環(huán)節(jié)的各個環(huán)節(jié)的表單都要在流程表單庫創(chuàng)建。表單項解釋:l 表單中文名稱英文名稱在流程表單庫唯一不能重復(fù);l 表單類型暫時沒有用到;l 表單用途如選擇環(huán)節(jié)處理,說明該表單為流程相關(guān)表單,將被放在工單頁面中的工單處理

21、信息區(qū)顯示;l 表單用途如選擇業(yè)務(wù)信息,說明該表單為業(yè)務(wù)服務(wù)相關(guān)表單,將被放在工單頁面中的業(yè)務(wù)信息區(qū)顯示;l 表單URL為處理該表單的Action類的訪問路徑;l 數(shù)據(jù)區(qū)對應(yīng)變量為要往流程引擎壓入的變量名,以逗號分隔。(如駁回操作壓入is_back變量另見4.3添加活動和連接線);l 提交URL,工單處理信息提交的URL;l 如處理工單無特殊的處理,只是通用的字段,表單URL使用通用處理wfCommonAction即可,無需自己再寫action處理類和工單處理頁面;通用工單處理頁面: l 如只需簡單增加字段,只需應(yīng)用流程設(shè)計器中的流程環(huán)節(jié)表單定制器,自定義額外增加的部分。(數(shù)據(jù)的存儲顯示無需關(guān)

22、心,通用方法會自動處理)l 如需特殊處理,需要自己寫該環(huán)節(jié)的工單處理類。以工程管理流程中設(shè)計審核環(huán)節(jié)為例,步驟如下:1. 在對應(yīng)流程的action包下創(chuàng)建新action類(約定該類只與一個環(huán)節(jié)對應(yīng))。2. 該action類繼承com.inspur.app.basic.action. AbstractTBnsAction類,并根據(jù)不同需求實(shí)現(xiàn)父類抽象方法(另見第7章)。3. 該action類的配置文件中增加相應(yīng)的跳轉(zhuǎn)頁面。result name為deal轉(zhuǎn)向工單處理頁面;為detail的轉(zhuǎn)向工單詳情頁面;還有為businessInfo的轉(zhuǎn)向業(yè)務(wù)信息中流程側(cè)頁面;還有為historyBusines

23、sInfo的為流轉(zhuǎn)信息中業(yè)務(wù)信息流程側(cè)頁面;5.6 應(yīng)用流程設(shè)計器畫出流程定義一份與引擎流程模板的信息保持一致的流程數(shù)據(jù),包括流程主信息、流程節(jié)點(diǎn)及節(jié)點(diǎn)與角色、表單、資源服務(wù)的關(guān)聯(lián)數(shù)據(jù),用于開發(fā)流程時使用,開發(fā)時以本功能定義的流程為根據(jù)開發(fā),業(yè)務(wù)側(cè)與引擎里的流程脫離,引擎里的流程只提供流轉(zhuǎn)的功能。Ø 選取要綁定的流程:選擇需要綁定資源、表單、角色的流程,點(diǎn)擊編輯流程圖,彈出流程圖編輯模板。Ø 比照該流程的bps流程文件畫出流程圖:說明:l 業(yè)務(wù)節(jié)點(diǎn)通過面板左上的業(yè)務(wù)節(jié)點(diǎn)類型選擇。l 左鍵單擊流程圖的業(yè)務(wù)節(jié)點(diǎn),在屬性對話框編輯節(jié)點(diǎn)的屬性說明:l 流程節(jié)點(diǎn)的英文名稱與bps引擎

24、流程模板活動節(jié)點(diǎn)的英文名稱保持一致。l 派發(fā)對象類型:無需派發(fā)就選擇不使用,并行的選擇并行分支。² 派發(fā)類型對象選擇單一分支的工單處理頁面自動添加一個派單信息組件。如圖:² 派單對象選擇并行分支的工單處理頁面根據(jù)分支個數(shù)添加派單信息組件。如圖:² 派單對象選擇為不使用的工單處理界面不添加派單信息組件。如圖:注意:并行分支匯總前的環(huán)節(jié)只有一個有派單對象。如: 業(yè)務(wù)端口確認(rèn)的派發(fā)對象類型為不使用。l 子流程用子流程圖表表示(另見5.1):l 綁定操作:選中流程節(jié)點(diǎn)點(diǎn)擊鼠標(biāo)右鍵,單擊綁定相關(guān)資源。說明:l 分別可以綁定表單、角色、資源服務(wù)。其中角色雖然與環(huán)節(jié)綁定,但整個

25、流程該角色都可見。l 雙擊各列表的中資源的名稱,該資源就會出現(xiàn)在已綁定的列表中。在已綁定的列表中單擊名稱,就會取消該綁定。5.7 提交流程點(diǎn)擊提交,提交該流程的信息。5.8 表單定制Ø 創(chuàng)建自定義表單:l 點(diǎn)擊表單屬性編輯自定義表單的信息說明:² 流程分類:對應(yīng)流程庫管理中流程信息的流程分類。根據(jù)流程分類過濾流程。² 流程名稱:對應(yīng)流程庫管理中流程信息的流程中文名稱,確定自定義表單要綁定的流程。² 流程環(huán)節(jié):對應(yīng)流程庫管理中該流程所綁定的環(huán)節(jié),確定自定義表單要綁定的環(huán)節(jié)。² 生成form標(biāo)簽:是否在自定義表單中生成form標(biāo)簽(一般是否)。l

26、設(shè)計表單:特別說明:列表框的選擇類型:新建選擇項需要創(chuàng)建字典頁面并在備注中填寫customform。例:自定義表單部分:通過流程環(huán)節(jié)表單定制器綁定到流程環(huán)節(jié)后:5.9 角色人員Ø 選擇流程:在流程角色樹選擇要操作的流程。Ø 選擇角色:點(diǎn)擊要操作的流程,顯示已綁定在流程上的所有角色(參見5.6)Ø 創(chuàng)建編輯群組:選擇要增加的群組成員類型,點(diǎn)擊增加按鈕。根據(jù)選擇的群組成員類型會彈出人員或組的選擇框。選擇后點(diǎn)擊保存完成操作。注意:公司名稱必選,只有當(dāng)角色綁定到相關(guān)環(huán)節(jié)后才能正常添加群組成員6 制作發(fā)起頁面發(fā)起頁面需要自己制作發(fā)起頁面必須包含<jsp:include

27、 page="/jsp/wfdesign/common/script_include_upload.jsp" /><%- 包含隱藏的變量 -%><jsp:include page="/jsp/app/inc/create_parm_include.jsp" /><jsp:include page="/jsp/app/inc/taskFlag.jsp"/>如果發(fā)起頁面有附件必須在js中包含<jsp:include page="/jsp/app/inc/include_deal_u

28、pload.jsp"/>7 EXT派發(fā)抄送人員選擇對話框說明方法參數(shù)釋義:showSelector( title, cfgstr, callback, processNameEn, mode)1. title:(string類型)-設(shè)置整個彈出窗口的標(biāo)題,如果為空,則標(biāo)題默認(rèn)為:“選擇派發(fā)/抄送人員”;2. cfgstr:(string 類型)-選擇樹顯示配置,用以控制顯示哪個(哪些)樹。值為role, user, group三者的自由組合,中間以逗號隔開。例如:role,user表示顯示角色樹以及人員樹;user,group表示顯示人員樹與群組樹;3. callback:(f

29、unction 類型)-回調(diào)函數(shù)?;卣{(diào)函數(shù)請設(shè)置兩個參數(shù)分別接收派發(fā)、抄送人員的結(jié)果集。結(jié)果集的類型均為fields為'id','name','type'的EXT RECORD 類型的數(shù)組。例如回調(diào)函數(shù)為function callback(records1, records2),我們可以在方法體中對records1或者records2這兩個數(shù)組進(jìn)行遍歷,遍歷的每一項都是一個EXT的RECORD(可參考Ext.data.Record),它有三個可取值的key: 'id','name','type',可

30、以通過record.get(id)等方法取得所需要的數(shù)據(jù);4. processNameEn:(string 類型)-流程定義名,此參數(shù)僅在選擇區(qū)域中存在角色樹的情況下有效且必須。用以展示流程所綁定的角色;5. mode:(string類型)-選擇模式,可選值為pf、cs以及空值。分別代表:“只顯示派發(fā)選擇框”,“只顯示抄送選擇框”,“兩個都顯示”。注意:任何情況下回調(diào)函數(shù)callback都需要接收兩個參數(shù),假設(shè)mode取cs,只顯示抄送人員選擇區(qū),在callback回調(diào)函數(shù)中也要寫兩個參數(shù),但僅僅對第二個參數(shù)進(jìn)行抽取數(shù)據(jù)即可。分派人時三個必須的條件有處理人的id 、name、type。例如:&

31、lt;input type="hidden" id="assignList_designReview_ids" name="assignList_designReview_ids" value="$" /><input type="hidden" id="assignList_designReview_names" name="assignList_designReview_names" value="$ " />&l

32、t;input type="hidden" id="assignList_designReview_types" name="assignList_designReview_types" value="person" />8 初始化工單頁面AbstractTBnsAction的init()方法已經(jīng)封裝了通用操作。包括初始化當(dāng)前操作人的基本信息;查詢當(dāng)前節(jié)點(diǎn)的派發(fā)對象類型及后續(xù)節(jié)點(diǎn)列表;生成一個工單流水號等流程所需的參數(shù);關(guān)聯(lián)的子流程;綁定該環(huán)節(jié)自定義表單的加載;處理環(huán)節(jié)中綁定該環(huán)節(jié)除iframe外的資源服務(wù)加

33、載;通用工單處理頁面;自定義表單的顯示和數(shù)據(jù)存儲。Ø 新建工單初始化(發(fā)起頁面):l 如果發(fā)起頁面需要特殊的業(yè)務(wù)處理,則需要在該流程的action類的initBody()方法中實(shí)現(xiàn)如:² 發(fā)起頁面綁定資源服務(wù)(發(fā)起頁面綁定資源服務(wù)作特殊處理):Overridepublic void initBody() throws Exception object.setTemplateName(TEMPLETNAME);if(TextUtil.isNull(object.getActiveName() super.getTresConfigTasksService().creResTa

34、sksWhenFlowInit(super.getRequest(), object, null);程序說明:發(fā)起頁面未生成環(huán)節(jié)名稱。object.getActiveName()為空。對于工單信息通過flowId獲取:object.getFlowId();TbnsEngineeringProMgt object1 = tbnsEngineeringProMgtService.getTbnsObjectByFlowId(object.getFlowId();9 發(fā)起流程或者完成當(dāng)前環(huán)節(jié)AbstractTBnsAction的submit()方法已經(jīng)封裝了通用操作。包括發(fā)起頁面數(shù)據(jù)的處理;啟動流程;

35、完成當(dāng)前環(huán)節(jié)處理。Ø 發(fā)起流程:l 發(fā)起工單數(shù)據(jù)的封裝,壓入相關(guān)變量已有通用方法實(shí)現(xiàn)不需要另外編寫代碼。例如:在工程管理流程中的設(shè)計審核壓入相關(guān)數(shù)據(jù)super.getRelationMap().put("finish_gcshg", "true");super.getRelationMap().put("finish_gcsg", "true");l 發(fā)起工單數(shù)據(jù)的保存,需要自己編寫代碼。² 流程service實(shí)現(xiàn)類中實(shí)現(xiàn)父類抽象方法startupProcessBody()其中參數(shù)mainObj

36、封裝了發(fā)起工單的數(shù)據(jù),參數(shù)resultMap封裝了流程引擎數(shù)據(jù),參數(shù)relationMap為相關(guān)數(shù)據(jù)區(qū)。例:完成工程管理流程發(fā)起頁面數(shù)據(jù)的保存。Overridepublic void startupProcessBody(Map<String, Object> resultMap, Object mainObj, HashMap<String, Object> arg2, HttpServletRequest arg3) throws Exception TbnsEngineeringProMgt tbnsBtsIn = (TbnsEngineeringProMgt)m

37、ainObj;String pid = (String)resultMap.get("pid");tbnsBtsIn.setPid(Long.valueOf(pid);tbnsEngineeringProMgtDao.saveOrUpdate(tbnsBtsIn);Ø 完成當(dāng)前環(huán)節(jié):l 判斷綁定的資源側(cè)是否滿足提交條件,表單數(shù)據(jù)入庫,流程引擎相關(guān)操作不需要自己編寫代碼。l 如有特殊業(yè)務(wù)需要,在流程service實(shí)現(xiàn)類中實(shí)現(xiàn)父類抽象方法finishProcessBody()。Overridepublic void finishProcessBody(Map<S

38、tring, Object> resultMap, Object mainObj, HashMap<String, Object> relationMap, HttpServletRequest request) throws Exception .Ø 擴(kuò)展submit()方法:可以在submitBody()中編寫代碼。比如壓入相關(guān)數(shù)據(jù)10 環(huán)節(jié)信息處理環(huán)節(jié)信息如需要特殊處理,有特殊處理的信息比如 工程管理流程的設(shè)計審核環(huán)節(jié)需要新建一個關(guān)于設(shè)計審核的pojo 新建的pojo在此環(huán)節(jié)對應(yīng)的action中作為模型驅(qū)動對象。新建的pojo必須包含的屬性如下所示privat

39、e java.lang.String formNo;private java.lang.Long flowId;private java.lang.Long pid;private java.lang.String title;private java.lang.Long state;private java.lang.Long ownerId;private java.lang.String ownerName;private java.lang.Long deptId;private java.lang.String deptName;private java.lang.String ce

40、llPhone;private java.lang.Long companyId;private java.lang.String companyName;private java.lang.String processDefName;如有其它信息繼續(xù)添加屬性 比如設(shè)計審核的審核結(jié)果 <input type="radio" name="back_layout" value="false" checked value="通過" onclick="showNote();checkjg(0)"&

41、gt; 通過 <input type="radio" name="back_layout" value="true" value="不通過" onclick="showNote();checkjg(1)"> 不通過添加與頁面表單中對應(yīng)的屬性 private java.lang.String back_layout;新添加的表單信息需要在環(huán)節(jié)詳情頁面用到$object. back_layout一個環(huán)節(jié)調(diào)用另一個環(huán)節(jié)的處理信息 代碼如下WfActiveInfo activeInfo =

42、super.getWfActiveInfoService().getActiveInfoByFlowIdAndActiveName(object.getFlowId(), "contract","");List dealInfoList = new ArrayList() ;if(!TextUtil.isNull(activeInfo)dealInfoList=super.getWfActiveDealInfoService().listByCondition(" and t.wfActiveInfo.id="+activeInfo.

43、getId();/將取到的另一個環(huán)節(jié)的信息壓入此環(huán)節(jié)對應(yīng)的模型驅(qū)動對象中if(TextUtil.isNotNull(dealInfoList)setMObjByMap(object,dealInfoList);流程結(jié)束時如有特殊處理,重寫finishProcessBody方法如下Overridepublic void finishProcessBody(Map<String, Object> arg0, Object obj, HashMap<String, Object> arg2, HttpServletRequest request) throws Excepti

44、on /獲取流程的環(huán)節(jié)idString activeName = BeanUtils.getProperty(obj, "activeName");if(TextUtil.isNotNull(activeName) && "inspectionAudit".equalsIgnoreCase(activeName) )/獲取相關(guān)數(shù)據(jù)區(qū)中的數(shù)據(jù)String openresult = request.getParameter("back_gcsg");if("true".equals(openresult

45、) String names = "finish_gcsg","tzbg"String processInstid = BeanUtils.getProperty(obj, "pid");/移除相關(guān)數(shù)據(jù)區(qū)中的數(shù)據(jù)super.getWfCommonUtil().removeRelativeData(processInstid, names);11 環(huán)節(jié)駁回處理1、 拿工程管理流程中勘查單確認(rèn)環(huán)節(jié)駁回到分派勘查單環(huán)節(jié)作為例子2、 在駁回的鏈接線上選擇簡單表達(dá)式,填入相關(guān)數(shù)據(jù) 和 值入下圖3、 在環(huán)節(jié)處理信息中用表單radio確認(rèn)是否駁回,

46、 radio的name值與上圖中的左值相同,代碼如下:<td class="td-b">是否接收: </td><td colspan="3"><input type="radio" name="isAccept" value="false" checked onclick="checkjg(0)" >是<input type="radio" name="isAccept" value

47、="true" onclick="checkjg(1)">否</td>4、當(dāng)流程主干信息駁回到流程分支上時,需要在流程出現(xiàn)分支的環(huán)節(jié)壓入,流程聚合條件的相關(guān)數(shù)據(jù)。比如工程管理子流程中 設(shè)計審核環(huán)節(jié)開始有了分支,在主干環(huán)節(jié)驗收環(huán)節(jié)需要駁回到 分支環(huán)節(jié)工程隨工和工程施工!需要在設(shè)計審核環(huán)節(jié)提交時壓入聚合的條件super.getRelationMap().put("finish_gcsg ", "true");super.getRelationMap().put("finish_gcsg", "true");工程隨工和工程施工到竣工報驗的連接線的條件分別是finis

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論