u8cloud v1.0-流程平臺(tái)技術(shù)紅皮書_第1頁(yè)
u8cloud v1.0-流程平臺(tái)技術(shù)紅皮書_第2頁(yè)
u8cloud v1.0-流程平臺(tái)技術(shù)紅皮書_第3頁(yè)
u8cloud v1.0-流程平臺(tái)技術(shù)紅皮書_第4頁(yè)
u8cloud v1.0-流程平臺(tái)技術(shù)紅皮書_第5頁(yè)
已閱讀5頁(yè),還剩93頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

一.工作流與 二.流程平 單據(jù) .....................................................................................................................................34 展 三.開發(fā)規(guī) 3.4.1.狀態(tài)回寫與查 3.4.2.送 3.4.3..............................................................................................................................................棄 刪 單據(jù)UI菜單填充與響 四.開發(fā)流 五.附 U8cloud1.0服 發(fā) 接 .............................................................................................................................................81一工作流與信息系統(tǒng)的以看到,越來越多的通用任務(wù)已被從應(yīng)用程序中分離出來并放入分解的管理系統(tǒng)中。圖1說明1975-19851985-19951995-20021998-2005企業(yè)業(yè)務(wù)流工作

Theautomationofabusinessprocess,inwholeorpart,duringwhich s,informationortasksarepassedfromoneparticipanttoanotherforaction,accordingtoasetofprocedural工作流管理系統(tǒng)(WorkflowManagementSystem,WFMS)的主要功能是通過計(jì)算機(jī)技術(shù)業(yè)務(wù)過程管理(Businessprocessmanagement),非企業(yè)績(jī)效管理(BusinessManagement)。包括了過程建模、過程自動(dòng)化、企業(yè)應(yīng)用集成、業(yè)務(wù)活動(dòng)與優(yōu)化的全給定時(shí)間內(nèi)有多少案例(Case,也可稱作實(shí)例)可被處理二流程平U8cloud流程平臺(tái)是對(duì)企業(yè)的流程進(jìn)行建模的平臺(tái)。其工作流模型由四部分組成,分別是過程模型采取基于活動(dòng)網(wǎng)絡(luò)圖的過程模型,與其他的過程模型(如驅(qū)動(dòng)過程鏈EPC、Petri網(wǎng)、語(yǔ)義-行為模型等)比較,活動(dòng)網(wǎng)絡(luò)圖具有直觀自然、可讀性好的特性。BusinessFlowApprovalFlowInvokedBusinessFlowApprovalFlowInvokedProcessAdministration&ExchangeDataWorkRuleWorkflowWeb3單據(jù)元模U8cloudVO、單據(jù)單據(jù)(數(shù)據(jù)庫(kù)表4單據(jù)類單據(jù)類型必須屬于某個(gè)系統(tǒng)類型。單據(jù)類型的信息比較多,由功能點(diǎn)[企業(yè)建模平臺(tái)]-[二

5節(jié)流檢查類:通過編寫流檢查類,并在該類中實(shí)現(xiàn)流相關(guān)接口,來達(dá)到使用流管理業(yè)務(wù)單據(jù)以及控制流行為的目的(參見第三章。類還需要實(shí)現(xiàn)節(jié)點(diǎn)查找接口(4.6節(jié)或走流流<X>110190具]-[會(huì)計(jì)平臺(tái)]-[系統(tǒng)類型定義],如圖6所示。

6 F1 F1F2F27如圖7所示,D1的父單據(jù)類型為F1;D2的父單據(jù)類型為F2單據(jù)動(dòng)

8限制為20個(gè)英文字符。字的框,如:是否保存?9單據(jù)動(dòng)作執(zhí)行單據(jù)動(dòng)作的處理統(tǒng)一由平臺(tái)API來調(diào)用。詳見第三章第3節(jié)10理],如圖10所示。單據(jù)函功能點(diǎn)[企業(yè)建模平臺(tái)]-[二次開發(fā)平臺(tái)]-[流程配置]-[數(shù)據(jù)交換管理],如圖11所示。VO節(jié)點(diǎn)對(duì)應(yīng),這個(gè)信息需要到單據(jù)類型中(參見1.1節(jié))。單據(jù)項(xiàng)是對(duì)單據(jù)業(yè)務(wù)數(shù)據(jù)的描述。一般與單據(jù)的VO模型對(duì)應(yīng)。由功能點(diǎn)[企業(yè)建模平臺(tái)]-[二次

12單據(jù)VO描述了流程平臺(tái)所需的信息(比如制單人、人、單據(jù)ID等)在單據(jù)模型上的對(duì)應(yīng)關(guān)系。由功能點(diǎn)企業(yè)建模平臺(tái)]二次開發(fā)平臺(tái)]單據(jù)管理]單據(jù)對(duì)照管理],如圖所人:?jiǎn)螕?jù)VO模型中表示人的屬性名稱業(yè)務(wù)流平14業(yè)務(wù)類采購(gòu)->應(yīng)付單。由功能點(diǎn)[企業(yè)建模平臺(tái)]-[流程平臺(tái)]-[業(yè)務(wù)流程管理],如圖15所示。15流程配16生成(VO交換。勾選此項(xiàng),在流程配置中才可配置該單據(jù)的來源單據(jù),否則不下游消息:上游單據(jù)通過后,會(huì)給下游單據(jù)的參與者發(fā)送拉式消息。上游單據(jù)的17據(jù),可以在業(yè)務(wù)流程中為當(dāng)前單據(jù)提供業(yè)務(wù)數(shù)據(jù)(VO交換,以保持業(yè)務(wù)數(shù)據(jù)的一

18動(dòng)

19圖20動(dòng)作定

21“推式動(dòng)作”(參見1.2節(jié)。單據(jù)VO

“n.ui.pub.pf.illSourDG用于查詢來源單據(jù)的模板ID或UI類:查詢來源單據(jù)需要使用的查詢模板ID或UI。23流平Join(Priority(Subflow流程定U8cloud1.0的流定義模型遵循WfMC的XPDL1.0過程定義規(guī)范,具有嚴(yán)格的語(yǔ)義圖24流定義-瀏圖25流定義-設(shè)也可以基于單據(jù)類型+業(yè)務(wù)類型(如果配置了業(yè)務(wù)流程)來定義流。一個(gè)單據(jù)類型(+業(yè)過程,轉(zhuǎn)移人paravo==當(dāng)前單據(jù)的流參數(shù)參數(shù)VO可直接的變量列表全支持Java語(yǔ)法。比如:當(dāng)前步驟的批類型(+業(yè)務(wù)類型,就可為其新增一個(gè)流程。一個(gè)單據(jù)類型(+業(yè)務(wù)類型)下不能存在兩工作與者出差后,工作項(xiàng)將會(huì)分配到人。動(dòng)態(tài)人設(shè)置。圖26用戶出差和動(dòng)態(tài)人管

27工作項(xiàng)與UI的關(guān)聯(lián)全部采取功能節(jié)點(diǎn)方式。風(fēng)格一UI關(guān)聯(lián)是由單據(jù)類型決定的(參見1.1節(jié))。同時(shí)關(guān)聯(lián)的UI必須實(shí)現(xiàn)UI關(guān)聯(lián)接口(參流程結(jié)果與單工作項(xiàng)的結(jié) 態(tài)有5種:表1單據(jù)狀 3N210突。比如UI模式化開發(fā)包中就定義了的單據(jù)狀態(tài)。283210456 7通過執(zhí)行單據(jù)動(dòng)作SAVE或EDIT,將單據(jù)送審后的狀態(tài)。提交態(tài)是流內(nèi)部的一個(gè)①②③④⑤⑥⑦⑧反向流果找不到流定義,則刪除舊實(shí)例,走直批模式?!癠NAPPROVE”動(dòng)作來實(shí)現(xiàn)的,具有特殊的動(dòng)作(參見第三章4.4節(jié))。第一個(gè)人流詢到某單據(jù)的狀態(tài)。當(dāng)前操作員可查詢的記錄受查詢權(quán)限(由[流用戶管理]功能節(jié)點(diǎn))的限制。圖28單據(jù)情況查圖29流程圖與情方式直接對(duì)單據(jù)進(jìn)行,以及其他的業(yè)務(wù)處理。消息中 展30按照模糊匹配息類P2P對(duì)發(fā)消息——向另外一人直接發(fā)送的消息。顯示在[公告欄流工作項(xiàng)——流平臺(tái)產(chǎn)生的需要業(yè)務(wù)處理的工作項(xiàng)。同時(shí)包括通過、不三開發(fā)規(guī)平臺(tái)緩存數(shù)PfDache和PfUIDache類的Javadoc文檔。/**/**返回ache.getBdinfo(/**/**返回單據(jù)類型相互參照VO*/ ache.getBillInfoStringcurrentBillType,//目的單據(jù)類型PK/**/**返回該單據(jù)類型主表的PK字段名*/ ache.getBillPK(/**/**返回單據(jù)類型ache.getBillType(CurrtypeVO /**/**返回單據(jù)類型相互參照ache.getBilltoBillRefer(billType,///**/**返回單據(jù)類型對(duì)照VotableVOStringpk_billType//booleanisMain//VOStringitemCode)//廢棄參數(shù)/**/**返回單據(jù)類型ache.getBillTypeInfo(dataSource//動(dòng)作處:PfUtil 業(yè)務(wù)Object

IU

單據(jù)類型的類名以Y>開頭,且動(dòng)作為“SAVE”或“EDT”,則獲取指派信息.

araVO5retObj實(shí)現(xiàn)了則獲取動(dòng)作執(zhí)行后的處理類,

6.上述過程的異常類型為且需要處理, 7retObj實(shí)現(xiàn)了BillQueryDLG圖31 單據(jù)動(dòng)作處理(非ObjectObjectnc.ui.pub.pf.PfUtilStringactionName,StringbillType,StringcurrentDate,ObjectuserObj,String)throws執(zhí)行動(dòng)作處理-UI動(dòng)作編碼,比如“SAVE”UIObjectObjectnc.ui.pub.pf.PfUtil(Containerparent,StringactionName,StringbillType,StringcurrentDate,ObjectuserObj,String.)throwsUIUI單據(jù)動(dòng)作處理ObjectObjectnc.ui.pub.pf.PfUtilStringactionName,StringbillType,StringcurrentDate,ObjectuserObj,String)throws如果單據(jù)動(dòng)作以"APPROVE"開頭,檢查該單據(jù)是否處于流中并打框執(zhí)行動(dòng)作處理-如果上述過程發(fā)生異常,且異常為IPfRetExceptionUIAPPROVEUI單據(jù)動(dòng)作批處理(非Object[]nc.ui.pub.pf.PfUtil .processBatch(ContainerObject[]nc.ui.pub.pf.PfUtil .processBatch(Containerparent,StringactionName,StringbillType,Object[]userObjAry,String)throws執(zhí)行動(dòng)作處理-UI動(dòng)作編碼,比如“SAVE”UI單據(jù)動(dòng)作批處理Object[]nc.ui.pub.pf.PfUtil .processBatchFlow(ContainerObject[]nc.ui.pub.pf.PfUtil .processBatchFlow(Containerparent,StringactionName,StringbillType,Object[]userObjAry)throws執(zhí)行批動(dòng)作處理-UI動(dòng)作編碼,比如“SAVE”BS用PfUtilBO,也可查詢到IPFBusiAction組件后調(diào)用。nc.bs.pub.pf.PfUtilBO.processAction(StringStringbillType,AggregatedValueObjectvo,ObjectuserObj動(dòng)作執(zhí)行前的工作流處理(棄審或刪除如果動(dòng)作編碼以“SAVE”或“EDIT”結(jié)尾,則嘗試啟動(dòng)動(dòng)作編碼,比如“SAVE”nc.bs.pub.pf.PfUtilBO.processBatch(StringStringbillType,Object[]userObjAry,PfUtilWorkFlowVOworkflow 流動(dòng)作編碼,比如“SAVE”返回BS端動(dòng)作處理PfUtilBO.processAction(…)以及批處理PfUtilBO.processBatch(…)的返回值受動(dòng)作返回值(參見3.2節(jié))的影響。動(dòng)作進(jìn)行再次定制(參見第二章2.2.4節(jié)。保存時(shí)會(huì)自動(dòng)生成class文件。執(zhí)行編在里可以對(duì)從UI端傳遞過來的單據(jù)聚合VO進(jìn)行業(yè)務(wù)處理,這其中就包含有對(duì)流在開發(fā)環(huán)境中,我們一般把通過功能點(diǎn)生成的諸如N_40_APPROVE.java動(dòng)作源文件getCodeRemark()的語(yǔ)法宏而直接使用Java標(biāo)準(zhǔn)語(yǔ)法來編寫動(dòng)作執(zhí)行。動(dòng)作類圖據(jù)setParameter("PFDATE",getUserDate().toString());作處 ,&PFVO:nc.vo.pub.AggregatedValueObject,&PFUSEROBJ:Object"@;,if(retObj!=null){}據(jù)setParameter("PFDATE",getUserDate().toString());作批 ],&PFUSEROBJS:Object[],&PFFLOW:nc.vo.pub.pf.PfUtilWorkFlowVO"@;if(retObj!={批Objectm_sysflowObj=處if(m_sysflowObj!=null){理Hashtablem_sysHasNoPassAndGonging=審 procFlowBacth(vo)批審booleanisFinishToGoing=處流程由完成態(tài)返回到運(yùn)行態(tài);false-理?xiàng)墝徧巉or(inti=0;i<getVos().length;{booleanisFinishToGoing=理流程由完成態(tài)返回到運(yùn)行態(tài);false-}返回一般用于的動(dòng)作,在流程進(jìn)行中時(shí)才返回Object[]數(shù)獲得單據(jù)Id。UI端PfUtil動(dòng)作處理完UI端PfUtil會(huì)執(zhí)行業(yè)務(wù)流平狀態(tài)回寫查類中完成。參見4.6.1節(jié)。API:nc.bs.pub.pf.PfUtilBO.queryWorkFlowStatusStringbusiType,//業(yè)務(wù)類型PKStringbillType// 送送審,即某張單據(jù)在推式生成另一張單據(jù)時(shí)。ObjectObjectretObj=“SAVE”,“D1”,“2005-05-3012:23:44”,billVo,userObj,null,null編碼不能長(zhǎng)于20個(gè)字符。ObjectObjectretObj=nullObjectretObj=new““SAVE”,“D1”,“2005-05-3012:23:44”,null,billVo,userObj指派信息,以便于與客戶端交互。而送審則默認(rèn)為不可指派。鏈產(chǎn)品中比較常見VO數(shù)組中傳遞的就是一張單據(jù)。進(jìn)行更新。但如果單據(jù)UI的開發(fā)使用了UI工廠,為了單據(jù)數(shù)據(jù)的一致性,可在中調(diào)用如下方法來保存單據(jù)并更新聚合VO。retObj=retObj=runClass("nc.bs.trade.business.HYPubBO","commitBill",SuperVOSuperVOheadVO(SuperVObillVo.getParentVO();//SuperVOSuperDMOdmo=newSuperDMO();//從數(shù)據(jù)庫(kù)獲取到更新了ts的VOObjectObjectretObj=“SAVE”,“D1”,“2005-05-3012:23:44”,billVoAry,userObjAry,ObjectObjectretObj=new“SAVE”,“D1”,“2005-05-3012:23:44”,billVoAry,userObjAry,批流會(huì)根據(jù)單據(jù)VO中的制單人信息來獲取流定義并啟動(dòng)流。單據(jù)提交后會(huì)啟動(dòng)流,這時(shí)如果再次修改后提交,會(huì)刪除舊的流程實(shí)例和工作項(xiàng)如果業(yè)務(wù)組沒有控制單據(jù)進(jìn)行中的不可編輯,那么單據(jù)在過程中可被修改,然后再提交這時(shí)執(zhí)完動(dòng)EniSric.ndrFownSv)會(huì)接返回不會(huì)再啟。U8cloud的操作員完成流程平臺(tái)分配給他的工作項(xiàng)的過程,它是驅(qū)動(dòng)流程工作項(xiàng)的結(jié)果與流程結(jié)果的異同,參見第二章3.3節(jié)。項(xiàng),并不屬于真正意義上的流程,的是進(jìn)行業(yè)務(wù)處理。根據(jù)業(yè)務(wù)需求,還分為兩種情形,一種是前臺(tái),即業(yè)務(wù)UI查詢到單據(jù)后進(jìn)行審無(wú)流程實(shí)例的情形,對(duì)于啟動(dòng)了流程實(shí)例的單據(jù),不可進(jìn)行。前臺(tái)調(diào)用示例ObjectObjectretObj=“APPROVE”,“D1”,“2005-05-3012:23:44”,billVo,userObj,ObjectObjectretObj=“APPROVE”+checkUserId,“D1”,“2005-05-3012:23:44”,billVo,userObj,ObjectObjectretObj=new“APPROVE”,“D1”,“2005-05-3012:23:44”,null,billVo,userObj由于沒有客戶端的交互,會(huì)直接將該單據(jù)通過。但如果該單據(jù)啟動(dòng)了流”對(duì)于單張單據(jù)的,也可以按照批量的方式來處理(這種應(yīng)用在U8cloud財(cái)務(wù)和供應(yīng)鏈產(chǎn)品中比較常見VO數(shù)組中傳遞的就是一張單據(jù)。單張單據(jù)動(dòng)作示例ObjectObjectm_sysflowObj=/**流程仍處于 if(m_sysflowObj!=null){return 流程結(jié)束(通過)SuperVOheadVO(SuperVObillVo.getParentVO();//SuperVOSuperDMOdmo=newSuperDMO();//U8cloud1.0改為使用BaseDAO?SuperVOheadVO(SuperVObillVo.getParentVO();//SuperVOSuperDMOdmo=newSuperDMO();//U8cloud1.0改為使用BaseDAO?前臺(tái)批調(diào)用示例ObjectObjectretObj=“APPROVE”,“D1”,“2005-05-3012:23:44”,billVoAry,批調(diào)用示例ObjectObjectretObj=new“APPROVE”,“D1”,“2005-05-3012:23:44”,billVoAry,userObjAry,批的動(dòng)作具有特殊的要求,可參考如下示例HashtableHashtablem_sysHasNoPassAndGonging=procFlowBacth(vo);for(inti=0;i<getVos().length;i++){Objectobj=m_sysHasNoPassAndGonging.get(String.valueOf(i));if(obj==null) 流程結(jié)束(通過)后的業(yè)務(wù)處}//控制可否BatchWorkflowRetbwr=newBatchWorkflowRet();returnnewObject[]{bwr};//動(dòng) 對(duì)于無(wú)流程實(shí)例的,由于沒有流程實(shí)例和工作項(xiàng),直接將單據(jù)通過 棄完成之后,在下一個(gè)人尚未之前,可以主動(dòng)棄審,讓自己重新。當(dāng)前操作員只有擁有該單據(jù)的棄審權(quán)限才可進(jìn)行棄審,這由流平臺(tái)控制。U8cloud1.0VO是否實(shí)現(xiàn)棄審模式。只有流程結(jié)束后,才可一棄到底,即不允許進(jìn)行中的一棄到底。棄審也支持前臺(tái)棄審和棄審ObjectObjectretObj=“UNAPPROVE”,“D1”,“2005-05-3012:23:44”,billVo,userObj,ObjectObjectretObj=“UNAPPROVE”,“D1”,“2005-05-3012:23:44”,billVo,userObj,ObjectObjectretObj=“UNAPPROVE”+unCheckUserId,“D1”,“2005-05-3012:23:44”,billVo,ObjectObjectretObj=new“UNAPPROVE”,“D1”,“2005-05-3012:23:44”,null,billVo,userObj鏈產(chǎn)品中比較常見VO數(shù)組中傳遞的就是一張單據(jù)。理。兩種棄審模式的動(dòng)作具有不同的要求。 示例booleanbooleanisFinishToGoing=//###返回值 流程由完成態(tài)返回到運(yùn)行態(tài);false-其他情if(isFinishToGoing)}單張單據(jù)一棄到底動(dòng)作示例procUnApproveFlowprocUnApproveFlow(paravo);//只是回寫單據(jù)狀態(tài)為自由 流程肯定是由完成態(tài)返回到運(yùn)行態(tài),因?yàn)椴辉?進(jìn)行中的”一棄到底SuperVOheadVO(SuperVObillVo.getParentVO();//SuperVOSuperDMOdmo=newSuperDMO();//從數(shù)據(jù)庫(kù)獲取到更新了ts的VOSuperVOheadVO(SuperVObillVo.getParentVO();//SuperVOSuperDMOdmo=newSuperDMO();//從數(shù)據(jù)庫(kù)獲取到更新了ts的VO批逐級(jí)棄審動(dòng)作示例:forfor(inti=0;i<getVos().length;i++)setVo(getVos()[i]);//依次處理每個(gè)單據(jù)booleanisFinishToGoing=//###返回值 流程由完成態(tài)返回到運(yùn)行態(tài);false-其他情if} forfor(inti=0;i<getVos().length;setVo(getVos()[i])// 流程肯定是由完成態(tài)返回到運(yùn)行態(tài),因?yàn)椴辉?進(jìn)行中的”一棄到底}刪可以自己直接刪除單據(jù),并進(jìn)行相關(guān)業(yè)務(wù)的回滾。對(duì)于需要走流的單據(jù),需要調(diào)用刪除動(dòng)DELETEDSA”流相關(guān)接publicinterfaceICheckStatebooleancheckGoing(StringbillId,StringpublicinterfaceICheckStatebooleancheckGoing(StringbillId,StringStringStringApproveDate,StringcheckNote)throws/**流程結(jié)束,單 不通過booleancheckNoPass(StringbillId,StringApproveId,StringApproveDate,StringcheckNote)throwsException;/**流程結(jié)束,單 通過booleancheckPass(StringbillId,StringApproveId,StringApproveDate,StringcheckNote)throwsException;}publicpublicinterfaceICheckState2/**流程運(yùn)行中,單 進(jìn)行中booleancheckGoing(StringtableName,StringpkFieldName,StringbillId,StringApproveId,StringApproveDate,StringcheckNote)throws/**流程結(jié)束,單 不通過booleancheckNoPass(StringtableName,StringpkFieldName,StringbillId,StringApproveId,StringApproveDate,StringcheckNote)throws/**流程結(jié)束,單 通過booleancheckPass(StringtableName,StringpkFieldName,StringbillId,StringApproveId,StringApproveDate,StringcheckNote)throwsException;}publicpublicinterfaceICheckState3/**流程運(yùn)行中,單 進(jìn)行中booleancheckGoing(AggregatedValueObjectvo,StringApproveId,StringApproveDate,StringcheckNote)throwsException;/**流程結(jié)束,單 不通過booleancheckNoPass(AggregatedValueObjectvo,StringApproveId,StringApproveDate,StringcheckNote)throwsException;/**流程結(jié)束,單 通過booleancheckPass(AggregatedValueObjectvo,StringApproveId,StringApproveDate,StringcheckNote)throwsException;}publicinterfaceIBackCheckState 進(jìn)行中voidbackGoing(StringbillId,StringapproveId,StringapproveDate,StringbackNote)throwsException;/**棄審為自publicinterfaceIBackCheckState 進(jìn)行中voidbackGoing(StringbillId,StringapproveId,StringapproveDate,StringbackNote)throwsException;/**棄審為自由態(tài)voidbackNoState(StringbillId,StringapproveId,StringapproveDate,StringbackNote)throwsException;}publicpublicinterfaceIBackCheckState2 進(jìn)行中voidbackGoing(StringtableName,StringpkFieldName,StringbillId,StringapproveId,StringapproveDate,StringbackNote)throwsException;/**voidbackNoState(StringtableName,StringpkFieldName,StringbillId,StringapproveId,StringapproveDate,StringbackNote)throwsException;}publicpublicinterfaceIBackCheckState3/**棄審為單 進(jìn)行中voidbackGoing(AggregatedValueObjectvo,StringapproveId,StringapproveDate,StringbackNote)throwsException;/**棄審為自由態(tài)voidbackNoState(AggregatedValueObjectvo,StringapproveId,StringapproveDate,StringbackNote)throwsException;}publicinterfaceIPfRetCheckInfovoidsetCheckNote(StringstrCheckNote);//回寫批語(yǔ) }單據(jù)狀態(tài)回寫接口7,用于向單據(jù)VO中回寫信息。被單據(jù)的動(dòng)作調(diào)用,由單publicinterfaceIPfRetCheckInfovoidsetCheckNote(StringstrCheckNote);//回寫批語(yǔ) }publicinterfaceIPfRetBackCheckInfo voidsetCheckNote(StringstrCheckNote);//voidsetCheckState(inticheckState);//設(shè)置棄審后的狀態(tài)(進(jìn)行中或publicinterfaceIPfRetBackCheckInfo voidsetCheckNote(StringstrCheckNote);//voidsetCheckState(inticheckState);//設(shè)置棄審后的狀態(tài)(進(jìn)行中或自由態(tài)}publicpublicinterfaceUFDoublegetPfAssMoney();//返回輔幣金額StringgetPfCurrency();//原幣幣種UFDoublegetPfLocalMoney();//返回本幣金額UFDoublegetPfMoney();//返回原幣金額}publicpublicinterfaceIPfBackCheck2}publicinterfacevoiddoApproveAction(ILinkApproveDataapprovedata);//初始化單據(jù)關(guān)聯(lián)的功能節(jié)點(diǎn)UI}publicinterface}每個(gè)單據(jù)類型publicinterfacevoiddoApproveAction(ILinkApproveDataapprovedata);//初始化單據(jù)關(guān)聯(lián)的功能節(jié)點(diǎn)UI}publicinterface}publicpublicinterfaceStringfindNodecode(ILinkQueryDatalqd);//查詢單據(jù)類型關(guān)聯(lián)的功能節(jié)}流用戶管理中增加查詢權(quán)限處理——如果勾選了查詢權(quán)限,則能隨意查看任bd_billtype2publicinterface{int[]getAssMnyColAry();String[]get int[]get int[]get intgetCurrencyCol();intgetCurrencyCol();int[]UIPanelgetSpecCondPanel(Stringpk_corp,Stringoperator);StringgetSqlStr();}nc.bs.pub.pf.IPfpublicinterface/**為活動(dòng)的實(shí)際執(zhí)行者進(jìn)行特殊的過濾處理publicArrayListfilterUsers(StringorgPK,StringorgType,ArrayListalDistilledUserPKs,AggregatedValueObjectbillvo);}publicinterface/**為活動(dòng)的實(shí)際執(zhí)行者進(jìn)行特殊的過濾處理publicArrayListfilterUsers(StringorgPK,StringorgType,ArrayListalDistilledUserPKs,AggregatedValueObjectbillvo);} alDistilledUserPKsPKbillvo publicpublicinterfaceFilter2publicHashSetfilterUsers(StringsrcBilltype,StringAggregatedValueObjectbillvo,RoleVO[]publicinterfaceIWorkflowBatch/**返回未通過或進(jìn)行中的單據(jù)索引號(hào)(0...N)*/HashtablegetNoPassAndGoing();/**獲得用戶對(duì)象*/}由批動(dòng)作處理的動(dòng)作返回。被BS動(dòng)作處理類PfUtilBO用來控制是否繼續(xù)進(jìn)行動(dòng)作驅(qū)動(dòng)。一般由批審核的動(dòng)作返回。因?yàn)槿绻亩鄰垎螕?jù)有的在進(jìn)行中,有的通publicinterfaceIWorkflowBatch/**返回未通過或進(jìn)行中的單據(jù)索引號(hào)(0...N)*/HashtablegetNoPassAndGoing();/**獲得用戶對(duì)象*/}業(yè)務(wù)流平動(dòng)作驅(qū)在BS端動(dòng)作處理的過程中,在執(zhí)行完動(dòng)作后,根據(jù)其返回值的不同可能會(huì)進(jìn)行動(dòng)作30_APPROVE-同單據(jù)類型的動(dòng)作。也就是說,仍然會(huì)執(zhí)行4F_SAVE和5G_NIKE動(dòng)作,但不會(huì)執(zhí)行單據(jù)VO業(yè)務(wù)單據(jù)VO之間存在著相互轉(zhuǎn)換的需求,可臺(tái)或進(jìn)行。VO交換前后可執(zhí)行額外的處理,即源單據(jù)VO或目的單據(jù)VO必須實(shí)現(xiàn)交換前后的一些接口,參見5.4.8節(jié)。/**/**根據(jù)原單據(jù)聚合VO返回目的單據(jù)VO*/nc.ui.pf.change.PfUtilUITools.runChangeData(StringStringdestBillType///**/**根據(jù)原單據(jù)聚合VO數(shù)組返回目的單據(jù)VO數(shù)組*/ringsourceBillType,//源單據(jù)類型PKStringdestBillType,//目的單據(jù)類型PK/**/**根據(jù)原單據(jù)聚合VO返回目的單據(jù)VO*/nc.bs.pub.pf.PfUtilTools.runChangeData(String//StringdestBillType///**/**根據(jù)原單據(jù)聚合VO數(shù)組返回目的單據(jù)VO數(shù)組*/nc.bs.pub.pf.PfUtilTools.runChangeDataAry(StringsourceBillType,StringdestBillType//單據(jù) 菜單填充與響 .retBusinessBtn(ButtonObjectinoutBoBusiness,String鈕。子按鈕的tag被賦值為“業(yè)務(wù)類型PKtboAdd,String.retAddBtn(tag被賦值為“單據(jù)類型PK:PK .childButtonClicked(ButtonObjectbo,StringpkCorp,StringFunNode,Containerparent,行選擇;3、獲取選擇的來源單據(jù);4、單據(jù)VO交換。(廢棄參數(shù)if(bo.getParent()==m_boBusi) .retAddBtn(m_boAdd,"2011","30",bo);}elseif(bo.getParent()=={PfUtil if(nc.ui.pub.pf.PfUtil .makeFlag){ }elseIf //單據(jù)來源參照返回單據(jù)聚合VO或數(shù)AggregatedValueObjectvo= //或PfUtil }}}需要在pub_billtobillrefer中的querytemteId查詢模版,同時(shí)用<>括起來系統(tǒng)自動(dòng)獲取該模版定義的參照,該參照支持多位帳查詢?cè)谄脚_(tái)的查詢模版中必須公司項(xiàng) RefGridreeodelwhere子句。ctboElse,String seBtn(業(yè)務(wù)流相關(guān)接臺(tái)通過PfUtil 如果返回對(duì)象實(shí)現(xiàn)了nc.vo.pub.pf.IprocActionRetObject接口(參見?節(jié),則進(jìn)行事后的額外處理。參見本章2.1節(jié),額外處理類必須實(shí)現(xiàn)下述接口。動(dòng)作執(zhí)行前的UI端處理,該實(shí)現(xiàn)類通過方法傳遞或是在單據(jù)類型表bd_billtype的{/**動(dòng)作處理前的事前處理(批處理voidrunBatchClass(Containerparent,String Object[]/**動(dòng)作處理前的事前處理voidrunClass(Containerparent,StringbillType,StringactionName,AggregatedValueObjectvo,Objectobj);}/**動(dòng)作執(zhí)行完后的事后處理voidrunClass(Containerparent,Objectobj)throws}臺(tái)通過PfUtil調(diào)用單據(jù)動(dòng)作,動(dòng)作執(zhí)行完成后,如果返回值為publicinterfaceIinitDatavoidinitData(StringpublicpublicinterfaceIinitData2/**初始化dlg和panel界面voidinitData(Object}該接口為實(shí)現(xiàn)自定義查詢條件(DLG)的類必須實(shí)現(xiàn)該接口,被PfUtil.childButtonClicked()調(diào)用(參見5.3.2節(jié)。實(shí)現(xiàn)該接口的類必須注冊(cè)在單據(jù)參照表pub_billtobillrefer的字段queryTemteId中,并且必須用<>括起來。publicpublicinterfaceIinitQueryDatavoidinitData(StringpkCorp,Stringoperator,StringfunNode,StringbusinessType,StringcurrentBillType,StringsourceBilltype,ObjectuserObj)throwsException;}publicpublicinterfaceIinitQueryData2voidinitData(StringpkCorp,Stringoperator,StringfunNode,StringbusinessType,StringcurrentBillType,StringsourceBilltype,StringnodeKey,ObjectuserObj)throws}臺(tái)通過PfUtil publicpublicinterfaceIProcActionRetObjectStringgetClassStr(); getObj();//返回前臺(tái)執(zhí)行類所需}務(wù)處理類。該類在單據(jù)類型表bd_billtype的def1字段。publicpublicinterfaceISaveAfterBusi/**調(diào)用影響產(chǎn)品業(yè)務(wù)類型處理的業(yè)務(wù),VO*/voidaffectBusi(nc.vo.pub.pf.PfPOArriveVOvo);/**返回相關(guān)單據(jù)類型,格式如:"'30','20'*/StringgetRelaBillType();}ringbillType,//單據(jù)類型PKStringbusinessType//PKStringwhereString)//主表查詢條件ringbillType,//單據(jù)類型PKStringkey//StringbodyCondition)//子表查詢查詢類來實(shí)現(xiàn)。這個(gè)查詢類一般由業(yè)務(wù)組的DMO實(shí)現(xiàn),且必須實(shí)現(xiàn)下面的兩個(gè)接口。publicpublicinterfaceIQueryData/**根據(jù)主表的關(guān)鍵字段查詢子表數(shù)據(jù)*/queryAllBodyDataStringkey)//主表主鍵/**根據(jù)查詢條件主表數(shù)據(jù)*/queryAllHeadDataStringwhereString)//查詢

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論