




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、HR自助效勞單據(jù)開發(fā)快速入門用友軟件股份北京分公司客戶開發(fā)部2022年3月目 錄1、NC自助效勞單據(jù)開發(fā)31.1.總體概述31.2.開發(fā)環(huán)境搭建3配置Java運行時環(huán)境3配置JAVA_HOME環(huán)境變量3下載并解開Dorado5開發(fā)包4安裝Dorado 54Eclipse開發(fā)環(huán)境搭建6搭建工程工程61.3.自助單據(jù)開發(fā)流程7建立數(shù)據(jù)模型7導入數(shù)據(jù)字典8單據(jù)模板初始化9導出Java源代碼10建立視圖層ViewModel。11生成JSP頁面13建立后臺控制類15功能節(jié)點注冊17注冊功能按鈕20按鈕處理事件的定義23單據(jù)屬性設置24附錄:27輕量級參照實現(xiàn)方式:27審批流配置注意點27輕量級查詢模板實
2、現(xiàn)方式29按鈕動作前后臺交互例如:31增加按鈕動作處理311、 NC自助效勞單據(jù)開發(fā)1.1. 總體概述NC自助效勞模塊使用的是BSTEK公司推出的Dorado 5展現(xiàn)中間件技術。通過將Dorado和NC-UAP平臺的整合,可以在自助效勞中引用NC-UAP平臺中的單據(jù)模板 ,提高了在自助下開發(fā)單據(jù)的效率。Dorado技術詳細介紹請見BSTEK公司官網(wǎng):1.2. 開發(fā)環(huán)境搭建1.2.1. 配置Java運行時環(huán)境通過Sun官網(wǎng)獲取JDK開發(fā)包,下載的開發(fā)包解壓縮到本地非中文名稱的目錄中;也可以直接使用NCHOME中自帶的JDK開發(fā)包,如本機中NCHOME的JDK開發(fā)包D:nchome56nchome
3、ufjdk1.2.2. 配置JAVA_HOME環(huán)境變量對于環(huán)境變量的配置就不用多說了,本機的配置如下:1.2.3. 下載并解開Dorado5開發(fā)包通過如下的地址獲取dorado5的開發(fā)包:將下載的zip文件解壓縮到本地非中文名稱的目錄中,如本機的E:dorado5.21.2.4. 安裝Dorado 5在確保系統(tǒng)已經(jīng)配置過JAVA_HOME的前提下,并雙擊運行dorado 5開發(fā)包中的setup.bat文件,該文件進行dorado5開發(fā)包的文件初始化工作。特別聲明:綠色食品,setup.bat的所有操作都是針對開發(fā)包所在的目錄作初始化工作,不會對該目錄之外的內(nèi)容進行修改。首先會翻開一個命令控制臺
4、,要你確認是否執(zhí)行初始化的工作:按任意鍵繼續(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工程目錄和Dora
5、do工程目錄整合到一塊,以便對在兩個開發(fā)工具對同一工程進行開發(fā)。本例中使用的開發(fā)工程為NC-HR自助模塊的源開發(fā)工程HR_WEB5.6_dev。在Eclipse中導入HR_WEB5.6_dev工程,如下:在Dorado集成開發(fā)平臺中導入HR_WEB5.6_dev工程如下:1.3. 自助單據(jù)開發(fā)流程在自助效勞下開發(fā)的JSP界面,可將NC-UAP平臺下的單據(jù)整合到自助效勞中,這是通過將單據(jù)模板信息解析成Dorado控件來實現(xiàn)的,由于是根據(jù)單據(jù)模板信息表中的數(shù)據(jù)進行解析的,對于用元數(shù)據(jù)制作的單據(jù)模板,在自助效勞界面目前還沒有做到很好的兼容,解析過程中還沒有增加對元數(shù)據(jù)的解析,故目前自助效勞只能夠對用
6、數(shù)據(jù)字典制作的單據(jù)模板進行正確的解析,下面介紹在NC56中,如何用數(shù)據(jù)字典在自助效勞下開發(fā)輕量級單據(jù)界面。1.3.1. 建立數(shù)據(jù)模型根據(jù)具體的業(yè)務在PowerDesigner中建立對應的業(yè)務模型,本例中介紹的為休假方案的業(yè)務。1.3.2. 導入數(shù)據(jù)字典具體的數(shù)據(jù)字典導入在【客戶化】【二次開發(fā)工具】【系統(tǒng)管理工具】【數(shù)據(jù)字典管理】節(jié)點來實現(xiàn)導入。1.3.3. 單據(jù)模板初始化在完成數(shù)據(jù)字典導入之后,就可以在【客戶化】【二次開發(fā)工具】【模板管理】【單據(jù)模板初始化】節(jié)點通過數(shù)據(jù)字典制作相應的單據(jù)模板,具體的與NC5.2初始化單據(jù)模板一致。本例初始化完的單據(jù)模板卡片界面顯示如下:1.3.4. 導出Jav
7、a源代碼通過UAP集成開發(fā)平臺導出Java源代碼。在通過數(shù)據(jù)源生成VO代碼之前,一定要保證在數(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ù)以什么方式展現(xiàn)、視圖中包含哪些控件、這些控件會激發(fā)什么操作
8、等等。我們可以把ViewModel看作是Dataset和各種控件的容器。ViewModel一般不用于定義各種控件最終在顯示的布局,控件布局應通過其它方式進行定義。在通常情況下,我們利用JSP來完成對ViewModel中定義的控件進行布局。在Dorado集成開發(fā)平臺中翻開工程工程,在對應的目錄下,右鍵鼠標,如下:選擇新建“Module“,進入ViewModel新建向導。選擇通用的視圖模型對象Common ViewModel即可,點擊“OK1.3.6. 生成JSP頁面對于自助JSP頁面是通過ViewModel生成的,具體生成JSP的操作如下列圖所示:選擇相應的路徑以保存生成的JSP文件。再生成JS
9、P頁面之后,需要對生成的JSP頁面先進行簡單的布局配置,如果需要配置其他在ViewModel中定義的控件顯示,在定義完控件后再做詳細的頁面布局。對于使用NC-UAP平臺的單據(jù)模板時,對應管理型界面的JSP界面配置如下: 1.3.7. 建立后臺控制類新建視圖模型后臺控制類,由于本例中開發(fā)的是帶審批流的自助界面,具體的后臺控制類應繼承。對于后臺控制類的根本配置如下:public class LeavePlanOne extends PFViewModel /* * 返回單據(jù)VO */Overridepublic AggregatedValueObject toBillAggVO() throws
10、Exception / TODO Auto-generated method stubHRAggVO aggVO = this.toAggVO();AggLeaveplanHVO vo = new AggLeaveplanHVO();vo.setParentVO(aggVO.getParentVO();vo.setChildrenVO(aggVO.getChildrenVO();return vo;/* * 返回對應的單據(jù)模板的編碼 */Overridepublic String getBillType() / TODO Auto-generated method stubreturn LP0
11、1;Overridepublic String getBusiType() / TODO Auto-generated method stubreturn null;/* * 用于設置表頭對應的VO對象 */Overridepublic Class getHeadClass() / TODO Auto-generated method stub/* * 用于設置表體對應的VO對象 */Overrideprotected void initBodyTabCodes() / TODO Auto-generated method stub視圖模型后臺控制類定義完成后,需要將后臺控制類與對應的視圖模型
12、進行關聯(lián),通過設置ViewModel的clazz屬性來實現(xiàn)關聯(lián)。1.3.8. 功能節(jié)點注冊通過NC業(yè)務系統(tǒng)【功能注冊】節(jié)點注冊功能節(jié)點,在功能注冊時,需要注意幾點。l 功能性質:一定要選擇“輕量級Web節(jié)點。l 對應文件名或控制名:為對應的JSP文件。對新增的自助節(jié)點分配權限,分配時一定要將該節(jié)點分配給相應的自助角色才行,產(chǎn)品自帶的自助角色有四種,在本例中分配給“自助角色-員工“這個角色。提示:如果在權限分配時,在相應的節(jié)點樹位置看不到剛剛注冊的功能節(jié)點,需到【自定義菜單】節(jié)點對節(jié)點樹的結構進行調(diào)整。到這里自助模塊開發(fā)單據(jù)界面的大致框架就搭建起來了,現(xiàn)在在開發(fā)環(huán)境下重啟NC中間件,登錄自助界面
13、就可以看到剛剛在自助節(jié)點開發(fā)的輕量級Web節(jié)點了。重要提示:對于在第步中生成的JSP文件保存在Eclipse工程工程中,此時登錄自助模塊,翻開剛剛注冊的自助節(jié)點時,是無法加載到對應的JSP頁面的,需要將該JSP頁面按照相應的目錄結構拷貝到NCHOME的nchomehotwebshrss目錄下,Web容器在加載JSP頁面時,才能夠將該JSP頁面加載到容器中。單擊“休假方案練習一輕量級Web節(jié)點,即可進入對應的JSP界面。1.3.9. 注冊功能按鈕輕量級單據(jù)界面,是沒有對應的功能按鈕的,如果需要在畫面中添加功能按鈕,必須在NC業(yè)務系統(tǒng)【功能注冊】節(jié)點注冊相應的功能按鈕。注冊完功能節(jié)點后,需要在后臺
14、控制類中重寫父類的initBillState(ButtonFactory buttonFactory2) 方法,以控制每個界面狀態(tài)按鈕的顯示情況。自助效勞底層按鈕工廠類會自帶常用的功能按鈕,對于不在自帶常用的功能按鈕集合內(nèi)的按鈕,需要先定義自己的按鈕工廠類,該類需繼承.對于本例中,“審批意見為自定義按鈕,需要自己定義按鈕工廠類,如下:public class LeavePlanOneBtnFactory extends ButtonFactory private static ButtonFactory instance;/* 附件 按鈕編碼 */public static final Str
15、ing APPROVE_NOTE = approvenote;private LeavePlanOneBtnFactory() /格式:按鈕內(nèi)碼,和注冊中相同的中文名稱,響應的Command類名,響應的js和java方法名,要顯示的圖標名稱,tooltips提示String buttons = APPROVE_NOTE, 審批意見, null, onApproveNote, unapprove.gif, 查看審批意見 ;/系統(tǒng)自帶的按鈕信息是以二位數(shù)組的形式存放,/在自定義按鈕是按照數(shù)組的格式定義并添加到二位數(shù)組中即可super.strButtonInfos = (String)ArrayUt
16、ils.addAll(super.strButtonInfos, buttons);public static ButtonFactory getInstance() if (instance = null) instance = new LeavePlanOneBtnFactory();return instance;自定義按鈕的工廠類定義后,就需要在ViewModel的后臺控制類中重寫父類的initBillState()方法,以控制具體畫面狀態(tài)下按鈕的顯示情況以及激活情況。/* * 初始化該單據(jù)的所有狀態(tài),并且要設置好按鈕在該狀態(tài)下的可見、可用狀態(tài) */Overrideprotected
17、void initBillState(ButtonFactory buttonFactory2) / TODO Auto-generated method stub/定義單據(jù)初始化狀態(tài)BillState billstate = new BillState(BillState.STATE_INIT);/定義該狀態(tài)顯示的按鈕組billstate.addVisibleBtns(new String ButtonFactory.SEARCH,ButtonFactory.NEW,ButtonFactory.EDIT,ButtonFactory.DELETE,ButtonFactory.SUBMIT,Bu
18、ttonFactory.CALLBACK,ButtonFactory.APPROVE,ButtonFactory.UNAPPROVE,LeavePlanOneBtnFactory.APPROVE_NOTE);/定義該狀態(tài)激活的按鈕組billstate.addEnableBtns(new String ButtonFactory.SEARCH,ButtonFactory.NEW,ButtonFactory.EDIT,ButtonFactory.DELETE,ButtonFactory.SUBMIT,ButtonFactory.CALLBACK,ButtonFactory.APPROVE,Butt
19、onFactory.UNAPPROVE,LeavePlanOneBtnFactory.APPROVE_NOTE);/將增加的單據(jù)狀態(tài)添加this.addBillState(billstate);super.initBillState(LeavePlanOneBtnFactory.getInstance();在后臺控制類定義完單據(jù)的狀態(tài)以及對應狀態(tài)按鈕組顯示情況后,需要在視圖層控制對象ViewModel加載時,添加相應的JS事件,以控制單據(jù)畫面初始化時所屬的狀態(tài)。到此,重啟中間件,重新登錄自助界面,即可看到單據(jù)初始化狀態(tài)顯示的按鈕組。提示:對于在后臺控制類中增加了新的方法,或者引用了新定義的類時
20、,才需要重啟中間件,其他情況無需重啟中間件。對于在視圖控制對象ViewModel中添加JS腳本后,首先需要保證Eclipse工程中對應的XML文件與在Dorado工具對ViewModel的配置保持同步;其次,再重新登錄自助界面,如果發(fā)現(xiàn)新增加的JS腳本沒有起作用,這時要將IE的緩存去除,以保證能夠加載到最新的JS腳本在java Web開發(fā)中經(jīng)常會這樣去做。1.3.10. 按鈕處理事件的定義通過以上9步,即可完成在自助效勞下單據(jù)的界面模型的開發(fā),接下來重要的工作就是定義單據(jù)界面中按鈕的處理事件。組件Command的method屬性用于指定調(diào)用效勞器接受類的指定方法的方法名(默認為視圖模型中的方法
21、名,即視圖ViewModel的關聯(lián)的后臺控制類中的方法)。對于按鈕在前臺頁面響應事件,是通過定義JS來實現(xiàn)的,具體響應的JS函數(shù)的名稱在后臺按鈕工廠類中已經(jīng)定義。/格式:按鈕內(nèi)碼,和注冊中相同的中文名稱,響應的Command類名,響應的js和java方法名,要顯示的圖標名稱,tooltips提示String buttons = APPROVE_NOTE, 審批意見, null, onApproveNote, unapprove.gif, 查看審批意見 ;如自定義的按鈕“審批意見在前臺頁面響應的JS函數(shù)的方法應為function onApproveNote().1.3.11. 單據(jù)屬性設置對于帶
22、審批流的單據(jù),需要在UAP平臺中進行一些審批流相關屬性的設置,這與NC5.2中的設置類似,具體的設置步驟如下:第一步:單據(jù)類型定義如上圖,輸入“類型代碼、“類型名稱、“節(jié)點編號,完成后點擊“保存按鈕保存定義的單據(jù)類型信息。其中:此處定義的“類型代碼最好和單據(jù)模板定義步驟定義的單據(jù)模板編碼一致,否那么在后面會遇到意想不到的問題。第二步:單據(jù)號設置如上圖,設置單據(jù)號的生成規(guī)那么。第三步:單據(jù)動作定義第四步:單據(jù)動作腳本設置如上圖,在此處對于單據(jù)的動作腳本進行編輯,具體的腳本可以直接從其他定義的單據(jù)動作腳本拷貝過來即可因為筆者沒有找到在何處去自動生成系統(tǒng)默認的單據(jù)動作腳本,只能通過此方法來實現(xiàn)。在編
23、輯完動作腳本后,在NCHOME對應的模塊目錄下的META-INFvarsource會生成相應的動作腳本類。第五步:單據(jù)VO對照具體的VO對照關系設置如下列圖:附錄:輕量級參照實現(xiàn)方式:對于自助開發(fā)下的單據(jù)中字段的參照與業(yè)務系統(tǒng)中有所不同,具體設置字段為參照的步驟如下:第一步:在單據(jù)模板中,將參照的字段的數(shù)據(jù)類型設置為參照,參照類型設置具體的參照編碼,如下列圖。第二步:配置具體的參照,參照的配置是通過XML文件來配置的,參照主要有三種展現(xiàn)類型:GRID、TREE、TREEGRID。具體的配置請見當前工程的homerefbusinessRefLeaveItemGrid.xml文件,為休假類別參照的
24、XML配置文件。第三步:設置具體的參照配置文件與參照類型編碼的映射關系,對于映射關系的設置,目前還沒有具體的配置界面,只能夠通過在后臺表hrss_ref_map表中去配置具體的映射關系,下列圖為休假類別參照對照配置。審批流配置注意點要想在自助模塊順利使用審批流,需要在工程中做如下配置:第一步:設置和審批有關的字段的對應關系,通過集成PFConfig類來配置具體的字段對應關系。見.LeavePlanOneConfig第二步:配置 Hrss 單據(jù)信息,通過實現(xiàn)接口來進行配置。(詳見第三步:配置Hrss單據(jù)注冊類,用于將自定義的單據(jù)信息注冊到Hrss單據(jù)集中。public class LeavePl
25、anPfConfigExtImpl implements IHrssPfConfigExt public IConfigMeta getPfConfigExt() / TODO Auto-generated method stubreturn new IConfigMeta new LeavePlanConfigMeta(),new LeavePlanOneMeta();在定義完具體的后臺注冊實現(xiàn)類后,需要在UPM文件hr_hrss.upm中進行配置。第四步:配置審批流后臺處理類。第五步:定義審批流?!疤峤粍幼靼粹o特別說明:1、如果在ViewModel的后臺控制類中,重寫AggregatedV
26、alueObject toBillAggVO()方法返回的類型為HYBillVO,那么需要在聚合VOAggLeaveplanHVO定義相關的.IBillField接口實現(xiàn)類,以配置具體的在審批流字段的具體對應關系。2、如果重寫AggregatedValueObject toBillAggVO()方法返回的類型為HRAggVO,那么需要重寫提交“按鈕的動作腳本需要重新定義,由具體的審批流后臺實現(xiàn)類完成具體提交字段的更新。輕量級查詢模板實現(xiàn)方式第一步:定義查詢控件MarmotQuery。屬性設置分別如下,其中category屬性設置的為對應的后臺查詢模板的ID。第二步:注冊查詢模板信息。由于自助模塊查詢模板的注冊在UAP平臺還沒有對應的前端操作界面,只能夠通過在后臺數(shù)據(jù)庫,向查詢模板信息表中注冊的模
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國小程序游戲行業(yè)發(fā)展現(xiàn)狀、市場運行態(tài)勢及發(fā)展前景預測報告
- 七年級下冊《平行線的性質》課件與練習
- 企業(yè)知識共享結構優(yōu)化與創(chuàng)新能力提升
- 2025年武器、彈藥及其零件合作協(xié)議書
- 智慧城市數(shù)據(jù)平臺建設合作協(xié)議
- 電梯安裝安全協(xié)議書
- 消防安全技術服務項目合同
- 林地合作經(jīng)營合同書
- 用美術相關知識做
- 古代詩詞鑒賞征文
- 健康檔案模板
- 購買演唱會門票的合同模板
- DB32-T 4790-2024建筑施工特種作業(yè)人員安全操作技能考核標準
- 2022年安徽阜陽太和縣人民醫(yī)院本科及以上學歷招聘筆試歷年典型考題及考點剖析附帶答案詳解
- 頂管工程施工及驗收技術標準
- 護理團體標準解讀-成人氧氣吸入療法護理
- 【基于現(xiàn)金流的企業(yè)財務風險探究文獻綜述4100字】
- TD/T 1036-2013 土地復墾質量控制標準(正式版)
- 安全警示教育的會議記錄內(nèi)容
- 夫妻異地辭職信
- 2024年度-銀行不良清收技巧培訓課件(學員版)
評論
0/150
提交評論