HR自助服務單據開發快速入門_第1頁
HR自助服務單據開發快速入門_第2頁
HR自助服務單據開發快速入門_第3頁
HR自助服務單據開發快速入門_第4頁
HR自助服務單據開發快速入門_第5頁
已閱讀5頁,還剩27頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、HR自助服務單據開發快速入門用友軟件股份有限公司北京分公司客戶開發部2011年3月目 錄1、NC自助服務單據開發31.1.總體概述31.2.開發環境搭建31.2.1.配置Java運行時環境31.2.2.配置JAVA_HOME環境變量31.2.3.下載并解開Dorado5開發包41.2.4.安裝Dorado 541.2.5.Eclipse開發環境搭建61.2.6.搭建項目工程61.3.自助單據開發流程71.3.1.建立數據模型71.3.2.導入數據字典81.3.3.單據模板初始化91.3.4.導出Java源代碼101.3.5.建立視圖層ViewModel。111.3.6.生成JSP頁面131.3

2、.7.建立后臺控制類151.3.8.功能節點注冊171.3.9.注冊功能按鈕201.3.10.按鈕處理事件的定義231.3.11.單據屬性設置24附錄:27輕量級參照實現方式:27審批流配置注意點27輕量級查詢模板實現方式29按鈕動作前后臺交互示例:31增加按鈕動作處理311、 NC自助服務單據開發1.1. 總體概述NC自助服務模塊使用的是BSTEK公司推出的Dorado 5展現中間件技術。通過將Dorado和NC-UAP平臺的整合,可以在自助服務中引用NC-UAP平臺中的單據模板 ,提高了在自助下開發單據的效率。Dorado技術詳細介紹請見BSTEK公司官網:1.2. 開發環境搭建1.2.1

3、. 配置Java運行時環境通過Sun官網獲取JDK開發包,下載的開發包解壓縮到本地非中文名稱的目錄中;也可以直接使用NCHOME中自帶的JDK開發包,如本機中NCHOME的JDK開發包D:nchome56nchomeufjdk1.2.2. 配置JAVA_HOME環境變量對于環境變量的配置就不用多說了,本機的配置如下:1.2.3. 下載并解開Dorado5開發包通過如下的地址獲取dorado5的開發包:將下載的zip文件解壓縮到本地非中文名稱的目錄中,如本機的E:dorado5.21.2.4. 安裝Dorado 5在確保系統已經配置過JAVA_HOME的前提下,并雙擊運行dorado 5開發包中

4、的setup.bat文件,該文件進行dorado5開發包的文件初始化工作。(特別聲明:綠色食品,setup.bat的所有操作都是針對開發包所在的目錄作初始化工作,不會對該目錄之外的內容進行修改。)首先會打開一個命令控制臺,要你確認是否執行初始化的工作:按任意鍵繼續初始化工作:這時候系統會在桌面上自動的生成一個dordo5 studio的快捷啟動圖表,并在控制臺中出現讓你選擇是否直接啟動dorado的集成開發環境,也就是dorado5的studio。以下統稱studio。如果選擇y并按回車鍵確認打開studio,可以看到下圖:1.2.5. Eclipse開發環境搭建Eclipse開發環境的搭建在

5、此就不做介紹了,主要的環境有NC56、eclipse開發環境、nc56插件。1.2.6. 搭建項目工程對于自助服務的開發,需要同時用到Eclipse和Dorado工程,對于項目工程需要將Eclipse工程目錄和Dorado工程目錄整合到一塊,以便對在兩個開發工具對同一工程進行開發。本例中使用的開發工程為NC-HR自助模塊的源開發工程HR_WEB5.6_dev。在Eclipse中導入HR_WEB5.6_dev工程,如下:在Dorado集成開發平臺中導入HR_WEB5.6_dev工程如下:1.3. 自助單據開發流程在自助服務下開發的JSP界面,可將NC-UAP平臺下的單據整合到自助服務中,這是通過

