




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、BOSV3.0用戶入門手冊版本修訂歷史序號日期修訂內(nèi)容修訂人1.2003-11-18初稿馮仁飛2.2003-11-26整理結(jié)構(gòu)萬小青3.4.目錄TOC o 1-5 h z HYPERLINK l bookmark0 一、BOS界面介紹4 HYPERLINK l bookmark2 二、使用BOS5 HYPERLINK l bookmark4 1、建立解決方案51)實(shí)體對象62)數(shù)據(jù)對象7界面對象7關(guān)系9 HYPERLINK l bookmark6 Query9 HYPERLINK l bookmark8 6)Rule10 HYPERLINK l bookmark10 2、發(fā)布113、編譯12
2、HYPERLINK l bookmark12 4、部署ejb121)目錄方式12 HYPERLINK l bookmark14 2)EAR文件方式13三、發(fā)布后代碼補(bǔ)充邏輯示例151.關(guān)于數(shù)字15 HYPERLINK l bookmark16 新增(addnew)15 HYPERLINK l bookmark18 修改(update)16 HYPERLINK l bookmark20 獲取集合(Filter.Selector)16 HYPERLINK l bookmark22 建立主鍵(ObjectUuidPK)16 HYPERLINK l bookmark24 登陸上下文(LoginCont
3、ext)16 HYPERLINK l bookmark26 使用Selector對象17 HYPERLINK l bookmark28 使用Filter對象17 HYPERLINK l bookmark30 判斷業(yè)務(wù)數(shù)據(jù)是否取出(containsKey)18 HYPERLINK l bookmark32 Rule對象的使用(RuleExecutor)181)執(zhí)行Rule(服務(wù)器端)18 HYPERLINK l bookmark34 Query對象的使用(QueryExecutor)18服務(wù)器端不帶參數(shù)的Query19 HYPERLINK l bookmark36 客戶端不帶參數(shù)Paramete
4、r19服務(wù)器端帶選項(xiàng)Option19服務(wù)器端帶參數(shù)19 HYPERLINK l bookmark38 QueryInfo的實(shí)例化19 HYPERLINK l bookmark40 2)IRowSert的實(shí)例操作19四、BOS的思考錯誤!未定義書簽。1.關(guān)于代碼發(fā)布錯誤!未定義書簽。2.關(guān)于繼承錯誤!未定義書簽。關(guān)于Facade錯誤!未定義書簽。關(guān)于Rule錯誤!未定義書簽。關(guān)于Query錯誤!未定義書簽。關(guān)于數(shù)據(jù)綁定錯誤!未定義書簽。一、BOS界面介紹啟動BOS:運(yùn)行安裝目錄下的eclips.exe。界面主要由編輯區(qū)、透視圖、透視圖包含的若干視圖組成。這里主要介紹BOSStudio透視圖及視圖
5、:金蝶BOSStudio透視圖:是BOS視圖的集合,打開它默認(rèn)打開BOS開發(fā)環(huán)境BOS的視圖分為一下幾種:1、BOSstudio資源導(dǎo)航:顯示已經(jīng)存在的解決方案(如果方案不存在,通過Eclipse引入解決方案),可以對解決方案進(jìn)行新建,刪除,打開,刷新,以及cvs操作。2、BOS控制臺:顯示后臺輸出信息和錯誤信息,如果出現(xiàn)錯誤但是控制太上沒有顯示可以查看BOS的log文件位于bos_home%/workspace.metadata.log。3、包分類:顯示解決方案的包結(jié)構(gòu),右鍵可以修改解決方案屬性。4、類型:分類顯示BOS所有對象5、應(yīng)用分類:顯示建立的發(fā)布方案的內(nèi)容6、大綱:BOS對象的概要
6、信息。7、屬性:顯示選中對象的屬性。8、數(shù)據(jù)綁定視圖。B09金蝶BOSStudioAccBillItem.entityBOSStudio厲包分類11BOSValiBetaMetasmetadata&-LZicorn白口kingdeebosvalidate申心bizrule曰心accountcenter上AccBill.entity歡迎使用IAccBill.entityAccBillltem的基礎(chǔ)信息門一般信息描述此實(shí)體對象的一般信息jgAccBillltememployee.relationLMAccBillltem.entity二類實(shí)現(xiàn)信息描述此實(shí)體對象在運(yùn)行期的類實(shí)現(xiàn)的相關(guān)內(nèi)容AccBil
7、lltem.entitAccBillltem.AccBillltemAccBillltemAccBillltemAccBillltem.cosi:::osiern:expinvc殳BillBizState.enun力BillRelationship.eBflBillRelationship_ruleMethodnamecal/namealiasruleObjectrule.basedata.BankRule.ruleMethodcal.alias/aliasdescriptionruleObjectrule.basedata.BankRule.ruleMethodcal.description
8、/descriptionruleContentresult=22+pari;result=result+bank.idresult=345354+result;result=result+bank.id/ruleContent/ruleMethod10包分糞BOSValiBfi發(fā)布解決方案屬性畝“匕winui2、發(fā)布3AccBillItememployee.relati(Eclipse平臺要解有黃工作臺中已并選擇想要的功能部件透視圖、視圖和編輯窗口包含一或多牛透:配置透視圖可農(nóng)通過拖動視圖和編要將透視圖重新設(shè)苴為.旦掃E列了透視圖,就連接CVS小組要連接CVS開發(fā)小組,資源庫位苴將出現(xiàn)在C:在
9、BOS中建立好元數(shù)據(jù)后,鼠標(biāo)單擊“包分類”視圖的方案節(jié)點(diǎn),先通過菜單設(shè)置發(fā)布屬性。例如:如下設(shè)置:元數(shù)據(jù)發(fā)布目錄C:Apusic-4.0metas;java發(fā)布目錄C:BOSworkspaceBOSValidateServersrcj2ee發(fā)布目錄C:BOSworkspaceBOSValidateServerdeploy;然后再通過菜單發(fā)布。發(fā)布成功后,設(shè)置的路徑下會分別生成元數(shù)據(jù)、java代碼、供Apusic加載應(yīng)用的ear目錄(里面有描述符文件)。注意,此時需要額外的人工工作:需要手工將解決方案文件(XXX.solution)拷貝到元數(shù)據(jù)發(fā)布目錄(C:Apusic-4.0metas)。如果
10、元數(shù)據(jù)模型定義得不正確導(dǎo)致發(fā)布失敗,“BOS”控制臺視圖中,會報告紅色的錯誤信息。發(fā)布時盡量有選擇的發(fā)布。3、編譯將發(fā)布的java代碼編譯成class文件(放在bin目錄下,因?yàn)閱觓pusic的seteasenv.bat文件已經(jīng)加入到classpath目錄下)PS:建議使用BOS開發(fā)java代碼,不要使用jbuilder(主要是防止類庫引用不正確)。建議使用BOS_HOME%pluginscom.kingdee.bos.studio_1.0.0下的文件,如果沒有才使用外部的包。4、部署ejb運(yùn)行先前定義的批處理文件SetEASEnv.bat,啟動Apusic。啟動界面如圖XXX:1)目錄方式
11、使用apusic部署工具,通過菜單“文件/新建ear目錄”,選擇剛才發(fā)布的deploy目錄,部署工具已經(jīng)可以識別這個目錄形式的ear應(yīng)用,為EAR起名后,按F5進(jìn)行部署,ear及其包含的javabean便被服務(wù)器啟動。(今后如果修改了服務(wù)器端代碼,可以重新啟動服務(wù)器即可,現(xiàn)在bos不支持熱部署,元數(shù)據(jù)有緩存)。2)EAR文件方式將應(yīng)用打包ear文件,apusic可以支持命令行方式部署。F:DocumentsandSettingsfengrenfeijavacom.apusic.tools.appctl.Main用法:appctl選項(xiàng)命令選項(xiàng)包括:-s服務(wù)器主機(jī)名(默認(rèn)為localhost:68
12、88)-p管理員口令(如未提供則要求從控制臺輸入)命令包括:install應(yīng)用名企業(yè)檔案文件(.ear)-vhost虛擬主機(jī)名-context虛擬目錄名uninstall應(yīng)用名liststart應(yīng)用名stop應(yīng)用名restart應(yīng)用名PS:ant自動部署腳本(每次添加新的entity&fagade對象后需要重新部署ejb,刪除刪除對象后需要需要清除部署描述文件,不提供編譯,使用BOS編譯工具編譯后的class文件,class文件不用打包到ear文件中,通過apusic啟動時的classpath設(shè)置引用。projectname=Basedefault=deploybasedir=.propert
13、yname=deploy.dirvalue=deploy/propertyname=build.dirvalue=bin/propertyname=project.class.pathvalue=bin/propertyenvironment=env/pathid=apusic.class.pathincludename=*/*.jar/targetname=earjar/targettargetname=uninstall/targettargetname=deploydepends=earjar,uninstall/targettargetname=clean/targettargetna
14、me=cleanDeploymkdirdir=deploy/targetErrandTaskItemInfoi1newErrandTaskItemInfo();/建立分錄我們試一下發(fā)布后的應(yīng)用能否跑通:這里以驗(yàn)證實(shí)體對象為例,做幾個調(diào)用的例子:1.關(guān)于數(shù)字由于jdbc有問題,對于double類型的數(shù)據(jù)不支持(小數(shù)點(diǎn)位數(shù)太多),應(yīng)此對類型為double的屬性賦值方式為(doublecount=4444.55f;voucherInfo.count=count)強(qiáng)制使用單精度。同理,對于BigDecimal類型的使用方式為(BigDecimalinterest=newBigDecimal(“4444
15、.44”),使用字符串參數(shù)構(gòu)造函數(shù),限制精度。也可以使用BigDecimal的publicBigDecimalsetScale(intscale,introundingMode);方法設(shè)置小數(shù)點(diǎn)位數(shù)。PS:EAS設(shè)計(jì)規(guī)范規(guī)定數(shù)值只使用int,和BigDecimal兩類。2.新增(addnew)ErrandTasklnfoerrtinfo=newErrandTaskInfo();/建立值對象IErrandTaskerrt=ErrandTaskFactory.getRemotelnstance();/獲取實(shí)體Stringnumber=number001;IDataClassdc=DataClass
16、Factory.getRemoteInstance();DataClassInfodcInfo=dc.getValue(newObjectUuidPK(B0SUuid.read(85c6377c-00f8T000-e000-001ec0a81089dcla);/通過bosuuid獲取實(shí)體對象errtinfo.setNumber(number);errtinfo.setBillType(dcInfo);UserInfouserInfo=newUserInfo();userInfo.setId(B0SUuid.read(867d5df6-00f8T000-e000-0009c0a81089sysu
17、);/通過BOSUuid建立實(shí)體對象BigDecimalex=newBigDecimal(343434.445);/建立屬性BigDecimalex2=newBigDecimal(12345678901234567.8);/錯誤errtinfo.setExchangeRate(ex);errtinfo.setCreator(userInfo);errtinfo.setAuditDate(newDate(System.currentTimeMillis();/時間屬性Timestampcreatedate=newTimestamp(System.currentTimeMillis();errti
18、nfo.setCreateDate(createdate);errtinfo.setBizState(BillBizState.create);/枚據(jù)屬性errtinfo.setSave(true);/Boolean屬性il.setLineNo(34);errtinfo.getEntries().add(i1);/添加分錄errtinfo.getEntries().add(newErrandTaskItemlnfo();/添加分錄IObjectPKpk=errt.addnew(errtinfo);/保存值對象,返回邏輯鍵,可以通過邏輯鍵獲取值對象(如下)/ErrandTaskInfoerr2=
19、errt.getValue(pk);3.修改(update)IErrandTaskerrt=ErrandTaskFactory.getRemoteInstance();Stringid=8b35b903-00f8T000-e000-0008c0a81089errt;ObjectUuidPKpk=newObjectUuidPK(BOSUuid.read(id);/建立邏輯鍵newInfo=errt.getValue(pk);/獲取值對象System.out.println(this:+errtinfo.getExchangeRate();/獲取屬性errtlnfo.setExchangeRate
20、(ex);/修改屬性屬性errt.update(pk,newInfo);更新數(shù)據(jù)刪除(remove)errt.remove(pk);/通過邏輯鍵刪除單據(jù)內(nèi)容4.獲取集合(Filter,Selector)CurrencyInfocur=newCurrencylnfo();ICurrencyc=CurrencyFactory.getRemotelnstance();/建立實(shí)體對象FilterInfoi=newFilterlnfo();/建立過濾條件i.getFilterItems().add(newFilterItemInfo(number,ddff,CompareType.EQUELS);i.g
21、etFilterItems().add(newFilterItemInfo(id,ddff,CompareType.EQUELS);EntityViewInfoevi=newEntityViewInfo();/建立視圖信息evi.setFilter(i);/添加過濾條件evi.getSelector().add(newSelectorItemInfo(id);/添加獲取屬性evi.getSelector().add(newSelectorItemInfo(number);CurrencyCollectionco=c.getCollection(evi);/獲取集合建立主鍵(ObjectUuid
22、PK)OrgUnitInfocompanyInfo=OrgUnitFactory.getRemoteInstance().getValue(newObjectUuidPK(B0SUuid.read(d7d2df4f-00f7T000-e000-0027c0a81351unit);登陸上下文(LoginContext)Stringurl=tcp:/localhost;ORMRPCServiceLocator.setCurrentServiceURL(url);/設(shè)置服務(wù)器ILoginModulelogin=null;trylogin=LoginModuleFactory.getRemoteIns
23、tance();/建立登陸模塊catch(BOSExceptione)/TODO自動生成catch塊e.printStackTrace();LoginContextctx=newLoginContext(nullnullBOSValidateMeta,/元數(shù)據(jù)方案名稱BOSValidateMeta,/帳套名稱Locale.SIMPLIFIED_CHINESE);/登陸上下文trylogin.login(ctx);/登陸(建立Session)catch(BOSExceptionel)/TODO自動生成catch塊e1.printStackTrace();7.使用Selector對象另外,F(xiàn)ilt
24、er的正確寫法應(yīng)該是首先構(gòu)造一個FilterInfo,然后賦給EntityViewInfo。EntityViewInfoevi=newEntityViewInfo();evi.getSelector().add(newSelectorItemInfo(id);evi.getSelector().add(newSelectorItemInfo(number);evi.getSelector().add(newSelectorItemInfo();8.使用Filter對象另外,F(xiàn)ilter的正確寫法應(yīng)該是首先構(gòu)造一個FilterInfo,然后賦給EntityViewInfo。EntityViewI
25、nfoevi=newEntityViewInfo();FilterInfofilter=newFilterInfo();filter.setMaskString(#1or#2);/設(shè)置過濾條件的邏輯關(guān)系filter.add(newFilterItemInfo(ID,10000);filter.add(newFilterItemInfo(ID,20000);evi.setFilter(filter);單據(jù)分錄操作(entries)ErrandTaskItemInfoil=newErrandTaskItemInfo();errtinfo.getEntries().add(il);il.setLin
26、eNo(34);errtinfo.getEntries().add(newErrandTaskItemlnfoO);IObjectPKpk=errt.addnew(errtinfo);9.判斷業(yè)務(wù)數(shù)據(jù)是否取出(containsKey)newInfo.containsKey(company.id)/業(yè)務(wù)對象返回null,有兩種可能如果返回為空,表示未從數(shù)據(jù)庫取出數(shù)據(jù)。10.Rule對象的使用(RuleExecutor)Rule對象現(xiàn)在只能支持服務(wù)器端調(diào)用,客戶端通過fagade對象調(diào)用。因此和大家理解的可能有出入,他能提供的功能很少。RuleExecutor是Rule對象的實(shí)例和執(zhí)行引擎。對Ru
27、le對象的操作就是對RuleExecutor的操作。1)執(zhí)行Rule(服務(wù)器端)RuleExecutorexec=newRuleExecutor(ctx,newMetaDataPK(rule.basedata,BankRule);exec.addParameter(par1,newInteger(20);Stringid=c37398d8-00f8T000-e000-0004c0a810896345B9FF;BankInfobank=BankFactory.getLocalInstance(ctx).getValue(newObjectUuidPK(BOSUuid.read(id);exec.
28、addParameter(bank,bank);Resultresult=exec.executeFunction(cal);return(String)result.getProperty(result);PS:Rule是什么?你可以把它想象成一個javabean定義一個javabean,首先設(shè)置屬性,然后添加方法。使用時設(shè)置屬性,執(zhí)行方法,然后取出屬性值(結(jié)果)。BOS中定義屬性的傳入,傳出選項(xiàng),就是javabean中添加setter,getter方法。11.Query對象的使用(QueryExecutor)現(xiàn)在Query對象的遠(yuǎn)程接口有問題,同Rule對象一樣只能在服務(wù)器端調(diào)用(參數(shù)還有
29、問題)。Query對象的使用就是對QueryExecutor實(shí)例的使用。1)服務(wù)器端不帶參數(shù)的QueryQueryExecutorquery=QueryExecutor.getLocallnstance(newMetaDataPK(rule.basedata,BankQuery),ctx);IRowSetrs=query.executeQuery();2)客戶端不帶參數(shù)Parameter3)服務(wù)器端帶選項(xiàng)Option4)服務(wù)器端帶參數(shù)5)QueryInfo的實(shí)例化QueryInfoqueryInfo=MetaDataLoaderFactory.getRemoteMetaDataLoader()
30、.getQuery(newMetaDataPK(rule.basedata,BankQuery);2)IRowSert的實(shí)例操作IRowSetMetaDatarsmd=rs.getRowSetMetaData();while(rs.next()for(inti=1;ipropertyname二uservalue二designer/propertyname二passwordvalue二designer/remoteacluseradmin/user2.運(yùn)行主框架運(yùn)行類:com.kingdee.eas.base.uiframe.client.LoginFrame3.打開窗體例如在憑證列表界面上點(diǎn)擊
31、工具條按鈕新增憑證,則需要彈出另一個新增憑證的界面對象,這種情況,請使用類似如下代碼創(chuàng)建界面對象:IUIFactoryuiFactory=UIFactory.createUIFactory(factoryName);IUIWIndowwindow=uiFactory.create(“com.kingdee.eas.gl.VoucherEduiiCt”on,text,uiObject,oprt);window.Show();其中factoryName為你要創(chuàng)建的界面對象工廠類名,例如com.kingdee.eas.base.uiframe.client.UIFixTabFactory(固定頁簽中
32、打開)com.kingdee.eas.base.uiframe.client.UINewTabFactory(新頁簽中打開)com.kingdee.eas.base.uiframe.client.UINewSessionFactory(新會話中打開)com.kingdee.eas.base.uiframe.client.UINewFrameFactory(新窗口中打開)com.kingdee.eas.base.uiframe.client.UIModelDialogFactory(模式對話框中打開)(說明:盡管還有其它的界面工廠,但是目前僅推薦以上五種,而且,對于大部分自己控制的界面對象,尤其
33、是需要傳入dataObject和oprt來構(gòu)造的界面對象,推薦使用UIModelDialogFactory)關(guān)于參數(shù)UIContext的說明:對于使用UIFixTabFactory,UINewTabFactory,UINewSessionFactory,UINewFrameFactory,必須傳入?yún)?shù)MainFrame,可選參數(shù)UlClassParam(有此參數(shù)就傳,沒有就不傳)。對于UIModelDialogFactory,必須傳入?yún)?shù)Owner(父窗口對象,可以是Frame類型或者IUIWindow類型),可選參數(shù)UIClassParam(有此參數(shù)就傳,沒有就不傳)。示例代碼:MapuiContext=newHashMapO;uiContext.put(MainFrame,mainFrame);uiContext.put(UIClassParam,
溫馨提示
- 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àn)質(zhì)量控制試題及答案
- 一雙兒女夫妻離婚協(xié)議書
- 2025年證券從業(yè)資格考試全面總結(jié)試題及答案
- 品牌發(fā)展中的法律合規(guī)性計(jì)劃
- 采購與供應(yīng)鏈協(xié)同法律法規(guī)重點(diǎn)基礎(chǔ)知識點(diǎn)
- 微生物檢驗(yàn)中的技術(shù)創(chuàng)新與應(yīng)用實(shí)例試題及答案
- 項(xiàng)目管理考試中的評估標(biāo)準(zhǔn)與方法試題及答案
- 提高注冊會計(jì)師考試綜合能力試題及答案
- 特許金融分析師考試重要理論探討試題及答案
- 2022年福建省高考真題化學(xué)試題(解析版)
- GB/T 12939-2024工業(yè)車輛輪輞規(guī)格系列
- 攜程在線能力測評真題
- 7.1文化的內(nèi)涵和功能課件-高中政治統(tǒng)編版必修四哲學(xué)與文化
- 2024-2025學(xué)年上海中學(xué)高三下學(xué)期3月一模考試英語試題含解析
- 主管護(hù)師預(yù)測卷兒科護(hù)理專業(yè)實(shí)踐能力含答案
- 02幾何壓軸小題-【黃金沖刺】考前10天中考數(shù)學(xué)極限滿分沖刺(浙江專用)原卷版+解析
- 數(shù)字鄉(xiāng)村網(wǎng)絡(luò)課程設(shè)計(jì)
- 基于STM32的智慧農(nóng)業(yè)監(jiān)測系統(tǒng)設(shè)計(jì)
- 第23課《得道多助失道寡助》說課稿 統(tǒng)編版語文八年級上冊
- 廠房施工進(jìn)度計(jì)劃表
評論
0/150
提交評論