HR自助服務(wù)單據(jù)開發(fā)快速入門_第1頁
HR自助服務(wù)單據(jù)開發(fā)快速入門_第2頁
HR自助服務(wù)單據(jù)開發(fā)快速入門_第3頁
HR自助服務(wù)單據(jù)開發(fā)快速入門_第4頁
HR自助服務(wù)單據(jù)開發(fā)快速入門_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、HR自助效勞單據(jù)開發(fā)快速入門用友軟件股份北京分公司客戶開發(fā)部2022年3月目 錄1、NC自助效勞單據(jù)開發(fā)31.1.總體概述31.2.開發(fā)環(huán)境搭建3配置Java運(yùn)行時環(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導(dǎo)入數(shù)據(jù)字典8單據(jù)模板初始化9導(dǎo)出Java源代碼10建立視圖層ViewModel。11生成JSP頁面13建立后臺控制類15功能節(jié)點(diǎn)注冊17注冊功能按鈕20按鈕處理事件的定義23單據(jù)屬性設(shè)置24附錄:27輕量級參照實(shí)現(xiàn)方式:27審批流配置注意點(diǎn)27輕量級查詢模板實(shí)

2、現(xiàn)方式29按鈕動作前后臺交互例如:31增加按鈕動作處理311、 NC自助效勞單據(jù)開發(fā)1.1. 總體概述NC自助效勞模塊使用的是BSTEK公司推出的Dorado 5展現(xiàn)中間件技術(shù)。通過將Dorado和NC-UAP平臺的整合,可以在自助效勞中引用NC-UAP平臺中的單據(jù)模板 ,提高了在自助下開發(fā)單據(jù)的效率。Dorado技術(shù)詳細(xì)介紹請見BSTEK公司官網(wǎng):1.2. 開發(fā)環(huán)境搭建1.2.1. 配置Java運(yùn)行時環(huán)境通過Sun官網(wǎng)獲取JDK開發(fā)包,下載的開發(fā)包解壓縮到本地非中文名稱的目錄中;也可以直接使用NCHOME中自帶的JDK開發(fā)包,如本機(jī)中NCHOME的JDK開發(fā)包D:nchome56nchome

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

4、,要你確認(rèn)是否執(zhí)行初始化的工作:按任意鍵繼續(xù)初始化工作:這時候系統(tǒng)會在桌面上自動的生成一個dordo5 studio的快捷啟動圖表,并在控制臺中出現(xiàn)讓你選擇是否直接啟動dorado的集成開發(fā)環(huán)境,也就是dorado5的studio。以下統(tǒng)稱studio。如果選擇y并按回車鍵確認(rèn)翻開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ā)工具對同一工程進(jìn)行開發(fā)。本例中使用的開發(fā)工程為NC-HR自助模塊的源開發(fā)工程HR_WEB5.6_dev。在Eclipse中導(dǎo)入HR_WEB5.6_dev工程,如下:在Dorado集成開發(fā)平臺中導(dǎo)入HR_WEB5.6_dev工程如下:1.3. 自助單據(jù)開發(fā)流程在自助效勞下開發(fā)的JSP界面,可將NC-UAP平臺下的單據(jù)整合到自助效勞中,這是通過將單據(jù)模板信息解析成Dorado控件來實(shí)現(xiàn)的,由于是根據(jù)單據(jù)模板信息表中的數(shù)據(jù)進(jìn)行解析的,對于用元數(shù)據(jù)制作的單據(jù)模板,在自助效勞界面目前還沒有做到很好的兼容,解析過程中還沒有增加對元數(shù)據(jù)的解析,故目前自助效勞只能夠?qū)τ?/p>

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

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

8、等等。我們可以把ViewModel看作是Dataset和各種控件的容器。ViewModel一般不用于定義各種控件最終在顯示的布局,控件布局應(yīng)通過其它方式進(jìn)行定義。在通常情況下,我們利用JSP來完成對ViewModel中定義的控件進(jìn)行布局。在Dorado集成開發(fā)平臺中翻開工程工程,在對應(yīng)的目錄下,右鍵鼠標(biāo),如下:選擇新建“Module“,進(jìn)入ViewModel新建向?qū)?。選擇通用的視圖模型對象Common ViewModel即可,點(diǎn)擊“OK1.3.6. 生成JSP頁面對于自助JSP頁面是通過ViewModel生成的,具體生成JSP的操作如下列圖所示:選擇相應(yīng)的路徑以保存生成的JSP文件。再生成JS

