![流程引擎API調(diào)用說明_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/14/c45973f5-01fd-43d4-a051-7fd5c823473f/c45973f5-01fd-43d4-a051-7fd5c823473f1.gif)
![流程引擎API調(diào)用說明_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/14/c45973f5-01fd-43d4-a051-7fd5c823473f/c45973f5-01fd-43d4-a051-7fd5c823473f2.gif)
![流程引擎API調(diào)用說明_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/14/c45973f5-01fd-43d4-a051-7fd5c823473f/c45973f5-01fd-43d4-a051-7fd5c823473f3.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、慧正工作流引擎 API 說明V6.0 (試用版)慧正通軟科技2012 年 5 月目錄一、總體 41. 業(yè)務(wù)操作說明 42. 流程參數(shù)說明 53. 流程執(zhí)行操作說明 124. 流程實(shí)例流轉(zhuǎn)操作 13二、啟動(dòng)實(shí)例 141. 啟動(dòng)流程實(shí)例整體說明 142. 啟動(dòng)流程實(shí)例參數(shù)說明 143. 啟動(dòng)流程初始化 XMLWork 額外屬性說明 154. 啟動(dòng)流程實(shí)例返回值 init 說明 165. 啟動(dòng)實(shí)例代碼樣例 16三、打開實(shí)例 181. 打開流程實(shí)例整體說明 182. 打開流程實(shí)例參數(shù)說明 183. 打開流程初始化 XMLWork 額外屬性說明 194. 打開流程實(shí)例返回值 init 說明 205. 打
2、開實(shí)例代碼樣例 21四、執(zhí)行操作 231. 采用系統(tǒng)提供的默認(rèn)類處理 232. 自行編寫處理類 23五、流程實(shí)例具體功能操作 251.提交 25A. 提交流程實(shí)例參數(shù)說明 25B. 提交流程實(shí)例返回值 cp 說明 26C. 提交流程實(shí)例代碼樣例 282.退回 30A. 退回流程實(shí)例參數(shù)說明 30B. 退回流程實(shí)例返回值 cp 說明 31C. 退回代碼樣例 323. 拿回 33A. 拿回流程實(shí)例參數(shù)說明 33B. 拿回流程實(shí)例返回值 cp 說明 33C. 拿回代碼樣例 334. 閱知 34A. 流程實(shí)例閱知參數(shù)說明 34B. 流程實(shí)例閱知返回值 cp 說明 34C. 流程實(shí)例閱知代碼樣例 345
3、. 撤銷 35A. 撤銷流程實(shí)例參數(shù)說明 35B. 撤銷流程實(shí)例返回值 cp 說明 35C. 撤銷流程實(shí)例代碼樣例 356. 跳轉(zhuǎn) 36A. 流程實(shí)例跳轉(zhuǎn)參數(shù)說明 36B. 流程實(shí)例跳轉(zhuǎn)返回值 cp 說明 36C. 流程實(shí)例跳轉(zhuǎn)代碼樣例 377. 會(huì)簽 38A. 流程實(shí)例會(huì)簽參數(shù)說明 38B. 流程實(shí)例會(huì)簽返回值 cp 說明 39C. 流程實(shí)例會(huì)簽代碼樣例 398. 加簽 39A. 流程實(shí)例加簽參數(shù)說明 39B. 流程實(shí)例加簽返回值 cp 說明 40C. 流程實(shí)例加簽代碼樣例 409. 轉(zhuǎn)辦 41A. 轉(zhuǎn)辦流程實(shí)例參數(shù)說明 41B. 轉(zhuǎn)辦流程實(shí)例返回值 cp 說明 42C. 轉(zhuǎn)辦流程實(shí)例代碼樣
4、例 4210. 暫停 42A. 暫停流程實(shí)例參數(shù)說明 42B. 暫停流程實(shí)例返回值 cp 說明 43C. 暫停流程實(shí)例代碼樣例 4311. 已閱 43A. 流程實(shí)例已閱參數(shù)說明 43B. 流程實(shí)例已閱返回值 cp 說明 43C. 流程實(shí)例已閱代碼樣例 4412. 催辦 44A. 催辦流程實(shí)例參數(shù)說明 44B. 催辦流程實(shí)例返回值 cp 說明 44C. 催辦流程實(shí)例代碼樣例 4513. 替換辦理人 45A. 流程實(shí)例替換辦理人參數(shù)說明 45B. 流程實(shí)例替換辦理人返回值 cp 說明 46C. 流程實(shí)例替換辦理人代碼樣例 4614. 暫存 46A. 暫存流程實(shí)例參數(shù)說明 46B. 暫存流程實(shí)例返回
5、值 cp 說明 47C. 暫存代碼樣例 4715. 終止流程 47A. 終止流程實(shí)例參數(shù)說明 47B. 終止流程實(shí)例返回值 cp 說明 48C. 終止流程代碼樣例 4816. 啟動(dòng)子流程 48A. 啟動(dòng)子流程實(shí)例參數(shù)說明 48B. 啟動(dòng)子流程實(shí)例返回值 cp 說明 49C. 啟動(dòng)子流程代碼樣例 50附錄: XMLWork 方法摘要 51總體1. 業(yè)務(wù)操作說明業(yè)務(wù)操作說明功能方法參數(shù)說明1啟動(dòng)實(shí)例1.1XMLWorkxWork= newXMLWork(Stri nguserid,Stri nguser name,Stri ng dept name)設(shè)置XMLWork 的基本屬性必要參數(shù):User
6、id:用戶 IdUserName:用戶名稱DeptName :部門名稱1.2intin it=xWork.ope nWorkFlow(” ,flowlD,”根據(jù)流程定義Id,啟動(dòng)流程 J實(shí)例必要參數(shù):flowID:流程定義Id2.打開實(shí)例2.1XMLWorkxWork= newXMLWork(Stri nguserid,Stri nguser name,Stri ng dept name)設(shè)置XMLWork 的基本屬性必要參數(shù):Userid:用戶 IdUserName:用戶名稱DeptName :部門名稱2.2intin it=xWork.ope nWorkFlow(workid ,” ,”根
7、據(jù)流程實(shí)例Id ,打開流程 );實(shí)例必要參數(shù):workid :流程實(shí)例Id2. 流程參數(shù)說明具體可參考 流程參數(shù)總體說明參數(shù)名含義格式要求必須賦值flowIde ntifier流程數(shù)據(jù)源標(biāo)configuration.xml或者識(shí)workflow.xml配置,具體dataIde ntifier業(yè)務(wù)數(shù)據(jù)源標(biāo)參考啟動(dòng)流程初始化識(shí)XMLWork 額外屬性說明UserID操作人用戶IdUserName操作人用戶名稱DeptName操作人部門名稱WorkID流程實(shí)例idNodeID流程實(shí)例當(dāng)前節(jié)點(diǎn)IdNodeName流程實(shí)例當(dāng)前節(jié)點(diǎn)名稱TrackID路徑Id/如果當(dāng)前人在多個(gè)分支 節(jié)點(diǎn)都具有權(quán)限,還需要指
8、 定路徑ID/如果不指定,系統(tǒng)會(huì)自動(dòng) 獲取所有分支,返回前臺(tái)供 選擇actionF lag操作權(quán)限設(shè)置1:允許操作selectAuthor辦理人員的Id單個(gè)節(jié)點(diǎn)(或者不需要傳入節(jié)點(diǎn))時(shí)為 user1|user2或者node=user1|user2多個(gè)節(jié)點(diǎn)時(shí)node1=user1|user2&n ode2=user3流程節(jié)點(diǎn)的辦理人無值時(shí)為必填項(xiàng)selectAuthorCN辦理人員的中文名稱sec on dAuthor選擇的協(xié)辦人員格式同 selectAuthorn extNodeID下一個(gè)節(jié)點(diǎn)Id1. 如果提交到下一點(diǎn),只有 一個(gè)節(jié)點(diǎn)時(shí),請不要賦值, 置為空;2. 當(dāng)下一節(jié)點(diǎn)有多個(gè)節(jié)點(diǎn)
9、, 根據(jù)路由條件無法確定時(shí),可以指定其中一個(gè)或者多 個(gè)來確定流程走向。傳入格式:(必須從返回格式 中獲取傳入數(shù)據(jù))rId1 nld1|rld2 nld2&rId3 nld3路由ID節(jié)點(diǎn)ID。3. 如果從當(dāng)前節(jié)點(diǎn)(A)到 目標(biāo)節(jié)點(diǎn)(C)之間有其他節(jié) 點(diǎn)(B)被跳過時(shí)格式為:路由B節(jié)點(diǎn)B|路由C節(jié)點(diǎn)C4. 多個(gè)節(jié)點(diǎn)被選擇時(shí),使 用&連接msgSe ndFlag發(fā)送消息方式ToDo|Ma il|M sg|Note|RTF|Other|如果在workflow.xml中配置 ReChgMs gFlag節(jié)點(diǎn) 為true 時(shí) 需要傳入發(fā) 送消息的方式Actio nName操作類型Save等,
10、具體參考總體中的流程執(zhí)行操作allowU ni tNext合并節(jié)點(diǎn),是 否允許執(zhí)行提交操作1 :允許,其他不允許合并節(jié)點(diǎn)時(shí)為必填項(xiàng)can celFlag撤銷時(shí)的標(biāo)志,默認(rèn)刪除仁刪除,2=回收站只有執(zhí)行撤銷操作時(shí)為必填項(xiàng)urlapp待辦地址如果為空則默認(rèn)使用流程框架頁面打開Comme nts意見容selectFlag當(dāng)前節(jié)點(diǎn)如果 替換處理人和 轉(zhuǎn)辦時(shí),是否 允許選擇多人1:允許,其他不允許執(zhí)行替換和轉(zhuǎn)辦時(shí)為必填項(xiàng)submitflag操作提交狀態(tài)(1)提交操作時(shí)的含義:1-獲取下一節(jié)點(diǎn)信息,返回 是否選擇節(jié)點(diǎn),是否需要選 擇人員,用于跟前臺(tái)交互, 0=執(zhí)行提交到下一節(jié)點(diǎn)辦 理人,如果處理中遇到節(jié)點(diǎn)
11、不明確或者辦理人不明確時(shí),跟1效果一樣。當(dāng)需要 跟前臺(tái)操作人進(jìn)行交互,比 如獲取是否需要選擇節(jié)點(diǎn) 或者選擇辦理人,是否需要 操作人進(jìn)行確認(rèn)等,建議使 用1,處理速度會(huì)快一點(diǎn)。(2) 跳轉(zhuǎn)操作時(shí)的含義: 仁獲取可以跳轉(zhuǎn)的節(jié)點(diǎn)列 表,0=執(zhí)行跳轉(zhuǎn)到指定節(jié) 點(diǎn)。(3) 退回操作時(shí)的含義: 仁獲取可以退回的節(jié)點(diǎn)列 表,0=執(zhí)行退回到指定節(jié)點(diǎn) 操作。(4) 啟動(dòng)子流程時(shí)的含義:如 果系統(tǒng)提供了啟動(dòng)子流程的ID(參 數(shù)selectFlowID ),則忽略此 參數(shù),不提供selectFlowID 參數(shù)時(shí),如果當(dāng)前人沒有啟 動(dòng)過子流程時(shí)忽略此參數(shù),直接根據(jù)定義判斷是否有 多個(gè)子流程定義,如果只有 一個(gè)子流程定
12、義,則直接啟 動(dòng),否則返回;如果當(dāng)前人 已經(jīng)啟動(dòng)過子流程,1 =獲取 已經(jīng)啟動(dòng)的子流程列表,并 返回,0=根據(jù)定義判斷是否 有多個(gè)子流程定義,如果只 有一個(gè)子流程定義,則直接 啟動(dòng),否則返回。(5)催辦操作時(shí)的含義: 仁催辦次數(shù)如果已經(jīng)達(dá)到 上限則停止,0=催辦次數(shù)已 經(jīng)達(dá)到上限也繼續(xù)催辦curNodeAuthorSe ndFlag當(dāng)前節(jié)點(diǎn)的作 者消息發(fā)送方 式,用于執(zhí)行 會(huì)簽,加簽,替 換,轉(zhuǎn)辦格式同 msgSendFlagcurNodeReaderSe ndF當(dāng)前節(jié)點(diǎn)的讀lag者消息發(fā)送方式,用于執(zhí)行閱知操作時(shí)顯示在前臺(tái)供操作者選擇selectFlowID啟動(dòng)子流程的Id啟動(dòng)子流程時(shí)為必填
13、項(xiàng)FormActio n流程提交操作的URLtmpAuthor選擇人員時(shí),臨時(shí)獲取選擇圍格式同 SelectAuthorpreFlag如果有選擇節(jié) 點(diǎn)頁面,在確 認(rèn)頁面上出現(xiàn) 上一步按鈕1:顯示,其他不出現(xiàn)Acti on Class執(zhí)行業(yè)務(wù)的action 名稱默認(rèn)com.horizo n. workflow.flowe ngin e.impl.e ntity.XMLApptmpSavel nfo臨時(shí)信息記錄(目前用于存 儲(chǔ)當(dāng)前人填寫 的意見信息)3. 流程執(zhí)行操作說明流程執(zhí)行操作1.系統(tǒng) 默認(rèn) 處理 過程(具 體點(diǎn) 擊上 面)引入的包:.horiz on .workflow.flowe ngi
14、n e.impl.e ntity.XMLApp從request 中獲取的相關(guān)參數(shù) 參考流程參數(shù) 總體說明,以及 要執(zhí)行下面具 體操作的說明(1)傳入 request 對象,調(diào)用 doActionXMLApp app =new XMLApp();Lin kedHashMap backMap = app.doAct ion( request);/返回結(jié)果int cp = In teger.parse In t(Stri ng)backMap.get("iResult");/獲取提交后的流程信息XMLWorkxWork = (XMLWork)backMap.get("x
15、Work");(2)把參數(shù)放入的 LinkedHashMap,調(diào)用 doActionLi nkedHashMap dataHashM ap = new Li nkedHashMap();XMLApp app =new XMLApp();Lin kedHashMap backMap = app.doAct ion( dataHashMap);/返回結(jié)果int cp = In teger.parse In t(Stri ng)backMap.get("iResult");/獲取提交后的流程信息XMLWorkxWork = (XMLWork)backMap.get(&q
16、uot;xWork");根據(jù)操作的類 型,組織 dataHashMap 的數(shù)據(jù),具體參 考流程參數(shù)總 體說明,以及要 執(zhí)行下面具體 操作的說明2.自行 編寫 處理LinkedHashMap hashMap = new LinkedHashMap();2.在自定義的類中執(zhí)行int result = doAct ion(n ull,hashMap);組織流程操作需要的參數(shù)過程(具 體點(diǎn) 擊上 面)具體根據(jù)流程 參數(shù)總體說明 以及對應(yīng)的操 作設(shè)置相關(guān)參 數(shù),放入到 hashMap 中。4. 流程實(shí)例流轉(zhuǎn)操作操作名稱英文標(biāo)識(shí)說明提交Submit提交到下一節(jié)點(diǎn)退回reject退回到某個(gè)節(jié)點(diǎn)拿回
17、getback拿回已提交的流程閱知addreader發(fā)送待閱撤銷cancel撤銷流程跳轉(zhuǎn)goto跳轉(zhuǎn)到某個(gè)節(jié)點(diǎn)會(huì)簽huiqia n發(fā)送給相關(guān)人員會(huì)簽加簽jiaqia n發(fā)送給相關(guān)人員加簽轉(zhuǎn)辦move轉(zhuǎn)交給其他人辦理暫停pause暫停流程已閱readed閱讀待閱的信息催辦remsg催辦流程實(shí)例替換辦理人replace替換流程的辦理人暫存save暫存流程實(shí)例終止流程stopflow終止流程實(shí)例啟動(dòng)子流程subflow啟動(dòng)子流程、 啟動(dòng)實(shí)例1. 啟動(dòng)流程實(shí)例整體說明引 入類:執(zhí)行方 法初始化XMLWork ,設(shè)置相關(guān)屬性1.XMLWorkxWork=newXMLWork(userid,user na
18、me,dept name);啟動(dòng)具體的流程實(shí)例(返回值說明見下面)2.i ntinit=xWork.openWorkFlow(” ,flowlD,”)2. 啟動(dòng)流程實(shí)例參數(shù)說明參數(shù)名含義要求userid啟動(dòng)實(shí)例的操作人的用戶Id不能為空user name啟動(dòng)實(shí)例的操作人的用戶名稱可以為空dept name啟動(dòng)實(shí)例的操作人的部門名稱可以為空flowID流程定義Id不能為空3. 啟動(dòng)流程初始化XMLWork額外屬性說明初始化XMLWork,設(shè)置相關(guān)屬性(根據(jù)業(yè)務(wù),如有需要,可以設(shè)置以下容)xWork.setFlowlde ntifier()設(shè)置流程數(shù)據(jù)所使用的數(shù)據(jù)源標(biāo)識(shí)符。con figurati
19、 on. xml中設(shè)置的默認(rèn)數(shù)據(jù)源和workflow.xml中的設(shè)置不一致時(shí),設(shè)置為空和設(shè)置成null(或者不設(shè)置)是有區(qū)別的,設(shè)置為 空時(shí),系統(tǒng)使用configuration.xml 中設(shè)置的默認(rèn)數(shù)據(jù)源,設(shè)置成null(或者不設(shè)置)時(shí),使用的是 workflow.xml中的設(shè)置。數(shù)據(jù)源無效時(shí),系統(tǒng)默認(rèn)使用 con figurati on. xml中設(shè)置的默認(rèn)數(shù)據(jù)源。如果flowIdentifier跟dataIde ntifier樣可以直接使用xWork.setIdentifier(“” )對兩個(gè)變量同時(shí)賦值xWork .setDataIde ntifier()設(shè)置業(yè)務(wù)數(shù)據(jù)所使用的數(shù)據(jù)源標(biāo)識(shí)符
20、。xWork .setUserAuthTyp e()如果需要設(shè)置外部辦理人獲取方式。4. 啟動(dòng)流程實(shí)例返回值init說明返回值含義in it= StaticVar.I ni t_Success初始化成功。init = StaticVar.I nit_NoRole當(dāng)前人員無權(quán)啟動(dòng)流程init = StaticVar.I nit_ReadMsg鎖定當(dāng)前實(shí)例失敗,啟動(dòng)流程時(shí)不影響,可以等同成功init = StaticVar.In it_Failed其他原因失敗從xWork.getBackMsg(); 可以獲取錯(cuò)誤信息啟動(dòng)流程實(shí)例成功后,可以從xWork對象中獲取相關(guān)的信息,具體參考XMLWork方
21、法摘要5. 啟動(dòng)實(shí)例代碼樣例/*啟動(dòng)流程實(shí)例操作,從前臺(tái)獲取參數(shù),獲取流程定義 Id等信息,具體可參考horiz on/workflow/in clude2/xmlwork.i ndex.head.jsp */1.流程定義Id,必須有此值Stri ng flowID= request.getParameter("flowid");2.外部權(quán)限設(shè)置分類,XMLWork 額外屬性,可以不用設(shè)置Str ing userAuthType= request.getParameter("userAuthType");3.獲得數(shù)據(jù)源,XMLWork 額外屬性,可以不用
22、設(shè)置Stri ng dbIde ntifier = request.getParameter("dblde ntifier");4.當(dāng)前用戶信息,根據(jù)應(yīng)用系統(tǒng)的區(qū)別,靈活獲取。下面是產(chǎn)品中的自帶的用戶獲取方式String userid = SessionUtil.getUserld(session); /用戶 Id 必須有值Stri ng user name = Sessio nU til.getUserName(sessio n);Stri ng dept name = Sessio nU til.getDeptName(sessio n);5. 初始化XMLWork 屬
23、性XMLWork xWork = new XMLWork(userid,username,deptname);/如果需要設(shè)置XMLWork額外屬性xWork.setlde ntifier(dblde ntifier); xWork.setUserAuthType(userAuthType);6.啟動(dòng)流程實(shí)例,第一個(gè)參數(shù)是流程實(shí)例Id,第二個(gè)參數(shù)是流程定義Id,第三個(gè)參數(shù)是業(yè)務(wù)數(shù)據(jù)Id,如果三個(gè)都有值,獲取流程數(shù)據(jù)的優(yōu)先順序:workID > flowID > dataIDint in it = xWork.ope nWorkFlow("” ,flowID, ” );7.啟
24、動(dòng)流程實(shí)例成功后,對業(yè)務(wù)數(shù)據(jù)的處理/在啟動(dòng)流程實(shí)例的界面中,如果提交流程操作時(shí),同時(shí)保存業(yè)務(wù)數(shù)據(jù),使用自定義的編寫處理類方式流轉(zhuǎn),業(yè)務(wù)數(shù)據(jù)可以在對應(yīng)的getAppSQL()方法中具體處理。具體可參考自行編寫處理類過程。/獲取當(dāng)前節(jié)點(diǎn)當(dāng)前人所具有的表單信息(包含表單域和操作信息),具體可參考 String formId =;/”業(yè)務(wù)的表單ID,根據(jù)業(yè)務(wù)隨機(jī)修改String dataid=xWork.getlDByFormlD(formId, DataID ”);.horizo n. workflow.flowe ngi ne.xmldb.XMLFormxmlForms=xWork .getCur
25、Form(dataid);for(i nt i=0;i<form .len gth;i+) String formid = formi.getID();/流程跟蹤表單if(formid.equalslg noreCase("FlowTrack")/如果是流程跟蹤表單,可以執(zhí)行到流程跟蹤界面else if(formi.getFormtype().equals("HTML")/靜態(tài)Html頁面else if(formi.getFormtype().equals("JSP")/自定義的JSP頁面/獲取表單信息Li nkedHashMa
26、p formFieldMap = xWork.getFieldsTypeByFormlD(i);/業(yè)務(wù)數(shù)據(jù)IdString dataID = formi.getDataID()/表單IdString formid=formi.getID();/庫表名稱Stri ng table name=formi.getTablelD();/該節(jié)點(diǎn)的只讀字段列表Stri ng mpread=formFieldMap.get("read").toStr in g();/該節(jié)點(diǎn)的編輯字段列表Stri ng mpedit=formFieldMap.get("edit").t
27、oStri ng();/該節(jié)點(diǎn)的必填字段列表Str ing mpmust=formFieldMap.get("check").toStri ng();/該節(jié)點(diǎn)的隱藏字段列表Stri ng mphide=formFieldMap.get("hidde n").toStr in g();/該節(jié)點(diǎn)的其他標(biāo)識(shí)(比如表單自己的按鈕之類的標(biāo)識(shí))列表Stri ng mpother=formFieldMap.get("other").toStri ng();else/其他使用整體框架功能打開實(shí)例1. 打開流程實(shí)例整體說明引 入類:執(zhí)行方 法初始化XM
28、LWork ,設(shè)置相關(guān)屬性1.XMLWorkxWork=newXMLWork(userid,user name,dept name);打開具體的流程實(shí)例(返回值說明見下面)2.i ntinit=xWork.openWorkFlow(workid, ”, ”);2. 打開流程實(shí)例參數(shù)說明參數(shù)名含義要求userid啟動(dòng)實(shí)例的操作人的用戶Id不能為空user name啟動(dòng)實(shí)例的操作人可以為空的用戶名稱dept name啟動(dòng)實(shí)例的操作人的部門名稱可以為空workid流程實(shí)例Id不能為空3. 打開流程初始化XMLWork額外屬性說明初始化XMLWork,設(shè)置相關(guān)屬性(根據(jù)業(yè)務(wù),如有需要,可以設(shè)置以下容)
29、xWork.setFlowlde ntifier()設(shè)置流程數(shù)據(jù)所使用的數(shù)據(jù)源標(biāo)識(shí)符。(1) con figurati on .xml中設(shè)置的默認(rèn)數(shù)據(jù)源和workflow.xml 中的 設(shè)置不一致時(shí),設(shè)置為空和設(shè)置 成null (或者不設(shè)置)是有區(qū)別 的,設(shè)置為空時(shí),系統(tǒng)使用 con figurati on. xml中設(shè)置的默認(rèn)數(shù)據(jù)源,設(shè)置成null (或者不 設(shè)置)時(shí),使用的是 workflow.xml中的設(shè)置。數(shù)據(jù)源無效時(shí),系統(tǒng)默認(rèn)使用 con figurati on. xml中設(shè)置的默認(rèn)數(shù)據(jù)源。如 果flowIdentifier跟dataIde ntifier樣可以直接使xWork.se
30、tDataIde ntifier ()設(shè)置業(yè)務(wù)數(shù)據(jù)所使用的數(shù)據(jù)源標(biāo)識(shí)符。用 xWork.setIdentifier(“”)對兩個(gè)變量同時(shí)賦值xWork.setOpe nTrackID ()設(shè)置指定路徑Id打開流程實(shí)例時(shí)可以設(shè)置此值(1) 如果當(dāng)前人在多個(gè)分支節(jié)點(diǎn)都具 有權(quán)限,還需要指定路徑ID(2) 如果不指定,系統(tǒng)會(huì)自動(dòng)獲取所有 分支,返回前臺(tái)供選擇4. 打開流程實(shí)例返回值init說明返回值含義init= StaticVar.I nit_SelectNode選擇需要打開的節(jié)點(diǎn)Stri ng all nodes = xWork.getBackMsg();Stri ng nodes = all
31、no des.split("|");選擇后的結(jié)果賦值給 xWork.setOpenTracklD("” );return;init = StaticVarni t_Success打開實(shí)例成功init = StaticVar.I nit_NoRole當(dāng)前人員無權(quán)查看此流程實(shí)例init = StaticVar.I nit_ReadMsg當(dāng)前人只能以只讀權(quán)限打開(此時(shí)不能執(zhí)行任何操作)init = StaticVar.I nit_Locked當(dāng)前實(shí)例被其他人鎖定(此時(shí)不能執(zhí)行任何操 作)init = StaticVar.I nit_LockFailed鎖定當(dāng)前實(shí)例失敗,
32、此時(shí)其他人仍然可以打開實(shí)例進(jìn)行操作,可能會(huì)出現(xiàn)數(shù)據(jù)沖突問題,建議退 出重新打開init = StaticVar.In it_Failed其他原因失敗從xWork.getBackMsg(); 可以獲取錯(cuò)誤信息打開流程實(shí)例成功后,可以從xWork對象中獲取相關(guān)的信息,具體參考XMLWork方法摘要5. 打開實(shí)例代碼樣例/*打開流程實(shí)例操作,從前臺(tái)獲取參數(shù),獲取流程實(shí)例Id等信息,具體可參考horiz on/workflow/in clude2/xmlwork.i ndex.head.jsp */1.流程實(shí)例Id,必須有此值Stri ng workid= request.getParameter(&
33、quot;workid");/2.外部權(quán)限設(shè)置分類,XMLWork 額外屬性,可以不用設(shè)置Str ing userAuthType= request.getParameter("userAuthType");3.獲得數(shù)據(jù)源,XMLWork 額外屬性,可以不用設(shè)置Stri ng dbIde ntifier = request.getParameter("dblde ntifier");4.設(shè)置指定路徑Id,XMLWork額外屬性,如果沒有分支,可以不用設(shè)置Stri ng ope nTrackID = request.getParameter(&q
34、uot;ope nTrackID ");/5.當(dāng)前用戶信息,根據(jù)應(yīng)用系統(tǒng)的區(qū)別,靈活獲取。下面是產(chǎn)品中的自帶的用戶獲取方式String userid = SessionUtil.getUserId(session); /用戶 Id 必須有值Stri ng user name = Sessio nU til.getUserName(sessio n);Stri ng dept name = Sessio nU til.getDeptName(sessio n);/5. 初始化XMLWork 屬性XMLWork xWork = new XMLWork(userid,username,de
35、ptname);/如果需要設(shè)置XMLWork額外屬性xWork.setIde ntifier(dblde ntifier);xWork.setUserAuthType(userAuthType);xWork.setOpe nTracklD(ope nTrackID);6.打開流程實(shí)例int in it = xWork.ope nWorkFlow(workid, ” , ” );7.打開流程實(shí)例成功后,對業(yè)務(wù)數(shù)據(jù)的處理/在打開流程實(shí)例的界面中,如果提交流程操作時(shí),同時(shí)保存業(yè)務(wù)數(shù)據(jù),使用自定義的編寫處理類方式流轉(zhuǎn),業(yè)務(wù)數(shù)據(jù)可以在對應(yīng)的getAppSQL()方法中具體處理。具體可參考自行編寫處理類過
36、程。/獲取當(dāng)前節(jié)點(diǎn)當(dāng)前人所具有的表單信息(包含表單域和操作信息),具體可參考String formId =“” ;/業(yè)務(wù)的表單ID,根據(jù)業(yè)務(wù)隨機(jī)修改String dataid=xWork.getlDByFormlD(formId, DataID ”);.horizo n. workflow.flowe ngi ne.xmldb.XMLFormxmlForms =xWork .getCurForm(dataid);for(i nt i=0;i<form .len gth;i+) Stri ng formid = formi.getID();/流程跟蹤表單if(formid.equalsIg
37、 noreCase("FlowTrack")/如果是流程跟蹤表單,可以執(zhí)行到流程跟蹤界面else if(formi.getFormtype().equals("HTML")/靜態(tài)Html頁面else if(formi.getFormtype().equals("JSP")/自定義的JSP頁面/獲取表單信息Li nkedHashMap formFieldMap = xWork.getFieldsTypeByFormlD(i);/業(yè)務(wù)數(shù)據(jù)IdString dataID = formi.getDataID()/表單IdString form
38、id=formi.getID();/庫表名稱Stri ng table name=formi.getTablelD();/該節(jié)點(diǎn)的只讀字段列表Stri ng mpread=formFieldMap.get("read").toStr in g();/該節(jié)點(diǎn)的編輯字段列表String mpedit=formFieldMap.get("edit").toString();/該節(jié)點(diǎn)的必填字段列表Str ing mpmust=formFieldMap.get("check").toStri ng();/該節(jié)點(diǎn)的隱藏字段列表Stri ng mp
39、hide=formFieldMap.get("hidde n").toStr in g();/該節(jié)點(diǎn)的/該節(jié)點(diǎn)的其他標(biāo)識(shí)(比如表單自己的按鈕之類的標(biāo)識(shí))列表Stri ng mpother=formFieldMap.get("other").toStri ng();else/其他使用整體框架功能四、 執(zhí)行操作此步必須在執(zhí)行過實(shí)例打開或者啟動(dòng)流程成功后方可執(zhí)行(否則會(huì)出現(xiàn)操作失敗)1. 采用系統(tǒng)提供的默認(rèn)類處理如果流程需要的信息都在 request 里,可以使用系統(tǒng)默認(rèn)提供的方法 .horizon.workflow.flowengine.impl.entit
40、y.XMLApp 類中提供默認(rèn)處理方法,此類可以 自行編寫。操作名稱從 request 中的 ActionName 自動(dòng)獲取 當(dāng)前人 id 從 request 中的 userid 自動(dòng)獲取 當(dāng)前實(shí)例 id 從 request 中的 workid 自動(dòng)獲取 其他參數(shù)參考方法二中的說明 下面的 XMLApp 實(shí)例化過程是系統(tǒng)默認(rèn)的處理方式,可以根據(jù)業(yè)務(wù)需要參考自行編寫 處理類過程,實(shí)現(xiàn)自己的業(yè)務(wù)。XMLApp app =new XMLApp();/ 也 可 以 使 用 XMLAppInterface app = StaticFun.getXMLApp(); 來 獲 取 在 workflow.xml
41、 中配置的類LinkedHashMap backMap = app.doAction(request);根據(jù)返回結(jié)果進(jìn)行后續(xù)處理系統(tǒng)默認(rèn) Map 中存放三個(gè)值,如果是自行編寫的類可能跟下面的描述不一致,請自行 處理。下面對系統(tǒng)默認(rèn)提供的方法進(jìn)行說明。request : success 和 error 標(biāo)識(shí)成功和失敗 /iResult=0 時(shí)為 Success iResult :執(zhí)行結(jié)果編號(hào),需要轉(zhuǎn)換為數(shù)字后進(jìn)行判斷backMsg :執(zhí)行處理的信息xWork :本次處理中的 XMLWork 對象,可以從中獲取一些信息,比如選擇節(jié)點(diǎn)時(shí), 獲取所有可能的節(jié)點(diǎn)。具體各種情況說明見下面描述。2. 自行編
42、寫處理類自行編寫類,必須繼承 com.horizon.workflow.flowengine.fun. XMLWorkApp 此類需要實(shí)現(xiàn)三個(gè)接口方法,getAppSQL 用來獲取業(yè)務(wù)數(shù)據(jù)保存的 sql 和參數(shù),如果已經(jīng)自行處理,可以直接返回 turegetAppDelSQL 用來在撤辦時(shí)刪除業(yè)務(wù)數(shù)據(jù),如果業(yè)務(wù)數(shù)據(jù)自行處理,可以直接返回 truesetFlowVarValue 用來對流程變量進(jìn)行賦值,如果沒有可以為空在類中創(chuàng)建一個(gè)方法(比如 doAction ),在方法中包含下面的代碼定義一個(gè) LinkedHashMap ,在此 map 中放入流程需要的參數(shù)如下LinkedHashMap ha
43、shMap = new LinkedHashMap();/ 根據(jù)需要往 hashMap 中放入以下信息。 hashMap.put("Comments".toUpperCase(),""); / 填寫的意見信息 , 存放到流 程跟蹤中。如果不需要記錄則忽略此參數(shù)傳入hashMap.put("selectAuthor".toUpperCase(),""); / 如果下一節(jié)點(diǎn)沒有設(shè)置辦理 人或者根據(jù)設(shè)置獲取辦理人為空時(shí),且不允許跳過,可以在此傳入下一節(jié)點(diǎn)辦理人。傳入格式:單個(gè)節(jié)點(diǎn) (或者不需要傳入節(jié)點(diǎn) )時(shí)為 user1
44、|user2 或者 node=user1|user2 多個(gè)節(jié)點(diǎn)時(shí) node1=user1|user2&node2=user3hashMap.put("nextNodeID".toUpperCase(),""); / 如果下一點(diǎn)只有一個(gè)時(shí), 請不 要賦值; 當(dāng)下一節(jié)點(diǎn)有多個(gè)節(jié)點(diǎn), 根據(jù)路由條件無法確定時(shí), 可以指定其中一個(gè)或者多個(gè)來 確定流程走向。傳入格式: (必須從返回格式中獲取傳入數(shù)據(jù) )rId1nId1|rId2nId2&rId3nId3路由ID節(jié)點(diǎn)ID。如果從當(dāng)前節(jié)點(diǎn)(A)到目標(biāo)節(jié)點(diǎn)(C)之間有其他節(jié)點(diǎn)(B) 被跳過時(shí)格式為:路由
45、B 節(jié)點(diǎn) B| 路由 C 節(jié)點(diǎn) C多個(gè)節(jié)點(diǎn)被選擇時(shí),使用 & 連接hashMap.put("submitflag".toUpperCase(), "0");提交操作時(shí)的含義 ,1= 獲取下一節(jié)點(diǎn)信息,返回是否選擇節(jié)點(diǎn),是否需要選擇人員,用 于跟前臺(tái)交互, 0= 執(zhí)行提交到下一節(jié)點(diǎn)辦理人,如果處理中遇到節(jié)點(diǎn)不明確或者辦理人不明確時(shí),跟 1 效果一樣。當(dāng)需要跟前臺(tái)操作人進(jìn)行交互,比如獲取是否需要選擇節(jié)點(diǎn)或者 選擇辦理人,是否需要操作人進(jìn)行確認(rèn)等,建議使用1 ,處理速度會(huì)快一點(diǎn)。跳轉(zhuǎn)操作時(shí)的含義: 1= 獲取可以跳轉(zhuǎn)的節(jié)點(diǎn)列表, 0= 執(zhí)行跳轉(zhuǎn)到指定節(jié)
46、點(diǎn)。退回操作時(shí)的含義: 1=獲取可以退回的節(jié)點(diǎn)列表, 0= 執(zhí)行退回到指定節(jié)點(diǎn)操作。 啟動(dòng)子流程時(shí)的含義:如果系統(tǒng)提供了啟動(dòng)子流程的 ID (參數(shù) selectFlowID ),則忽 略此參數(shù),不提供 selectFlowID 參數(shù)時(shí),如果當(dāng)前人 沒有啟動(dòng)過 子流程時(shí)忽略此參數(shù),直 接根據(jù)定義判斷是否有多個(gè)子流程定義, 如果只有一個(gè)子流程定義, 則直接啟動(dòng), 否則返回; 如果當(dāng)前人 已經(jīng)啟動(dòng)過 子流程, 1=獲取已經(jīng)啟動(dòng)的子流程列表,并返回, 0= 根據(jù)定義判斷 是否有多個(gè)子流程定義,如果只有一個(gè)子流程定義,則直接啟動(dòng),否則返回。催辦操作時(shí)的含義:1= 催辦次數(shù)如果已經(jīng)達(dá)到上限則停止,0=催辦
47、次數(shù)已經(jīng)達(dá)到上限也繼續(xù)催辦啟動(dòng)子流程時(shí)可能需要的參數(shù) , 指定子流程 ID hashMap.put("selectFlowID".toUpperCase(), "");/ 合并節(jié)點(diǎn)提交時(shí)需要傳入的參數(shù) 1=可以提交下一節(jié)點(diǎn) ,0= 程序自行確定 hashMap.put("setAllowUnitNext".toUpperCase(), "");/ 操作名稱 hashMap.put("ActionName".toUpperCase(), "Submit");/ 當(dāng)前執(zhí)行的操作S
48、ubmit,Save,Reject,JiaQian,HuiQian,Replace,StopFlow,Pause,AddReader,GetBack,ReMsg,Move,Goto,Cancel,Readed,SubFlow提交,暫存 ,退回,加簽 ,會(huì)簽 ,替換辦理人 ,終止,暫停,閱知 ,拿回,催辦,轉(zhuǎn)辦,跳轉(zhuǎn) ,撤辦 ,已閱,啟 動(dòng)子流程hashMap.put("workID".toUpperCase(), workID);/ 當(dāng)前實(shí)例 id/當(dāng)前操作者idhashMap.put("userid".toUpperCase(), userid);/業(yè)
49、務(wù)數(shù)據(jù)跟流程關(guān)聯(lián)字段hashMap.put("FORMID","");所有需要關(guān)聯(lián)數(shù)據(jù)對應(yīng)的表單id ,多個(gè)表單使用分號(hào)分隔hashMap.put("32 位formid_ID",""); /把業(yè)務(wù)數(shù)據(jù)id放入此字段中,如果為空,系 統(tǒng)會(huì)默認(rèn)生成一個(gè),但是不會(huì)自動(dòng)插入一條數(shù)據(jù),業(yè)務(wù)數(shù)據(jù)處理時(shí)自行判斷是否需要插入hashMap.put("32 位 formid_TABLENAME",""); / 業(yè)務(wù)數(shù)據(jù)對應(yīng)的庫表名稱/其它非必需的信息hashMap.put("flo
50、wIdentifier".toUpperCase(),"");/ 流程數(shù)據(jù)對應(yīng)的數(shù)據(jù)源標(biāo)識(shí)符,如果不提供,則使用打開實(shí)例時(shí)指定的數(shù)據(jù)源。如果指定的數(shù)據(jù)源跟打開時(shí)不一致,系 統(tǒng)會(huì)保存數(shù)據(jù)到當(dāng)前指定的數(shù)據(jù)源,而打開時(shí)數(shù)據(jù)源中的數(shù)據(jù)不會(huì)被改變。一般不建議設(shè)置此參數(shù)。hashMap.put("dataIdentifier".toUpperCase(),"");/ 業(yè)務(wù)數(shù)據(jù)對應(yīng)的數(shù)據(jù)源標(biāo)識(shí)符,如果不提供,則使用打開時(shí)指定的數(shù)據(jù)源。如果指定的數(shù)據(jù)源跟打開時(shí)不一致,系統(tǒng)會(huì) 保存數(shù)據(jù)到當(dāng)前指定的數(shù)據(jù)源,而打開時(shí)數(shù)據(jù)源中的數(shù)據(jù)不會(huì)被改變。一般
51、不建議設(shè)置此參數(shù)。數(shù)據(jù)源獲取順序:優(yōu)先使用指定數(shù)據(jù)源,如果沒有設(shè)置參數(shù)或者傳入null,系統(tǒng)從實(shí)例XML中查找打開時(shí)指定的數(shù)據(jù)源。hashMap.put("msgSendFlag".toUpperCase(), "");/ 如果在 workflow.xml 中配置ReChgMsgFlag 節(jié)點(diǎn)為true時(shí)需要傳入發(fā)送消息的方式。/其他參數(shù)設(shè)置can celFlag =1指定撤辦時(shí)系統(tǒng)刪除流程實(shí)例,否則不刪除僅做標(biāo)記撤辦參數(shù)設(shè)置完畢后,請執(zhí)行父類方法doAction 傳入?yún)?shù)hashMapint result = doActi on(n ull,hashM
52、ap);最后根據(jù)result和ActionName進(jìn)行不同情況的處理,比如選擇節(jié)點(diǎn)、或者選擇人員五、流程實(shí)例具體功能操作1.提交A. 提交流程實(shí)例參數(shù)說明除了整體參數(shù)值必有之外,下面是補(bǔ)充的參數(shù)說明:參數(shù)名/Key值含義要求actionn ame操作名稱不能為空,必須為submitn extNodelD提交到某個(gè)節(jié)點(diǎn)的要求同整體說明IdselectAuthor節(jié)點(diǎn)辦理人要求同整體說明submitflag提交方式1.Submitflag=1時(shí),從xWork.getBackMsg()獲取可以提交的節(jié)點(diǎn)列表2.Submitflag=0時(shí),提交到指定的節(jié)點(diǎn)B. 提交流程實(shí)例返回值cp說明返回值含義cp
53、=StaticVar.F_STATUS_Success提交成功:1.submitflag=1 時(shí)xWork.getNextNodeName()獲取下一節(jié)點(diǎn)名稱,用于顯xWork.getNextAuthor("<br>")顯示獲取下一節(jié)點(diǎn)辦理人,用xWork.getSelectedNodesIds用于給nextNodeID賦值()獲取到下一節(jié)點(diǎn)的路徑xWork.getSelectedNodesAuthors人,用于給selectAuthor 賦值()獲取下一節(jié)點(diǎn)辦cp=StaticVar.F_STATUS_ SelectAuthorcp=StaticVar.F_S
54、TATUS_ SelectNodexWork.getSelectedNodesSeco ndAuthors() 點(diǎn)的協(xié)辦人用于給secondAuthor 賦值獲取下一2.Submitflag=0 時(shí),系統(tǒng)提交并保存數(shù)據(jù)需要設(shè)置下一節(jié)點(diǎn)的辦理人:xWork.getMa nualSelectUser()獲取節(jié)點(diǎn)設(shè)置的辦理人xWork.getSelectNextUserFlag(),根據(jù)節(jié)點(diǎn)辦理類型確是單選1還是多選2xWork.isFreeSelectUser(),是否允許自由選擇需要選擇提交的路由:XMLRouter tpRouter = xWork.getSelectRouter();取所有路由列表tpRouter.getSelectlD() 獲取選
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年五年級數(shù)學(xué)下冊 7 折線統(tǒng)計(jì)圖第1課時(shí) 單式折線統(tǒng)計(jì)圖配套說課稿 新人教版001
- 2025城鎮(zhèn)土地開發(fā)和商品房借款合同協(xié)議書范本范文
- 9 生活離不開規(guī)則 (說課稿)2023-2024學(xué)年統(tǒng)編版道德與法治三年級下冊001
- 2025工地集控室裝飾裝修工程分包合同
- 2025原料玉原料玉米電FEGN子交易合同文本
- 2025二手房交易合同(合同版本)
- 2024年五年級數(shù)學(xué)上冊 3 小數(shù)除法練習(xí)課說課稿 新人教版
- 2024年高中歷史 第三單元 從人文精神之源到科學(xué)理性時(shí)代 第13課 挑戰(zhàn)教皇的權(quán)威說課稿 岳麓版必修3
- Unit 6 Growing Up(說課稿)2023-2024學(xué)年人教新起點(diǎn)版英語五年級下冊001
- 2024秋七年級英語下冊 Module 8 Story time Unit 3 Language in use說課稿 (新版)外研版
- 【重慶長安汽車公司績效管理現(xiàn)狀、問題及優(yōu)化對策(7600字論文)】
- 計(jì)算機(jī)網(wǎng)絡(luò)畢業(yè)論文3000字
- 2023年大學(xué)物理化學(xué)實(shí)驗(yàn)報(bào)告化學(xué)電池溫度系數(shù)的測定
- 農(nóng)村公共基礎(chǔ)知識(shí)
- 腦出血的護(hù)理課件腦出血護(hù)理查房PPT
- 煤礦機(jī)電運(yùn)輸安全培訓(xùn)課件
- 扣繳個(gè)人所得稅報(bào)告表-(Excel版)
- Unit+4+History+and+Traditions單元整體教學(xué)設(shè)計(jì)課件 高中英語人教版(2019)必修第二冊單元整體教學(xué)設(shè)計(jì)
- 提高預(yù)埋螺栓安裝一次驗(yàn)收合格率五項(xiàng)qc2012地腳
- 2023年全國自學(xué)考試00054管理學(xué)原理試題答案
- 六年級譯林版小學(xué)英語閱讀理解訓(xùn)練經(jīng)典題目(附答案)
評論
0/150
提交評論