版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 主題公園租賃協(xié)議樣本
- 企業(yè)合規(guī)管理提案管理辦法
- 客戶服務(wù)加班滿意度調(diào)查
- 醫(yī)院采購聘用合同
- 旅行社租賃定金合同協(xié)議
- 工業(yè)園區(qū)駕校場地施工合同
- 地下經(jīng)驗(yàn)錨索施工協(xié)議
- 國際文化交流招投標(biāo)詳解
- 醫(yī)療設(shè)備投保寶典
- 建筑智能化系統(tǒng)施工合同模板
- 2022年公務(wù)員國考《申論》真題(副省級)及參考答案
- 中藥融資方案
- 2024年第四季度中國酒店市場景氣調(diào)查報(bào)告-浩華
- 2024年二級建造師繼續(xù)教育考核題及答案
- 安徽省鼎尖教育聯(lián)考2024-2025學(xué)年高二上學(xué)期開學(xué)考試物理
- 2021-2022學(xué)年統(tǒng)編版道德與法治五年級上冊全冊單元測試題及答案(每單元1套共6套)
- 2024年財(cái)務(wù)條線人員考試題庫(含答案)
- 2023年江蘇省淮安市中考英語真題(解析版)
- 基于義教課標(biāo)(2022版)七年級生物上冊教材分析 課件(新教材)
- 《用字母表示數(shù)》 單元作業(yè)設(shè)計(jì)
- HG/T 22820-2024 化工安全儀表系統(tǒng)工程設(shè)計(jì)規(guī)范(正式版)
評論
0/150
提交評論