




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
此文件受到UFIDA的保護,并已在保護中心,外泄必糾NC-UAPUAP 第一 工作流與 信息系統的演 企業業務流 工作 第二 流程平 單據元模 單據類 單據動作及單據函 單據 單據項 單據VO對 業務流平 業務類 流程配 單據VO交 流平 流程定 工作 流程結果與單據狀 反向流 流程第三 開發規 平臺緩存數 動作處 UI端調用- BS端調 返回 動作............................................................................................執行編 返回 流平 狀態回寫與查 送 棄 刪 流相關接 業務流平 動作驅 單據VO交 單據UI菜單填充與響 業務流相關接 第四 開發流 附 NC5.0服 應用模 發 接 第一章工作流與OperatingOperatingOperating11975-19851985-19951995-20021998-2005企業業務流2工作Theautomationofabusinessprocess,inwholeorpart,duringwhichs,informationortasksarepassedfromoneparticipanttoanotherforaction,accordingtoasetofproceduralrules(WFMC).工作流管理系統(WorkflowManagementSystem,WFMS)的主要功能是通過計算機技業務過程管理(Businessprocessmanagement),非企業績效管理(BusinessPerformanceManagement)。包括了過程建模、過程自動化、企業應用集成、業務活動監第二章流程平(EPC、Petri網、語義-行為模型等)比較,活動網絡圖具有直觀自然、可讀性好的特性。BusinessFlowApprovalFlowInvokedBusinessFlowApprovalFlowInvokedProcessAdministration&ExchangeDataWorkRuleWorkflowWeb3整個業務流程框架的是工作流引擎。它負責解釋執行由業務流設計器和流設計器設計的流程定義。流程定義可以NC系統建立的功能模型、組織模型以及各種元數交、、棄審、駁回等)來處理工作項,從而驅動流程流轉。工作流引擎在流轉過程中 NCVOUI、單據動單據函單據VO對單據單據項單據VO模單據物理模(數據庫表4單據類時,單據類型必須屬于某個系統類型。單據類型的信息比較多,由功能點[客戶化]-[二5節參照查詢對應的DMO類:用于查詢單據VO數據的業務邏輯類。必須實現接口流檢查類:通過編寫流檢查類,并在該類中實現流相關接口,來達到使用還需要實現節點查找接口(4.6節。系統類開發工具]-[會計平臺]-[系統類型定義],如圖6所示。6模塊名:標識該系統所屬的產品模塊。對應于NC_HOME/modules/下 名主子關系系統類 F1F1F2F27單據動作及[客戶化]-[二次開發工具]-[單據管理]-[單據動作管理],如圖8所示。820個英文字符。的框,如:是否保存?91.2.1單據動作10單據函 11單據函數(組件)它不可應用于條件、動作約束、工作項配置中。1.3.1參數格單據單據的界面展現模型,包括四大模板以及UI工廠等。每個單據還與一個它的功能單據項12多語資源IDID單據VO對應關系。由功能點[客戶化]-[二次開發工具]-[單據管理]-[單據VO對照管理],如圖6所13VOVOVOVOVOVOID:單據VOIDNC業務流平臺進行了簡化,其設計思想是基于以下認識:業務流程是由單據組成的,實現。NC業務流提供一種平臺機制,在此可以根據用戶的實際業務重新組織這些單據、動14業務類對業務流程的分類。各個公司可定義自己的業務流程,5.0支持業務類型,即在集1515流程配16成(VO交換。勾選此項,在流程配置中才可配置該單據的來源單據,否單據權限配17單據來源配據,可以在業務流程中為當前單據提供業務數據(VO交換,以保持業務數據的18動作約束配19圖20動作定動作驅動配21(1.2節。單據VO交存,比如“nc.ui.pf.changedirCHG21TO30”、“nc.bs.pf.changedir.CHG21TO30”等。單據VO交換可發生后或,并在交換后可進行特殊的業務處理。詳細見第三章5.222用于顯示來源單據的UI類:參照來源單據時,使用的來源單據顯示UI。默認為“nc.ui.pub.pf.BillSourceDLG<c.ui.po.pb.ooiQeDG>用于查詢來源單據的節點標識:被參照的來源單據的Nodekey23Join(Priority(Subflow流程定NC5.0的流定義模型遵循WfMC的XPDL1.0過程定義規范,具有嚴格的語義和豐圖24流定義-瀏圖25流定義-設流定義按照單據類型(+業務類型)進行了分類。用戶可以基于單據類型定義流程模過程活動流程中的一個個步驟統稱為活動(或任務,包括制單活動、活動、虛活動、參與者展機制可參考附錄)。第一個拖放到流設計器中的組織元素為制單活動的參與者。在轉移節)動才能結束。搶占:只要活動的參與者中任何一人完成后,該活動即結束。活動的一個屬性。如果活動定義了可指派屬性,則該活動的實際執行者人活動的一個屬性。制單活動不可設置人;只可為參與者為『操作員』類型的活動設置多級人;人只可為『操作員。消息配置(Message活動的一個屬性。可為每個活動配置額外的消息通知機制。即在滿足觸發條件。對于活動,發送條件可為“無條件“審核通過”和“審核不通過”三種(注:“paravo==當前單據的流參數參數VO可直接的變量列表支持Java語法。比如:當前單據VO當前步驟的批增刪據類型(+業務類型就可為其新增一個流程。一個單據類型(+業務類型)下不能存在兩個同制單人的流程。導入/導在流定義-瀏覽界面,選中某個流程,可導出為本地XPDL文本文件XPDL時,提示“導入的XPDL文件中含有對N?流程定義的選工作分配策務。參與者出差后,工作項將會分配到人。動態人設置。圖26用戶出差和動態人管標題定27流程結果與單據狀對于流程來說,流程實例正常結束后,必然會有一個結果。而單據的狀工作項的結即登錄到NC系統的操作員對流程平臺分配給他的工作項的處理意見。包括“批活動的結對于角色/崗位類的參與者執行的活動,如果是會簽屬性,則只有所有會簽操作員 流程的結的結果。5種:表1單據狀- 32105種狀態相。比如UI模式化開發包中就定義了的單據狀態。2832104567。如果流程實例正常運行完成,該單據的過程即完成流程結束后具有最終結果:通過或不通過,這也是單據的最終結果。。11提交278自由進行564完成3提交即通第一個人棄不通過,則給參與流程的所有人員發送“不通過”消息。反向流會重新產生工作項;若是其他人修單(更改了制單人),如果找到流定義,則新啟實棄審 棄審會將單據置為自由態。修單后再提交,會新啟實例,舊實例被刪除。必須在單據流程對于系統中運行的流程實例,可它們現在所處的狀態,并強制終止。同時還可查詢到某單據的狀態。當前操作員可查詢的記錄受查詢權限(由[流用圖28單據情況查圖29流程圖與情式直接對單據進行,以及其他的業務處理。流運轉過程中會為流程中的不同用戶產生工作項這些任務項可以通過方式發(可配置是否需要這樣發送回復-pN或“N不同意,金額過大”的指令,NC系統會調用插件進行的處理。消息中展 消息欄30UITable展現。除了UITable內置的定位功能和雙擊表頭排序功能,還3132按照模糊匹配33消息類公告消息——可由任何人看到的消息分為所有用戶可見和用戶可見兩種。通知消息——不需要業務處理的普通消息流消息配置產生的消息以及業務代碼產第三章開發規平臺緩存數和 ache類的Javadoc文檔前臺緩存基本表bd_bdinfo的緩存,獲取方法BasedocVOStringstrPk)//單據類型對照信息表pub_billtobillrefer的緩存,獲取方法BilltobillreferVOStringcurrentBillType,//String 單據VO對照表pub_votable的緩存,獲取方法Stringnc.ui.pf.pub.PfUID StringbillType)//PK單據類型表bd_billtype的緩存,獲取方法BilltypeVOnc.ui.pf.pub.PfUID StringbillType)//PK幣種信息表bd_currtype的緩存,獲取方法CurrtypeVOStringstrPk)//緩存單據類型參照信息表pub_billtobillrefer的緩存,獲取方法BilltobillreferVOString StringsourceBillType//單據VO對照表pub_votable的緩存,獲取方法VotableVOStringpk_billType,//booleanisMain, StringitemCode) //廢棄參數單據類型表bd_billtype的緩存,獲取方法BilltypeVOStringdataSource//String 動作處業務
Object
判斷是否進行動作前
非SAVE執行動
SAVE
retObj實現了則獲取動作執行后的處理類,并執
上述過程的異常類型為且需要處理,則再次進行處retObj實現了則前臺顯圖34非類動作處圖35類動作處UI端調用-單據動作處理(非ObjectObjectnc.ui.pub.pf.PfUtilCcessAction(Containerparent,StringactionName,StringbillType,StringcurrentDate,AggregatedValueObjectvo,ObjectuserObj,StringstrBeforeUIClass,AggregatedValueObjectcheckVo)throwsSVE)執行動作處理-PfUtilBO.processAction(…)IPfRetException,則判斷異常是否需要進行SAVE單據動作處理,但不啟動ObjectObjectnc.ui.pub.pf.PfUtilCcessActionNoSendMessage(Containerparent,StringactionName,StringbillType,StringcurrentDate,AggregatedValueObjectvo,ObjectuserObj,StringstrBeforeUIClass,AggregatedValueObjectcheckVo)throwsIPfRetException,則判斷異常是否需要進行SAVEEDIT單據動作處理ObjectObjectnc.ui.pub.pf.PfUtilCcessActionFlow(Containerparent,StringactionName,StringbillType,StringcurrentDate,AggregatedValueObjectvo,ObjectuserObj,String)throws如果單據動作以"APPROVE"開頭,檢查該單據是否處于流中并打開執行動作處理-PfUtilBO.processAction(…)IPfRetException,則判斷異常是否需要進行APPROVE單據動作批處理(非Object[]Object[]nc.ui.pub.pf.PfUtilCcessBatch(Containerparent,StringactionName,StringbillType,StringcurrentDate,AggregatedValueObject[]voAry,Object[]userObjAry,String)throws執行動作處理-PfUtilBO.processBatch(…)IPfRetException,則判斷是否需要進行業務SAVE單據動作批處理StringactionName,StringbillType,StringcurrentDate,AggregatedValueObject[]Object[]如果單據動作以"APPROVE"開頭,檢查第一張單據是否可被當前操作員并打執行批動作處理-PfUtilBO.processBatch(…)IPfRetException,則判斷異常是否需要進行SAVEBS端調PfUtilBO5.0IPFBusiAction。開發人PfUtilBOIPFBusiAction組件后調用。ObjectObjectnc.bs.pub.pf.PfUtilBO.processAction(StringactionName,StringbillType,StringcurrentDate,PfUtilWorkFlowVOworkFlow,AggregatedValueObjectvo,ObjectuserObj)throwsSAVESAVEObject[]Object[]nc.bs.pub.pf.PfUtilBO.processBatch(StringactionName,StringbillType,StringcurrentDate,AggregatedValueObject[]vos,Object[]userObjAry,PfUtilWorkFlowVOworkflow)throwsVO數組,進行動作執行前的工作流處理(棄審或刪除)以及動作約束進行動作執行后的工作流處理(依次啟動流。SAVE返回BSPfUtilBO.processAction(…)PfUtilBO.processBatch(…)的返回值受動作返回值(參見3.2節)的影響。動作動作是單據動作的執行體。在流程配置中還可對某業務類型下的單據動作腳本進行再次定制(參見第二章2.2.4節。保存時會自動生成class文件。注意:如果NC中間件管理了多個帳套,則它們共享統一的動作執行編在里可以對從UI端傳遞過來的單據聚合VO進行業務處理,這其中就包含有對審批流的處理[單據動作執行]功能點為方便執行的編寫,提供了單據類型的件導入到項目中進行開發。但如果直接對源文件進行修改,記得要修改相應的述的語法宏而直接使用Java標準語法來編寫動作執行。動作類圖&PFVO:nc.vo.pub.AggregatedValueObject,&PFUSEROBJ:Object"@;if(retObj!=null){}單據動作批處 if(retObj!=null){m_methodReturnHas.put("processBatch",retObj);}審批處Objectm_sysflowObj理//###返回值:流程仍處于 進行中時直接返回IWorkFlowRetif(m_sysflowObj!=null){returnm_sysflowObj;批Hashtablem_sysHasNoPassAndGonging審批Hashtablem_sysHasNoPassAndGonging=procFlowBacth(vo處理棄審處booleanisFinishToGoing理//###返回值 批棄審for(inti0igetVos().lengthi++ booleanisFinishToGoing= }返回一般用于的動作,且在流第一個元素SAVEEDIT的動作t 狀態回寫與查狀態回4.6.1節。狀態查API:intintnc.bs.pub.pf.PfUtilBO.queryWorkFlowStatus(StringbusiType,//PKStringbillType//String 送“EDIT碼以兩者結尾即可。送審后,流程平臺會根據單據類型和制單人ID查找符合條件的流程定義并實例化然后啟動它。如果找不到流程定義,則不啟動流。送審分為兩種情形,一種是前臺送審,即業務UI新增單據后保存并提交;另一種是后臺送審,即某張單據在推式生成另一張單據時。動作處ObjectObjectretObj=“SAVE”,“D1”,“2005-05-3012:23:44”,billVo,userObj,null,nullObjectretObj=userObj,null,nullObjectretObj=userObj,null,null ObjectObjectretObj=new“SAVE”,“D1”,“2005-05-3012:23:44”,null,billVo,userObj前臺送審與送審的區別在于前臺送審會先向服務器獲取流程定義中第一個人的可比較常見VO數組中傳遞的就是一張單據。動作retObj=runClass("nc.bs.trade.business.HYPubBO","commitBill",送審的動作沒有特殊的要求,可以在中進行單據VO的保存,也可以對單據VO進行更新。但如果單據UI的開發使用了UI工廠,為了單據數據的一致性,可在腳VO。retObj=runClass("nc.bs.trade.business.HYPubBO","commitBill",SuperVOSuperVOheadVO(SuperVObillVo.getParentVO()//SuperVOSuperDMOdmo=newSuperDMO();//tsVO注意:NC30要求送審的動作必須返回ArrayList或String類型的對象,在NC31中并沒有這種限制了,但前提是單據聚合VO中包含有完整的單據號和單據ID信息。批量處ObjectObjectretObj=“SAVE”,“D1”,“2005-05-3012:23:44”,billVoAry,userObjAry,ObjectObjectretObj=new“SAVE”,“D1”,“2005-05-3012:23:44”,billVoAry,userObjAry,特殊應;對于保存/提交分離的應用,制單人保存后,由業務組控制非制單人可否提交單據流會根據單據VO中的制單人信息來獲取流定義并啟動流。;如果業務組沒有控制單據進行中的不可編輯那么單據在過程中可被修改,然后再次提交,這時執行完動作后,單據完成后(即流程結束后再次修改該單據并提交,這時會重新啟動一個流程,同時保留了原已結束流程所產生的工作項記錄。工作項的結果與流程結果的異同,參見第二章3.3節。個尚未提交的單據進行,會提示“單據尚未提交,無法”的錯誤。工作項,并不屬于真正意義上的流程,的是進行業務處理。。根據業務需求,還分為兩種情形,一種是前臺,即業務UI查詢到單據后進行或者通過待辦事務來;另一種是,會將單據直接通過只適。動作處前臺調用示例ObjectObjectretObj=“APPROVE”,“D1”,“2005-05-3012:23:44”,billVo,userObj,ObjectObjectretObj=“APPROVE”+checkUserId,“D1”,“2005-05-3012:23:44”,billVo,ObjectObjectretObj=new“APPROVE”,“D1”,“2005-05-3012:23:44”,null,billVo,userObj”比較常見VO數組中傳遞的就是一張單據。動作兩種:每個工作項的通過和整個流程的通過)后進行業務處理。單張單據動作示例ObjectObjectm_sysflowObj=/**流程仍處于 進行中時直接返回IWorkFlowRet*/if(m_sysflowObj!=null){returnm_sysflowObj;doBusi(getVo 如果單據UI的開發使用了UI工廠,為了單據數據的一致性,需要在中調用如下VO。SuperVOSuperVOheadVO(SuperVObillVo.getParentVO()//SuperVOSuperDMOdmo=newSuperDMO();//NC5.0BaseDAO?//tsVO批量處證當前操作員對這些單據都具有權限(即都輪到他。=ObjectObjectretObj=new“APPROVE”,“D1”,“2005-05-3012:23:44”,billVoAry,userObjAry, HashtableHashtablem_sysHasNoPassAndGonging=procFlowBacth(vo);for(inti=0;i<getVos().length;i++){Objectobj=m_sysHasNoPassAndGonging.get(String.valueOf(i));if(obj==null)doBusi(getVos()[i]) }BatchWorkflowRetbwr=newBatchWorkflowRet();returnnewObject[]{bwr};//動 返回返回值BatchWorkflowRet實現了接口 參見3.2節。特殊應對于無流程實例的,由于沒有流程實例和工作項,直接將單據通過駁回是NC31流支持的兩種流程反向流轉模式之一,它不受流程定義的局限,直接棄棄審是流支持的兩種流程反向流轉模式之一是指當前人通過或不通過)完成之后,在下一個人尚未之前,可以主動棄審,讓自己重新。當前操作員只有擁有該單據的棄審權限才可進行棄審,這由流平臺控制。nc.vo.pub.pf.IPfBackCheck2的棄審模式。只有流程結束后,才可一棄到底,即不允許進行中的一棄到底。動作處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比較常見VO數組中傳遞的就是一張單據。動作在棄審中可對單據VO進行更新操作也可在流程從完成態回到運行態時進行業務booleanbooleanisFinishToGoing= if(isFinishToGoing)doBusi(getVo//}; doBusi(getVo//如果單據UI的開發使用了UI工廠,為了單據數據的一致性,需要在中調用如下VO。SuperVOSuperVOheadVO(SuperVObillVo.getParentVO()//SuperVOSuperDMOdmo=newSuperDMO();//tsVO批量處forfor(inti=0;i<getVos().length;i++)booleanisFinishToGoing= ifdoBusi(getVo//}for(inti=0;i<for(inti=0;i<getVos().length;i++){setVo(getVos()[i]);//VOprocUnApproveFlow(paravo)//只是回寫單據狀態為自由態 doBusi(getVo//}刪對于不走流的單據刪除操作完全由業務組控制——既可以調用流程平臺的動作處用刪除動作處理,以便于刪除流相關數據。目前支持的動作編碼包括以“DELETE動作處動作據在進行中不可刪除所以在刪除動作中只需對單據數據庫表進行刪除處理,并批量處流相關接publicinterfaceICheckState booleancheckGoing(StringbillId,StringStringApproveDate,StringcheckNote)throws 不通過booleancheckNoPasspublicinterfaceICheckState booleancheckGoing(StringbillId,StringStringApproveDate,StringcheckNote)throws 不通過booleancheckNoPass(StringbillId,StringApproveId,StringApproveDate,StringcheckNote)throwsException; 通過booleancheckPass(StringbillId,StringStringApproveDate,StringcheckNote)throws}單據狀態回寫接口2,用于操作,由流檢查類實現publicpublicinterfaceICheckState2 booleancheckGoing(StringtableName,StringpkFieldName,StringbillId,StringApproveId,StringApproveDate,StringcheckNote)throws 不通過booleancheckNoPass(StringtableName,StringpkFieldName,StringbillId,StringApproveId,StringApproveDate,StringcheckNote)throwsException; 通過booleancheckPass(StringtableName,StringpkFieldName,StringbillId,StringApproveId,StringApproveDate,StringcheckNote)throwsException;}單據狀態回寫接口3,用于操作,由流檢查類實現publicpublicinterfaceICheckState3 booleancheckGoing(AggregatedValueObjectvo,StringApproveId,StringApproveDate,StringcheckNote)throwsException; 不通過booleancheckNoPass(AggregatedValueObjectvo,StringApproveId,StringApproveDate,StringcheckNote)throwsException; 通過booleancheckPass(AggregatedValueObjectvo,StringApproveId,StringApproveDate,StringcheckNote)throwsException;}publicinterfaceIBackCheckState/**棄審為單 進行中voidbackGoing(StringbillId,StringapproveId,StringapproveDate,StringbackNote)throwsException;voidbackNoState(StringbillId,StringapproveId,StringapproveDate,StringbackNote)throwsException;}publicinterfaceIBackCheckState/**棄審為單 進行中voidbackGoing(StringbillId,StringapproveId,StringapproveDate,StringbackNote)throwsException;voidbackNoState(StringbillId,StringapproveId,StringapproveDate,StringbackNote)throwsException;}單據狀態回寫接口5,用于棄審操作,由流檢查類實現publicpublicinterfaceIBackCheckState2/**棄審為單 進行中voidbackGoing(StringtableName,String /**voidbackNoState(StringtableName,StringpkFieldName,billId,StringapproveId,StringapproveDate,StringbackNote)單據狀態回寫接口6,用于棄審操作,由流檢查類實現publicpublicinterfaceIBackCheckState3/**棄審為單 voidbackGoing(AggregatedValueObjectvo,StringapproveId,StringapproveDate,StringbackNote)throwsException;voidbackNoState(AggregatedValueObjectvo,StringapproveId,StringapproveDate,StringbackNote)throwsException;}publicinterfaceIPfRetCheckInfovoidsetCheckNote(StringstrCheckNote);//回寫批語voidsetCheckState(inticheckState);//回 }單據狀態回寫接口7,用于向單據VO中回寫信息。被單據的publicinterfaceIPfRetCheckInfovoidsetCheckNote(StringstrCheckNote);//回寫批語voidsetCheckState(inticheckState);//回 }單據狀態回寫接口8,用于向單據VO中回寫信息。被單據的棄審動作調用,由單據聚合VO實現。如果需要向單據數據庫表中回寫這些信息,需要使用流檢查類來nc.bs.pub.pf.IBackCheckState等接口。publicpublicinterfaceIPfRetBackCheckInfovoidsetCheckMan(Stringapproveid);//設置棄審后的前一 voidsetCheckNote(StringstrCheckNote);//voidsetCheckState(inticheckState);//設置棄審后的狀態(進行中或自由態}publicinterfaceIGetBusiDataForFlow{UFDoublegetPfAssMoney();//返回輔幣金額StringgetPfCurrency();//原幣幣種publicinterfaceIGetBusiDataForFlow{UFDoublegetPfAssMoney();//返回輔幣金額StringgetPfCurrency();//原幣幣種UFDoublegetPfLocalMoney();//返回本幣金額UFDoublegetPfMoney();//返回原幣金額}棄審模式接publicinterfaceIPfBackCheck2publicinterfaceIPfBackCheck2}UI關聯接每個單據類型都可與具體的功能節點關聯起來,這在bd_billtype.nodecode和UI關聯接口ILinkApprove和ILinkMaintain。publicpublicinterfacevoiddoApproveAction(ILinkApproveDataapprovedata);//初始化單據關聯的功能節點UI}publicpublicinterfacetainAction(ILinkMaintainDatamaintaindata);//}publicpublicinterfaceIUINodecodeSearcherStringfindNodecode(ILinkQueryDatalqd)//}流用戶管理中增加查詢權限處理——如果勾選了查詢權限,則能隨意查看任何人的情況數據;如果未勾選,則只能查看自己提交和的單據。publicinterfaceISpecFlowQuery{int[]getAssMnyColAry();String[]getChinaName();int[]getChinaNameType();int[]getChinaNameWidth();intgetCurrencyCol();int[]publicinterfaceISpecFlowQuery{int[]getAssMnyColAry();String[]getChinaName();int[]getChinaNameType();int[]getChinaNameWidth();intgetCurrencyCol();int[]getLocalMnyColAry();int[]getMnyColAry();UIPanelgetSpecCondPanel(Stringpk_corp,Stringoperator);StringgetSqlStr();}參與者過濾接nc.bs.pub.pf.IPfpublicinterfaceFilterpublicArrayListfilterUsers(StringorgPK,StringArrayListalDistilledUserPKs,AggregatedValueObject}publicinterfaceFilterpublicArrayListfilterUsers(StringorgPK,StringArrayListalDistilledUserPKs,AggregatedValueObject}orgPKalDistilledUserPKsPKbillvo publicinterfaceFilter2publicpublicinterfaceFilter2publicHashSetfilterUsers(StringsrcBilltype,StringAggregatedValueObjectbillvo,RoleVO[]由批動作處理的動作返回。被BS動作處理類PfUtilBO用來控制是否繼續進行動publicpublicinterfaceIWorkflowBatch/**返回未通過或進行中的單據索引號(0...N)*/HashtablegetNoPassAndGoing();/**獲得用戶對象*/ObjectgetUserObj();}動作驅在BS端動作處理的過程中,在執行完動作后,根據其返回值的不同可能會進行動結尾,還嘗試啟動流。比如動作驅動:30_APPROVE-執行完7D_PUSHSAVE之后,如果啟動了流,仍然遍歷被驅動的動作,但不會執行同單據類型的動作。也就是說,仍然會執行4F_SAVE和5G_NIKE動作,但不會執行動作返回值為IWorkFlowRet動作返回值為Object[],且Object[0]類型為IWorkflowBatch,并指明了不進行動作單據VO交業務單據VO之間存在著相互轉換的需求,可臺或進行。VO交換前后可執行單張單據VOAggregatedValueObjectnc.ui.pf.change.PfUtilUITools.runChangeData(StringsourceBillType,//PKString AggregatedValueObjectvo///**/**VOVO數組*/AggregatedValueObject[PfUtilUITools.runChangeDataAry(StringsourceBillType,//源單據類型PKStringdestBillType, AggregatedValueObject[vos)//VO單張單據VOAggregatedValueObjectnc.bs.pub.pf.PfUtilTools.runChangeData(StringsourceBillType,//PKString AggregatedValueObjectvo//AggregatedValueObject[nc.bs.pub.pf.PfUtilTools.runChangeDataAry(StringsourceBillType,//源單據類型PKString AggregatedValueObject[vos)//VO單據UI菜單填充與業務類voidvoidnc.ui.pub.pf.PfUtilClient.retBusinessBtn(ButtonObjectinoutBoBusiness,StringcorpId,StringbillType)tagPK參照制voidvoidnc.ui.pub.pf.PfUtilClient.retAddBtn(ButtonObjectboAdd,StringcorpId,StringbillType,ButtonObjecttagPK:PK,voidvoidnc.ui.pub.pf.PfUtilClient.childButtonClicked(ButtonObjectbo,StringpkCorp,StringFunNode,StringpkOperator,StringcurrentBillType,Containerparent,ObjectuserObj)1、查詢來源單據;2、顯示來源單據,并進行選擇;3、獲取選擇的來源單據;4VO交換。publicvoidonButtonClicked(nc.ui.pub.ButtonObjectbo//UIif(bo.getParent()==m_boBusi) PfUtilClient.retAddBtn(m_boAdd"2011"30"bo);}elseif(bo.getParent()==m_boAdd){if(nc.ui.pub.pf.PfUtilClient.makeFlag){ getBillUI().setBillOperate(IBillOperate.OP_ADD)//新增}elseIfAggregatedValueObjectvo=//PfUtilClient.getRetVos();}}}需要在pub_billtobillrefer中的querytemplateId查詢模版,同時用<>括起來如果一個單據參照另一單據生成單據時必須在平臺的單據信息對照表中進行否對于自定義參照(需要繼承自 RefGridTreeModelwhere子句。動作voidnc.ui.pub.pf.PfUtilClient.re voidnc.ui.pub.pf.PfUtilClient.re ButtonObjectboElse,StringbillType,StringactionStyle)業務流相關接動作處理前后UI接臺通過PfUtilClient調用單據動作時會先進行事前的額外處理。執行完動nc.vo.pub.pf.IprocActionRetObject接口(參見?節2.1節,額外處理類必須實現下述接口。動作執行前的UI端處理該實現類通過方法傳遞或是在單據類型表bd_billtypedef3字段publicpublicinterfaceIUIBeforeProcAction//UIvoidrunBatchClass(Containerparent,StringStringactionName,AggregatedValueObject[]vos,Object[]voidrunClass(Containerparent,StringbillType,StringactionName,AggregatedValueObjectvo,Objectobj);}publicpublicinterfaceIUIAfterProcAction//UIvoidrunClass(Containerparent,Objectobj)throws}臺通過PfUtilClient調用單據動作,動作執行完成后,如果返回值為nc.vo.pub.pf.PfUtilActionVOUI界面。并根據該返回值中的信息進publicpublicinterfaceIinitDatavoidinitData(String}publicpublicinterfaceIinitData2voidinitData(Object}UI該接口為實現自定義查詢條件(DLG)的類必須實現該接口的類必須在單據參照表pub_billtobillrefer的字段queryTemplateId中,并且必publicpublicinterfaceIinitQueryDatavoidinitData(StringpkCorp,Stringoperator,StringStringbusinessType,StringcurrentBillType,StringsourceBilltype,ObjectuserObj)throwsException;}publicpublicinterfaceIinitQueryData2voidinitData(StringpkCorp,Stringoperator,StringStringbusinessType,StringcurrentBillType,StringsourceBilltype,StringnodeKey,ObjectuserObj)throwsException;}臺通過PfUtilClient調用單據動作時,如果執行動作的返回值實現了該接publicpublicinterfaceIProcActionRetObject/**返回動作執行完的前臺執行類,必須實現IUIAfterProcAction*/StringgetClassStr();Object }業務處理類。該類在單據類型表bd_billtype的def1字段。publicpublicinterfaceISaveAfterBusi/**調用影響產品業務類型處理的業務,VO*/voidaffectBusi(nc.vo.pub.pf.PfPOArriveVOvo);/**返回相關單據類型,格式如:"'30','20'*/StringgetRelaBillType();}VO查詢接流程平臺提供查詢單據主表VOCircularlyAccessibleValueObject[CircularlyAccessibleValueObject[IPFConfig.queryHeadAllData(StringbillType, //PKStringbusinessType//StringwhereString)//CircularlyAccessibleValueObject[CircularlyAccessibleValueObject[IPFConfig.queryBodyAllData(StringbillType, //PKString StringbodyCondition)//DMO實現,且必須實現下面的兩個接口。publicpublicinterfaceIQueryData/**根據主表的關鍵字段查詢子表數據*/CircularlyAc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CBTMA 0001-2019技術轉移服務人員職業規范
- T/CASTEM 1008-2023科技評估質量控制規范
- T/CARSA 2-2022微納衛星高光譜影像數據基礎產品規范
- 哈爾濱物理考試題及答案
- 高考數學面試題及答案
- 西山居java面試題及答案
- 安全違法舉報管理制度
- 紅色文化考試題及答案
- 血溢病的臨床護理
- CNG加氣站冬季運行方案進程
- 加強農村“三資”管理
- 《危重病人護理常規》課件
- 小學生認識醫生的課件
- 2023-2024學年人教版數學八年級下冊期末復習試卷(含答案)
- 2025中國華電集團限公司校招+社招高頻重點提升(共500題)附帶答案詳解
- 2024年高級測井工職業技能鑒定理論知識考試題庫(含答案)
- 防返貧業務培訓
- 綜合智慧零碳園區項目可行性研究報告寫作模板-備案審批
- 變更管理安全控制要點
- 一次函數應用說課比賽課件
- TSXCAS 015-2023 全固廢低碳膠凝材料應用技術標準
評論
0/150
提交評論