NCWeb自助單據(jù)開發(fā)流程_第1頁
NCWeb自助單據(jù)開發(fā)流程_第2頁
NCWeb自助單據(jù)開發(fā)流程_第3頁
NCWeb自助單據(jù)開發(fā)流程_第4頁
NCWeb自助單據(jù)開發(fā)流程_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、HR自助服務單據(jù)開發(fā)快速入門用友軟件股份有限公司北京分公司客戶開發(fā)部2011年3月目 錄1、NC自助服務單據(jù)開發(fā)1.1 總體概述1.2. 開發(fā)環(huán)境搭建配置Java運行時環(huán)境配置JAVA HOM環(huán)境變量 下載并解開Dorado5開發(fā)包安裝 Dorado 5 Eclipse開發(fā)環(huán)境搭建搭建項目工程1.3. 自助單據(jù)開發(fā)流程 建立數(shù)據(jù)模型導入數(shù)據(jù)字典單據(jù)模板初始化導出Java源代碼建立視圖層 ViewModel。生成JSP頁面建立后臺控制類 功能節(jié)點注冊 注冊功能按鈕按鈕處理事件的定義單據(jù)屬性設置附錄:輕量級參照實現(xiàn)方式:審批流配置注意點輕量級查詢模板實現(xiàn)方式 按鈕動作前后臺交互示例: 增加按鈕動作

2、處理1、NC自助服務單據(jù)開發(fā)1.1. 總體概述NC自助服務模塊使用的是 BSTEK公司推出的Dorado 5展現(xiàn)中間件技術。通過將Dorado和NC-UAP平臺的整合,可以在自助服務中引用NC-UAP平臺中的單據(jù)模板 ,提高了在自助下開發(fā)單據(jù)的效率。Dorado技術詳細介紹請見 BSTEK公司官網(wǎng):12 開發(fā)環(huán)境搭建1.2.1. 配置Java運行時環(huán)境通過Sun官網(wǎng)獲取JDK開發(fā)包,下載的開發(fā)包解壓縮到本地非中文名稱的目錄中;也可以直接使用NCHOM中自帶的JDK開發(fā)包,如本機中 NCHOM的JDK開發(fā)包 D:nchome56nchomeufjdk1.2.2. 配置JAVA_HOME環(huán)境變量對

3、于環(huán)境變量的配置就不用多說了,本機的配置如下:1.2.3. 下載并解開Dorado5開發(fā)包通過如下的地址獲取 dorado5的開發(fā)包:iJ:I將下載的zip文件解壓縮到本地非中文名稱的目錄中,如本機的E:dorado5.21.2.4. 安裝 Dorado 5在確保系統(tǒng)已經(jīng)配置過 JAVA_HOM的前提下,并雙擊運行dorado 5開發(fā)包中的setup.bat文件, 該文件進行dorado5開發(fā)包的文件初始化工作。(特別聲明:綠色食品,setup.bat的所有操作都是針對開發(fā)包所在的目錄作初始化工作,不會對該目錄之外的內(nèi)容進行修改。)首先會打開一個命令控制臺,要你確認是否執(zhí)行初始化的工作:按任意

4、鍵繼續(xù)初始化工作:這時候系統(tǒng)會在桌面上自動的生成一個dordo5 studio的快捷啟動圖表,并在控制臺中出現(xiàn)讓你選擇是否直接啟動 dorado的集成開發(fā)環(huán)境,也就是 dorado5的studio。以下統(tǒng)稱studio 。如果選擇y并按回車鍵確認打開 studio,可以看到下圖:1.2.5. Eclipse開發(fā)環(huán)境搭建Eclipse開發(fā)環(huán)境的搭建在此就不做介紹了,主要的環(huán)境有NC56 eclipse 開發(fā)環(huán)境、nc56插件。1.2.6. 搭建項目工程對于自助服務的開發(fā),需要同時用到Eclipse和Dorado工程,對于項目工程需要將 Eclipse工程目錄和Dorado工程目錄整合到一塊,以便

