




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
/EAS費用報銷模塊Web二次開發(fā)指南EASHR系統(tǒng)部作者李大偉,賀鵬輝整理陳昕導(dǎo)讀本文從頭開始介紹了EAS費用報銷Web表單的二次開發(fā)方法,同時也說明了開發(fā)環(huán)境的安裝和配置方法。可供機構(gòu)開發(fā)人員對費用報銷web表單進行二次開發(fā)時參考。適用范圍EAS費用報銷模塊web二次開發(fā)人員請注意:本文件只作為產(chǎn)品介紹之用,不屬于您與金蝶簽署的任何協(xié)議。本文件僅包括金蝶既定策略、產(chǎn)品及功能方面的信息,不能以本文件作為要求金蝶履行商務(wù)條款、產(chǎn)品策略以及開發(fā)義務(wù)的依據(jù)。本文件內(nèi)容可能隨時變更,恕不另行通知。目錄概述 4目的 4范圍 4定義、首字母縮寫詞和縮略語 4環(huán)境準備 4jdk安裝 4pt環(huán)境準備 4統(tǒng)一的web開發(fā)目錄w:\webdev 4統(tǒng)一開發(fā)工作區(qū)間webdev/workspace 4W:\webdev\apusicstudio-5.1為開發(fā)工具,雙擊studio.cmd啟動開發(fā)工具 5更新和部署AOM 5部署easweb.ear 5修改W:\eas\Server\server\deploy\easweb.ear\eas_web.war\WEB-INF下operamasks.xml 6啟動效勞器,以協(xié)同辦公費用報銷單為例:可以通過 7新建web工程 7新建Apusic標準工程 7添加web模塊 8新建faces頁面 13添加Apusic效勞器 16運行我們的應(yīng)用 18定義及發(fā)布元數(shù)據(jù) 19實體的定義和發(fā)布 19查詢的定義和發(fā)布 19生成web界面代碼 19設(shè)置web界面代碼路徑 19生成web界面代碼 20添加庫文件 23添加用戶庫 23添加WAF包 23添加業(yè)務(wù)邏輯類引用 23Web界面代碼的修正 25***EditBean.java的修正 25***Edit.xhtml文件的修正 25***List.xhtml文件的修正 27部署及啟動easweb應(yīng)用 27部署EASWEB 27Pt環(huán)境下啟動EAS效勞 27二次開發(fā)應(yīng)用 28修改業(yè)務(wù)單元 28發(fā)布業(yè)務(wù)單元 28執(zhí)行升級腳本 29搭建web開發(fā)環(huán)境 29修改web頁面 29修改managedBean 29部署二次開發(fā)應(yīng)用 30常見問題 30#{message[***]}ELExpression錯誤 30編輯界面單據(jù)體(分錄局部)無法顯示 30如何檢查調(diào)用類的物理路徑 30下載文件時會在線翻開,且出現(xiàn)亂碼(如何進行文件的下載) 30表單編輯頁中點擊新增分錄時出錯 33在EditBean或ListBean中,通過@IBOSBizCtrl設(shè)置了某個接口(如:@IBOSBizCtrlprivateIDocReceiveservice;),但發(fā)現(xiàn)在使用該接口service時,service為null 33在view上找不到managedBean 33按鈕或者其他控件的狀態(tài)被緩存,如單據(jù)查看時某按鈕被置灰后,新增時按鈕仍是置灰的。 33Web主界面開發(fā)方法 33編制jsp頁面。 33配置portlet模板信息。 34Portlet業(yè)務(wù)配置信息設(shè)置。 34Portlet基礎(chǔ)定義設(shè)置。 34頁簽配置 35參考資料 35概述目的根據(jù)標準web單據(jù)開發(fā)流程,描述以下內(nèi)容:環(huán)境準備Web工程的創(chuàng)立元數(shù)據(jù)的定義和發(fā)布Web界面代碼的生成Web界面代碼的修正EASweb的部署和運行二次開發(fā)應(yīng)用Web主界面的開發(fā)方法范圍適用版本:KingdeeEAS6.0,KingdeeBOS6.0定義、首字母縮寫詞和縮略語HYPERLINKAOM:ApusicOperaMask,金蝶中間件公司的Web開發(fā)框架HYPERLINKAAS:ApusicApplicationServer:金蝶中間件公司的J2EE應(yīng)用效勞器產(chǎn)品HYPERLINKExtJS:一套基于JavaScript的瀏覽器端UI組件庫環(huán)境準備jdk安裝jdk要求5.0以上版本。pt環(huán)境準備pt搭建一個gui的開發(fā)環(huán)境。統(tǒng)一的web開發(fā)目錄w:\webdev統(tǒng)一開發(fā)工作區(qū)間webdev/workspace如下圖:W:\webdev\apusicstudio-5.1為開發(fā)工具,雙擊studio.cmd啟動開發(fā)工具Apusicstudio可以到HYPERLINK獲取。更新和部署AOM可以到HYPERLINK獲取AOM最新版本部署easweb.ear修改部署文件W:\apusic\domains\server1\config\server.xml參加<applicationname="EASWeb"base="W:/eas/Server/server/deploy/easweb.ear"start="auto"/>如下圖:easweb.ear結(jié)構(gòu)如圖:修改W:\eas\Server\server\deploy\easweb.ear\eas_web.war\WEB-INF下operamasks.xml開發(fā)那個工程將哪個工程的jar包配置項刪掉。如開發(fā)協(xié)同費用報銷就將<jar>cp_bc_web.jar</jar>刪除掉。如圖:將從cvs上獲得的或開發(fā)完成的view(即xXXX.xhtml)拷貝到W:\eas\Server\server\deploy\easweb.ear\eas_web.war將從cvs上獲得的開發(fā)完成的ManagedBean(即XXXXBean)拷貝到W:\eas\Server\server\deploy\easweb.ear\eas_web.war\WEB-INF\classes注:以上路徑?jīng)]有包含包名,拷貝時需要將自己加上包路徑,如cp\bc\如下圖:啟動效勞器,以協(xié)同辦公費用報銷單為例:可以通過bizAccountBillList.jsf訪問。新建web工程由于WAF目前混合使用ApusicStudio(WebUI開發(fā))與BOSStudio(Web元數(shù)據(jù)定義與框架代碼發(fā)布),所以是先進行web工程的新建還是先進行EAS元數(shù)據(jù)的定義,我們并沒有嚴格的限制,可根據(jù)個人熟悉程度決定。新建Apusic標準工程我們使用Apusic作為我們的web容器,所以我們從新建Apusic標準工程開始我們的標準單據(jù)開發(fā)的旅程。在Apusicstudio中點擊“文件——新建——Apusic標準工程〞,如下列圖:包含以下幾個點的定義:工程名稱,空間及存儲位置選擇,效勞器選擇,域選擇及J2EE版本的選擇,輸出文件夾。我們可以在此進行本地效勞器的新建也可以在后續(xù)過程中添加效勞器,為不影響新建流程的順暢,我們將在后續(xù)步驟中單獨描述。J2EE版本的選擇應(yīng)該引起注意,我們須要選擇5.0以上的版本。定義好上述內(nèi)容后點擊完成,我們可以在翻開包視圖查看工程目錄結(jié)構(gòu)如下:添加web模塊點擊新建工程根目錄,右鍵選擇“新建——web模塊〞:翻開對話框如下:需要注意源文件夾(用來存放源代碼)及web內(nèi)容文件夾(用來存放頁面,配置信息等資源文件)。點擊下一步:EASweb應(yīng)用框架建立在AOM基礎(chǔ)上,所以我們不得取消“支持AOM〞的選項。AOM的配置中需要注意url后綴的配置,該配置意味該后綴的請求都將由AOM處理。我們按習慣修改成*.jsf,定義好以后我們將可以在web.xml中發(fā)現(xiàn)相應(yīng)的配置內(nèi)容: <servlet-mapping> <servlet-name>FacesServlet</servlet-name> <url-pattern>*.jsf</url-pattern> </servlet-mapping>完成上述步驟,點擊完成web模塊的新建,我們發(fā)現(xiàn)工程目錄下增加了src及WebContent目錄:新建faces頁面選擇“文件——新建——Faces頁面〞:選擇是否生成managebean,以及managebean設(shè)置,如果只是新建一個靜態(tài)視圖,那么可以不進行managebean的定義。點擊完成頁面新建。添加Apusic效勞器前面在新建工程中已經(jīng)提到效勞器的選擇,在此將對效勞器新建做進一步描述。在新建或增加效勞器之前請確保已正確安裝了Apusic效勞器,Apusic效勞器的安裝再次不再累述。翻開Apusic效勞器列表視圖,在視圖中點擊右鍵,并選擇增加效勞器:添加效勞器后我們需要為我們的應(yīng)用指定對應(yīng)的Apusic效勞器,翻開工程屬性對話框如下列圖:運行我們的應(yīng)用效勞器啟動過程中我們可以在控制臺看到相應(yīng)信息,局部截圖如下:可以看到效勞器已成功啟動,我們定義的上下文根目錄是mydemo,接下來我們使用HYPERLINK進行訪問,結(jié)果如下列圖:至此,web工程的新建完成。定義及發(fā)布元數(shù)據(jù)元數(shù)據(jù)的定義在此特指單據(jù)實體及查詢的定義,因為只有實體及查詢才能發(fā)布成web界面,生成web界面代碼。實體及查詢的定義與非web應(yīng)用中實體及查詢的定義一樣,沒有差異。實體的定義和發(fā)布與一般實體的定義和無差異查詢的定義和發(fā)布與一般查詢的定義和無差異生成web界面代碼設(shè)置web界面代碼路徑生成web界面代碼前我們需要對生成代碼的存放位置進行設(shè)置,在BOSStudio中通過“窗口——首選項〞進入首選項配置頁,左側(cè)樹形菜單中選擇“BOS——生成web界面代碼〞:將代碼路徑設(shè)置成我們web工程的源文件路徑,將頁面路徑設(shè)置成我們web工程的web內(nèi)容文件夾路徑,點擊確定完成設(shè)置。生成web界面代碼接下來我們可以生成web界面代碼:選擇要生成界面代碼的實體或查詢,點擊右鍵并選擇“生成web界面代碼〞:回到Apusicstudio并刷新工程,我們可以看到工程目錄如下列圖:增加了相應(yīng)的頁面文件及邏輯代碼。通常一個實體通過上述步驟會生成以下幾個文件:編輯邏輯managebean及分錄bean及相應(yīng)屬性文件:編輯頁面文件:查詢元數(shù)據(jù)生成web界面的過程與實體生成web界面的過程一樣,只是結(jié)果文件不同:列表邏輯managebean及相應(yīng)屬性文件:序時薄頁面文件:至此,web界面代碼的生成過程已經(jīng)完成。至于生成的代碼內(nèi)容大家可以翻開相應(yīng)文件細看,我們也將在后續(xù)局部中插述局部重要內(nèi)容。后續(xù)將做個表格,對生成的代碼及頁面文件進行說明后續(xù)將做個表格,對生成的代碼及頁面文件進行說明添加庫文件添加用戶庫發(fā)布web界面代碼并刷新web工程后我們的web工程出現(xiàn)了諸多錯誤,讓我們看看究竟是什么原因引起了錯誤:發(fā)布的界面代碼找不到依賴的業(yè)務(wù)邏輯類。我們需要添加用戶自定義庫。在web工程的構(gòu)建路徑中引入W:\eas\dev下的boslib_for_eas.userlibraries和easlib_for_eas.userlibraries添加WAF包從W:\eas\Server\server\deploy\easweb.ear\eas_web.war\WEB-INF\lib下拷貝以下文件到工程目錄的\WebContent\WEB-INF\lib中,當然你也可以通過在構(gòu)建路徑中引入外部jar包的方式配置。添加業(yè)務(wù)邏輯類引用這里指的業(yè)務(wù)邏輯相關(guān)類即發(fā)布元數(shù)據(jù)時生成的類文件。我們有多種方式去引用這些類,由于業(yè)務(wù)的需要,我們可能需要修正這些類中的局部代碼,所以打包加載的方式有些不方便,故建議在構(gòu)建路徑的源代碼一項中添加關(guān)聯(lián)目錄:選擇元數(shù)據(jù)發(fā)布的源代碼目錄。Web界面代碼的修正***EditBean.java的修正在EditBean的pageOnload()中有類似語句:我們須要修正為:***Edit.xhtml文件的修正將#{messages['***}']形式的表達式都直接換成相應(yīng)的信息,如#{messages['creator']}替換為creator或“創(chuàng)立人〞。將messages['entries.seq']替換為entries_seq或其他。將<ui:definename="entry>">修改為<ui:definename="entry">去除了多余字段。將重新定義分錄操作界面:把biz:billEntryActions標簽的內(nèi)容替換為分錄操作的自定義局部,可以如下:修正前:<divclass="kd-panel-btns-right"> <biz:billEntryActionsbeanName="#{phdemo.PhInWarehouseBillEditBean}"entryBeanName="#{phdemo.PhInWarehouseBillEntryBean}"></biz:billEntryActions></div>界面效果(點擊操作按鈕出錯,且無具體提示信息): 修正后:<h:panelGridcolumns="3"style="float:right"> <w:buttonid="addRow"value="新增"alwaysSubmit="true" immediate="true" action="#{phdemo.PhInWarehouseBillEntryBean.appendRow}"/> <w:buttonid="insertRow"value="插入" alwaysSubmit="true"immediate="true" action="#{phdemo.PhInWarehouseBillEntryBean.insertRow}"/> <w:buttonid="removeRow"value="刪除" alwaysSubmit="true"immediate="true" action="#{phdemo.PhInWarehouseBillEntryBean.removeRow}"/> </h:panelGrid>界面效果(新增): ***List.xhtml文件的修正將#{messages['***}']形式的表達式都直接換成相應(yīng)的信息,如#{messages['creator}']替換為creator或“創(chuàng)立人〞。將messages['entries.seq']替換為entries_seq或其他。部署及啟動easweb應(yīng)用部署EASWEBEASweb應(yīng)用必須與EAS應(yīng)用效勞(非web)場景同時使用,Eas統(tǒng)一的應(yīng)用部署路徑為W:\eas\Server\server\deploy\eas.ear\eas_web.war\訪問路徑HYPERLINK,我們需要做以下幾個步驟的部署:拷貝工程下的scm_channel_web\web\WebContent\WEB-INF\classes到W:\eas\Server\server\deploy\eas.ear\eas_web.war\WEB-INF\classes拷貝scm_channel_web\web\WebContent下的相關(guān)文件到W:\eas\Server\server\deploy\eas.ear\eas_web.war該局部的拷貝比較繁瑣麻煩,我們提供了相應(yīng)的批處理文件進行處理。Pt環(huán)境下啟動EAS效勞運行W:\eas\Server\server\profiles\server1\bin\debugserver.bat 訪問單據(jù)編輯頁HYPERLINK訪問HYPERLINK二次開發(fā)應(yīng)用修改業(yè)務(wù)單元翻開金蝶bos,切換到金蝶bos業(yè)務(wù)建模透視圖翻開需要二次開發(fā)修改的單據(jù),使用選用板添加字段,以報銷單為例,如下圖:發(fā)布業(yè)務(wù)單元在費用報銷單界面里,單擊右鍵,選擇單據(jù)信息,確認不生成生成實現(xiàn)類,如下圖:在菜單項選擇擇費用報銷單,單擊右鍵,單擊發(fā)布業(yè)務(wù)單元/報表即可。執(zhí)行升級腳本在管理控制臺或直接數(shù)據(jù)庫中執(zhí)行升級腳本,將新加字段添加到數(shù)據(jù)庫相應(yīng)的數(shù)據(jù)表中。搭建web開發(fā)環(huán)境按照2、3、4、5步驟搭建web開發(fā)環(huán)境修改web頁面將eas\Server\server\deploy\easweb.ear\eas_web.war\cp\bc\bizAccountBillEdit.xhtml的頁面內(nèi)容,覆蓋步驟5中生成bizAccountBillEdit.xhtml頁面。在頁面間將新添加的字段綁定,如下:<kd:labelContainercaption="主題"style="margin-left:120px;"width="270"lineWidth="80"><w:textFieldvalue="#{cp.bc.BizAccountBillEditB}"required="false"maxLength="80"> </w:textField></kd:labelContainer>修改managedBean將eas\Server\server\deploy\easweb.ear\eas_web.war\WEB-INF\lib\cp_bc_web_jar解壓縮,反編譯BizAccountBillEditBean.class,將內(nèi)容覆蓋步驟5生成的代碼。修改代碼邏輯部署二次開發(fā)應(yīng)用將修改的bizAccountBillEdit.xhtml,覆蓋eas\Server\server\deploy\easweb.ear\eas_web.war\cp\bc\bizAccountBillEdit.xhtml將修改的BizAccountBillEditBean后編譯生成的BizAccountBillEditBean.class重新拖入eas\Server\server\deploy\easweb.ear\eas_web.war\WEB-INF\lib\cp_bc_web_jar包中,替換原來的class文件。常見問題#{message[***]}ELExpression錯誤目前不支持該種表達式顯示信息,我們需要替換該表達式為實際要使用的信息,如:將#{messages['***}']形式的表達式都直接換成相應(yīng)的信息,如#{messages['creator}']替換為creator。同樣,我們需要將messages['entries.seq']替換為entries_seq或其他。編輯界面單據(jù)體(分錄局部)無法顯示將編輯頁面的將<ui:definename="entry>">修改為<ui:definename="entry">如何檢查調(diào)用類的物理路徑在調(diào)試過程中,在Display試圖中如下調(diào)用方式:this.getClass().getResource("/com/kingdee/eas/cp/bc/web/TravelAccountBillListBean.class")下載文件時會在線翻開,且出現(xiàn)亂碼(如何進行文件的下載)AOM使用原生態(tài)AJAX后文件下載出現(xiàn)該問題的解決,且不管在效勞端中對response做何處理。如果你去除f:view中renderKitId="AJAX"的設(shè)置,且保證不會影響頁面其他功能,那當然是最好的解決。此外可以通過重定向到下載頁進行下載。解決AOM的文件下載問題有兩種方式,由于我們的實際應(yīng)用場景中不是已存在文件的下載,需要與數(shù)據(jù)庫等的交互,中斷jsf生命周期的方式不可取。故我使用了重定向新頁面進行下載的方式,即在需要引入引出功能的頁面上參加iframe框,并引用文件下載頁面資源:<layout:windowid="exportDialog"width="350"height="210"modal="true"title="文件引出"> <iframesrc="/easweb/scm/down"width="100%"scrolling="No"height="100%"></iframe></layout:window>在單一文件下載頁面中不使用AOM的原生態(tài)ajax:下載效果如下:點擊引出模板,將出現(xiàn)下載頁面如下列圖:表單編輯頁中點擊新增分錄時出錯首先點擊增加分錄按鈕時出錯:#{phdemo.PhStockBalanceBillEntryBean.appendRow}:/phdemo/phStockBalanceBillEdit.xhtml@117,65action="#{phdemo.PhStockBalanceBillEntryBean.appendRow}":java.lang.NullPointerExceptionat__expression__(0)。解決方法:在<w:editDataGrid下增加jsvar="editEntryGrid"相關(guān)內(nèi)容請查看operamasks文檔:HYPERLINK在EditBean或ListBean中,通過@IBOSBizCtrl設(shè)置了某個接口(如:@IBOSBizCtrlprivateIDocReceiveservice;),但發(fā)現(xiàn)在使用該接口service時,service為null這時,需要檢查APUSIC運行環(huán)境中的metas/entity_perties是否存在該service對應(yīng)的entity.因為,在發(fā)布元數(shù)據(jù)時,有可能沒有將eneity_perties發(fā)布到apusic/metas,或沒有將entity參加到entity_perties文件中在view上找不到managedBean檢查managedBean的目錄和bean的名稱是否符合標準,如果包名不一致或者文件名不一致都回出現(xiàn)此問題,如HR的績效模塊(performance),新增一個View時,xhtml命名為MyPerf.xhtml,必須存在WebContent/hr/performance下,而且對應(yīng)的ManagedBean為com.kingdee.eas.hr.performance.MyPerfBean.按鈕或者其他控件的狀態(tài)被緩存,如單據(jù)查看時某按鈕被置灰后,新增時按鈕仍是置灰的。要在置灰狀態(tài)的地方,將不符合置灰條件的按鈕再顯示的變亮。因為managedBean可能定義為session的,所以存在會緩存狀態(tài)的可能。Web主界面開發(fā)方法編制jsp頁面。在目錄W:\eas\Server\server\deploy\eas.ear\cp_web.war\html\portlet新建一個目錄,并在新建目錄下創(chuàng)立一個jsp文件。內(nèi)容為:<%@includefile="/html/common/init.jsp"%><%@pageimport="com.kingdee.bos.Context"%><%@pageimport="java.util.Locale"%><%@pageimport="com.kingdee.eas.util.app.ContextUtil"%><iframeheight="480px"width="100%"src="../easweb/cp/index.jsf"frameborder="no"scrolling="no"></iframe>注:src="../easweb/cp/index.jsf"就指向portlet的內(nèi)容頁。配置portlet模板信息。翻開文件W:\eas\Server\server\deploy\eas.ear\cp_web.war\WEB-INF\portlets.xml添加內(nèi)容如下: <portlet> <portletID>43</portletID> <title>協(xié)同辦公</title> <modes> <mode> <name>view</name> <value>portlet.cp_index</value> </mode> </modes> </portlet>Portlet業(yè)務(wù)配置信息設(shè)置。翻開文件w:\eas\server\deploy\eas.ear\cp_web.war\WEB-INF\tiles-defs.xml添加內(nèi)容如下: <definitionname="portlet.cp_index" extends="portlet_default_eas50" controllerUrl="/PortletAssembleAction.do"> <putname="portlet_id"value=
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 5106:2025 EN Traditional Chinese medicine - Polygala tenuifolia and Polygala sibirica root
- 2025年企業(yè)經(jīng)濟責任承包合同模板
- 2025年健身機構(gòu)會員康復(fù)治療合同
- 會議評估及績效考核合同
- 2025年農(nóng)副產(chǎn)品策劃采購策略與銷售合同
- 2025年合同擔保方權(quán)益與責任綜述
- 綠膿桿菌肺炎合并多器官功能障礙綜合征治療策略-深度研究
- 小吃市場趨勢分析-深度研究
- 礦山自動化控制系統(tǒng)安全-深度研究
- 環(huán)境因素對組件影響研究-深度研究
- 2024年廣東高考(新課標I卷)語文試題及參考答案
- XX衛(wèi)生院關(guān)于落實國家組織藥品集中采購使用檢測和應(yīng)急預(yù)案及培訓記錄
- 人教版八年級地理下冊教材分析
- Part3-4 Unit4 Volunteer Work課件-【中職專用】高一英語精研課堂(高教版2021·基礎(chǔ)模塊2)
- 法律援助課件
- 粒籽源永久性植入治療放射防護要求
- 雙減政策之下老師如何打造高效課堂
- 新員工入職健康體檢表
- 養(yǎng)老院行業(yè)現(xiàn)狀分析-2023年中國養(yǎng)老院行業(yè)市場發(fā)展前景研究報告-智研咨詢
- 廣東省特種作業(yè)操作證核發(fā)申請表
- 胸腔穿刺知情同意書
評論
0/150
提交評論