9、P頁面之后,需要對生成的JSP頁面先進(jìn)行簡單的布局配置,如果需要配置其他在ViewModel中定義的控件顯示,在定義完控件后再做詳細(xì)的頁面布局。對于使用NC-UAP平臺的單據(jù)模板時,對應(yīng)管理型界面的JSP界面配置如下: 1.3.7. 建立后臺控制類新建視圖模型后臺控制類,由于本例中開發(fā)的是帶審批流的自助界面,具體的后臺控制類應(yīng)繼承。對于后臺控制類的根本配置如下: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;/* * 返回對應(yīng)的單據(jù)模板的編碼 */Overridepublic String getBillType() / TODO Auto-generated method stubreturn LP0

11、1;Overridepublic String getBusiType() / TODO Auto-generated method stubreturn null;/* * 用于設(shè)置表頭對應(yīng)的VO對象 */Overridepublic Class getHeadClass() / TODO Auto-generated method stub/* * 用于設(shè)置表體對應(yīng)的VO對象 */Overrideprotected void initBodyTabCodes() / TODO Auto-generated method stub視圖模型后臺控制類定義完成后,需要將后臺控制類與對應(yīng)的視圖模型

12、進(jìn)行關(guān)聯(lián),通過設(shè)置ViewModel的clazz屬性來實(shí)現(xiàn)關(guān)聯(lián)。1.3.8. 功能節(jié)點(diǎn)注冊通過NC業(yè)務(wù)系統(tǒng)【功能注冊】節(jié)點(diǎn)注冊功能節(jié)點(diǎn),在功能注冊時,需要注意幾點(diǎn)。l 功能性質(zhì):一定要選擇“輕量級Web節(jié)點(diǎn)。l 對應(yīng)文件名或控制名:為對應(yīng)的JSP文件。對新增的自助節(jié)點(diǎn)分配權(quán)限,分配時一定要將該節(jié)點(diǎn)分配給相應(yīng)的自助角色才行,產(chǎn)品自帶的自助角色有四種,在本例中分配給“自助角色-員工“這個角色。提示:如果在權(quán)限分配時,在相應(yīng)的節(jié)點(diǎn)樹位置看不到剛剛注冊的功能節(jié)點(diǎn),需到【自定義菜單】節(jié)點(diǎn)對節(jié)點(diǎn)樹的結(jié)構(gòu)進(jìn)行調(diào)整。到這里自助模塊開發(fā)單據(jù)界面的大致框架就搭建起來了,現(xiàn)在在開發(fā)環(huán)境下重啟NC中間件,登錄自助界面

13、就可以看到剛剛在自助節(jié)點(diǎn)開發(fā)的輕量級Web節(jié)點(diǎn)了。重要提示:對于在第步中生成的JSP文件保存在Eclipse工程工程中,此時登錄自助模塊,翻開剛剛注冊的自助節(jié)點(diǎn)時,是無法加載到對應(yīng)的JSP頁面的,需要將該JSP頁面按照相應(yīng)的目錄結(jié)構(gòu)拷貝到NCHOME的nchomehotwebshrss目錄下,Web容器在加載JSP頁面時,才能夠?qū)⒃揓SP頁面加載到容器中。單擊“休假方案練習(xí)一輕量級Web節(jié)點(diǎn),即可進(jìn)入對應(yīng)的JSP界面。1.3.9. 注冊功能按鈕輕量級單據(jù)界面,是沒有對應(yīng)的功能按鈕的,如果需要在畫面中添加功能按鈕,必須在NC業(yè)務(wù)系統(tǒng)【功能注冊】節(jié)點(diǎn)注冊相應(yīng)的功能按鈕。注冊完功能節(jié)點(diǎn)后,需要在后臺

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)碼,和注冊中相同的中文名稱,響應(yīng)的Command類名,響應(yīng)的js和java方法名,要顯示的圖標(biāo)名稱,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),并且要設(shè)置好按鈕在該狀態(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)以及對應(yīng)狀態(tài)按鈕組顯示情況后,需要在視圖層控制對象ViewModel加載時,添加相應(yīng)的JS事件,以控制單據(jù)畫面初始化時所屬的狀態(tài)。到此,重啟中間件,重新登錄自助界面,即可看到單據(jù)初始化狀態(tài)顯示的按鈕組。提示:對于在后臺控制類中增加了新的方法,或者引用了新定義的類時