5、對在兩個開發(fā)工具對同一工程進行開發(fā)。本例中使用的開發(fā)工程為NC-HR自助模塊的源開發(fā)工程HR_WEB5.6_dev在 Eclipse 中導入 HR_WEB5.6_de程,如下:在Dorado集成開發(fā)平臺中導入 HR_WEB5.6_de程如下:1.3. 自助單據(jù)開發(fā)流程在自助服務下開發(fā)的 JSP界面,可將NC-UAP平臺下的單據(jù)整合到自助服務中,這是通過將單據(jù)模板信息解析成 Dorado 控件來實現(xiàn)的,由于是根據(jù)單據(jù)模板信息表中的數(shù)據(jù)進行解析的,對于用元 數(shù)據(jù)制作的單據(jù)模板, 在自助服務界面目前還沒有做到很好的兼容, 解析過程中還沒有增加對元數(shù)據(jù) 的解析,故目前自助服務只能夠?qū)τ脭?shù)據(jù)字典制作的單

6、據(jù)模板進行正確的解析,下面介紹在NC56中,如何用數(shù)據(jù)字典在自助服務下開發(fā)輕量級單據(jù)界面。1.3.1. 建立數(shù)據(jù)模型根據(jù)具體的業(yè)務在 PowerDesigner 中建立對應的業(yè)務模型,本例中介紹的為休假計劃的業(yè)務。1.3.2. 導入數(shù)據(jù)字典具體的數(shù)據(jù)字典導入在【客戶化】t【二次開發(fā)工具】t【系統(tǒng)管理工具】t【數(shù)據(jù)字典管理】 節(jié)點來實現(xiàn)導入。1.3.3. 單據(jù)模板初始化在完成數(shù)據(jù)字典導入之后,就可以在【客戶化】t【二次開發(fā)工具】t【模板管理】t 【單據(jù)模板初始化】節(jié)點通過數(shù)據(jù)字典制作相應的單據(jù)模板,具體的與NC5.2 初始化單據(jù)模板一致。本例初始化完的單據(jù)模板卡片界面顯示如下:1.3.4. 導出

7、 Java 源代碼通過UAP集成開發(fā)平臺導出 Java源代碼。在通過數(shù)據(jù)源生成 V0代碼之前,一定要保證在數(shù)據(jù)庫中將數(shù)據(jù)模型對應的表結構建立,否則在選擇數(shù)據(jù)庫表處看不到單據(jù)對應的數(shù)據(jù)庫表,具體的建表SQL腳本可以在建模時,通過PowerDesigner生成。選擇完對應的數(shù)據(jù)庫表,設置對應的VO言息以及對應到文件導出目錄 (當前eclipse工程%/ src / public 包)后,點擊“確定”按鈕,即可完成對VO的導出。1.3.5. 建立視圖層 ViewModel 。ViewModel 是一種用于封裝界面邏輯和操作邏輯的對象。即視圖中包含哪些數(shù)據(jù)、這些數(shù)據(jù)以什ViewModel 看作是么方式

8、展現(xiàn)、視圖中包含哪些控件、這些控件會激發(fā)什么操作等等。我們可以把Dataset 和各種控件的容器。ViewModel 般不用于定義各種控件最終在顯示的布局,控件布局應通過其它方式進行定義。在 通常情況下,我們利用JSP來完成對ViewModel中定義的控件進行布局。在Dorado集成開發(fā)平臺中打開項目工程,在對應的目錄下,右鍵鼠標,如下:選擇新建Module ,進入 ViewModel新建向?qū)А_x擇通用的視圖模型對象(CommoViewModel)即可,點擊“ 0K,輸入視圖模型對象名稱,即 會在相應的目錄下生成一個視圖模型對象的XML配置文件,配置文件名稱為輸入對象名稱.view.xml,如

9、本例在新建視圖模型對象的時候輸入的名稱為LeavePlanOne,則生成的視圖模型對象的名稱為:1.3.6. 生成JSP頁面對于自助JSP頁面是通過ViewModel生成的,具體生成 JSP的操作如下圖所示: 選擇相應的路徑以保存生成的JSP文件。再生成JSP頁面之后,需要對生成的JSP頁面先進行簡單的布局配置,如果需要配置其他在ViewModel中定義的控件顯示,在定義完控件后再做詳細的頁面布局。對于使用NC-UAP平臺的單據(jù)模板時,對應管理型界面的JSP界面配置如下:v/html137.建立后臺控制類新建視圖模型后臺控制類,由于本例中開發(fā)的是帶審批流的自助界面,具體的后臺控制類應繼承。對于