6、將單據模板信息解析成Dorado控件來實現的,由于是根據單據模板信息表中的數據進行解析的,對于用元數據制作的單據模板,在自助服務界面目前還沒有做到很好的兼容,解析過程中還沒有增加對元數據的解析,故目前自助服務只能夠對用數據字典制作的單據模板進行正確的解析,下面介紹在NC56中,如何用數據字典在自助服務下開發輕量級單據界面。1.3.1. 建立數據模型根據具體的業務在PowerDesigner中建立對應的業務模型,本例中介紹的為休假計劃的業務。1.3.2. 導入數據字典具體的數據字典導入在【客戶化】【二次開發工具】【系統管理工具】【數據字典管理】節點來實現導入。1.3.3. 單據模板初始化在完成數

7、據字典導入之后,就可以在【客戶化】【二次開發工具】【模板管理】【單據模板初始化】節點通過數據字典制作相應的單據模板,具體的與NC5.2初始化單據模板一致。本例初始化完的單據模板卡片界面顯示如下:1.3.4. 導出Java源代碼通過UAP集成開發平臺導出Java源代碼。在通過數據源生成VO代碼之前,一定要保證在數據庫中將數據模型對應的表結構建立,否則在選擇數據庫表處看不到單據對應的數據庫表,具體的建表SQL腳本可以在建模時,通過PowerDesigner生成。選擇完對應的數據庫表,設置對應的VO信息以及對應到文件導出目錄(%當前eclipse工程% / src / public 包)后,點擊“確

8、定”按鈕,即可完成對VO的導出。1.3.5. 建立視圖層ViewModel。ViewModel是一種用于封裝界面邏輯和操作邏輯的對象。即視圖中包含哪些數據、這些數據以什么方式展現、視圖中包含哪些控件、這些控件會激發什么操作等等。我們可以把ViewModel看作是Dataset和各種控件的容器。ViewModel一般不用于定義各種控件最終在顯示的布局,控件布局應通過其它方式進行定義。在通常情況下,我們利用JSP來完成對ViewModel中定義的控件進行布局。在Dorado集成開發平臺中打開項目工程,在對應的目錄下,右鍵鼠標,如下:選擇新建“Module“,進入ViewModel新建向導。選擇通用

9、的視圖模型對象(Common ViewModel)即可,點擊“OK”,輸入視圖模型對象名稱,即會在相應的目錄下生成一個視圖模型對象的XML配置文件,配置文件名稱為輸入對象名稱.view.xml,如本例在新建視圖模型對象的時候輸入的名稱為LeavePlanOne,則生成的視圖模型對象的名稱為:LeavePlanOne.view.xml。1.3.6. 生成JSP頁面對于自助JSP頁面是通過ViewModel生成的,具體生成JSP的操作如下圖所示:選擇相應的路徑以保存生成的JSP文件。再生成JSP頁面之后,需要對生成的JSP頁面先進行簡單的布局配置,如果需要配置其他在ViewModel中定義的控件顯

10、示,在定義完控件后再做詳細的頁面布局。對于使用NC-UAP平臺的單據模板時,對應管理型界面的JSP界面配置如下:<% page contentType="text/html; charset=UTF-8" %><% taglib uri="" prefix="d" %><!引用用友在自助下自定義的標簽庫-><% taglib uri="" prefix="u" %><html><head><title></

11、title></head><body><!-config對應的為ViewModel配置文件 -> <d:View config="nc.bs.hrss.test.leaveplan.LeavePlanOne"> <body class="NC-BODY-NSCROLL-NPAD"><table cellpadding="0" cellspacing="0" width="100%" height="100%&quo

12、t;><tr><td><u:MenuTag displayType="2" /></td></tr><tr><td height="100%" class="NC-PANEL-NSCROLL"><!-定義單據模板控件顯示位置,本例單據模板為管理型,其他類型的標簽詳見ufida.tld標簽描述文件-><u:ManageBill listPosition="100%"/></td></tr

