




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、普元流程開(kāi)發(fā)手冊(cè)浪潮通信 OSS綜合業(yè)務(wù)中心2011年6月1熟悉流程22數(shù)據(jù)庫(kù)建表52.1建表目的52.2表字段52.3Sequence63WSH生成代碼63.1生成代碼63.2修改代碼84設(shè)計(jì)BPS流程124.1配置BPS124.2創(chuàng)建BPS流程圖134.3添加活動(dòng)和連接線154.4提交BPS流程234.5子流程265應(yīng)用流程設(shè)計(jì)器設(shè)計(jì)流程285.1創(chuàng)建流程信息285.2字典配置305.2.1環(huán)節(jié)分類(lèi)305.2.2流程分類(lèi)325.3角色庫(kù)325.4環(huán)節(jié)庫(kù)345.5表單庫(kù)管理365.6應(yīng)用流程設(shè)計(jì)器畫(huà)出流程395.7提交流程445.8表單定制455.9角色人員486制作發(fā)起頁(yè)面507EXT派發(fā)
2、抄送人員選擇對(duì)話框說(shuō)明518初始化工單頁(yè)面519發(fā)起流程或者完成當(dāng)前環(huán)節(jié)5210環(huán)節(jié)信息處理5311環(huán)節(jié)駁回處理5512工單詳情頁(yè)面571 熟悉流程通過(guò)Visio畫(huà)出業(yè)務(wù)的流程圖,充分理解流程的流轉(zhuǎn)過(guò)程,流程環(huán)節(jié),角色等信息(如圖1-1)。(如圖1-1)2 數(shù)據(jù)庫(kù)建表2.1 建表目的存儲(chǔ)流程發(fā)起頁(yè)面的字段內(nèi)容,供流程詳情頁(yè)面使用。(如圖2-1)2.2 表字段Ø 表命名規(guī)范:以T_BNS_為前綴。Ø 工單發(fā)起頁(yè)面中除資源服務(wù)外的所有字段(上傳附件另外存儲(chǔ)這里不作考慮)。Ø 必須包括的字段l IDNUMBER not null表主鍵l FORM_NOVARCHAR2(
3、40)工單編號(hào)l FLOW_IDNUMBER工單流水號(hào)l PIDNUMBER流程實(shí)例號(hào)l STATENUMBER 工單狀態(tài)l TITLEVARCHAR2(200)工單主題l START_TIMEDATE派單時(shí)間l OWNER_IDNUMBER派單人IDl OWNER_NAMEVARCHAR2(50)派單人l DEPT_IDNUMBER派單人部門(mén)IDl DEPT_NAMEVARCHAR2(50)派單人部門(mén)名稱(chēng)l CELL_PHONEVARCHAR2(40)派單人聯(lián)系電話l FINISH_TIMEDATE要求完成時(shí)間(可選)l COMPANY_ID NUMBER公司IDl COMPANY_NAME
4、VARCHAR2(50)公司名稱(chēng)l ACCEPT_TIMEDATE受理時(shí)限l REPLY_TIME DATE回復(fù)時(shí)限其中:FORM_NO是工單發(fā)起頁(yè)面顯示的工單編號(hào)。 FLOW_ID是工單的唯一標(biāo)示。 PID是bps流程引擎生成的流程實(shí)例號(hào)。 STATE顯示工單流程狀態(tài) ACCEPT_TIME是規(guī)定時(shí)間必須受理。 REPLY_TIME是規(guī)定時(shí)間必須處理完。2.3 Sequence規(guī)則:表名+seq。3 WSH生成代碼3.1 生成代碼3.1.1 參考WSH文檔3.1.2 注意事項(xiàng)3.2 修改代碼以基站入網(wǎng)流程為例:Ø 增加com.inspur.app.btsIcess包。
5、216; 修改TbnsBtsIn.javal 增加屬性templateName,processinstDesc。同時(shí)增加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 如有如下字段,字段類(lèi)型必須符合,不符合的手工修改:² 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型同時(shí)修改hbm配置文件。Ø 修改TbnsBtsInAction.javal 更改繼承關(guān)系,改為繼承com.inspur.app.basic.action.AbstractTBnsAction類(lèi)。l 更改getModel()方法的返回值為Object。l 實(shí)現(xiàn)AbstractTBnsAction的 getTbnsService()方法返回service實(shí)現(xiàn)類(lèi);如:service實(shí)現(xiàn)類(lèi)為 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èi)。l 修改生成的action配置文件名,添加前綴struts-。l 修改struts.xml加入新生成的action配置文件。l 修改生成的spring配置文件。4 設(shè)計(jì)BPS流程4.1 配置BPS圖4-1如上圖所
9、示配置好IP地址和端口號(hào)4.2 創(chuàng)建BPS流程圖(如圖4-2)Ø 新建bps流程文件:l 流程文件創(chuàng)建在各流程的對(duì)應(yīng)的process包下(如圖4-3)。(如圖4-3)l 流程名稱(chēng)為英文也是流程文件名。流程文件包路徑+流程名稱(chēng)在系統(tǒng)流程設(shè)計(jì)器中還要用到。Ø 設(shè)置流程屬性:l 鼠標(biāo)雙擊編輯區(qū)空白處,彈出流程屬性設(shè)置對(duì)話框。一般只需填寫(xiě)顯示名稱(chēng)、作者、描述(如圖4-4)。(如圖4-4)4.3 添加活動(dòng)和連接線Ø 根據(jù)Visio流程圖添加流程環(huán)節(jié):l 增加流程活動(dòng):根據(jù)要添加的流程環(huán)節(jié)性質(zhì)選取圖元,從選用面板拖動(dòng)到流程編輯區(qū)項(xiàng)目中常用活動(dòng)流程編輯器中圖元對(duì)應(yīng)資源文件人工活
10、動(dòng)Jsp/html文件自動(dòng)活動(dòng)Java方法子流程流程文件注意:² 由于在新建業(yè)務(wù)流程時(shí),"開(kāi)始圖元"和"結(jié)束圖元"默認(rèn)已經(jīng)生成,所以一般情況下無(wú)需拖拽這兩個(gè)圖元,并且在一個(gè)流程當(dāng)中"開(kāi)始圖元"和"結(jié)束圖元"都有且僅有一個(gè),不能重復(fù)拖拽。l 編輯活動(dòng)屬性:² 基本信息編輯活動(dòng)ID為英文,該活動(dòng)ID在系統(tǒng)流程設(shè)計(jì)器中還要用到。注意: u 開(kāi)始環(huán)節(jié)后的第一個(gè)環(huán)節(jié)(發(fā)起及輸入數(shù)據(jù))活動(dòng)ID必須為jbr。u 結(jié)束環(huán)節(jié)前的最后一個(gè)環(huán)節(jié)(歸檔)活動(dòng)ID必須為gd。² 聚合模式為確定流程運(yùn)行時(shí)該活動(dòng)啟
11、動(dòng)前,它的前驅(qū)活動(dòng)觸發(fā)該活動(dòng)的啟動(dòng)條件。² 分支模式為確定流程運(yùn)行時(shí)該活動(dòng)結(jié)束后,它的后繼活動(dòng)將以何種方式啟動(dòng)。l 指定參與者選擇參與者選項(xiàng)卡,可以根據(jù)需要靈活地賦予當(dāng)前活動(dòng)不同的參與者。一般情況流程的第一個(gè)環(huán)節(jié)和最后一個(gè)環(huán)節(jié)的參與者應(yīng)設(shè)為流程啟動(dòng)者。² 如為頁(yè)面手動(dòng)選擇派發(fā)對(duì)象,則參與者應(yīng)選擇技術(shù)手段設(shè)置中的相關(guān)數(shù)據(jù),變量命名規(guī)則為assignList_ + 當(dāng)前活動(dòng)ID。如下圖² 如為后臺(tái)程序自動(dòng)壓入?yún)⑴c者,則需根據(jù)流程具體情況自己編寫(xiě)代碼,并通過(guò)規(guī)則邏輯選擇該方法。注意更新bps引擎中的對(duì)應(yīng)文件。參數(shù)配置表中寫(xiě)法如下圖如下圖² 如果兩個(gè)環(huán)節(jié)的處理人
12、相同,可以在參與者中選擇活動(dòng)執(zhí)行者 點(diǎn)擊瀏覽選擇與其參與者相同的環(huán)節(jié)。如下圖²建議活動(dòng)參與者在建流程圖之初都選擇流程啟動(dòng)者,等整個(gè)流程流轉(zhuǎn)無(wú)問(wèn)題后在對(duì)活動(dòng)參與者進(jìn)行設(shè)置。l 添加連接線:在選用面板選擇連接線,在流程編輯區(qū)連接兩個(gè)活動(dòng)圖元。修改活動(dòng)的屬性,根據(jù)連線情況設(shè)定活動(dòng)屬性中的聚合模式和分支模式。如該環(huán)節(jié)處理結(jié)束后,后繼環(huán)節(jié)為多個(gè)并行環(huán)節(jié),則分支模式選擇為多路分支(如圖4-5):圖4-5如該環(huán)節(jié)啟動(dòng)前,前驅(qū)環(huán)節(jié)為并行環(huán)節(jié)則聚合模式選擇為多路聚合(如圖4-6)。圖4-6駁回操作需設(shè)置連接線屬性(如圖4-7):圖4-7如果該流程壓入的is_back的值為true就執(zhí)行該分支。(另見(jiàn)5
13、.5流程表單庫(kù)管理)Ø 復(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中有一個(gè)執(zhí)行完畢后,E活動(dòng)會(huì)做是否啟動(dòng)的判斷,由于E有三個(gè)分支線匯入,因此會(huì)判斷是否三條線都滿足條件。如果沒(méi)有在線上設(shè)置條件,則默認(rèn)是符合條件,E活動(dòng)會(huì)一直等待其余分支的完成,如果AD中d!=1,則AD不會(huì)執(zhí)行,因此E活動(dòng)會(huì)因?yàn)榈炔坏紸D活動(dòng)的結(jié)束而一直處于等待狀態(tài)。解決方法是聚合的線上條件要與分支的一致,即:BE條件為b=1、CE條件為c=1、DE條件為d=1。4.4 提交BPS流程Ø 操作
14、前首先確認(rèn)BPS Server已經(jīng)啟動(dòng)。Ø 使用BPS流程編輯器打開(kāi)流程文件,在流程編輯器中右鍵,中選擇流程定義庫(kù)交互/提交流程菜單項(xiàng)。Ø 提交模式選擇:l 按照默認(rèn)方式提交用戶選擇按照默認(rèn)方式提交流程時(shí)會(huì)有兩種情況: ² 如果流程定義庫(kù)已經(jīng)存在業(yè)務(wù)流程則覆蓋最新版本的流程。 ² 如果流程定義庫(kù)中不存在流程定義,則創(chuàng)建新版本流程。 l 覆蓋已有版本如果流程不是第一次提交,用戶可以從已經(jīng)存在的版本列表中選擇,指定一個(gè)已有的版本進(jìn)行覆蓋操作。 l 創(chuàng)建新版本用戶提交業(yè)務(wù)流程時(shí),可以選擇創(chuàng)建新版本。版本生成規(guī)則是由BPS引擎控制的。如:當(dāng)前流程版本為"
15、;1.1.1",則會(huì)創(chuàng)建新版本"1.1.2";如果第一次提交版本則會(huì)創(chuàng)建版本"1.1.1"。 l 輸入版本描述,選擇是否立即發(fā)布。用戶可隨需輸入版本描述信息,系統(tǒng)默認(rèn)的注釋信息為用戶名和提交時(shí)間。用戶可以決定是否立即發(fā)布流程: ² 選中"立即發(fā)布"復(fù)選框,則為部署后馬上執(zhí)行發(fā)布動(dòng)作,如果有已經(jīng)發(fā)布的舊版本則取消發(fā)布舊版本,馬上發(fā)布當(dāng)前版本。 ² 不選中"立即發(fā)布"復(fù)選框,則為部署后不執(zhí)行發(fā)布動(dòng)作。如果是覆蓋舊版本則不會(huì)改變?cè)瓉?lái)版本的發(fā)布狀態(tài);如果是新版本則部署后為未發(fā)布狀態(tài)。注意:
16、178; 項(xiàng)目一般用默認(rèn)方式提交。² 記住提交的版本號(hào),之后系統(tǒng)的流程設(shè)計(jì)器會(huì)用到。² 如果忘記版本號(hào)可以去 WFPROCESSDEFINE表中查找Ø 發(fā)布結(jié)果:提交完成后會(huì)顯示提交結(jié)果信息,可以查看流程和流程所引用的業(yè)務(wù)資源是否成功提交,對(duì)于提交失敗的資源,會(huì)顯示失敗的錯(cuò)誤信息。4.5 子流程l 創(chuàng)建BPS子流程:雙擊編輯區(qū)空白處,選擇流程參數(shù),設(shè)定子流程需要的參數(shù)。l 父流程引入子流程:l 設(shè)置參數(shù):l 雙擊子流程圖標(biāo),選擇多子流程策略。被迭代元素為要壓入bps流程引擎的變量名,一般為ArrayList。迭代變量為傳入每個(gè)子流程的變量名。l 選擇子流程參數(shù),點(diǎn)
17、擊瀏覽選擇要關(guān)聯(lián)的子流程。并設(shè)定上要傳入子流程的值。(迭代變量作為值傳入子流程)5 應(yīng)用流程設(shè)計(jì)器設(shè)計(jì)流程5.1 創(chuàng)建流程信息Ø 選擇流程設(shè)計(jì)器面板中的流程庫(kù):Ø 創(chuàng)建流程信息l 流程英文名稱(chēng)是bps流程文件包路徑+bps流程文件名。l 版本號(hào)與bps引擎流程模板的版本號(hào)保持一致(如果忘記版本號(hào)可查詢(xún)數(shù)據(jù)庫(kù)wfprocessdefine表)l 業(yè)務(wù)主表為之前第二步創(chuàng)建的數(shù)據(jù)表。l url為該流程action類(lèi)的訪問(wèn)路徑。l 是否是子流程:標(biāo)示所建流程是否是子流程,子流程選擇時(shí)可見(jiàn)(如下圖)。以工程管理流程為例url為勘查單錄入的action的名字Ø 添加流程圖(工
18、單處理環(huán)節(jié)流程圖查看時(shí)用到):將Visio畫(huà)出的流程圖放在項(xiàng)目eoms-skins/default/images/workflow下圖片文件名為流程英文名稱(chēng)。文件格式為jpg。5.2 字典配置選擇流程設(shè)計(jì)器面板中的字典配置:5.2.1 環(huán)節(jié)分類(lèi)流程環(huán)節(jié)分類(lèi)的管理,用于環(huán)節(jié)庫(kù)管理、流程表單庫(kù)管理、流程庫(kù)管理的業(yè)務(wù)類(lèi)型選擇。Ø 選擇左側(cè)面板中的環(huán)節(jié)分類(lèi)Ø 創(chuàng)建環(huán)節(jié)類(lèi)型點(diǎn)擊創(chuàng)建(如上圖)Ø 創(chuàng)建環(huán)節(jié)分類(lèi)字典中沒(méi)有的分類(lèi)。注意:顯示名、數(shù)據(jù)值唯一不允許重復(fù)。Ø 模糊查詢(xún)環(huán)節(jié)分類(lèi):查詢(xún)是否含有該流程所需的環(huán)節(jié)分類(lèi)。Ø 編輯和刪除環(huán)節(jié)分類(lèi)字典信息:5.2.
19、2 流程分類(lèi)在角色人員中要用到Ø 選擇左側(cè)面板中的環(huán)節(jié)分類(lèi)Ø 創(chuàng)建環(huán)節(jié)類(lèi)型點(diǎn)擊創(chuàng)建(如上圖)Ø 填寫(xiě)新的類(lèi)型操作與環(huán)節(jié)分類(lèi)類(lèi)似5.3 角色庫(kù)Ø 單擊選擇角色庫(kù):Ø 明確流程中的角色:根據(jù)Visio流程圖確定該流程所需的角色。Ø 模糊查詢(xún)相關(guān)角色:查詢(xún)角色庫(kù)中可以復(fù)用的角色??筛鶕?jù)歸屬類(lèi)型、角色中文名稱(chēng),角色英文名稱(chēng)查詢(xún)。Ø 創(chuàng)建角色:創(chuàng)建角色庫(kù)沒(méi)有的角色。l 右鍵點(diǎn)擊歸屬類(lèi)型選擇添加角色:Ø 修改與刪除角色:根據(jù)具體需要修改或刪除角色。注意:刪除是在數(shù)據(jù)庫(kù)中做刪除標(biāo)志。1為刪除。5.4 環(huán)節(jié)庫(kù)l 維護(hù)流程中的環(huán)節(jié):
20、根據(jù)Visio流程圖確定該流程所需的環(huán)節(jié)。l 模糊查詢(xún)相關(guān)環(huán)節(jié):查詢(xún)環(huán)節(jié)庫(kù)中可以復(fù)用的環(huán)節(jié)。l 創(chuàng)建環(huán)節(jié):創(chuàng)建環(huán)節(jié)庫(kù)中沒(méi)有的環(huán)節(jié)。注意:l 環(huán)節(jié)的中文名稱(chēng)和英文名稱(chēng)在環(huán)節(jié)庫(kù)中唯一,不允許重復(fù)。l 環(huán)節(jié)關(guān)聯(lián)信息暫不操作。Ø 修改與刪除環(huán)節(jié):根據(jù)具體需要修改或刪除環(huán)節(jié)。注意:刪除是在數(shù)據(jù)庫(kù)中做刪除標(biāo)志。Y為刪除。5.5 表單庫(kù)管理Ø 創(chuàng)建流程各環(huán)節(jié)表單:流程中除發(fā)起工單環(huán)節(jié)的各個(gè)環(huán)節(jié)的表單都要在流程表單庫(kù)創(chuàng)建。表單項(xiàng)解釋?zhuān)簂 表單中文名稱(chēng)英文名稱(chēng)在流程表單庫(kù)唯一不能重復(fù);l 表單類(lèi)型暫時(shí)沒(méi)有用到;l 表單用途如選擇環(huán)節(jié)處理,說(shuō)明該表單為流程相關(guān)表單,將被放在工單頁(yè)面中的工單處理
21、信息區(qū)顯示;l 表單用途如選擇業(yè)務(wù)信息,說(shuō)明該表單為業(yè)務(wù)服務(wù)相關(guān)表單,將被放在工單頁(yè)面中的業(yè)務(wù)信息區(qū)顯示;l 表單URL為處理該表單的Action類(lèi)的訪問(wèn)路徑;l 數(shù)據(jù)區(qū)對(duì)應(yīng)變量為要往流程引擎壓入的變量名,以逗號(hào)分隔。(如駁回操作壓入is_back變量另見(jiàn)4.3添加活動(dòng)和連接線);l 提交URL,工單處理信息提交的URL;l 如處理工單無(wú)特殊的處理,只是通用的字段,表單URL使用通用處理wfCommonAction即可,無(wú)需自己再寫(xiě)action處理類(lèi)和工單處理頁(yè)面;通用工單處理頁(yè)面: l 如只需簡(jiǎn)單增加字段,只需應(yīng)用流程設(shè)計(jì)器中的流程環(huán)節(jié)表單定制器,自定義額外增加的部分。(數(shù)據(jù)的存儲(chǔ)顯示無(wú)需關(guān)
22、心,通用方法會(huì)自動(dòng)處理)l 如需特殊處理,需要自己寫(xiě)該環(huán)節(jié)的工單處理類(lèi)。以工程管理流程中設(shè)計(jì)審核環(huán)節(jié)為例,步驟如下:1. 在對(duì)應(yīng)流程的action包下創(chuàng)建新action類(lèi)(約定該類(lèi)只與一個(gè)環(huán)節(jié)對(duì)應(yīng))。2. 該action類(lèi)繼承com.inspur.app.basic.action. AbstractTBnsAction類(lèi),并根據(jù)不同需求實(shí)現(xiàn)父類(lèi)抽象方法(另見(jiàn)第7章)。3. 該action類(lèi)的配置文件中增加相應(yīng)的跳轉(zhuǎn)頁(yè)面。result name為deal轉(zhuǎn)向工單處理頁(yè)面;為detail的轉(zhuǎn)向工單詳情頁(yè)面;還有為businessInfo的轉(zhuǎn)向業(yè)務(wù)信息中流程側(cè)頁(yè)面;還有為historyBusines
23、sInfo的為流轉(zhuǎn)信息中業(yè)務(wù)信息流程側(cè)頁(yè)面;5.6 應(yīng)用流程設(shè)計(jì)器畫(huà)出流程定義一份與引擎流程模板的信息保持一致的流程數(shù)據(jù),包括流程主信息、流程節(jié)點(diǎn)及節(jié)點(diǎn)與角色、表單、資源服務(wù)的關(guān)聯(lián)數(shù)據(jù),用于開(kāi)發(fā)流程時(shí)使用,開(kāi)發(fā)時(shí)以本功能定義的流程為根據(jù)開(kāi)發(fā),業(yè)務(wù)側(cè)與引擎里的流程脫離,引擎里的流程只提供流轉(zhuǎn)的功能。Ø 選取要綁定的流程:選擇需要綁定資源、表單、角色的流程,點(diǎn)擊編輯流程圖,彈出流程圖編輯模板。Ø 比照該流程的bps流程文件畫(huà)出流程圖:說(shuō)明:l 業(yè)務(wù)節(jié)點(diǎn)通過(guò)面板左上的業(yè)務(wù)節(jié)點(diǎn)類(lèi)型選擇。l 左鍵單擊流程圖的業(yè)務(wù)節(jié)點(diǎn),在屬性對(duì)話框編輯節(jié)點(diǎn)的屬性說(shuō)明:l 流程節(jié)點(diǎn)的英文名稱(chēng)與bps引擎
24、流程模板活動(dòng)節(jié)點(diǎn)的英文名稱(chēng)保持一致。l 派發(fā)對(duì)象類(lèi)型:無(wú)需派發(fā)就選擇不使用,并行的選擇并行分支。² 派發(fā)類(lèi)型對(duì)象選擇單一分支的工單處理頁(yè)面自動(dòng)添加一個(gè)派單信息組件。如圖:² 派單對(duì)象選擇并行分支的工單處理頁(yè)面根據(jù)分支個(gè)數(shù)添加派單信息組件。如圖:² 派單對(duì)象選擇為不使用的工單處理界面不添加派單信息組件。如圖:注意:并行分支匯總前的環(huán)節(jié)只有一個(gè)有派單對(duì)象。如: 業(yè)務(wù)端口確認(rèn)的派發(fā)對(duì)象類(lèi)型為不使用。l 子流程用子流程圖表表示(另見(jiàn)5.1):l 綁定操作:選中流程節(jié)點(diǎn)點(diǎn)擊鼠標(biāo)右鍵,單擊綁定相關(guān)資源。說(shuō)明:l 分別可以綁定表單、角色、資源服務(wù)。其中角色雖然與環(huán)節(jié)綁定,但整個(gè)
25、流程該角色都可見(jiàn)。l 雙擊各列表的中資源的名稱(chēng),該資源就會(huì)出現(xiàn)在已綁定的列表中。在已綁定的列表中單擊名稱(chēng),就會(huì)取消該綁定。5.7 提交流程點(diǎn)擊提交,提交該流程的信息。5.8 表單定制Ø 創(chuàng)建自定義表單:l 點(diǎn)擊表單屬性編輯自定義表單的信息說(shuō)明:² 流程分類(lèi):對(duì)應(yīng)流程庫(kù)管理中流程信息的流程分類(lèi)。根據(jù)流程分類(lèi)過(guò)濾流程。² 流程名稱(chēng):對(duì)應(yīng)流程庫(kù)管理中流程信息的流程中文名稱(chēng),確定自定義表單要綁定的流程。² 流程環(huán)節(jié):對(duì)應(yīng)流程庫(kù)管理中該流程所綁定的環(huán)節(jié),確定自定義表單要綁定的環(huán)節(jié)。² 生成form標(biāo)簽:是否在自定義表單中生成form標(biāo)簽(一般是否)。l
26、設(shè)計(jì)表單:特別說(shuō)明:列表框的選擇類(lèi)型:新建選擇項(xiàng)需要?jiǎng)?chuàng)建字典頁(yè)面并在備注中填寫(xiě)customform。例:自定義表單部分:通過(guò)流程環(huán)節(jié)表單定制器綁定到流程環(huán)節(jié)后:5.9 角色人員Ø 選擇流程:在流程角色樹(shù)選擇要操作的流程。Ø 選擇角色:點(diǎn)擊要操作的流程,顯示已綁定在流程上的所有角色(參見(jiàn)5.6)Ø 創(chuàng)建編輯群組:選擇要增加的群組成員類(lèi)型,點(diǎn)擊增加按鈕。根據(jù)選擇的群組成員類(lèi)型會(huì)彈出人員或組的選擇框。選擇后點(diǎn)擊保存完成操作。注意:公司名稱(chēng)必選,只有當(dāng)角色綁定到相關(guān)環(huán)節(jié)后才能正常添加群組成員6 制作發(fā)起頁(yè)面發(fā)起頁(yè)面需要自己制作發(fā)起頁(yè)面必須包含<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ā)起頁(yè)面有附件必須在js中包含<jsp:include page="/jsp/app/inc/include_deal_u
28、pload.jsp"/>7 EXT派發(fā)抄送人員選擇對(duì)話框說(shuō)明方法參數(shù)釋義:showSelector( title, cfgstr, callback, processNameEn, mode)1. title:(string類(lèi)型)-設(shè)置整個(gè)彈出窗口的標(biāo)題,如果為空,則標(biāo)題默認(rèn)為:“選擇派發(fā)/抄送人員”;2. cfgstr:(string 類(lèi)型)-選擇樹(shù)顯示配置,用以控制顯示哪個(gè)(哪些)樹(shù)。值為role, user, group三者的自由組合,中間以逗號(hào)隔開(kāi)。例如:role,user表示顯示角色樹(shù)以及人員樹(shù);user,group表示顯示人員樹(shù)與群組樹(shù);3. callback:(f
29、unction 類(lèi)型)-回調(diào)函數(shù)。回調(diào)函數(shù)請(qǐng)?jiān)O(shè)置兩個(gè)參數(shù)分別接收派發(fā)、抄送人員的結(jié)果集。結(jié)果集的類(lèi)型均為fields為'id','name','type'的EXT RECORD 類(lèi)型的數(shù)組。例如回調(diào)函數(shù)為function callback(records1, records2),我們可以在方法體中對(duì)records1或者records2這兩個(gè)數(shù)組進(jìn)行遍歷,遍歷的每一項(xiàng)都是一個(gè)EXT的RECORD(可參考Ext.data.Record),它有三個(gè)可取值的key: 'id','name','type',可
30、以通過(guò)record.get(id)等方法取得所需要的數(shù)據(jù);4. processNameEn:(string 類(lèi)型)-流程定義名,此參數(shù)僅在選擇區(qū)域中存在角色樹(shù)的情況下有效且必須。用以展示流程所綁定的角色;5. mode:(string類(lèi)型)-選擇模式,可選值為pf、cs以及空值。分別代表:“只顯示派發(fā)選擇框”,“只顯示抄送選擇框”,“兩個(gè)都顯示”。注意:任何情況下回調(diào)函數(shù)callback都需要接收兩個(gè)參數(shù),假設(shè)mode取cs,只顯示抄送人員選擇區(qū),在callback回調(diào)函數(shù)中也要寫(xiě)兩個(gè)參數(shù),但僅僅對(duì)第二個(gè)參數(shù)進(jìn)行抽取數(shù)據(jù)即可。分派人時(shí)三個(gè)必須的條件有處理人的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 初始化工單頁(yè)面AbstractTBnsAction的init()方法已經(jīng)封裝了通用操作。包括初始化當(dāng)前操作人的基本信息;查詢(xún)當(dāng)前節(jié)點(diǎn)的派發(fā)對(duì)象類(lèi)型及后續(xù)節(jié)點(diǎn)列表;生成一個(gè)工單流水號(hào)等流程所需的參數(shù);關(guān)聯(lián)的子流程;綁定該環(huán)節(jié)自定義表單的加載;處理環(huán)節(jié)中綁定該環(huán)節(jié)除iframe外的資源服務(wù)加
33、載;通用工單處理頁(yè)面;自定義表單的顯示和數(shù)據(jù)存儲(chǔ)。Ø 新建工單初始化(發(fā)起頁(yè)面):l 如果發(fā)起頁(yè)面需要特殊的業(yè)務(wù)處理,則需要在該流程的action類(lèi)的initBody()方法中實(shí)現(xiàn)如:² 發(fā)起頁(yè)面綁定資源服務(wù)(發(fā)起頁(yè)面綁定資源服務(wù)作特殊處理):Overridepublic void initBody() throws Exception object.setTemplateName(TEMPLETNAME);if(TextUtil.isNull(object.getActiveName() super.getTresConfigTasksService().creResTa
34、sksWhenFlowInit(super.getRequest(), object, null);程序說(shuō)明:發(fā)起頁(yè)面未生成環(huán)節(jié)名稱(chēng)。object.getActiveName()為空。對(duì)于工單信息通過(guò)flowId獲?。簅bject.getFlowId();TbnsEngineeringProMgt object1 = tbnsEngineeringProMgtService.getTbnsObjectByFlowId(object.getFlowId();9 發(fā)起流程或者完成當(dāng)前環(huán)節(jié)AbstractTBnsAction的submit()方法已經(jīng)封裝了通用操作。包括發(fā)起頁(yè)面數(shù)據(jù)的處理;啟動(dòng)流程;
35、完成當(dāng)前環(huán)節(jié)處理。Ø 發(fā)起流程:l 發(fā)起工單數(shù)據(jù)的封裝,壓入相關(guān)變量已有通用方法實(shí)現(xiàn)不需要另外編寫(xiě)代碼。例如:在工程管理流程中的設(shè)計(jì)審核壓入相關(guān)數(shù)據(jù)super.getRelationMap().put("finish_gcshg", "true");super.getRelationMap().put("finish_gcsg", "true");l 發(fā)起工單數(shù)據(jù)的保存,需要自己編寫(xiě)代碼。² 流程service實(shí)現(xiàn)類(lèi)中實(shí)現(xiàn)父類(lèi)抽象方法startupProcessBody()其中參數(shù)mainObj
36、封裝了發(fā)起工單的數(shù)據(jù),參數(shù)resultMap封裝了流程引擎數(shù)據(jù),參數(shù)relationMap為相關(guān)數(shù)據(jù)區(qū)。例:完成工程管理流程發(fā)起頁(yè)面數(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ù)入庫(kù),流程引擎相關(guān)操作不需要自己編寫(xiě)代碼。l 如有特殊業(yè)務(wù)需要,在流程service實(shí)現(xiàn)類(lèi)中實(shí)現(xiàn)父類(lèi)抽象方法finishProcessBody()。Overridepublic void finishProcessBody(Map<S
38、tring, Object> resultMap, Object mainObj, HashMap<String, Object> relationMap, HttpServletRequest request) throws Exception .Ø 擴(kuò)展submit()方法:可以在submitBody()中編寫(xiě)代碼。比如壓入相關(guān)數(shù)據(jù)10 環(huán)節(jié)信息處理環(huán)節(jié)信息如需要特殊處理,有特殊處理的信息比如 工程管理流程的設(shè)計(jì)審核環(huán)節(jié)需要新建一個(gè)關(guān)于設(shè)計(jì)審核的pojo 新建的pojo在此環(huán)節(jié)對(duì)應(yīng)的action中作為模型驅(qū)動(dòng)對(duì)象。新建的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è)計(jì)審核的審核結(jié)果 <input type="radio" name="back_layout" value="false" checked value="通過(guò)" onclick="showNote();checkjg(0)"&
41、gt; 通過(guò) <input type="radio" name="back_layout" value="true" value="不通過(guò)" onclick="showNote();checkjg(1)"> 不通過(guò)添加與頁(yè)面表單中對(duì)應(yīng)的屬性 private java.lang.String back_layout;新添加的表單信息需要在環(huán)節(jié)詳情頁(yè)面用到$object. back_layout一個(gè)環(huán)節(jié)調(diào)用另一個(gè)環(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();/將取到的另一個(gè)環(huán)節(jié)的信息壓入此環(huán)節(jié)對(duì)應(yīng)的模型驅(qū)動(dòng)對(duì)象中if(TextUtil.isNotNull(dealInfoList)setMObjByMap(object,dealInfoList);流程結(jié)束時(shí)如有特殊處理,重寫(xiě)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、 在駁回的鏈接線上選擇簡(jiǎn)單表達(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)流程主干信息駁回到流程分支上時(shí),需要在流程出現(xiàn)分支的環(huán)節(jié)壓入,流程聚合條件的相關(guān)數(shù)據(jù)。比如工程管理子流程中 設(shè)計(jì)審核環(huán)節(jié)開(kāi)始有了分支,在主干環(huán)節(jié)驗(yàn)收環(huán)節(jié)需要駁回到 分支環(huán)節(jié)工程隨工和工程施工!需要在設(shè)計(jì)審核環(huán)節(jié)提交時(shí)壓入聚合的條件super.getRelationMap().put("finish_gcsg ", "true");super.getRelationMap().put("finish_gcsg", "true");工程隨工和工程施工到竣工報(bào)驗(yàn)的連接線的條件分別是finis
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司茶藝活動(dòng)策劃方案
- 公司春節(jié)游園活動(dòng)方案
- 公司聚會(huì)創(chuàng)意活動(dòng)方案
- 公司無(wú)人文關(guān)懷活動(dòng)方案
- 公司端午宣傳活動(dòng)方案
- 公司舞會(huì)活動(dòng)方案
- 公司春節(jié)留守活動(dòng)方案
- 公司景區(qū)活動(dòng)策劃方案
- 公司熱極年會(huì)活動(dòng)方案
- 公司知識(shí)闖關(guān)活動(dòng)方案
- 供水加壓泵站管理制度
- 保險(xiǎn)公司保密管理制度
- 2025年執(zhí)業(yè)藥師資格證之《西藥學(xué)專(zhuān)業(yè)一》預(yù)測(cè)試題附答案詳解【模擬題】
- 一體化政務(wù)大數(shù)據(jù)體系建設(shè)實(shí)踐指南1.0
- 機(jī)動(dòng)車(chē)交通事故責(zé)任糾紛民事起訴狀(模板)
- 大管棚施工記錄表
- 筒倉(cāng)使用安全管理規(guī)程
- 門(mén)診病歷的與處方書(shū)寫(xiě)規(guī)范課件
- 人教版小學(xué)五下數(shù)學(xué)第九單元:總復(fù)習(xí)教學(xué)計(jì)劃
- 大學(xué)生選課申請(qǐng)表
- GB∕T 24202-2021 光纜增強(qiáng)用碳素鋼絲
評(píng)論
0/150
提交評(píng)論