20、,才需要重啟中間件,其他情況無需重啟中間件。對于在視圖控制對象ViewModel中添加JS腳本后,首先需要保證Eclipse工程中對應(yīng)的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)用效勞器接受類的指定方法的方法名(默認(rèn)為視圖模型中的方法

21、名,即視圖ViewModel的關(guān)聯(lián)的后臺控制類中的方法)。對于按鈕在前臺頁面響應(yīng)事件,是通過定義JS來實(shí)現(xiàn)的,具體響應(yīng)的JS函數(shù)的名稱在后臺按鈕工廠類中已經(jīng)定義。/格式:按鈕內(nèi)碼,和注冊中相同的中文名稱,響應(yīng)的Command類名,響應(yīng)的js和java方法名,要顯示的圖標(biāo)名稱,tooltips提示String buttons = APPROVE_NOTE, 審批意見, null, onApproveNote, unapprove.gif, 查看審批意見 ;如自定義的按鈕“審批意見在前臺頁面響應(yīng)的JS函數(shù)的方法應(yīng)為function onApproveNote().1.3.11. 單據(jù)屬性設(shè)置對于帶

22、審批流的單據(jù),需要在UAP平臺中進(jìn)行一些審批流相關(guān)屬性的設(shè)置,這與NC5.2中的設(shè)置類似,具體的設(shè)置步驟如下:第一步:單據(jù)類型定義如上圖,輸入“類型代碼、“類型名稱、“節(jié)點(diǎn)編號,完成后點(diǎn)擊“保存按鈕保存定義的單據(jù)類型信息。其中:此處定義的“類型代碼最好和單據(jù)模板定義步驟定義的單據(jù)模板編碼一致,否那么在后面會遇到意想不到的問題。第二步:單據(jù)號設(shè)置如上圖,設(shè)置單據(jù)號的生成規(guī)那么。第三步:單據(jù)動作定義第四步:單據(jù)動作腳本設(shè)置如上圖,在此處對于單據(jù)的動作腳本進(jìn)行編輯,具體的腳本可以直接從其他定義的單據(jù)動作腳本拷貝過來即可因?yàn)楣P者沒有找到在何處去自動生成系統(tǒng)默認(rèn)的單據(jù)動作腳本,只能通過此方法來實(shí)現(xiàn)。在編

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

24、XML配置文件。第三步:設(shè)置具體的參照配置文件與參照類型編碼的映射關(guān)系,對于映射關(guān)系的設(shè)置,目前還沒有具體的配置界面,只能夠通過在后臺表hrss_ref_map表中去配置具體的映射關(guān)系,下列圖為休假類別參照對照配置。審批流配置注意點(diǎn)要想在自助模塊順利使用審批流,需要在工程中做如下配置:第一步:設(shè)置和審批有關(guān)的字段的對應(yīng)關(guān)系,通過集成PFConfig類來配置具體的字段對應(yīng)關(guān)系。見.LeavePlanOneConfig第二步:配置 Hrss 單據(jù)信息,通過實(shí)現(xiàn)接口來進(jì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();在定義完具體的后臺注冊實(shí)現(xiàn)類后,需要在UPM文件hr_hrss.upm中進(jìn)行配置。第四步:配置審批流后臺處理類。第五步:定義審批流。“提交動作按鈕特別說明:1、如果在ViewModel的后臺控制類中,重寫AggregatedV

26、alueObject toBillAggVO()方法返回的類型為HYBillVO,那么需要在聚合VOAggLeaveplanHVO定義相關(guān)的.IBillField接口實(shí)現(xiàn)類,以配置具體的在審批流字段的具體對應(yīng)關(guān)系。2、如果重寫AggregatedValueObject toBillAggVO()方法返回的類型為HRAggVO,那么需要重寫提交“按鈕的動作腳本需要重新定義,由具體的審批流后臺實(shí)現(xiàn)類完成具體提交字段的更新。輕量級查詢模板實(shí)現(xiàn)方式第一步:定義查詢控件MarmotQuery。屬性設(shè)置分別如下,其中category屬性設(shè)置的為對應(yīng)的后臺查詢模板的ID。第二步:注冊查詢模板信息。由于自助模塊查詢模板的注冊在UAP平臺還沒有對應(yīng)的前端操作界面,只能夠通過在后臺數(shù)據(jù)庫,向查詢模板信息表中注冊的模

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論