13、></table> </body> </d:View></body></html>1.3.7. 建立后臺控制類新建視圖模型后臺控制類,由于本例中開發的是帶審批流的自助界面,具體的后臺控制類應繼承nc.bs.hrss.pf.PFViewModel。對于后臺控制類的基本配置如下:package nc.bs.hrss.test.leaveplan;import nc.bs.hrss.pf.PFViewModel;import nc.vo.hr.tools.pub.HRAggVO;import nc.vo.hrss.test.leave

14、plan.AggLeaveplanHVO;import nc.vo.pub.AggregatedValueObject;import nc.vo.pub.SuperVO;public class LeavePlanOne extends PFViewModel /* * 返回單據VO */Overridepublic AggregatedValueObject toBillAggVO() throws Exception / TODO Auto-generated method stubHRAggVO aggVO = this.toAggVO();AggLeaveplanHVO vo = ne

15、w AggLeaveplanHVO();vo.setParentVO(aggVO.getParentVO();vo.setChildrenVO(aggVO.getChildrenVO();return vo;/* * 返回對應的單據模板的編碼 */Overridepublic String getBillType() / TODO Auto-generated method stubreturn "LP01"Overridepublic String getBusiType() / TODO Auto-generated method stubreturn null;/*

16、* 用于設置表頭對應的VO對象 */Overridepublic Class<? extends SuperVO> getHeadClass() / TODO Auto-generated method stubreturn nc.vo.hrss.test.leaveplan.LeaveplanHVO.class;/* * 用于設置表體對應的VO對象 */Overrideprotected void initBodyTabCodes() / TODO Auto-generated method stubsuper.addBodyTabCodeClass("tbm_leav

17、eplan_b", nc.vo.hrss.test.leaveplan.LeaveplanBVO.class);視圖模型后臺控制類定義完成后,需要將后臺控制類與對應的視圖模型進行關聯,通過設置ViewModel的clazz屬性來實現關聯。1.3.8. 功能節點注冊通過NC業務系統【功能注冊】節點注冊功能節點,在功能注冊時,需要注意幾點。l 功能性質:一定要選擇“輕量級Web節點”。l 對應文件名或控制名:為對應的JSP文件。對新增的自助節點分配權限,分配時一定要將該節點分配給相應的自助角色才行,產品自帶的自助角色有四種,在本例中分配給“自助角色-員工“這個角色。提示:如果在權限分配時

18、,在相應的節點樹位置看不到剛剛注冊的功能節點,需到【自定義菜單】節點對節點樹的結構進行調整。到這里自助模塊開發單據界面的大致框架就搭建起來了,現在在開發環境下重啟NC中間件,登錄自助界面就可以看到剛剛在自助節點開發的輕量級Web節點了。重要提示:對于在第1.3.6步中生成的JSP文件保存在Eclipse工程項目中,此時登錄自助模塊,打開剛剛注冊的自助節點時,是無法加載到對應的JSP頁面的,需要將該JSP頁面按照相應的目錄結構拷貝到NCHOME的nchomehotwebshrss目錄下,Web容器在加載JSP頁面時,才能夠將該JSP頁面加載到容器中。單擊“休假計劃練習一”輕量級Web節點,即可進

19、入對應的JSP界面。1.3.9. 注冊功能按鈕在1.3.8中打開的輕量級單據界面,是沒有對應的功能按鈕的,如果需要在畫面中添加功能按鈕,必須在NC業務系統【功能注冊】節點注冊相應的功能按鈕。注冊完功能節點后,需要在后臺控制類中重寫父類的initBillState(ButtonFactory buttonFactory2) 方法,以控制每個界面狀態按鈕的顯示情況。自助服務底層按鈕工廠類會自帶常用的功能按鈕,對于不在自帶常用的功能按鈕集合內的按鈕,需要先定義自己的按鈕工廠類,該類需繼承nc.bs.hrss.bill.ButtonFactory.對于本例中,“審批意見”為自定義按鈕,需要自己定義按鈕

20、工廠類,如下:public class LeavePlanOneBtnFactory extends ButtonFactory private static ButtonFactory instance;/* 附件 按鈕編碼 */public static final String APPROVE_NOTE = "approvenote"private LeavePlanOneBtnFactory() /格式:按鈕內碼,和注冊中相同的中文名稱,響應的Command類名,響應的js和java方法名,要顯示的圖標名稱,tooltips提示String buttons = AP

21、PROVE_NOTE, "審批意見", null, "onApproveNote", "unapprove.gif", "查看審批意見 " ;/系統自帶的按鈕信息是以二位數組的形式存放,/在自定義按鈕是按照數組的格式定義并添加到二位數組中即可super.strButtonInfos = (String)ArrayUtils.addAll(super.strButtonInfos, buttons);public static ButtonFactory getInstance() if (instance = nu

22、ll) instance = new LeavePlanOneBtnFactory();return instance;自定義按鈕的工廠類定義后,就需要在ViewModel的后臺控制類中重寫父類的initBillState()方法,以控制具體畫面狀態下按鈕的顯示情況以及激活情況。/* * 初始化該單據的所有狀態,并且要設置好按鈕在該狀態下的可見、可用狀態 */Overrideprotected void initBillState(ButtonFactory buttonFactory2) / TODO Auto-generated method stub/定義單據初始化狀態BillState

23、 billstate = new BillState(BillState.STATE_INIT);/定義該狀態顯示的按鈕組billstate.addVisibleBtns(new String ButtonFactory.SEARCH,ButtonFactory.NEW,ButtonFactory.EDIT,ButtonFactory.DELETE,ButtonFactory.SUBMIT,ButtonFactory.CALLBACK,ButtonFactory.APPROVE,ButtonFactory.UNAPPROVE,LeavePlanOneBtnFactory.APPROVE_NOT

24、E);/定義該狀態激活的按鈕組billstate.addEnableBtns(new String ButtonFactory.SEARCH,ButtonFactory.NEW,ButtonFactory.EDIT,ButtonFactory.DELETE,ButtonFactory.SUBMIT,ButtonFactory.CALLBACK,ButtonFactory.APPROVE,ButtonFactory.UNAPPROVE,LeavePlanOneBtnFactory.APPROVE_NOTE);/將增加的單據狀態添加this.addBillState(billstate);supe

25、r.initBillState(LeavePlanOneBtnFactory.getInstance();在后臺控制類定義完單據的狀態以及對應狀態按鈕組顯示情況后,需要在視圖層控制對象ViewModel加載時,添加相應的JS事件,以控制單據畫面初始化時所屬的狀態。到此,重啟中間件,重新登錄自助界面,即可看到單據初始化狀態顯示的按鈕組。提示:對于在后臺控制類中增加了新的方法,或者引用了新定義的類時,才需要重啟中間件,其他情況無需重啟中間件。對于在視圖控制對象ViewModel中添加JS腳本后,首先需要保證Eclipse工程中對應的XML文件與在Dorado工具對ViewModel的配置保持同步;

26、其次,再重新登錄自助界面,如果發現新增加的JS腳本沒有起作用,這時要將IE的緩存清除,以保證能夠加載到最新的JS腳本(在java Web開發中經常會這樣去做)。1.3.10. 按鈕處理事件的定義通過以上9步,即可完成在自助服務下單據的界面模型的開發,接下來重要的工作就是定義單據界面中按鈕的處理事件。在Dorado框架中,前臺界面與后臺處理類的交互是通過Command組件來完成的,常用的有UpdateCommand、RPCCommand.(其他的本人也沒用過,組建詳細使用說明請見dorado 5 組件詳解 v1.1.doc)組件Command的method屬性用于指定調用服務器接受類的指定方法的

27、方法名(默認為視圖模型中的方法名,即視圖ViewModel的關聯的后臺控制類中的方法)。對于按鈕在前臺頁面響應事件,是通過定義JS來實現的,具體響應的JS函數的名稱在后臺按鈕工廠類中已經定義。/格式:按鈕內碼,和注冊中相同的中文名稱,響應的Command類名,響應的js和java方法名,要顯示的圖標名稱,tooltips提示String buttons = APPROVE_NOTE, "審批意見", null, "onApproveNote", "unapprove.gif", "查看審批意見 " ;如自定義的按鈕

28、“審批意見”在前臺頁面響應的JS函數的方法應為function onApproveNote().1.3.11. 單據屬性設置對于帶審批流的單據,需要在UAP平臺中進行一些審批流相關屬性的設置,這與NC5.2中的設置類似,具體的設置步驟如下:第一步:單據類型定義如上圖,輸入“類型代碼”、“類型名稱”、“節點編號”,完成后點擊“保存”按鈕保存定義的單據類型信息。(其中:此處定義的“類型代碼”最好和單據模板定義步驟定義的單據模板編碼一致,否則在后面會遇到意想不到的問題。)第二步:單據號設置如上圖,設置單據號的生成規則。第三步:單據動作定義第四步:單據動作腳本設置如上圖,在此處對于單據的動作腳本進行編

29、輯,具體的腳本可以直接從其他定義的單據動作腳本拷貝過來即可(因為筆者沒有找到在何處去自動生成系統默認的單據動作腳本,只能通過此方法來實現)。在編輯完動作腳本后,在NCHOME對應的模塊目錄下的META-INFvarsource會生成相應的動作腳本類。第五步:單據VO對照具體的VO對照關系設置如下圖:附錄:輕量級參照實現方式:對于自助開發下的單據中字段的參照與業務系統中有所不同,具體設置字段為參照的步驟如下:第一步:在單據模板中,將參照的字段的數據類型設置為參照,參照類型設置具體的參照編碼,如下圖。第二步:配置具體的參照,參照的配置是通過XML文件來配置的,參照主要有三種展現類型:GRID、TR

30、EE、TREEGRID。具體的配置請見當前工程的homerefbusinessRefLeaveItemGrid.xml文件,為休假類別參照的XML配置文件。第三步:設置具體的參照配置文件與參照類型編碼的映射關系,對于映射關系的設置,目前還沒有具體的配置界面,只能夠通過在后臺表hrss_ref_map表中去配置具體的映射關系,下圖為休假類別參照對照配置。審批流配置注意點要想在自助模塊順利使用審批流,需要在工程中做如下配置:第一步:設置和審批有關的字段的對應關系,通過集成PFConfig類來配置具體的字段對應關系。(見nc.vo.hrss.test.leaveplan.LeavePlanOneCo

31、nfig)第二步:配置 Hrss 單據信息,通過實現nc.itf.hrss.pf.IConfigMeta接口來進行配置。(詳見nc.bs.hrss.test.leaveplan.LeavePlanOneMeta)第三步:配置Hrss單據注冊類,用于將自定義的單據信息注冊到Hrss單據集中。package nc.impl.hrss.ta.leaveplan;import nc.bs.hrss.ta.leaveplan.LeavePlanConfigMeta;import nc.bs.hrss.test.leaveplan.LeavePlanOneMeta;import nc.itf.hrss.p

32、f.IConfigMeta;import nc.itf.hrss.pf.IHrssPfConfigExt;public class LeavePlanPfConfigExtImpl implements IHrssPfConfigExt public IConfigMeta getPfConfigExt() / TODO Auto-generated method stubreturn new IConfigMeta new LeavePlanConfigMeta(),new LeavePlanOneMeta();在定義完具體的后臺注冊實現類后,需要在UPM文件(hr_hrss.upm)中進行配置。第四步:配置審批流后臺處理類。第五步:定義審批流。“提交”動作按鈕特別說明:1、如果在ViewModel的后臺控制類中,重寫AggregatedValueObject toBillAggVO()方法返回的類型為HYBillVO,則需要在聚合VO(AggLeaveplanHVO)定義相關的nc.vo.trade.field.IBillField接口實現類,以配置具體的在審批流字段的具體對應關系。2、如果重寫AggregatedValueObject toBillAggVO()方法返回的類型為HRAggVO,則需要重寫”

溫馨提示

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

評論

0/150

提交評論