


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、慧正工作流引擎API說明V6.0 (試用版)北京慧正通軟科技有限公司2012年5月目錄、總體41. 業(yè)務(wù)操作說明42. 流程參數(shù)說明43. 流程執(zhí)行操作說明 84. 流程實例流轉(zhuǎn)操作9二、啟動實例91. 啟動流程實例整體說明 92. 啟動流程實例參數(shù)說明 103. 啟動流程初始化 XMLWork額外屬性說明104. 啟動流程實例返回值init說明105. 啟動實例代碼樣例11三、打開實例121. 打開流程實例整體說明 122. 打開流程實例參數(shù)說明 133. 打開流程初始化 XMLWork額外屬性說明134. 打開流程實例返回值init說明145. 打開實例代碼樣例14四、執(zhí)行操作161. 采
2、用系統(tǒng)提供的默認類處理 162. 自行編寫處理類17五、流程實例具體功能操作 191. 提交19A. 提交流程實例參數(shù)說明 19B. 提交流程實例返回值 cp說明19C. 提交流程實例代碼樣例 202. 退回23A. 退回流程實例參數(shù)說明 23B. 退回流程實例返回值cp說明23C. 退回代碼樣例243. 拿回24A. 拿回流程實例參數(shù)說明 24B. 拿回流程實例返回值cp說明25C. 拿回代碼樣例254. 閱知25A. 流程實例閱知參數(shù)說明 25B. 流程實例閱知返回值 cp說明26C. 流程實例閱知代碼樣例 265. 撤銷26A. 撤銷流程實例參數(shù)說明 26B. 撤銷流程實例返回值 cp說
3、明 26C. 撤銷流程實例代碼樣例 276. 跳轉(zhuǎn)27A. 流程實例跳轉(zhuǎn)參數(shù)說明 27B. 流程實例跳轉(zhuǎn)返回值cp說明 27C. 流程實例跳轉(zhuǎn)代碼樣例 287. 會簽29A. 流程實例會簽參數(shù)說明 29B. 流程實例會簽返回值 cp說明 29C. 流程實例會簽代碼樣例 308. 加簽30A. 流程實例加簽參數(shù)說明 30B. 流程實例加簽返回值 cp說明30C. 流程實例加簽代碼樣例 319. 轉(zhuǎn)辦31A. 轉(zhuǎn)辦流程實例參數(shù)說明 31B. 轉(zhuǎn)辦流程實例返回值 cp說明31C. 轉(zhuǎn)辦流程實例代碼樣例 3210. 暫停32A. 暫停流程實例參數(shù)說明 32B. 暫停流程實例返回值 cp說明32C. 暫
4、停流程實例代碼樣例 3311. 已閱33A. 流程實例已閱參數(shù)說明 33B. 流程實例已閱返回值cp說明33C. 流程實例已閱代碼樣例 3312. 催辦34A. 催辦流程實例參數(shù)說明 34B. 催辦流程實例返回值 cp說明34C. 催辦流程實例代碼樣例 3413. 替換辦理人35A. 流程實例替換辦理人參數(shù)說明 35B. 流程實例替換辦理人返回值 cp說明35C. 流程實例替換辦理人代碼樣例 3514. 暫存36A. 暫存流程實例參數(shù)說明 36B. 暫存流程實例返回值 cp說明36C. 暫存代碼樣例3615. 終止流程36A. 終止流程實例參數(shù)說明 36B. 終止流程實例返回值 cp說明 37
5、C. 終止流程代碼樣例3716. 啟動子流程37A. 啟動子流程實例參數(shù)說明 37B. 啟動子流程實例返回值 cp說明37C. 啟動子流程代碼樣例 38附錄:XMLWork方法摘要40、 總體1. 業(yè)務(wù)操作說明業(yè)務(wù)操作說明功能方法參數(shù)說明1.啟動實例1.1XMLWorkxWork= newXMLWork(Stri nguserid,Stri nguser name,Stri ng dept name)設(shè)置XMLWor啲基本屬性必要參數(shù):Userid:用戶 IdUserName用戶名稱DeptName部門名稱1.2intin it=xWork.openWorkFlow( ”,flowlD, ”
6、);根據(jù)流程定義Id,啟動流程 實例必要參數(shù):flowID:流程定義Id2.打開實例2.1XMLWorkxWork= newXMLWork(Stri nguserid,Stri nguser name,Stri ng dept name)設(shè)置XMLWor的基本屬性 必要參數(shù):Userid:用戶 IdUserName用戶名稱DeptName部門名稱2.2intin it=xWork.openWorkFlow(workid , ” , ” );根據(jù)流程實例Id,打開流程 實例必要參數(shù):workid :流程實例Id2. 流程參數(shù)說明具體可參考 流程參數(shù)總體說明參數(shù)名含義格式要求必須賦值flowIde
7、 ntifier流程數(shù)據(jù)源標 識configuration.xml或者workflow.xml 配置,具體參 考啟動流程初始化 XMLWork額dataIde ntifier業(yè)務(wù)數(shù)據(jù)源標 識外屬性說明UserID操作人用戶IdUserName操作人用戶名 稱DeptName操作人部門名 稱WorkID流程實例idNodelD流程實例當(dāng)前 節(jié)點IdNodeName流程實例當(dāng)前 節(jié)點名稱TrackID路徑Id/如果當(dāng)前人在多個分支 節(jié)點都具有權(quán)限,還需要指 定路徑ID/如果不指定,系統(tǒng)會自動 獲取所有分支,返回前臺供 選擇actionF lag操作權(quán)限設(shè)置1:允許操作selectAuthor辦理人
8、員的Id單個節(jié)點(或者不需要傳入節(jié)點)時為 user1|user2或者node=user1|user2多個節(jié)點時node1=user1|user2&n ode2=user3流程節(jié)點的 辦理人無值 時為必填項selectAuthorCN辦理人員的中 文名稱sec on dAuthor選擇的協(xié)辦人 員格式同 selectAuthorn extNodeID下一個節(jié)點Id1. 如果提交到下一點,只有 一個節(jié)點時,請不要賦值, 置為空;2. 當(dāng)下一節(jié)點有多個節(jié)點, 根據(jù)路由條件無法確定時, 可以指定其中一個或者多 個來確定流程走向。傳入格式:(必須從返回格 式中獲取傳入數(shù)據(jù)) rld1 nld1
9、|rld2 nld2&rld 3 nld3路由ID節(jié)點ID。3. 如果從當(dāng)前節(jié)點(A)到 目標節(jié)點(C)之間有其他節(jié) 點(B)被跳過時格式為:路 由B節(jié)點B|路由C節(jié)點C4.多個節(jié)點被選擇時,使 用&連接msgSe ndFlag發(fā)送消息方式ToDo|Ma il|M sg|Note|RTF| Other|如果在workflow.xml中配置ReChgMsgFl ag節(jié)點為 true 時需 要傳入發(fā)送 消息的方式Actio nName操作類型Save等,具體參考總體中的 流程執(zhí)行操作allowU ni tNext合并節(jié)點,是 否允許執(zhí)行提 交操作1:允許,其他不允許合并節(jié)點時 為必
10、填項can celFlag撤銷時的標 志,默認刪除仁刪除,2=回收站只有執(zhí)行撤 銷操作時為 必填項urlapp待辦鏈接地址如果為空則默認使用流程 框架頁面打開Comme nts意見內(nèi)容selectFlag當(dāng)前節(jié)點如果 替換處理人和 轉(zhuǎn)辦時,是否 允許選擇多人1:允許,其他不允許執(zhí)行替換和 轉(zhuǎn)辦時為必 填項submitflag操作提交狀態(tài)(1) 提交操作時的含義:1-獲取下一節(jié)點信息,返回 是否選擇節(jié)點,是否需要選 擇人員,用于跟前臺交互, 0=執(zhí)行提交到下一節(jié)點辦 理人,如果處理中遇到節(jié)點 不明確或者辦理人不明確 時,跟1效果一樣。當(dāng)需要 跟前臺操作人進行交互,比 如獲取是否需要選擇節(jié)點 或者
11、選擇辦理人,是否需要 操作人進行確認等,建議使 用1,處理速度會快一點。(2) 跳轉(zhuǎn)操作時的含義: 仁獲取可以跳轉(zhuǎn)的節(jié)點列 表,0=執(zhí)行跳轉(zhuǎn)到指定節(jié) 點。(3) 退回操作時的含義: 仁獲取可以退回的節(jié)點列表,0=執(zhí)行退回到指定節(jié)點 操作。(4) 啟動子流程時的含義:如果系統(tǒng)提供了啟動子流 程的ID (參數(shù)selectFlowID ),則忽略此 參數(shù),不提供selectFlowID 參數(shù)時,如果當(dāng)前人沒有啟 動過子流程時忽略此參數(shù), 直接根據(jù)定義判斷是否有 多個子流程定義,如果只有 一個子流程定義,則直接啟 動,否則返回;如果當(dāng)前人 已經(jīng)啟動過子流程,1二獲取 已經(jīng)啟動的子流程列表,并 返回,0
12、-根據(jù)定義判斷是否 有多個子流程定義,如果只 有一個子流程定義,則直接 啟動,否則返回。(5) 催辦操作時的含義: 仁催辦次數(shù)如果已經(jīng)達到 上限則停止,0二催辦次數(shù)已 經(jīng)達到上限也繼續(xù)催辦curNodeAuthorSe ndFlag當(dāng)前節(jié)點的作 者消息發(fā)送方 式,用于執(zhí)行 會簽,加簽,替 換,轉(zhuǎn)辦格式同 msgSendFlagcurNodeReaderSe ndFlag當(dāng)前節(jié)點的讀 者消息發(fā)送方 式,用于執(zhí)行 閱知操作時顯 示在前臺供操 作者選擇selectFlowID啟動子流程的Id啟動子流程 時為必填項FormActio n流程提交操作的URLtmpAuthor選擇人員時, 臨時獲取選擇
13、范圍格式同 SelectAuthorpreFlag如果有選擇節(jié) 點頁面,在確 認頁面上出現(xiàn)1:顯示,其他不出現(xiàn)上一步按鈕Acti on Class執(zhí)行業(yè)務(wù)的action 名稱默認com.horizo n. workflow.flowe ngin e.impl.e ntity .XMLApptmpSavel nfo臨時信息記錄 (目前用于存 儲當(dāng)前人填寫 的意見信息)3. 流程執(zhí)行操作說明流程執(zhí)行操作1.引入的包:從request中獲系統(tǒng)com.horiz on .workflow.flowe ngi ne.impl.e ntity.XMLApp取的相關(guān)參數(shù)默認參考流程參數(shù)處理(1)傳入 req
14、uest 對象,調(diào)用 doAction總體說明,以及過程XMLApp app =new XMLApp();要執(zhí)行下面具Lin kedHashMap backMap = app.doAct ion( request);體操作的說明(具/返回結(jié)果體點int cp = In teger.parse In t(Stri ng)backMap.get("iResult");擊上/獲取提交后的流程信息面鏈XMLWork xWork = (XMLWork)backMap.get("xWork");接)(2)把參數(shù)放入的 LinkedHashMap,調(diào)用 doActio
15、n根據(jù)操作的類Li nkedHashMap dataHashM ap = new Li nkedHashMap();型,組織XMLApp app =new XMLApp();dataHashM ap 的Lin kedHashMap backMap = app.doAct ion( dataHashMap);數(shù)據(jù),具體參考/返回結(jié)果流程參數(shù)總體int cp = In teger.parse In t(Stri ng)backMap.get("iResult");說明,以及要執(zhí)/獲取提交后的流程信息行下面具體操XMLWork xWork = (XMLWork)backMap.g
16、et("xWork");作的說明2.LinkedHashMap hashMap = new LinkedHashMap();組織流程操作自行2.在自定義的類中執(zhí)行需要的參數(shù)編寫int result = doAct ion(n ull,hashMap);具體根據(jù)流程處理參數(shù)總體說明過程以及對應(yīng)的操(具作設(shè)置相關(guān)參體點數(shù),放入到擊上 面鏈hashMap 中。接)4. 流程實例流轉(zhuǎn)操作操作名稱英文標識說明提交Submit提交到下一節(jié)點退回reject退回到某個節(jié)點拿回getback拿回已提交的流程閱知addreader發(fā)送待閱撤銷cancel撤銷流程跳轉(zhuǎn)goto跳轉(zhuǎn)到某個節(jié)點會簽
17、huiqia n發(fā)送給相關(guān)人員會簽加簽jiaqia n發(fā)送給相關(guān)人員加簽轉(zhuǎn)辦move轉(zhuǎn)交給其他人辦理暫停pause暫停流程已閱readed閱讀待閱的信息催辦remsg催辦流程實例替換辦理人replace替換流程的辦理人暫存save暫存流程實例終止流程stopflow終止流程實例啟動子流程subflow啟動子流程啟動實例1. 啟動流程實例整體說明引 入類:執(zhí)行方 法初始化XMLWork設(shè)置相關(guān)屬性1.XMLWorkxWork=newXMLWork(userid,user name,dept name);啟動具體的流程實例 (返回值說明見下面)2.i ntin it=xWork.openWorkF
18、low( ” ,flowID, ” );2. 啟動流程實例參數(shù)說明參數(shù)名含義要求userid啟動實例的操作人 的用戶Id不能為空user name啟動實例的操作人 的用戶名稱可以為空dept name啟動實例的操作人 的部門名稱可以為空flowID流程定義Id不能為空3. 啟動流程初始化 XMLWork額外屬性說明初始化XMLWork設(shè)置相關(guān)屬性(根據(jù)業(yè)務(wù),如有需要,可以設(shè)置以下內(nèi)容)xWork.setFlowlde ntifier( )設(shè)置流程數(shù)據(jù)所使 用的數(shù)據(jù)源標識符。con figurati on. xml中設(shè)置的默認數(shù)據(jù)源和workflow.xml中的設(shè)置不 一致時,設(shè)置為空和設(shè)置成n
19、ull (或 者不設(shè)置)是有區(qū)別的,設(shè)置為空時, 系統(tǒng)使用 con figurati on. xml中設(shè)置的默認數(shù)據(jù)源,設(shè)置成 null (或 者不設(shè)置)時,使用的是 workflow.xml中的設(shè)置。數(shù)據(jù)源無 效時,系統(tǒng)默認使用 con figurati on. xml中設(shè)置的默認數(shù)據(jù)源。如果 flowIde ntifier跟dataIde ntifier樣可以直接使用xWork.setIdentifier()對兩個變量同時賦值xWork .setDataIde ntifier()設(shè)置業(yè)務(wù)數(shù)據(jù)所使 用的數(shù)據(jù)源標識符。xWork .setUserAuthType()如果需要設(shè)置外部 辦理人獲取
20、方式。4. 啟動流程實例返回值init說明返回值含義in it= StaticVar.I ni t Success初始化成功。init = StaticVar.I nit NoRole當(dāng)前人員無權(quán)啟動流程init = StaticVar.I nit_ReadMsg鎖定當(dāng)前實例失敗,啟動流程時不影響,可以等 同成功init = StaticVar.In it_Failed其他原因失敗從xWork.getBackMsg();可以獲取 錯誤信息啟動流程實例成功后,可以從xWork對象中獲取相關(guān)的信息,具體參考 XMLWork 方法摘要5. 啟動實例代碼樣例/*啟動流程實例操作,從前臺獲取參數(shù),獲取流
21、程定義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額外屬性,可以不用設(shè)置Stri ng dbIde ntifier = request.get
22、Parameter("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屬性XMLWork xWork = new XMLWork(userid,u
23、ser name,dept name);/如果需要設(shè)置XMLWork額外屬性xWork.setIde ntifier(dblde ntifier);xWork.setUserAuthType(userAuthType);6.啟動流程實例,第一個參數(shù)是流程實例Id,第二個參數(shù)是流程定義Id,第三個參數(shù)是業(yè)務(wù)數(shù)據(jù)Id,如果三個都有值,獲取流程數(shù)據(jù)的優(yōu)先順序:workID > flowID > dataIDint in it = xWork.ope nWorkFlow( "”,flowlD, ” );7.啟動流程實例成功后,對業(yè)務(wù)數(shù)據(jù)的處理在啟動流程實例的界面中,如果提交流程操
24、作時,同時保存業(yè)務(wù)數(shù)據(jù),使用自定義的編寫處理類方式流轉(zhuǎn),業(yè)務(wù)數(shù)據(jù)可以在對應(yīng)的getAppSQL()方法中具體處理。具體可參考自行編寫處理類過程。/獲取當(dāng)前節(jié)點當(dāng)前人所具有的表單信息(包含表單域和操作信息),具體可參考 String formId =“”;/業(yè)務(wù)的表單ID,根據(jù)業(yè)務(wù)隨機修改String dataid=xWork.getlDByFormlD(formId, “ DataID ”);com.horizo n. workflow.flowe ngin e.xmldb.XMLFormxmlForms=xWork .getCurForm(dataid);for(i nt i=0;i<
25、form .len gth;i+) String formid = formi.getlD();/流程跟蹤表單if(formid.equalslg noreCase("FlowTrack")/如果是流程跟蹤表單,可以執(zhí)行鏈接到流程跟蹤界面else if(formi.getFormtype().equals("HTML")/靜態(tài)Html頁面else if(formi.getFormtype().equals("JSP")/自定義的JSP頁面/獲取表單信息Li nkedHashMap formFieldMap = xWork.getFie
26、ldsTypeByFormlD(i);/業(yè)務(wù)數(shù)據(jù)IdString dataID = formi.getDataID()/表單IdString formid=formi.getlD();/庫表名稱Stri ng table name=formi.getTablelD();/該節(jié)點的只讀字段列表Stri ng mpread=formFieldMap.get("read").toStr in g();/該節(jié)點的編輯字段列表String mpedit=formFieldMap.get("edit").toString();/該節(jié)點的必填字段列表Str ing m
27、pmust=formFieldMap.get("check").toStri ng();/該節(jié)點的隱藏字段列表Stri ng mphide=formFieldMap.get("hidde n").toStr in g();/該節(jié)點的其他標識(比如表單自己的按鈕之類的標識)列表Stri ng mpother=formFieldMap.get("other").toStri ng();else/其他使用整體框架功能、 打開實例1. 打開流程實例整體說明引 入類:執(zhí)行方初始化XMLWork設(shè)置相關(guān)屬性1.XMLWorkxWork=new法X
28、MLWork(userid,user name,dept name);打開具體的流程實例 (返回值說明見下面)2.i ntin it=xWork.openWorkFlow(workid, ” , ” );2. 打開流程實例參數(shù)說明參數(shù)名含義要求userid啟動實例的操作人 的用戶Id不能為空user name啟動實例的操作人 的用戶名稱可以為空dept name啟動實例的操作人 的部門名稱可以為空workid流程實例Id不能為空3. 打開流程初始化XMLWork額外屬性說明初始化XMLWork設(shè)置相關(guān)屬性(根據(jù)業(yè)務(wù),如有需要,可以設(shè)置以下內(nèi)容)xWork.setFlowIde ntifier(
29、 )設(shè)置流程數(shù)據(jù)所使 用的數(shù)據(jù)源標識符。(1)co nfigurati on .xml中設(shè)置的默認數(shù)據(jù)源和workflow.xml 中的 設(shè)置不一致時,設(shè)置為空和設(shè)置 成null (或者不設(shè)置)是有區(qū)別 的,設(shè)置為空時,系統(tǒng)使用 con figurati on. xml中設(shè)置的默認數(shù)據(jù)源,設(shè)置成null (或者不 設(shè)置)時,使用的是 workflow.xml中的設(shè)置。數(shù)據(jù)源 無效時,系統(tǒng)默認使用 con figurati on. xml中設(shè)置的默認數(shù)據(jù)源。如果 flowIdentifier跟dataIde ntifier樣可以直接使用xWork.setIdentifier(“” )對兩個變量同
30、時賦值xWork.setDataIde ntifier( )設(shè)置業(yè)務(wù)數(shù)據(jù)所使 用的數(shù)據(jù)源標識符。xWork.setOpe nTracklD()設(shè)置指定路徑Id打開流程實例時可以設(shè)置此值(1) 如果當(dāng)前人在多個分支節(jié)點都具 有權(quán)限,還需要指定路徑ID(2) 如果不指定,系統(tǒng)會自動獲取所有分支,返回前臺供選擇4. 打開流程實例返回值init說明返回值含義init= StaticVar.I nit_SelectNode選擇需要打開的節(jié)點Stri ng all nodes = xWork.getBackMsg();Stri ng nodes = all no des.split("|&quo
31、t;);選擇后的結(jié)果賦值給 xWork.setOpe nTracklD(“”;return;init = StaticVarni t Success打開實例成功init = StaticVar.I nit_NoRole當(dāng)前人員無權(quán)查看此流程實例init = StaticVar.I nit_ReadMsg當(dāng)前人只能以只讀權(quán)限打開(此時不能執(zhí)行任何 操作)init = StaticVar.I nit_Locked當(dāng)前實例被其他人鎖定(此時不能執(zhí)行任何操 作)init = StaticVar.I nit_LockFailed鎖定當(dāng)前實例失敗,此時其他人仍然可以打開實 例進行操作,可能會出現(xiàn)數(shù)據(jù)沖突問
32、題,建議退 出重新打開init = StaticVar.In it_Failed其他原因失敗從xWork.getBackMsg();可以獲取 錯誤信息打開流程實例成功后,可以從xWork對象中獲取相關(guān)的信息,具體參考 XMLWork 方法摘要5. 打開實例代碼樣例/*打開流程實例操作,從前臺獲取參數(shù),獲取流程實例Id等信息,具體可參考horiz on/workflow/in clude2/xmlwork.i ndex.head.jsp */1.流程實例Id,必須有此值Stri ng workid = request.getParameter("workid");2.外部權(quán)限
33、設(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("ope nTrackID ");1
34、15.當(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屬性XMLWork xWork = new XMLWork(userid,user name,dept name);/如果需要設(shè)置XMLWork額外屬性
35、xWork.setIde ntifier(dblde ntifier);xWork.setUserAuthType(userAuthType);xWork. setOpe nTracklD(ope nTrackID);6.打開流程實例int init = xWork.openWorkFlow(workid,” , ” );7.打開流程實例成功后,對業(yè)務(wù)數(shù)據(jù)的處理在打開流程實例的界面中,如果提交流程操作時,同時保存業(yè)務(wù)數(shù)據(jù),使用自定義的編寫處理類方式流轉(zhuǎn),業(yè)務(wù)數(shù)據(jù)可以在對應(yīng)的getAppSQL()方法中具體處理。具體可參考自行編寫處理類過程。獲取當(dāng)前節(jié)點當(dāng)前人所具有的表單信息(包含表單域和操作信
36、息),具體可參考String formId =“”;/業(yè)務(wù)的表單ID,根據(jù)業(yè)務(wù)隨機修改String dataid=xWork.getlDByFormlD(formId, “ DataID ”);com.horizo n. workflow.flowe ngin e.xmldb.XMLFormxmlForms =xWork .getCurForm(dataid);for(i nt i=0;i<form .len gth;i+) Stri ng formid = formi.getID();/流程跟蹤表單if(formid.equalslg noreCase("FlowTrack&
37、quot;)/如果是流程跟蹤表單,可以執(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 datalD = formi.getDataID()/表單IdString formid=formi.getID();/庫表名稱St
38、ri ng table name=formi.getTablelD();/該節(jié)點的只讀字段列表Stri ng mpread=formFieldMap.get("read").toStr in g();/該節(jié)點的編輯字段列表String mpedit=formFieldMap.get("edit").toString();/該節(jié)點的必填字段列表Str ing mpmust=formFieldMap.get("check").toStri ng();/該節(jié)點的隱藏字段列表Stri ng mphide=formFieldMap.get(&q
39、uot;hidde n").toStr in g();/該節(jié)點的/該節(jié)點的其他標識(比如表單自己的按鈕之類的標識)列表Stri ng mpother=formFieldMap.get("other").toStri ng();else/其他使用整體框架功能四、執(zhí)行操作此步必須在執(zhí)行過實例打開或者啟動流程成功后方可執(zhí)行(否則會出現(xiàn)操作失敗)1. 采用系統(tǒng)提供的默認類處理如果流程需要的信息都在request里,可以使用系統(tǒng)默認提供的方法com.horizo n.workflow.flowe ngi ne.impl.e ntity.XMLApp類中提供默認處理方法,此類
40、可以自行編寫。操作名稱從request中的Actio nN ame自動獲取 當(dāng)前人id從request中的userid自動獲取 當(dāng)前實例id從request中的workid自動獲取 其他參數(shù)參考方法二中的說明下面的XMLApp實例化過程是系統(tǒng)默認的處理方式,可以根據(jù)業(yè)務(wù)需要參考自行編寫 處理類過程,實現(xiàn)自己的業(yè)務(wù)。XMLApp app = new XMLApp();/ 也可以使用 XMLAppInterface app = StaticFun.getXMLApp();來獲取在workflow.xml中配置的類Lin kedHashMap backMap = app.doActi on( req
41、uest);根據(jù)返回結(jié)果進行后續(xù)處理系統(tǒng)默認Map中存放三個值,如果是自行編寫的類可能跟下面的描述不一致,請自行 處理。下面對系統(tǒng)默認提供的方法進行說明。request: success和 error 標識成功和失敗 iResult=0 時為 SuccessiResult :執(zhí)行結(jié)果編號,需要轉(zhuǎn)換為數(shù)字后進行判斷backMsg :執(zhí)行處理的信息xWork :本次處理中的 XMLWork對象,可以從中獲取一些信息,比如選擇節(jié)點時,獲 取所有可能的節(jié)點。具體各種情況說明見下面描述。2. 自行編寫處理類XMLWorkApp可以直接返回ture可以直接返回true自行編寫類,必須繼承 com.hori
42、zo n. workflow.flowe ngi ne.fu n.此類需要實現(xiàn)三個接口方法,getAppSQL用來獲取業(yè)務(wù)數(shù)據(jù)保存的 sql和參數(shù),如果已經(jīng)自行處理, getAppDelSQL用來在撤辦時刪除業(yè)務(wù)數(shù)據(jù), 如果業(yè)務(wù)數(shù)據(jù)自行處理, setFlowVarValue用來對流程變量進行賦值,如果沒有可以為空在類中創(chuàng)建一個方法(比如 doAction),在方法中包含下面的代碼 定義一個LinkedHashMap,在此map中放入流程需要的參數(shù)如下Lin kedHashM ap hashMap = new Lin kedHashMap();根據(jù)需要往hashMap中放入以下信息。/填寫的意見
43、信息,存放到流程hashMap.put("Comme nts".toUpperCase(),""); 跟蹤中。如果不需要記錄則忽略此參數(shù)傳入/如果下一節(jié)點沒有設(shè)置辦理hashMap.put("selectAuthor".toUpperCase(),"");人或者根據(jù)設(shè)置獲取辦理人為空時,且不允許跳過,可以在此傳入下一節(jié)點辦理人。傳入格式:單個節(jié)點(或者不需要傳入節(jié)點)時為user1|user2 或者node=user1|user2 多個節(jié)點時node1=user1|user2&node2=user3hash
44、Map.put( "n extNodelD".toUpperCase(),"");/ 如果下一點只有一個時,請不要賦值;當(dāng)下一節(jié)點有多個節(jié)點,根據(jù)路由條件無法確定時,可以指定其中一個或者多個來 確定流程走向。傳入格式:(必須從返回格式中獲取傳入數(shù)據(jù))rId1 nId1|rId2 n Id2&rId3 nId3路由ID節(jié)點ID。如果從當(dāng)前節(jié)點(A )到目標節(jié)點(C)之間有其他節(jié)點(B)被 跳過時格式為:路由B節(jié)點B|路由C節(jié)點C多個節(jié)點被選擇時,使用&連接hashMap.put("submitflag".toUpperC
45、ase(), "0");比如獲取是否需要選擇節(jié)點或者選 處理速度會快一點。0=執(zhí)行跳轉(zhuǎn)到指定節(jié)點。 0=執(zhí)行退回到指定節(jié)點操作。ID (參數(shù) selectFlowID),則忽略 直接根提交操作時的含義,仁獲取下一節(jié)點信息,返回是否選擇節(jié)點,是否需要選擇人員,用 于跟前臺交互,0=執(zhí)行提交到下一節(jié)點辦理人,如果處理中遇到節(jié)點不明確或者辦理人不 明確時,跟1效果一樣。當(dāng)需要跟前臺操作人進行交互, 擇辦理人,是否需要操作人進行確認等,建議使用1,跳轉(zhuǎn)操作時的含義:仁獲取可以跳轉(zhuǎn)的節(jié)點列表,退回操作時的含義:仁獲取可以退回的節(jié)點列表, 啟動子流程時的含義:如果系統(tǒng)提供了啟動子流程的
46、如果只有一個子流程定義,則直接啟動,否則返回;如0=根據(jù)定義判斷是此參數(shù),不提供selectFlowID參數(shù)時,如果當(dāng)前人 沒有啟動過 子流程時忽略此參數(shù), 據(jù)定義判斷是否有多個子流程定義, 果當(dāng)前人已經(jīng)啟動過子流程,仁獲取已經(jīng)啟動的子流程列表,并返回, 否有多個子流程定義,如果只有一個子流程定義,則直接啟動,否則返回。催辦操作時的含義:1=催辦次數(shù)如果已經(jīng)達到上限則停止,0=催辦次數(shù)已經(jīng)達到上限也繼續(xù)催辦啟動子流程時可能需要的參數(shù),指定子流程IDhashMap.put("selectFlowlD".toUpperCase(),"");合并節(jié)點提交時需要
47、傳入的參數(shù)仁可以提交下一節(jié)點,0=程序自行確定hashMap.put("setAllowUnitNext".toUpperCase(),"");操作名稱hashMap.put("Actio nN ame".toUpperCase(), "Submit");/ 當(dāng)前執(zhí)行的操作Submit,Save,Reject,JiaQia n, HuiQia n,Replace,StopFlow,Pause,AddRead er,GetBack,ReMsg,Move,Goto,Ca ncel,Readed,SubFlow提交,暫存
48、,退回,加簽,會簽,替換辦理人,終止,暫停,閱知,拿回,催辦,轉(zhuǎn)辦,跳轉(zhuǎn),撤辦, 已閱,啟動子流程hashMap.put("worklD".toUpperCase(), workID);/當(dāng)前實例 idhashMap.put("userid".toUpperCase(), userid);/當(dāng)前操作者 id/業(yè)務(wù)數(shù)據(jù)跟流程關(guān)聯(lián)字段hashMap.put("FORMID","");所有需要關(guān)聯(lián)數(shù)據(jù)對應(yīng)的表單id ,多個表單使用分號分隔hashMap.put("32 位formid_ID",&quo
49、t;");把業(yè)務(wù)數(shù)據(jù)id放入此字段中,如果為空,系統(tǒng)會默認生成一個,但是不會自動插入一條數(shù)據(jù),業(yè)務(wù)數(shù)據(jù)處理時自行判斷是否需要插入hashMap.put("32 位 formid_TABLENAME","");/業(yè)務(wù)數(shù)據(jù)對應(yīng)的庫表名稱其它非必需的信息hashMap.put("flowIde ntifier".toUpperCase(),"");/ 流程數(shù)據(jù)對應(yīng)的數(shù)據(jù)源標識符,如果不提供,則使用打開實例時指定的數(shù)據(jù)源。如果指定的數(shù)據(jù)源跟打開時不一致,系統(tǒng)會保存數(shù)據(jù)到當(dāng)前指定的數(shù)據(jù)源,而打開時數(shù)據(jù)源中的數(shù)據(jù)不會
50、被改變。一般不建議設(shè)置此參數(shù)。hashMap.put("dataIde ntifier".toUpperCase(),"");/ 業(yè)務(wù)數(shù)據(jù)對應(yīng)的數(shù)據(jù)源標識符,如果不提供,則使用打開時指定的數(shù)據(jù)源。如果指定的數(shù)據(jù)源跟打開時不一致,系統(tǒng)會保存數(shù)據(jù)到當(dāng)前指定的數(shù)據(jù)源,而打開時數(shù)據(jù)源中的數(shù)據(jù)不會被改變。一般不建議設(shè)置此參數(shù)。數(shù)據(jù)源獲取順序:優(yōu)先使用指定數(shù)據(jù)源,如果沒有設(shè)置參數(shù)或者傳入null,系統(tǒng)從實例XML中查找打開時指定的數(shù)據(jù)源。hashMap.put("msgSendFlag".toUpperCase(),"");
51、/如果在 workflow.xml 中配置ReChgMsgFlag節(jié)點為true時需要傳入發(fā)送消息的方式。其他參數(shù)設(shè)置can celFlag =1指定撤辦時系統(tǒng)刪除流程實例,否則不刪除僅做標記撤辦參數(shù)設(shè)置完畢后,請執(zhí)行父類方法doAction傳入?yún)?shù)hashMapint result = doActi on(n ull,hashMap);最后根據(jù)result和Actio nN ame進行不同情況的處理,比如選擇節(jié)點、或者選擇人員五、流程實例具體功能操作1. 提交A. 提交流程實例參數(shù)說明除了整體參數(shù)值必有之外,下面是補充的參數(shù)說明:參數(shù)名/Key值含義要求actionn ame操作名稱不能為空
52、,必須為submitn extNodeID提交到某個節(jié)點的Id要求同整體說明selectAuthor節(jié)點辦理人要求同整體說明submitflag提交方式1.Submitflag=1時,從xWork.getBackMsg()獲取可以提交 的節(jié)點列表2.Submitflag=0 時,提交到指定的 節(jié)點B. 提交流程實例返回值cp說明返回值含義cp=StaticVar.F_STATUS_Success提交成功:1.submitflag=1 時xWork.getNextNodeName()獲取下一節(jié)點名稱,用于 顯示xWork.getNextAuthor("<br>")
53、獲取下一節(jié)點辦理 人,用于顯示xWork.getSelectedNodesIds () 獲取到下一節(jié)點的 路徑,用于給nextNodeID賦值 xWork.getSelectedNodesAuthors ()獲取下一節(jié)點 辦理人,用于給selectAuthor 賦值 xWork.getSelectedNodesSeco ndAuthors()獲取下 一節(jié)點的協(xié)辦人用于給 secondAuthor賦值2.Submitflag=0時,系統(tǒng)提交并保存數(shù)據(jù)cp=StaticVar.F_STATUS_ SelectAuthor需要設(shè)置下一節(jié)點的辦理人:xWork.getMa nualSelectUser
54、()獲取節(jié)點設(shè)置的辦理人xWork.getSelectNextUserFlag (),根據(jù)節(jié)點辦理類型確疋是單選1還是多選2 xWork.isFreeSelectUser(),是否允許自由選擇cp=StaticVar.F_STATUS_ SelectNode需要選擇提交的路由:XMLRoutertpRouter=xWork.getSelectRouter();獲取所有路由列表tpRouter.getSelectlD()獲取選擇的節(jié)點路徑,用于賦值給nextNodeIDtpRouter.isDo ne=true當(dāng)前節(jié)點是否已經(jīng)走過tpRouter.isSelected=true當(dāng)前節(jié)點已經(jīng)被選中
55、,根據(jù)tpRouter.getResult()獲取當(dāng)前節(jié)點初始化結(jié)果/獲取節(jié)點在列表中的位置intpos=xWork.getNextNodePosByNodelD(tpRouteri.getNodelD();仲Router.getResult()=StaticVar.F_STATUS_Success),獲取當(dāng)前節(jié)點已經(jīng)選擇的辦理人,用于賦值給selectAuthorxWork.getNextSelectAuhorlD(pos)/需要選擇辦理人時仲Router.getResult()=StaticVar.F_STATUS_SelectAuthor), xWork.getManualSelectUser(pos
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年物資采購合同模板
- 廈大美術(shù)高考試卷及答案
- 2025鞋類外貿(mào)銷售合同范本
- 燈具行業(yè)供應(yīng)鏈協(xié)同與創(chuàng)新考核試卷
- 密封填料的抗粘附性能與防粘策略考核試卷
- 皮革制品的行業(yè)挑戰(zhàn)與未來發(fā)展機遇考核試卷
- 紡織品的綠色染整工藝改進考核試卷
- 畜牧業(yè)養(yǎng)殖場規(guī)劃設(shè)計考核試卷
- 意外傷害保險理賠難點的解決方案考核試卷
- 家具維修行業(yè)人才培養(yǎng)考核試卷
- 傷殘鑒定 委托書
- 班組長、員工安全生產(chǎn)責(zé)任制考核記錄表
- 老年康體指導(dǎo)職業(yè)教育79課件
- 北京市建設(shè)工程施工現(xiàn)場安全生產(chǎn)標準化管理圖集(2019版)
- 2025年江蘇省江寧城建集團招聘筆試參考題庫含答案解析
- 大學(xué)生就業(yè)與創(chuàng)業(yè)指導(dǎo)知到智慧樹章節(jié)測試課后答案2024年秋遼寧廣告職業(yè)學(xué)院
- 高鈦渣及其產(chǎn)品深加工項目的可行性研究報告
- 2024年中國黃油行業(yè)供需態(tài)勢及進出口狀況分析
- 三下26《和拖延的壞朋友說再見》心理健康教學(xué)設(shè)計
- 2025屆山東省濰坊市高考英語二模試卷含解析
- 2023無人機系統(tǒng)測評規(guī)范
評論
0/150
提交評論