10、后臺控制類的基本配置如下:public class LeavePla nOne exte nds PFViewModel /*返回單據(jù)VO*/Overridepublic AggregatedValueObject toBillAggVO() throws Exceptio n / TODO Auto-ge nerated method stubHRAggVO aggVO = this.toAggVO();AggLeavepla nHVO vo = new AggLeavepla nHV O();vo.setPare ntVO(aggVO.getPare ntVO();vo.setChildr

11、e nV O(aggVO.getChildre nV O();return vo;/*返回對應的單據(jù)模板的編碼*/Overridepublic Stri ng getBillType() / TODO Auto-ge nerated method stubpublic String getBusiType() / TODO Auto-ge nerated method stub return n ull;*用于設置表頭對應的 VO對象*/Overridepublic Classv? exte nds SuperVO getHeadClass() / TODO Auto-ge nerated m

12、ethod stub/*用于設置表體對應的 VO對象*/Overrideprotected void in itBodyTabCodes() / TODO Auto-ge nerated method stub視圖模型后臺控制類定義完成后,需要將后臺控制類與對應的視圖模型進行關聯(lián),通過設置 ViewModel 的 clazz 屬性來實現(xiàn)關聯(lián)。1.3.8. 功能節(jié)點注冊通過NC業(yè)務系統(tǒng)【功能注冊】節(jié)點注冊功能節(jié)點,在功能注冊時,需要注意幾點。 功能性質(zhì):一定要選擇“輕量級Web節(jié)點”。對應文件名或控制名:為對應的 JSP 文件。對新增的自助節(jié)點分配權限, 分配時一定要將該節(jié)點分配給相應的自助角色

13、才行, 產(chǎn)品自帶的自 助角色有四種,在本例中分配給“自助角色 - 員工“這個角色。提示:如果在權限分配時, 在相應的節(jié)點樹位置看不到剛剛注冊的功能節(jié)點, 需到【自定義菜單】 節(jié)點對節(jié)點樹的結構進行調(diào)整。到這里自助模塊開發(fā)單據(jù)界面的大致框架就搭建起來了,現(xiàn)在在開發(fā)環(huán)境下重啟NC中間件,登錄自助界面就可以看到剛剛在自助節(jié)點開發(fā)的輕量級Web節(jié)點了。重要提示:對于在第1.3.6步中生成的JSP文件保存在Eclipse工程項目中,此時登錄自助模塊, 打開剛剛注冊的自助節(jié)點時,是無法加載到對應的 JSP頁面的,需要將該JSP頁面按照相應的目錄結構拷貝到NCHOM的nchomehotwebshrss 目錄

14、下,Web容器在加載JSP頁面時,才能夠?qū)⒃?JSP頁 面加載到容器中。單擊“休假計劃練習一”輕量級Web節(jié)點,即可進入對應的 JSP界面。1.3.9. 注冊功能按鈕輕量級單據(jù)界面,是沒有對應的功能按鈕的,如果需要在畫面中添加功能按鈕,必須在NC業(yè)務系統(tǒng)【功能注冊】節(jié)點注冊相應的功能按鈕。注冊完功能節(jié)點后,需要在后臺控制類中重寫父類的 initBillState(ButtonFactorybuttonFactory2) 方法,以控制每個界面狀態(tài)按鈕的顯示情況。需要先定義自己的按鈕工廠類,該類需繼承 義按鈕工廠類,如下:public class LeavePlanOneBtnFactory pr

15、ivate static ButtonFactory /* 附件 按鈕編碼 */自助服務底層按鈕工廠類會自帶常用的功能按鈕,對于不在自帶常用的功能按鈕集合內(nèi)的按鈕,.對于本例中,“審批意見”為自定義按鈕,需要自己定extends ButtonFactory instance ;public static final String APPROVE_NOTE = approvenote private LeavePlanOneBtnFactory() Command 類名,響應的 js 和 java 方法/ 格式:按鈕內(nèi)碼,和注冊中相同的中文名稱,響應的 名,要顯示的圖標名稱, tooltips

16、提示String buttons = APPROVE_NOTE, 審批意見 , null , onApproveNote , unapprove.gif 查看審批意見 ;/系統(tǒng)自帶的按鈕信息是以二位數(shù)組的形式存放,/在自定義按鈕是按照數(shù)組的格式定義并添加到二位數(shù)組中即可 super . strButtonlnfos=(String)ArrayUtils.addAII ( super . strButtonlnfos, buttons);public staticButt onF actory get In sta nce() if ( instanee= null ) in sta nee=

17、new LeavePla nOn eBt nF actory();retur nin sta nee;ini tBillState()自定義按鈕的工廠類定義后,就需要在ViewModel的后臺控制類中重寫父類的方法,以控制具體畫面狀態(tài)下按鈕的顯示情況以及激活情況。*初始化該單據(jù)的所有狀態(tài),并且要設置好按鈕在該狀態(tài)下的可見、可用狀態(tài)*/Overrideprotected voidin itBillState(Butto nF actory butt onF actory2) /TODO Auto-ge nerated method stubBillState billstate =new Bil

18、lState(BillState/定義該狀態(tài)顯示的按鈕組billstate.addVisibleBt ns(new Stri ng Butt onF actory.SEARCH,Butt onF actory.NEW,Butt onF actory.EDIT ,Butt onF actory.DELETE,Butt onF actory.SUBMIT ,Butt onF actory.CALLBACK ,Butt onF actory.APPROVE,Butt onF actory.UNAPPROVE,/定義單據(jù)初始化狀態(tài)STATE_INIT);LeavePla nOn eBt nFactor

19、y.APPROVE_NOTE);/定義該狀態(tài)激活的按鈕組billstate.addE nableBt ns(new Strin g Butt onF actory.SEARCH,Butt onF actory.NEW,Butt onF actory.EDIT ,Butt onF actory.DELETE,Butt onF actory.SUBMIT ,Butt onF actory.CALLBACK ,Butt onF actory.APPROVE,Butt on Factory.UNAPPROVE,LeavePla nOn eBt nFactory.APPROVE_NOTE);/將增加的單

20、據(jù)狀態(tài)添加this .addBillState(billstate);super .initBillState(LeavePlanOneBtnFactory. getInstanee();在后臺控制類定義完單據(jù)的狀態(tài)以及對應狀態(tài)按鈕組顯示情況后,需要在視圖層控制對象 ViewModel加載時,添加相應的 JS事件,以控制單據(jù)畫面初始化時所屬的狀態(tài)。到此,重啟中間件,重新登錄自助界面,即可看到單據(jù)初始化狀態(tài)顯示的按鈕組。提示:對于在后臺控制類中增加了新的方法,或者引用了新定義的類時,才需要重啟中間件,其他情況 無需重啟中間件。對于在視圖控制對象 ViewModel中添加JS腳本后,首先需要保證E

21、clipse工程中對應的XML文件與在Dorado工具對ViewModel的配置保持同步;其次,再重新登錄自助界面,如果發(fā)現(xiàn)新增加的 JS腳本沒有起作用,這時要將IE的緩存清除,以保證能夠加載到最新的 JS腳本(在java Web開發(fā)中經(jīng)常會這樣去做)。1.3.10. 按鈕處理事件的定義通過以上9步,即可完成在自助服務下單據(jù)的界面模型的開發(fā),接下來重要的工作就是定義單據(jù)界面中按鈕的處理事件。組件Comman的method屬性用于指定調(diào)用服務器接受類的指定方法的方法名(默認為視圖模型中的方法名,即視圖 ViewModel的關聯(lián)的后臺控制類中的方法 )。對于按鈕在前臺頁面響應事件,是通過定義JS來

22、實現(xiàn)的,具體響應的JS函數(shù)的名稱在后臺按鈕工廠類中已經(jīng)定義。/格式:按鈕內(nèi)碼,和注冊中相同的中文名稱,響應的Comma nd類名,響應的js和java方法名,要顯示的圖標名稱,tooltips 提示String butto ns = APPROVE_NOTE,審批意見 “,null , onApproveNote,“unapprove.gif,查看審批意見“;如自定義的按鈕“審批意見”在前臺頁面響應的JS函數(shù)的方法應為functiononApproveNote().1.3.11. 單據(jù)屬性設置對于帶審批流的單據(jù),需要在UAP平臺中進行一些審批流相關屬性的設置,這與NC5.2中的設置類似,具體的

23、設置步驟如下第一步:單據(jù)類型定義如上圖,輸入“類型代碼”、“類型名稱”、“節(jié)點編號”,完成后點擊“保存”按鈕保存定義 的單據(jù)類型信息。(其中:此處定義的“類型代碼”最好和單據(jù)模板定義步驟定義的單據(jù)模板編碼一 致,否則在后面會遇到意想不到的問題。)第二步:單據(jù)號設置 如上圖,設置單據(jù)號的生成規(guī)則。第三步:單據(jù)動作定義 第四步:單據(jù)動作腳本設置如上圖, 在此處對于單據(jù)的動作腳本進行編輯, 具體的腳本可以直接從其他定義的單據(jù)動作腳本 拷貝過來即可 (因為筆者沒有找到在何處去自動生成系統(tǒng)默認的單據(jù)動作腳本, 只能通過此方法來實 現(xiàn))。在編輯完動作腳本后,在NCHOM對應的模塊目錄下的 META-INF

24、varsource 會生成相應的動作腳本類。第五步:單據(jù)V0對照具體的V0對照關系設置如下圖:附錄:輕量級參照實現(xiàn)方式: 對于自助開發(fā)下的單據(jù)中字段的參照與業(yè)務系統(tǒng)中有所不同,具體設置字段為參照的步驟如下: 第一步: 在單據(jù)模板中,將參照的字段的數(shù)據(jù)類型設置為參照,參照類型設置具體的參照編碼,如下圖。第二步:配置具體的參照,參照的配置是通過 XML文件來配置的,參照主要有三種展現(xiàn)類型:GRIDTREE TREEGRID 具體的配置請見當前工程的 homerefbusinessRefLeaveltemGrid.xml文件,為休假類別參照的 XML配置文件。第三步: 設置具體的參照配置文件與參照類

25、型編碼的映射關系,對于映射關系的設置,目前還沒 有具體的配置界面,只能夠通過在后臺表 hrss_ref_map 表中去配置具體的映射關系,下圖為休假類 別參照對照配置。審批流配置注意點 要想在自助模塊順利使用審批流,需要在工程中做如下配置: 第一步: 設置和審批有關的字段的對應關系, 通過集成 PFConfig 類來配置具體的字段對應關系。(見 .LeavePlanOneConfig )第二步:配置Hrss單據(jù)信息,通過實現(xiàn)接口來進行配置。(詳見第三步: 配置 Hrss 單據(jù)注冊類,用于將自定義的單據(jù)信息注冊到 Hrss 單據(jù)集中。public class LeavePlanPfConfigE

26、xtImpl implements IHrssPfConfigExt public IConfigMeta getPfConfigExt() / TODO Auto-generated method stub return new IConfigMeta new LeavePlanConfigMeta(), new LeavePlanOneMeta();在定義完具體的后臺注冊實現(xiàn)類后,需要在UPM文件(hr_hrss.upm )中進行配置。第四步: 配置審批流后臺處理類。 第五步: 定義審批流?!疤峤弧眲幼靼粹o特別說明:1、如果在 ViewModel 的后臺控制類中,重寫 Aggregated

27、ValueObject toBillAggVO() 方法返回 的類型為HYBillVO,則需要在聚合 V0(AggLeaveplanHVO)定義相關的BillField 接口實現(xiàn)類,以 配置具體的在審批流字段的具體對應關系。2、如果重寫AggregatedValueObject toBillAggVO() 方法返回的類型為 HRAggVO則需要重寫” 提交“按鈕的動作腳本需要重新定義,由具體的審批流后臺實現(xiàn)類完成具體提交字段的更新。輕量級查詢模板實現(xiàn)方式第一步:定義查詢控件MarmotQuery。屬性設置分別如下,其中category屬性設置的為對應的后 臺查詢模板的 ID。第二步:注冊查詢模板信息。由于自助模塊查詢模板的注冊在UAP平臺還

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論