


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、HR自助服務單據開發快速入門用友軟件股份有限公司北京分公司客戶開發部2011 年 3 月目錄1、 NC 自助服務單據開發1.1. 總體概述NC自助服務模塊使用的是 BSTEK公司推出的Dorado 5展現中間件技術。通過將Dorado和NC-UAP平臺的整合,可以在自助服務中引用 NC-UAP平臺中的單據模板 ,提高了在自助下開發單據的效率。Dorado技術詳細介紹請見 BSTEK公司官網:1.2. 開發環境搭建1.2.1. 配置 Java 運行時環境通過Sun官網獲取JDK開發包,下載的開發包解壓縮到本地非中文名稱的目錄中;也可以直接使用NCHOM中自帶的JDK開發包,如本機中 NCHOM的
2、JDK開發包 D:nchome56nchomeufjdk1.2.2. 配置JAVA_HOME環境變量對于環境變量的配置就不用多說了,本機的配置如下:1.2.3. 下載并解幵Dorado5幵發包通過如下的地址獲取 dorado5的開發包:將下載的zip文件解壓縮到本地非中文名稱的目錄中,如本機的E:dorado5.21.2.4. 安裝 Dorado 5在確保系統已經配置過 JAVA_HOM的前提下,并雙擊運行dorado 5開發包中的setup.bat文件, 該文件進行dorado5開發包的文件初始化工作。(特別聲明:綠色食品,setup.bat的所有操作都是針對開發包所在的目錄作初始化工作,不
3、會對該目錄之外的內容進行修改。)首先會打開一個命令控制臺,要你確認是否執行初始化的工作:按任意鍵繼續初始化工作:這時候系統會在桌面上自動的生成一個dordo5 studio的快捷啟動圖表,并在控制臺中出現讓你選擇是否直接啟動dorado的集成開發環境,也就是 dorado5的studio。以下統稱studio 。如果選擇y并按回車鍵確認打開studio,可以看到下圖:1.2.5. Eclipse開發環境搭建Eclipse開發環境的搭建在此就不做介紹了,主要的環境有 NC56 eclipse 開發環境、nc56插件。1.2.6. 搭建項目工程對于自助服務的開發,需要同時用到Eclipse和Dor
4、ado工程,對于項目工程需要將Eclipse工程目錄和Dorado工程目錄整合到一塊,以便對在兩個開發工具對同一工程進行開發。本例中使用的開發工程為NC-HR自助模塊的源開發工程 HR_WEB5.6_dev在 Eclipse 中導入 HR_WEB5.6_de程,如下:在Dorado集成開發平臺中導入 HR_WEB5.6_de程如下:1.3.自助單據開發流程在自助服務下開發的 JSP界面,可將NC-UAP平臺下的單據整合到自助服務中,這是通過將單據 模板信息解析成Dorado控件來實現的,由于是根據單據模板信息表中的數據進行解析的,對于用元數據制作的單據模板, 在自助服務界面目前還沒有做到很好的
5、兼容, 解析過程中還沒有增加對元數據 的解析,故目前自助服務只能夠對用數據字典制作的單據模板進行正確的解析,下面介紹在NC56中,如何用數據字典在自助服務下開發輕量級單據界面。1.3.1. 建立數據模型根據具體的業務在 PowerDesigner 中建立對應的業務模型,本例中介紹的為休假計劃的業務。1.3.2. 導入數據字典具體的數據字典導入在【客戶化】t【二次開發工具】t【系統管理工具】t【數據字典管理】 節點來實現導入。1.3.3. 單據模板初始化在完成數據字典導入之后,就可以在【客戶化】t【二次開發工具】t【模板管理】t 【單據模板初始化】節點通過數據字典制作相應的單據模板,具體的與NC
6、5.2 初始化單據模板一致。本例初始化完的單據模板卡片界面顯示如下:1.3.4. 導出 Java 源代碼通過UAP集成開發平臺導出 Java源代碼。在通過數據源生成 V0代碼之前,一定要保證在數據庫中將數據模型對應的表結構建立,否則在選擇數據庫表處看不到單據對應的數據庫表,具體的建表SQL腳本可以在建模時,通過PowerDesigner生成。選擇完對應的數據庫表,設置對應的VO言息以及對應到文件導出目錄 (當前eclipse工程%/ src / public 包)后,點擊“確定”按鈕,即可完成對VO的導出。1.3.5. 建立視圖層 ViewModel 。ViewModel 是一種用于封裝界面邏
7、輯和操作邏輯的對象。即視圖中包含哪些數據、這些數據以什 么方式展現、視圖中包含哪些控件、這些控件會激發什么操作等等。我們可以把ViewModel 看作是Dataset 和各種控件的容器。ViewModel 一般不用于定義各種控件最終在顯示的布局,控件布局應通過其它方式進行定義。在 通常情況下,我們利用 JSP來完成對ViewModel中定義的控件進行布局。在 Dorado 集成開發平臺中打開項目工程,在對應的目錄下,右鍵鼠標,如下:選擇新建“ Module “,進入 ViewModel新建向導。選擇通用的視圖模型對象(CommoViewModel)即可,點擊“ OK,輸入視圖模型對象名稱,即
8、會在相應的目錄下生成一個視圖模型對象的XML配置文件,配置文件名稱為輸入對象名LeavePlanOne,則生成的視圖模型對稱.view.xml,如本例在新建視圖模型對象的時候輸入的名稱為象的名稱為:1.3.6. 生成JSP頁面對于自助JSP頁面是通過ViewModel生成的,具體生成 JSP的操作如下圖所示:選擇相應的路徑以保存生成的JSP文件。再生成JSP頁面之后,需要對生成的JSP頁面先進行簡單的布局配置,如果需要配置其他在ViewModel中定義的控件顯示,在定義完控件后再做詳細的頁面布局。對于使用NC-UAP平臺的單據模板時,對應管理型界面的JSP界面配置如下:<% page c
9、on te ntType="text/html; charset=UTF-8" %><!引用用友在自助下自定義的標簽庫-><html><head><title></title></head><body><! config對應的為ViewModel 配置文件->vbody class="NC-BODY-NSCROLL-NPAD"><table cellpadd in g="0" cellspac in g="0&q
10、uot; width="100%" height="100%"><tr><td><u:Me nuTag displayType="2" /></td></tr><tr><td height="100%" class="NC-PANEL-NSCROLL"><!定義單據模板控件顯示位置,本例單據模板為管理型,其他類型的標簽詳見ufida.tld標簽描述文件-><u:Ma nageBill li
11、stPositio n="100%"/></td></tr></table></body></d:View></body></html>1.3.7. 建立后臺控制類新建視圖模型后臺控制類,由于本例中開發的是帶審批流的自助界面,具體的后臺控制類應繼承。對于后臺控制類的基本配置如下:public class LeavePla nOne exte nds PFViewModel *返回單據VO*/Overridepublic AggregatedValueObject toBillAggVO
12、() 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.setChildre nV O(aggVO.getChildre nV O();return vo;/*返回對應的單據模板的編碼*/Overridepublic Stri ng getBillType() / TODO Auto-ge nerated me
13、thod stub return "LP01"Overridepublic String getBusiType() / TODO Auto-ge nerated method stub return n ull;/* *用于設置表頭對應的 VO對象 */ Override public Classv? exte nds SuperVO> getHeadClass() / TODO Auto-ge nerated method stub/* *用于設置表體對應的 VO對象 */ Overrideprotected void in itBodyTabCodes() /
14、TODO Auto-ge nerated method stub視圖模型后臺控制類定義完成后,需要將后臺控制類與對應的視圖模型進行關聯,通過設置ViewModel的clazz屬性來實現關聯。138.功能節點注冊通過NC業務系統【功能注冊】節點注冊功能節點,在功能注冊時,需要注意幾點。功能性質:一定要選擇“輕量級Web節點”。對應文件名或控制名:為對應的JSP文件。對新增的自助節點分配權限,分配時一定要將該節點分配給相應的自助角色才行,產品自帶的自助角色有四種,在本例中分配給“自助角色-員工“這個角色。提示:如果在權限分配時,在相應的節點樹位置看不到剛剛注冊的功能節點,需到【自定義菜單】節點對節
15、點樹的結構進行調整。到這里自助模塊開發單據界面的大致框架就搭建起來了,現在在開發環境下重啟NC中間件,登錄自助界面就可以看到剛剛在自助節點開發的輕量級Web節點了。重要提示:對于在第步中生成的JSP文件保存在Eclipse工程項目中,此時登錄自助模塊, 打開剛剛注冊的自助節點時,是無法加載到對應的 JSP頁面的,需要將該JSP頁面按照相應的目錄結構拷貝到NCHOM的nchomehotwebshrss 目錄下,Web容器在加載JSP頁面時,才能夠將該 JSP頁 面加載到容器中。單擊“休假計劃練習一”輕量級Web節點,即可進入對應的 JSP界面。1.3.9. 注冊功能按鈕輕量級單據界面,是沒有對應
16、的功能按鈕的,如果需要在畫面中添加功能按鈕,必須在NC業務系統【功能注冊】節點注冊相應的功能按鈕。注冊完功能節點后,需要在后臺控制類中重寫父類的in itBillState(Butto nFactorybutto nFactory2)方法,以控制每個界面狀態按鈕的顯示情況。需要先定義自己的按鈕工廠類,該類需繼承自助服務底層按鈕工廠類會自帶常用的功能按鈕,對于不在自帶常用的功能按鈕集合內的按鈕,.對于本例中,“審批意見”為自定義按鈕,需要自己定義按鈕工廠類,如下:exte ndsButt onF actory in sta nee;public classLeavePla nOn eBt nF
17、actoryprivate staticButt onF actory/* 附件按鈕編碼*/public static finalStr ingAPPROVE_NOTE = "approve note"private LeavePla nOn eBt nF actory() Comma nd類名,響應的js和java 方法/格式:按鈕內碼,和注冊中相同的中文名稱,響應的 名,要顯示的圖標名稱,tooltips 提示String butto ns = APPROVE_NOTE,"審批意見 “,null , "onApproveNote",“una
18、pprove.gif""查看審批意見“;/系統自帶的按鈕信息是以二位數組的形式存放,/在自定義按鈕是按照數組的格式定義并添加到二位數組中即可super . strButtonlnfos=(String)ArrayUtils.addAll ( super . strButtonlnfos, buttons);public static Butt onF actory get In sta nce() if ( instanee= null ) in sta nee= new LeavePla nOn eBt nF aetory();retur nin sta nee;自定義按
19、鈕的工廠類定義后,就需要在ViewModel的后臺控制類中重寫父類的initBillState()方法,以控制具體畫面狀態下按鈕的顯示情況以及激活情況。/*初始化該單據的所有狀態,并且要設置好按鈕在該狀態下的可見、可用狀態*/Overrideproteeted voidin itBillState(Butto nF aetory butt onF aetory2) /TODO Auto-ge nerated method stub/定義單據初始化狀態BillState billstate =new BillState(BillState./定義該狀態顯示的按鈕組billstate.addVis
20、ibleBt ns(new Stri ng Butt onF aetory.SEARCH,Butt onF aetory.NEW,Butt onF aetory.EDIT ,Butt onF aetory.DELETE,Butt onF aetory.SUBMIT ,Butt onF aetory.CALLBACK ,Butt onF aetory.APPROVE,Butt onF aetory.UNAPPROVE,LeavePla nOn eBt nFactory.APPROVE);/定義該狀態激活的按鈕組billstate.addE nableBt ns(new Strin g Butt
21、onF aetory.SEARCH,Butt onF aetory.NEW,Butt onF aetory.EDIT ,Butt onF aetory.DELETE,Butt onF aetory.SUBMIT ,Butt onF aetory.CALLBACK ,Butt onF aetory.APPROVE,Butt onF aetory.UNAPPROVE,LeavePla nOn eBt nF actory.NOTESTATE_INIT );APPROVE NOTE);/將增加的單據狀態添加this .addBillState(billstate);LeavePla nOn eBt n
22、F actory.getInstanee();super .initBillState(在后臺控制類定義完單據的狀態以及對應狀態按鈕組顯示情況后,需要在視圖層控制對象 ViewModel 加載時,添加相應的 JS 事件,以控制單據畫面初始化時所屬的狀態。到此,重啟中間件,重新登錄自助界面,即可看到單據初始化狀態顯示的按鈕組。提示: 對于在后臺控制類中增加了新的方法,或者引用了新定義的類時,才需要重啟中間件,其他情況 無需重啟中間件。對于在視圖控制對象 ViewModel中添加JS腳本后,首先需要保證 Eclipse工程中對應的XML文 件與在 Dorado 工具對 ViewModel 的配置保
23、持同步;其次,再重新登錄自助界面,如果發現新增加的JS腳本沒有起作用,這時要將IE的緩存清除,以保證能夠加載到最新的JS腳本(在java Web開發中經常會這樣去做)。1.3.10. 按鈕處理事件的定義通過以上 9 步,即可完成在自助服務下單據的界面模型的開發,接下來重要的工作就是定義單據界面中按鈕的處理事件。組件Comman的method屬性用于指定調用服務器接受類的指定方法的方法名(默認為視圖模型中的方法名,即視圖 ViewModel 的關聯的后臺控制類中的方法 ) 。對于按鈕在前臺頁面響應事件,是通過定義JS來實現的,具體響應的JS函數的名稱在后臺按鈕工廠類中已經定義。/格式:按鈕內碼,
24、和注冊中相同的中文名稱,響應的Comma nd類名,響應的js和java方法名,要顯示的圖標名稱, tooltips 提示String buttons = APPROVE_NOTE, " 審批意見 " , null , "onApproveNote" , "unapprove.gif"" 查看審批意見 " ;如自定義的按鈕“審批意見”在前臺頁面響應的JS函數的方法應為functiononApproveNote() .1.3.11. 單據屬性設置對于帶審批流的單據,需要在UAP平臺中進行一些審批流相關屬性的設置,這與
25、NC5.2中的設置類似,具體的設置步驟如下 :第一步:單據類型定義 如上圖,輸入“類型代碼”、“類型名稱”、“節點編號”,完成后點擊“保存”按鈕保存定義 的單據類型信息。(其中:此處定義的“類型代碼”最好和單據模板定義步驟定義的單據模板編碼一 致,否則在后面會遇到意想不到的問題。)第二步:單據號設置如上圖,設置單據號的生成規則。第三步:單據動作定義第四步:單據動作腳本設置如上圖, 在此處對于單據的動作腳本進行編輯, 具體的腳本可以直接從其他定義的單據動作腳本 拷貝過來即可 (因為筆者沒有找到在何處去自動生成系統默認的單據動作腳本, 只能通過此方法來實 現)。在編輯完動作腳本后,在NCHOM對應
26、的模塊目錄下的 META-INFvarsource 會生成相應的動作腳本類。第五步:單據V0對照具體的V0對照關系設置如下圖:附錄:輕量級參照實現方式:對于自助開發下的單據中字段的參照與業務系統中有所不同,具體設置字段為參照的步驟如下: 第一步: 在單據模板中,將參照的字段的數據類型設置為參照,參照類型設置具體的參照編碼, 如下圖。第二步:配置具體的參照,參照的配置是通過 XML文件來配置的,參照主要有三種展現類型:GRID TREE TREEGRID 具體的配置請見當前工程的 homerefbusiness'RefLeaveltemGrid.xml文件,為休假類別參照的 XML配置文
27、件。第三步: 設置具體的參照配置文件與參照類型編碼的映射關系,對于映射關系的設置,目前還沒 有具體的配置界面,只能夠通過在后臺表 hrss_ref_map 表中去配置具體的映射關系,下圖為休假類 別參照對照配置。審批流配置注意點要想在自助模塊順利使用審批流,需要在工程中做如下配置:第一步: 設置和審批有關的字段的對應關系, 通過集成 PFConfig 類來配置具體的字段對應關系。(見 .LeavePlanOneConfig )第二步:配置Hrss單據信息,通過實現接口來進行配置。(詳見第三步: 配置 Hrss 單據注冊類,用于將自定義的單據信息注冊到 Hrss 單據集中。public clas
28、s LeavePlanPfConfigExtImpl implements IHrssPfConfigExt public IConfigMeta getPfConfigExt() / TODO Auto-generated method stub return new IConfigMeta new LeavePlanConfigMeta(),new LeavePlanOneMeta();在定義完具體的后臺注冊實現類后,需要在UPM文件(hr_hrss.upm )中進行配置。第四步: 配置審批流后臺處理類。 第五步: 定義審批流?!疤峤弧眲幼靼粹o特別說明:1、如果在 ViewModel 的后
29、臺控制類中,重寫 AggregatedValueObject toBillAggVO() 方法返回 的類型為HYBillVO,則需要在聚合 V0(AggLeaveplanHVO)定義相關的BillField 接口實現類,以 配置具體的在審批流字段的具體對應關系。2、如果重寫AggregatedValueObject toBillAggVO() 方法返回的類型為 HRAggVO則需要重寫” 提交“按鈕的動作腳本需要重新定義,由具體的審批流后臺實現類完成具體提交字段的更新。輕量級查詢模板實現方式第一步:定義查詢控件MarmotQuery。屬性設置分別如下,其中category屬性設置的為對應的后 臺查詢模板的 ID。第二步:注冊查詢模板信息。由于自助模塊查詢
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論