




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第一 工作流與 信息系統(tǒng)的演 企業(yè)業(yè)務(wù)流 工作 第二 流程平 概 流程平臺整體架 NC流程平臺特 流程平臺與業(yè)務(wù)產(chǎn)品的關(guān) ......................................................................................................6 流程組件單據(jù)動作及單據(jù)函 分單依據(jù)單據(jù)轉(zhuǎn)換規(guī) 單據(jù)接口定 業(yè)務(wù)流平 業(yè)務(wù)流設(shè)計 業(yè)務(wù)類 流程配 單據(jù)轉(zhuǎn)換規(guī) 流平 流程定 工作 流程人設(shè) 流程用戶組管 流程結(jié)果與單據(jù)狀 反向流 流程流程日 工作流平 展 第三 開發(fā)規(guī) 平臺緩存數(shù) 動作處 UI端調(diào)用- BS端調(diào) 返回 動作............................................................................................執(zhí)行編 返回 流平 狀態(tài)回寫與查 送 棄 刪 流相關(guān)接 工作流平 單據(jù)開發(fā),并流程平臺相關(guān)信息 工作流組件開發(fā) 工作流相關(guān)方法 業(yè)務(wù)流平 動作驅(qū) 單據(jù)VO交 單據(jù)UI菜單填充與響 業(yè)務(wù)流相關(guān)接 第四 開發(fā)流 附 NC5.0服 應(yīng)用模 發(fā) 接 NC5.0動態(tài)組 實現(xiàn)類 第一章工作流與OperatingOperatingOperating11975-19851985-19951995-20021998-2005企業(yè)業(yè)務(wù)流2工作Theautomationofabusinessprocess,inwholeorpart,duringwhichs,informationortasksarepassedfromoneparticipanttoanotherforaction,accordingtoasetofproceduralrules(WFMC).工作流管理系統(tǒng)(WorkflowManagementSystem,WFMS)的主要功能是通過計算機技業(yè)務(wù)過程管理(Businessprocessmanagement),非企業(yè)績效管理(BusinessPerformanceManagement)。包括了過程建模、過程自動化、企業(yè)應(yīng)用集成、業(yè)務(wù)活動監(jiān)第二章流程平概流程平臺整體過程模型采取基于活動網(wǎng)絡(luò)圖的過程模型與其他的過程模(如驅(qū)動過程鏈EPC、Petri網(wǎng)、語義-行為模型等)比較,活動網(wǎng)絡(luò)圖具有直觀自然、可讀性好的特性。BusinessFlowApprovalBusinessFlowApprovalFlowInvokedProcessAdministration&ExchangeDataWorkRuleWorkflowWeb3NC流程平臺基于WFMC的標(biāo)準(zhǔn),它包含一個引擎和4大接口(注:WFMC的標(biāo)準(zhǔn)中包含其中流程引擎是整個流程框架的。它負(fù)責(zé)解釋執(zhí)行由流程設(shè)計器設(shè)計的流程定過程定義接口:對應(yīng)流程設(shè)計器,用于對流程過程進(jìn)行建模。流程定義可以NC系客戶應(yīng)用接口:對應(yīng)消息中心的任務(wù)列表。NC用戶可從工作列表中查看到工作流可以調(diào)用各種自動應(yīng)用,包括電子郵件、以及Web服務(wù)等。對于流轉(zhuǎn)過程中涉及到的數(shù)管理和接口:NC流程平臺提供了管理工具對運行中的流程實例和工作項進(jìn)行圖 用戶先進(jìn)入消息中心選擇任務(wù),再導(dǎo)航到交互界面進(jìn)行,然后提交NC流程平臺NC的流程平臺,根據(jù)不同的特點,把企業(yè)中遇到的流程分為流程、工作流程和業(yè)[流程]:以單一單據(jù)實例作為處理對象的流程,一般不包含除網(wǎng)關(guān)節(jié)點外的自動節(jié)點,人工活動的內(nèi)容是做。僅改變單據(jù)狀態(tài),有待、中、已(通過/不通[工作流程]:以單一單據(jù)實例作為處理對象的流程,人工活動的內(nèi)容不限 [業(yè)務(wù)流程]:業(yè)務(wù)流程的最大特點是流程實例中上下游單據(jù)是不同的對象,idNC的流程平臺具有以下特性(1)標(biāo)準(zhǔn)的過程模型,遵循WFMC標(biāo)準(zhǔn),為多系統(tǒng)的集成(2(3)提供豐富的擴展,便于業(yè)務(wù)的接入和實施(4)針對UAP,做了很多增強,使用UAP平臺開流程平臺與業(yè)務(wù)產(chǎn)品的關(guān)NCVOUI、單據(jù)動單據(jù)函單據(jù)VO對單據(jù)單據(jù)項單據(jù)VO模單據(jù)物理模(數(shù)據(jù)庫表4 擴展代表著要同時提供一個新的業(yè)務(wù)場景的功能模型所以通常是出廠時預(yù)置或二單據(jù)類型管時,單據(jù)類型必須屬于某個系統(tǒng)類型。單據(jù)類型的信息比較多,由功能點[開發(fā)平臺]-[開發(fā)配置工具]-[管理]-[單據(jù)類型管理],如圖5所示,一般由各個產(chǎn)品組預(yù)置。5UIUI類必須實現(xiàn)UI關(guān)聯(lián)接口(4.6.4節(jié)參照查詢對應(yīng)的DMO類:用于查詢單據(jù)VO數(shù)據(jù)的業(yè)務(wù)邏輯類。必須實現(xiàn)接口流檢查類:通過編寫流檢查類,并在該類中實現(xiàn)流相關(guān)接口,來達(dá)到使用還需要實現(xiàn)節(jié)點查找接口(4.6節(jié)。義界面才能看到該單據(jù)(5系列通過在節(jié)點編碼前加<Y>或<N>來標(biāo)示該單據(jù)類型是否要走流。V6新增了這個字段來表示)下游單據(jù)類型:V6要求有上下游關(guān)系的單據(jù)類型必須明確定義出來。定義上下游關(guān)系時必須指定是流程中的單據(jù)還是非流程單據(jù)(即可以跨“是否流程中”和“是否跨”流程配置中,可選的上下游單據(jù)類型受[上下游關(guān)系表]中[支持單據(jù)配置]為是的那些關(guān)系約束;單據(jù)接口定義中可選的上下游單據(jù)類型受[上下游關(guān)系表]中[是否跨流查詢:V6報銷單上的費用承擔(dān)部門限定。必須實現(xiàn)IParticipantFilter。IPfMsgCustomReceiver。功能插件:V6不再使用。VO查詢類:V6類型擴展編輯器類:類型擴展屬性對應(yīng)的Panel,必須實現(xiàn)ITranstypeEditor。類型擴展業(yè)務(wù)類:用于處理類型擴展屬性的業(yè)務(wù)處理類,必須實現(xiàn)用戶組規(guī)則器:規(guī)則型流程用戶組所使用的規(guī)則類,必須實現(xiàn)IUserGroupRuleEditor。流前臺業(yè)務(wù)處理類:用于在點擊按鈕以后,框彈出之前,進(jìn)行業(yè)務(wù)處理。必須實現(xiàn)IPF 2.1.2類型管類型是一個的細(xì)分比如報銷會分差旅報銷部門活動報銷交通費報銷等。用戶可以根據(jù)業(yè)務(wù)需要擴展自己的類型擴展類型是在單據(jù)類型支撐的功能模型基新建一個類型時會自動其所屬的單據(jù)類型上的一些屬性,以及對應(yīng)的單據(jù)動類型發(fā)布為功能節(jié)點,就意味著會在功能表中把其所屬單據(jù)類型的功能信息一份,包括對應(yīng)的頁簽、參數(shù)、按鈕、業(yè)務(wù)活動、業(yè)務(wù)活動與按鈕的關(guān)聯(lián)以及相“101601,增。如果發(fā)布時勾選“發(fā)布為Webweb功能節(jié)點號按同樣的規(guī)則衍生而來。,則支持基于單據(jù)函數(shù)和元數(shù)據(jù)進(jìn)行配置支持基于類型配置動作未配置時使用默類型可以有擴展屬性。從應(yīng)用場景上來說,單據(jù)類型下細(xì)分出類型,每個類型除了擁有共同的單據(jù)類型的屬性還可以有自己特殊的屬性類型要支持?jǐn)U展屬性,需要業(yè)務(wù)組在單據(jù)類型管理界面UI端的類型擴展屬性編輯器(實現(xiàn)接口ITranstypeditorITrantypeBiz的擴展屬性但拷貝類型擴展屬性的前提是必須在bd_billtype表的transtype_class(ITranstypeExt2.2流程組流程組件,即流程活動上對應(yīng)的業(yè)務(wù)活動。由功能點[開發(fā)平臺]-[開發(fā)配置工具]-[管理]-[流程組件],如圖8所示。IrkflwGadet對于工作流,必須在單據(jù)類型上了流程組件,才可以定義流程。對于流定義,這不是必要條件,了流程組件以后,可以在流程上給某個活動綁定一個組件。單據(jù)動作及單據(jù)動作是對單據(jù)業(yè)務(wù)處理行為的抽象,具有可定制的動作。業(yè)務(wù)單據(jù)通過單據(jù)8動作編碼:當(dāng)前單據(jù)動作的編碼。以前的版本對動作編碼有嚴(yán)格規(guī)定,V6提供了一個的框,如:是否保存?9單據(jù)動作組管10單據(jù)函判定。由功能點[開發(fā)平臺]-[開發(fā)配置工具]-[管理]-[單據(jù)函數(shù)],如圖11所11單據(jù)函數(shù)(組件)節(jié)點也不一致,不易用?果以“VO交換的自定義函數(shù),且這種情況下函數(shù)參數(shù)不能是VO()它不可應(yīng)用于條件、動作約束、工作項配置中(沒找到這個屬性在哪被?)參數(shù)格函數(shù)參數(shù)分為運行參數(shù)、屬性參數(shù)和VOSTRINGVO參數(shù)INTEGER注意:VO參數(shù)和屬性參數(shù)的實際值由流程上下文在運行時賦予。運行參數(shù)可在動作中返回vidStringBoleaIntegerDoubleUFateUFDatTime,分單依據(jù)[開發(fā)平臺]-[開發(fā)配置工具]-[管理]-[分單依據(jù)],如圖所示。單據(jù)轉(zhuǎn)換規(guī)機制。V6支持三個層面的轉(zhuǎn)換規(guī)則:全局級、級和流程級。全局級由功能點[開發(fā)平臺]-[開發(fā)配置工具]-[管理]-[單據(jù)轉(zhuǎn)換規(guī)則],級由功能點[企業(yè)建模平臺]-[流程平臺]-[流程設(shè)計]-[單據(jù)轉(zhuǎn)換規(guī)則],流程級直接在業(yè)務(wù)流定義的圖形上。實際使級、全局級。有類型時優(yōu)先使用類型上定義的轉(zhuǎn)換規(guī)則。交換前處理類:由業(yè)務(wù)組,在交換前做一些額外的業(yè)務(wù)處理,必須實現(xiàn)接口交換后處理類:由業(yè)務(wù)組,在交換后做一些額外的業(yè)務(wù)處理,必須實現(xiàn)接口來源單據(jù)顯示類:參照來源單據(jù)時,使用的來源單據(jù)顯示UI。默認(rèn)為“nc.ui.pub.pf.BillSourceDLG”。業(yè)務(wù)組可以通過繼承BillSourceDLG來來源單據(jù)查詢類:查詢來源單據(jù)需要使用的查詢模板ID或UI。格式有以下幾種:“<nc.ui.o.pub.ooiQeLG>源單據(jù)查詢框,必須實現(xiàn)接口IBillReferQuery?!癘30O310000000000nodekey)來過濾。Nodekey,用于選擇查詢模板。TODO間的映射。(TODO)單據(jù)接口定程平臺]-[單據(jù)接口定義]。單據(jù)接口定義級功能,定義的關(guān)系在范圍內(nèi)來源單據(jù)(類型)與目的單據(jù)(類型)的關(guān)系是多對一。但是對于確定的來源單據(jù)類型、來源類型、目的單據(jù)類型,只能有唯一的類型與之對應(yīng),作驅(qū)動的,動作又是由組件組成的;單據(jù)、動作以及組件可以由業(yè)務(wù)系統(tǒng)開發(fā)實現(xiàn)。NC業(yè)業(yè)務(wù)流設(shè)計NCV614:業(yè)務(wù)流15。單據(jù):一個流程中跟開始節(jié)點相連的單據(jù)被稱為“單據(jù),查找流程定義時根據(jù)單據(jù)去匹配單據(jù)可以是單據(jù),也可以參照其它單據(jù)生成。一個流程中只。0.1,新版本的流程默認(rèn)是初始態(tài)。流程配16成(VO交換。勾選此項,在流程配置中才可配置該單據(jù)的來源單據(jù),否出消息。向上游單據(jù)發(fā)送消息:上游單據(jù)通過后,則單據(jù)可以被其下游單據(jù)作為參照,會給消息接收者:可以選擇制單人、人,多推式消息——流程配置中動作驅(qū)動如果產(chǎn)生了下游單據(jù),且下游單據(jù)尚未走流,則給下游單據(jù)的發(fā)送這種消息。消息處理方式為直接打開該單據(jù)UI進(jìn)行。拉式消息——流程配置中如果某單據(jù)通過,則給下游單據(jù)的發(fā)送這種UI,并參照上游單據(jù)。單據(jù)來源配據(jù),可以在業(yè)務(wù)流程中為當(dāng)前單據(jù)提供業(yè)務(wù)數(shù)據(jù)(VO交換,以保持業(yè)務(wù)數(shù)據(jù)的18動作約束配19動作控制配20VONC業(yè)務(wù)單據(jù)的VO動作驅(qū)動配21(1.2節(jié)。值單據(jù)轉(zhuǎn)換規(guī)22來源類目的類23Join(Priority(ubflw流程定NC的流定義模型遵循WfMC的XPDL1.0過程定義規(guī)范,具有嚴(yán)格的語義和豐富圖24流定義-瀏圖25流定義-設(shè)流定義按照單據(jù)類型(+類型)進(jìn)行了分類。用戶可以基于單據(jù)類型定義流程模過程活動、流程中的一個個步驟統(tǒng)稱為活(或任務(wù)包括制單活動活動消息活動、、參與者錄)轉(zhuǎn)移()(p)pn-ANDXOR結(jié)構(gòu)。時,流還支三種反流模式:收、駁回棄審(見3.4節(jié))。與者中任何一人完成后,該活動即結(jié)束?;顒拥囊粋€屬性。如果活動定義了可指派屬性,則該活動的實際執(zhí)行者人活動的一個屬性。制單活動不可設(shè)置人;只可為參與者為『操作員』類型的活動設(shè)置多級人;人只可為『操作員。消息paravo==當(dāng)前單據(jù)的流參數(shù)參數(shù)VO可直接的變量列表支持Java語法。比如:當(dāng)前單據(jù)VO當(dāng)前步驟的批本人自動導(dǎo)入/導(dǎo)在流定義-瀏覽界面,選中某個流程,可導(dǎo)出為本地XPDL文本文件XPDL時,提示“導(dǎo)入的XPDL文件中含有對N?流程定義的多版本以及啟用/停流程定義必須是啟用狀態(tài),才能發(fā)揮作用。同一單據(jù)類型(+類型)同一組織下,0.1。流程定義的選細(xì)優(yōu)先的原則來確定。具體選擇的順序如下:TODO工作分配策節(jié)中已經(jīng)過的用戶。(TODO:補充具體的規(guī)則)27流程人設(shè)圖26用戶出差和動態(tài)人管流程用戶組管規(guī)則型流程用戶組UserVO[];系統(tǒng)預(yù)制幾個自定義流程結(jié)果與單據(jù)狀對于流程來說,流程實例正常結(jié)束后,必然會有一個結(jié)果。而單據(jù)的狀工作項的結(jié)即登錄到NC系統(tǒng)的操作員對流程平臺分配給他的工作項的處理意見。包括“批活動的結(jié)對于角色/崗位類的參與者執(zhí)行的活動,如果是會簽屬性,則只有所有會簽操作員都通過,該活動結(jié)果才為通過,任何一個會簽人不通過,該活動結(jié)果就為流程的結(jié)的結(jié)果。5種:表1單據(jù)狀- 32105種狀態(tài)相。比如UI模式化開發(fā)包中就定義了的單據(jù)狀態(tài)。283210456 7 。如果流程實例正常運行完成,該單據(jù)的過程即完成流程結(jié)束后具有最終結(jié)果:通過或不通過,這也是單據(jù)的最終結(jié)果。。11提交278自由進(jìn)行564完成3提交即通第一個人棄 不通過”消息。反向流人,將導(dǎo)致單據(jù)處于自由態(tài),否則,單據(jù)處于進(jìn)行中。駁回后流程實例仍運行中。制除舊實例。如果找不到流定義,則刪除舊實例,走直批模式。棄審是人完成后,再撤銷自己的操作。棄審是通過調(diào)用“UNAPPROVE”動作來實現(xiàn)的,具有特殊的動作(參見第三章4.4節(jié))。第一個人棄審會將單據(jù)置為自由流程流程管理員通過該工具流程實例運行情況(流程實例運行數(shù)據(jù)和流程實例控制數(shù)強制作廢一條流或其中的一個或多個結(jié)(效果同人做棄審(TODO) 新增環(huán)節(jié)—臨時增加一個或多個環(huán)圖28單據(jù)情況查圖29流程圖與情流程日于流平臺在不同環(huán)節(jié)只能處理任務(wù)不同工作流平臺的每個環(huán)節(jié)可以關(guān)聯(lián)不同的工展工作流流程模流程嵌動作處流程實例的狀工作流工作文工作流處理情處理意接轉(zhuǎn)加選擇后繼分指工作流處理情處理意接轉(zhuǎn)加選擇后繼分指派后繼活動的參與A->活動 活動A->>AR(虛活動<批示內(nèi)容原幣金本幣金確取流程用戶用戶第三章開發(fā)規(guī)平臺緩存數(shù)和PfUIDache類的Javadoc文檔前臺緩存基本表bd_bdinfo的緩存,獲取方法BasedocVOStringstrPk)//單據(jù)類型對照信息表pub_billtobillrefer的緩存,獲取方法BilltobillreferVOStringcurrentBillType,//String 單據(jù)VO對照表pub_votable的緩存,獲取方法Stringnc.ui.pf.pub.PfUID StringbillType)//PK單據(jù)類型表bd_billtype的緩存,獲取方法BilltypeVOnc.ui.pf.pub.PfUID StringbillType)//PK幣種信息表bd_currtype的緩存,獲取方法CurrtypeVOStringstrPk)//緩存單據(jù)類型參照信息表pub_billtobillrefer的緩存,獲取方法BilltobillreferVOString StringsourceBillType//單據(jù)VO對照表pub_votable的緩存,獲取方法VotableVOStringpk_billType,//booleanisMain, StringitemCode) //廢棄參數(shù)單據(jù)類型表bd_billtype的緩存,獲取方法BilltypeVOStringdataSource//String 動作處業(yè)務(wù)
Object
判斷是否進(jìn)行動作前
非SAVE執(zhí)行動
SAVE
retObj實現(xiàn)了則獲取動作執(zhí)行后的處理類,并執(zhí)
上述過程的異常類型為且需要處理,則再次進(jìn)行處retObj實現(xiàn)了則前臺顯圖30非類動作處圖31類動作處UI端調(diào)用-單據(jù)動作處理(非ObjectObjectnc.ui.pub.pf.PfUtilStringactionName,StringbillType,StringcurrentDate,AggregatedValueObjectvo,ObjectuserObj,ScessAction(ContainerAggregatedValueObject)throwsSVE)執(zhí)行動作處理-PfUtilBO.processAction(…)IPfRetException,則判斷異常是否需要進(jìn)行SAVE單據(jù)動作處理,但不啟動ObjectObjectnc.ui.pub.pf.PfUtilContainerparent,StringactionName,StringbillType,StringcurrentDate,AggregatedValueObjectvo,ObjectuserObj,ScessActionNoSendMessageAggregatedValueObject)throwsIPfRetException,則判斷異常是否需要進(jìn)行SAVEEDIT單據(jù)動作處理ObjectObjectnc.ui.pub.pf.PfUtilStringactionName,StringbillType,StringcurrentDate,AggregatedValueObjectvo,ObjectuserObj,String)cessActionFlow(Container如果單據(jù)動作以"APPROVE"開頭,檢查該單據(jù)是否處于流中并打開執(zhí)行動作處理-PfUtilBO.processAction(…)IPfRetException,則判斷異常是否需要進(jìn)行APPROVE單據(jù)動作批處理(非Object[]nc.ui.pub.pf.PfUtil .processBatch(ContainerObject[]nc.ui.pub.pf.PfUtil .processBatch(Containerparent,StringactionName,StringbillType,StringcurrentDate,AggregatedValueObject[]voAry,Object[]userObjAry,String)throws執(zhí)行動作處理-PfUtilBO.processBatch(…)IPfRetException,則判斷是否需要進(jìn)行業(yè)務(wù)SAVE單據(jù)動作批處理StringactionName,StringbillType,StringcurrentDate,AggregatedValueObject[]Object[]如果單據(jù)動作以"APPROVE"開頭,檢查第一張單據(jù)是否可被當(dāng)前操作員并打執(zhí)行批動作處理-PfUtilBO.processBatch(…)IPfRetException,則判斷異常是否需要進(jìn)行SAVEBS端調(diào)PfUtilBO5.0IPFBusiAction。開發(fā)人PfUtilBOIPFBusiAction組件后調(diào)用。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數(shù)組,進(jìn)行動作執(zhí)行前的工作流處理(棄審或刪除)以及動作約束進(jìn)行動作執(zhí)行后的工作流處理(依次啟動流。SAVE返回UI端 BSPfUtilBO.processAction(…)PfUtilBO.processBatch(…)的返回值受動作返回值(參見3.2節(jié))的影響。動作動作是單據(jù)動作的執(zhí)行體。在流程配置中還可對某業(yè)務(wù)類型下的單據(jù)動作腳本進(jìn)行再次定制(參見第二章2.2.4節(jié)。保存時會自動生成class文件。注意:如果NC中間件管理了多個帳套,則它們共享統(tǒng)一的動作執(zhí)行編在里可以對從UI端傳遞過來的單據(jù)聚合VO進(jìn)行業(yè)務(wù)處理,這其中就包含有對審批流的處理[單據(jù)動作執(zhí)行]功能點為方便執(zhí)行的編寫,提供了單據(jù)類型的件導(dǎo)入到項目中進(jìn)行開發(fā)。但如果直接對源文件進(jìn)行修改,記得要修改相應(yīng)的述的語法宏而直接使用Java標(biāo)準(zhǔn)語法來編寫動作執(zhí)行。動作類圖&PFVO:nc.vo.pub.AggregatedValueObject,&PFUSEROBJ:Object"@;if(retObj!=null){}單據(jù)動作批處 if(retObj!=null){m_methodReturnHas.put("processBatch",retObj);}審批處Objectm_sysflowObj理//###返回值:流程仍處于 進(jìn)行中時直接返回IWorkFlowRetif(m_sysflowObj!=null){returnm_sysflowObj;批Hashtablem_sysHasNoPassAndGonging審批Hashtablem_sysHasNoPassAndGonging=procFlowBacth(vo處理棄審處booleanisFinishToGoing理//###返回值 批棄審for(inti0igetVos().lengthi++ booleanisFinishToGoing= }返回一般用于的動作,且在流第一個元素SAVEEDIT的動作 t 狀態(tài)回寫與查狀態(tài)回4.6.1節(jié)。狀態(tài)查API:intintnc.bs.pub.pf.PfUtilBO.queryWorkFlowStatus(StringbusiType,//PKStringbillType//String 送“EDIT碼以兩者結(jié)尾即可。送審后,流程平臺會根據(jù)單據(jù)類型和制單人ID查找符合條件的流程定義并實例化然后啟動它。如果找不到流程定義,則不啟動流。送審分為兩種情形,一種是前臺送審,即業(yè)務(wù)UI新增單據(jù)后保存并提交;另一種是后臺送審,即某張單據(jù)在推式生成另一張單據(jù)時。動作處ObjectObjectretObj=“SAVE”,“D1”,“2005-05-3012:23:44”,billVo,userObj,null,nullObjectretObj=userObj,null,ObjectretObj=userObj,null,null ObjectObjectretObj=new“SAVE”,“D1”,“2005-05-3012:23:44”,null,billVo,userObj前臺送審與送審的區(qū)別在于前臺送審會先向服務(wù)器獲取流程定義中第一個人的可比較常見VO數(shù)組中傳遞的就是一張單據(jù)。動作retObj=runClass("nc.bs.trade.business.HYPubBO","commitBill",送審的動作沒有特殊的要求,可以在中進(jìn)行單據(jù)VO的保存,也可以對單據(jù)VO進(jìn)行更新。但如果單據(jù)UI的開發(fā)使用了UI工廠,為了單據(jù)數(shù)據(jù)的一致性,可在腳VO。retObj=runClass("nc.bs.trade.business.HYPubBO","commitBill",SuperVOSuperVOheadVO(SuperVObillVo.getParentVO()//SuperVOSuperDMOdmo=newSuperDMO();//tsVO注意:NC30要求送審的動作必須返回ArrayList或String類型的對象,在NC31中并沒有這種限制了,但前提是單據(jù)聚合VO中包含有完整的單據(jù)號和單據(jù)ID信息。批量處ObjectObjectretObj=“SAVE”,“D1”,“2005-05-3012:23:44”,billVoAry,userObjAry,ObjectObjectretObj=new“SAVE”,“D1”,“2005-05-3012:23:44”,billVoAry,userObjAry,特殊應(yīng);對于保存/提交分離的應(yīng)用,制單人保存后,由業(yè)務(wù)組控制非制單人可否提交單據(jù)流會根據(jù)單據(jù)VO中的制單人信息來獲取流定義并啟動流。;如果業(yè)務(wù)組沒有控制單據(jù)進(jìn)行中的不可編輯那么單據(jù)在過程中可被修改,然后再次提交,這時執(zhí)行完動作后,單據(jù)完成后(即流程結(jié)束后再次修改該單據(jù)并提交,這時會重新啟動一個流程,同時保留了原已結(jié)束流程所產(chǎn)生的工作項記錄。工作項的結(jié)果與流程結(jié)果的異同,參見第二章3.3節(jié)。個尚未提交的單據(jù)進(jìn)行,會提示“單據(jù)尚未提交,無法”的錯誤。工作項,并不屬于真正意義上的流程,的是進(jìn)行業(yè)務(wù)處理。。根據(jù)業(yè)務(wù)需求,還分為兩種情形,一種是前臺,即業(yè)務(wù)UI查詢到單據(jù)后進(jìn)行或者通過待辦事務(wù)來;另一種是,會將單據(jù)直接通過只適。動作處前臺調(diào)用示例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數(shù)組中傳遞的就是一張單據(jù)。動作單張單據(jù)動作示例ObjectObjectm_sysflowObj=/**流程仍處于 進(jìn)行中時直接返回IWorkFlowRet*/if(m_sysflowObj!=null){returnm_sysflowObj;doBusi(getVo 如果單據(jù)UI的開發(fā)使用了UI工廠,為了單據(jù)數(shù)據(jù)的一致性,需要在中調(diào)用如下VO。SuperVOSuperVOheadVO(SuperVObillVo.getParentVO()//SuperVOSuperDMOdmo=newSuperDMO();//NC5.0BaseDAO?//tsVO批量處證當(dāng)前操作員對這些單據(jù)都具有權(quán)限(即都輪到他。=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實現(xiàn)了接口 參見3.2節(jié)。特殊應(yīng)對于無流程實例的,由于沒有流程實例和工作項,直接將單據(jù)通過駁回是NC31流支持的兩種流程反向流轉(zhuǎn)模式之一,它不受流程定義的局限,直接棄棄審是流支持的兩種流程反向流轉(zhuǎn)模式之一是指當(dāng)前人通過或不通過)完成之后,在下一個人尚未之前,可以主動棄審,讓自己重新。當(dāng)前操作員只有擁有該單據(jù)的棄審權(quán)限才可進(jìn)行棄審,這由流平臺控制。nc.vo.pub.pf.IPfBackCheck2的棄審模式。只有流程結(jié)束后,才可一棄到底,即不允許進(jìn)行中的一棄到底。動作處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數(shù)組中傳遞的就是一張單據(jù)。動作在棄審中可對單據(jù)VO進(jìn)行更新操作也可在流程從完成態(tài)回到運行態(tài)時進(jìn)行業(yè)務(wù)booleanbooleanisFinishToGoing= if(isFinishToGoing)doBusi(getVo//}; doBusi(getVo//如果單據(jù)UI的開發(fā)使用了UI工廠,為了單據(jù)數(shù)據(jù)的一致性,需要在中調(diào)用如下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)//只是回寫單據(jù)狀態(tài)為自由態(tài) doBusi(getVo//}刪對于不走流的單據(jù)刪除操作完全由業(yè)務(wù)組控制——既可以調(diào)用流程平臺的動作處用刪除動作處理,以便于刪除流相關(guān)數(shù)據(jù)。目前支持的動作編碼包括以“DELETE動作處動作據(jù)在進(jìn)行中不可刪除所以在刪除動作中只需對單據(jù)數(shù)據(jù)庫表進(jìn)行刪除處理,并批量處流相關(guān)接publicinterfaceICheckState booleancheckGoing(StringbillId,StringStringApproveDate,StringcheckNote)throws 不通過booleancheckNoPasspublicinterfaceICheckState booleancheckGoing(StringbillId,StringStringApproveDate,StringcheckNote)throws 不通過booleancheckNoPass(StringbillId,StringApproveId,StringApproveDate,StringcheckNote)throwsException; 通過booleancheckPass(StringbillId,StringStringApproveDate,StringcheckNote)throws}單據(jù)狀態(tài)回寫接口2,用于操作,由流檢查類實現(xiàn)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;}單據(jù)狀態(tài)回寫接口3,用于操作,由流檢查類實現(xiàn)publicpublicinterfaceICheckState3 booleancheckGoing(AggregatedValueObjectvo,StringApproveId,StringApproveDate,StringcheckNote)throwsException; 不通過booleancheckNoPass(AggregatedValueObjectvo,StringApproveId,StringApproveDate,StringcheckNote)throwsException; 通過booleancheckPass(AggregatedValueObjectvo,StringApproveId,StringApproveDate,StringcheckNote)throwsException;}publicinterfaceIBackCheckState/**棄審為單 進(jìn)行中voidbackGoing(StringbillId,StringapproveId,StringapproveDate,StringbackNote)throwsException;voidbackNoState(StringbillId,StringapproveId,StringapproveDate,StringbackNote)throwsException;}publicinterfaceIBackCheckState/**棄審為單 進(jìn)行中voidbackGoing(StringbillId,StringapproveId,StringapproveDate,StringbackNote)throwsException;voidbackNoState(StringbillId,StringapproveId,StringapproveDate,StringbackNote)throwsException;}單據(jù)狀態(tài)回寫接口5,用于棄審操作,由流檢查類實現(xiàn)publicpublicinterfaceIBackCheckState2/**棄審為單 進(jìn)行中voidbackGoing(StringtableName,String /**voidbackNoState(StringtableName,StringpkFieldName,billId,StringapproveId,StringapproveDate,StringbackNote)單據(jù)狀態(tài)回寫接口6,用于棄審操作,由流檢查類實現(xiàn)publicpublicinterfaceIBackCheckState3/**棄審為單 voidbackGoing(AggregatedValueObjectvo,StringapproveId,StringapproveDate,StringbackNote)throwsException;voidbackNoState(AggregatedValueObjectvo,StringapproveId,StringapproveDate,StringbackNote)throwsException;}publicinterfaceIPfRetCheckInfovoidsetCheckNote(StringstrCheckNote);//回寫批語voidsetCheckState(inticheckState);//回 }單據(jù)狀態(tài)回寫接口7,用于向單據(jù)VO中回寫信息。被單據(jù)的publicinterfaceIPfRetCheckInfovoidsetCheckNote(StringstrCheckNote);//回寫批語voidsetCheckState(inticheckState);//回 }單據(jù)狀態(tài)回寫接口8,用于向單據(jù)VO中回寫信息。被單據(jù)的棄審動作調(diào)用,由單據(jù)聚合VO實現(xiàn)。如果需要向單據(jù)數(shù)據(jù)庫表中回寫這些信息,需要使用流檢查類來nc.bs.pub.pf.IBackCheckState等接口。publicpublicinterfaceIPfRetBackCheckInfovoidsetCheckMan(Stringapproveid);//設(shè)置棄審后的前一 voidsetCheckNote(StringstrCheckNote);//voidsetCheckState(inticheckState);//設(shè)置棄審后的狀態(tài)(進(jìn)行中或自由態(tài)}publicinterfaceIGetBusiDataForFlow{UFDoublegetPfAssMoney();//返回輔幣金額StringgetPfCurrency();//原幣幣種publicinterfaceIGetBusiDataForFlow{UFDoublegetPfAssMoney();//返回輔幣金額StringgetPfCurrency();//原幣幣種UFDoublegetPfLocalMoney();//返回本幣金額UFDoublegetPfMoney();//返回原幣金額}棄審模式接publicinterfaceIPfBackCheck2publicinterfaceIPfBackCheck2}UI關(guān)聯(lián)接每個單據(jù)類型都可與具體的功能節(jié)點關(guān)聯(lián)起來,這在bd_billtype.nodecode和UI關(guān)聯(lián)接口ILinkApprove和ILinkMaintain。publicpublicinterfacevoiddoApproveAction(ILinkApproveDataapprovedata);//初始化單據(jù)關(guān)聯(lián)的功能節(jié)點UI}publicpublicinterfacetainAction(ILinkMaintainDatamaintaindata);//}publicpublicinterfaceIUINodecodeSearcherStringfindNodecode(ILinkQueryDatalqd)//}流用戶管理中增加查詢權(quán)限處理——如果勾選了查詢權(quán)限,則能隨意查看任何人的情況數(shù)據(jù);如果未勾選,則只能查看自己提交和的單據(jù)。publicinterfaceISpecFlowQuery{int[]getAssMnyColAry();String[]get int[]get int[]get publicinterfaceISpecFlowQuery{int[]getAssMnyColAry();String[]get int[]get int[]get 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用來控制是否繼續(xù)進(jìn)行動publicpublicinterfaceIWorkflowBatch/**返回未通過或進(jìn)行中的單據(jù)索引號(0...N)*/HashtablegetNoPassAndGoing();/**獲得用戶對象*/ObjectgetUserObj();}單據(jù)開發(fā),并流程平臺相關(guān)信息START,一個是執(zhí)行工作流SIGNAL。其中動作SIGNAL的動作中需要調(diào)用procActionFlow@@組件。工作流組件開nc.vo.wfengine.core.application.IWorkflowGadget。工作流相關(guān)方調(diào)用 調(diào)用 使用FlowStateDlg(Containerparent,StringstrBillType,StringstrBusitype,StringstrBillID,int動作驅(qū)在BS端動作處理的過程中,在執(zhí)行完動作后,根據(jù)其返回值的不同可能會進(jìn)行動30_APPROVE-執(zhí)行完7D_PUSHSAVE之后,如果啟動了流,仍然遍歷被驅(qū)動的動作,但不會執(zhí)行同單據(jù)類型的動作。也就是說,仍然會執(zhí)行4F_SAVE和5G_NIKE動作,但不會執(zhí)行動作返回值為IWorkFlowRet動作返回值為Object[],且Object[0]類型為IWorkflowBatch,并指明了不進(jìn)行動作單據(jù)VO交業(yè)務(wù)單據(jù)VO之間存在著相互轉(zhuǎn)換的需求,可臺或進(jìn)行。VO交換前后可執(zhí)行單張單據(jù)VOAggregatedValueObjectnc.ui.pf.change.PfUtilUITools.runChangeData(StringsourceBillType,//源單據(jù)類型PKString AggregatedValueObjectvo///**/**VOVO數(shù)組*/AggregatedValueObject[PfUtilUITools.runChangeDataAry(StringsourceBillType,//源單據(jù)類型PKStringdestBillType, AggregatedValueObject[vos)//VO單張單據(jù)VOAggregatedValueObjectnc.bs.pub.pf.PfUtilTools.runChangeData(StringsourceBillType,//PKString AggregatedValueObjectvo//AggregatedValueObject[nc.bs.pub.pf.PfUtilTools.runChangeDataAry(StringsourceBillType,//PKString AggregatedValueObject[vos)//VO單據(jù)UI菜單填充與業(yè)務(wù)類voidvoidButtonObjectinoutBoBusiness,StringcorpId,StringtagPK參照制voidvoidnc.ui.pub.pf.PfUtilButtonObjectboAdd,StringcorpId,StringButtonObjecttagPK:PK,voidvoidnc.ui.pub.pf.PfUtilButtonObjectbo,StringpkCorp,StringFunNode,StringpkOperator,StringcurrentBillType,Containerparent,Object1、查詢來源單據(jù);2、顯示來源單據(jù),并進(jìn)行選擇;3、獲取選擇的來源單據(jù);4VO交換。publicpublicvoidonButtonClicked(nc.ui.pub.ButtonObjectbo//UIif(bo.getParent()==m_boBusi) .retAddBtn(m_boAdd,"2011","30",bo);}elseif(bo.getParent()==m_boAdd) if(nc.ui.pub.pf.PfUtil .makeFlag){ getBillUI().setBillOperate(IBillOperate.OP_ADD)//新增}elseIf AggregatedValueObjectvo= //或PfUtil getBillCardPanelWrapper().setCardData(vo);//填充界面}}}需要在pub_billtobillrefer中的 teId查詢模版,同時用<>括起來如果一個單據(jù)參照另一單據(jù)生成單據(jù)時必須在平臺的單據(jù)信息對照表中進(jìn)行否對于自定義參照(需要繼承自 RefGridTreeModelwhere子句。動作voidvoidnc.ui.pub.pf.PfUtilButtonObjectboElse,StringbillType,String 業(yè)務(wù)流相關(guān)接動作處理前后UI接臺通過PfUtil調(diào)用單據(jù)動作時會先進(jìn)行事前的額外處理。執(zhí)行完動2.1節(jié),額外處理類必須實現(xiàn)下述接口。動作執(zhí)行前的UI端處理該實現(xiàn)類通過方法傳遞或是在單據(jù)類型表bd_billtypedef3字段publicpublicinterfaceIUIBeforeProcAction//UIvoidrunBatchClass(Containerparent,StringStringactionName,AggregatedValueObject[]vos,Object[]voidrunClass(Containerparent,StringbillType,StringactionName,AggregatedValueObjectvo,Objectobj);}publicpublicinterfaceIUIAfterProcAction//UIvoidrunClass(Containerparent,Objectobj)throws}臺通過PfUtil調(diào)用單據(jù)動作,動作執(zhí)行完成后,如果返回值為nc.vo.pub.pf.PfUtilActionVOUI界面。并根據(jù)該返回值中的信息進(jìn)publicpublicinterfaceIinitDatavoidinitData(String}publicpublicinterfaceIinitData2voidinitData(Object}UI該接口為實現(xiàn)自定義查詢條件(DLG)的類必須實現(xiàn)PfUtil.childButtonClicked()調(diào)用(5.3.2節(jié)。實現(xiàn)該接口的類必須在單據(jù)參照表pub_billtobillrefer的字段queryTemteId中,并且必publicpublicinterfaceIinitQueryDatavoidinitData(StringpkCorp,Stringoperator,StringStringbusinessType,StringcurrentBillType,StringsourceBilltype,ObjectuserObj)throwsException;}publicpublicinterfaceIinitQueryData2voidinitData(StringpkCorp,Stringoperator,StringStringbusinessType,StringcurrentBillType,StringsourceBilltype,StringnodeKey,ObjectuserObj)throwsException;}臺通過PfUtil publicpublicinterfaceIProcActionRetObject/**返回動作執(zhí)行完的前臺執(zhí)行類,必須實現(xiàn)IUIAfterProcAction*/StringgetClassStr();Object }業(yè)務(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();}VO查詢接流程平臺提供查詢單據(jù)主表VOCircularlyAccessibleValueObject[CircularlyAccessibleValueObject[IPFConfig.queryHeadAllData(StringbillType, //PKStringbusinessType//StringwhereString)//CircularlyAccessibleValueObject[CircularlyAccessibleValueObject[IPFConfig.queryBodyAllData(StringbillType, //PKString StringbodyCondition)//DMO實現(xiàn),且必須實現(xiàn)下面的兩個接口。publicpublicinterfaceIQueryData/**根據(jù)主表的關(guān)鍵字段查詢子表數(shù)據(jù)*/CircularlyAccessibleValueObject[queryAllBodyData(Stringkey)///**根據(jù)查詢條件主表數(shù)據(jù)*/CircularlyAccessibleValueObject[queryAllHeadData(StringwhereString//}publicpublicinterfaceIQueryData2/**根據(jù)主表的關(guān)鍵字段與查詢條件進(jìn)行查詢子表數(shù)據(jù)*/CircularlyAccessibleValueObject[queryAllBodyData(Stringkey,//StringwhereString)//}publicpublicinterfaceIPfRetException/**0--不進(jìn)行處理,1--*/intgetBusiStyle();/**返回 ObjectgetObject();/**UI類(該類必須實現(xiàn)接口IRunClassAfterException)*/StringgetProcClass();}publicpublicinterfaceIRunClassAfterException/**返回客戶端修改的業(yè)務(wù)數(shù)據(jù)對象*/Objectgetobj();voidrunClass(Containerparent,Objectobj)throws}單據(jù)VO交換前后處理接VOVOpublicpublicinterfaceISourceChangeVOvoidadjustBeforeChange(StringtargetBillType);/**調(diào)整源單據(jù)VO,針對目的單據(jù)類型做轉(zhuǎn)換后的處理*/voidadjustAfterChange(StringtargetBillType);}目的單據(jù)VO在交換后針對原單據(jù)類型的額外處理接口。由目的單據(jù)VOpublicpublicinterfaceITargetChangeVO/**VO,針對源單據(jù)類型做轉(zhuǎn)換后的處理*/voidadjustAfterChange(StringsourceBillType);}publicpublicinterfaceIchangeVO AggregatedValueObjectnowVo); preVos,AggregatedValueObject[]nowVos);}第四章開發(fā)流開發(fā)單據(jù)VOVO。單據(jù)VO對照信息開發(fā)單據(jù)、、UIUAP集成化開發(fā)平臺(UAP其他技術(shù)文檔,由于它已經(jīng)集成了附NC5.0服無線應(yīng)用的跨時空服務(wù)和及時響應(yīng)能力擴展了ERP系統(tǒng)的功能。從5.0開始,NC集成了移動商務(wù)公司(UF 應(yīng)用模發(fā)布模式——NC系統(tǒng)產(chǎn)生短消息后調(diào)用 SDK中的API,然后由訂閱模式——用戶向 發(fā)送指令,NC接收任務(wù)定時從回復(fù)模式——NC系統(tǒng)產(chǎn)生短消息后調(diào)用 SDK中的API,然后由 用戶可直接回復(fù)該進(jìn)行業(yè)務(wù)處理由NC系統(tǒng)通過對于訂閱模式用戶發(fā)送的必須符合NC系統(tǒng)支持的指令消息串格式其“指令”“用戶是必須輸入的如果僅憑號不能唯一確定NC中的用戶則還需輸“用于NC系統(tǒng)支持多帳套,所以如果不使用配置(./ierp/bin/plugin.xml)中的帳套,NC業(yè)務(wù)插件規(guī)定需要的一些參數(shù),可有可無,由業(yè)務(wù)插件決定。指用指用GZ#-pUserPassword[-uUserCode-cUnitCode-aAccountCode-dLoginDate][Param1指用戶驗證與登錄信參復(fù)時,用戶只需發(fā)送“N不同意,金額過大”的參數(shù)串即可。<?xml<?xmlversion="1.0"<> ><<>>> 發(fā)NC系統(tǒng)可通過調(diào)用UFSDK接口來。NC系統(tǒng)發(fā)送出去的,可能需要用戶的回復(fù)。NC系統(tǒng)與UF之間需要一次會話信息。即NC時使 Session.getSmsSender().sendSms(msg,phone,sessionId)方式的API,同時NC建立 決定)與該相關(guān)的額外信息的對應(yīng)關(guān)系(保存到數(shù)據(jù)庫。接收信息中,UF NC,由NC系統(tǒng)自己查找這條發(fā)送前的一些額外信息。接NC系統(tǒng)使用調(diào)度任務(wù)(安裝時默認(rèn)為不啟動)定時從UF 1、接收任務(wù)的裝需要編寫任務(wù)裝載器類Pf Loader并配置到ierp/bin/scheduleengine.xml文件中。該類會實例化一個Pf 時任務(wù)會每隔120秒從UF 2、接收后的業(yè)務(wù)插件處NC系統(tǒng)從UF 接收到后,會使用 Handler對
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)購房轉(zhuǎn)讓合同范本
- 個人轉(zhuǎn)讓德文合同范本
- 分包混凝土合同范本
- 買賣車位轉(zhuǎn)讓合同范本
- 包子工用工合同范本
- 創(chuàng)業(yè)加盟合同范本
- 廣西買房合同范本
- 出國勞務(wù)外派合同范本
- 勞動合同范本工資
- 出租包車合同范本
- 2022-2023學(xué)年湖南省長沙市統(tǒng)招專升本語文模擬練習(xí)題三及答案
- 社會救助法課件
- 1.裝配式建筑概述(裝配式混凝土結(jié)構(gòu)施工技術(shù))
- 第七講+漢字字音
- 新零件的成熟保障MLA
- 【基于杜邦分析法的企業(yè)盈利能力研究國內(nèi)外文獻(xiàn)綜述4000字】
- 初中語文七下-上下句默寫
- 《董存瑞舍身炸碉堡》PPT課件新
- 新川教版信息技術(shù)六年級下冊全冊教案
- 第20章補充芯片粘接技術(shù)
- 旅行社運營實務(wù)電子課件 5.1 旅行社電子商務(wù)概念
評論
0/150
提交評論