BOS開發(fā)指南編碼規(guī)則配置_第1頁
BOS開發(fā)指南編碼規(guī)則配置_第2頁
BOS開發(fā)指南編碼規(guī)則配置_第3頁
BOS開發(fā)指南編碼規(guī)則配置_第4頁
BOS開發(fā)指南編碼規(guī)則配置_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

編碼規(guī)則TOC\o"1-5"\h\z簡介1目的1適用^^象1編碼規(guī)則1概念定義1規(guī)則定義2常用功能4\o"CurrentDocument"編碼規(guī)則模板導(dǎo)出4\o"CurrentDocument"編碼規(guī)則應(yīng)用范圍優(yōu)先策略4\o"CurrentDocument"不允許斷號、新增顯示、新增顯示且不允許斷號5\o"CurrentDocument"斷號維護(hù)7\o"CurrentDocument"屬性參與編碼9\o"CurrentDocument"對生成編碼的控制10\o"CurrentDocument"適用條件10\o"CurrentDocument"多應(yīng)用字段13案例17目的對編碼規(guī)則常見使用問題進(jìn)行歸納總結(jié)。適用對象本文檔適用于:測試人員:熟悉編碼規(guī)則模塊,了解編碼規(guī)則常用功能。開發(fā)工程師:了解業(yè)務(wù)組件對編碼規(guī)則集成方案。2.1.概念定義編碼:對于業(yè)務(wù)管理中的基礎(chǔ)資料和業(yè)務(wù)單據(jù),我們都要用一個唯一的、有意義的標(biāo)識符來表示,這個標(biāo)識符,就是編碼。編碼規(guī)則:對于同一類型的基礎(chǔ)資料和業(yè)務(wù)單據(jù),我們必須采用統(tǒng)一的編碼生成策略進(jìn)行管理,這個編碼生成策略,就是編碼規(guī)則。2.2.規(guī)則定義進(jìn)入方法:系統(tǒng)平臺->編碼規(guī)則->規(guī)則定義編碼規(guī)則系統(tǒng)流程圖主要屬性類別:固定值:標(biāo)識編碼業(yè)務(wù)對象的含義,可以由用戶按自己的設(shè)計要求,定義固定值的具體內(nèi)容:通常為英文縮寫或中文縮寫,例如:借款單-20051115-001LRB-20051115-001屬性值:用戶可以將當(dāng)前業(yè)務(wù)對象的屬性參與編碼。系統(tǒng)日期:用戶可以將當(dāng)前的時間加入到編碼中,而且我們可以提供各種不同的時間格式供用戶選擇。系統(tǒng)屬性:用戶可以將當(dāng)前系統(tǒng)屬性加入到編碼中,例如創(chuàng)建時間,修改時間。順序號:初始值:順序號起始的數(shù)值步長:業(yè)務(wù)對象遞增編碼的順序號之差例如:對于客戶編碼,初始值為100,步長為10,對于第一個客戶編碼為Coding00000100,那么第二個客戶編碼為Coding00000110。注意:一般用于編碼規(guī)則的尾段,目的是為了對應(yīng)用規(guī)則的對象進(jìn)行計數(shù)和相關(guān)排序。校驗碼:檢查編碼是否存在分隔符以及編碼長度是否符合要求。分9+1和EAN13兩種驗證碼,主要是用來驗證長度,而且檢驗碼必須放在分錄的最后一行。編碼規(guī)則模板導(dǎo)出功能描述:對初始庫中建立好的編碼規(guī)則模板進(jìn)行導(dǎo)出目前不支持對編碼規(guī)則進(jìn)行導(dǎo)出。編碼規(guī)則應(yīng)用范圍優(yōu)先策略功能描述:應(yīng)用范圍優(yōu)先策略,可以定義在集團(tuán)內(nèi)或多組織中使用同一編碼規(guī)則。避免重復(fù)定義、易于對編碼進(jìn)行管理。

集團(tuán)優(yōu)先:集團(tuán)內(nèi)任何一個組織設(shè)定的編碼規(guī)則均可以被集團(tuán)內(nèi)所有組織應(yīng)用。多組織優(yōu)先:指定的組織(可以指派多個)均可以使用當(dāng)前規(guī)則。組織優(yōu)先:指定的組織均可以使用當(dāng)前規(guī)則。不允許斷號、新增顯示、新增顯示且不允許斷號功能描述:編碼規(guī)則使用‘不允許斷號’或‘新增顯示且不允許斷號’時??梢栽凇S護(hù)斷號’功能中對已回收編碼進(jìn)行維護(hù)。不允許斷號:許多單據(jù)的編碼是不能有斷號,同時也不讓隨便更改的,這是對編碼的一個很強(qiáng)約束的需求,這個需求直接影響到編碼規(guī)則的實現(xiàn)方式。應(yīng)用場景一:新增顯示:即單據(jù)新增時即產(chǎn)生編碼,這樣的方式不能用在不允許斷號的場景,因為新增一個單據(jù)時就取了號,用戶很可能不會保存這么一個單據(jù),那這個取到號就會丟失,就會產(chǎn)生斷號。應(yīng)用場景二:新增不顯示:即單據(jù)新增時不取編碼,同時這個單據(jù)的編碼允許斷號。這時候就要定義新

增不顯示的規(guī)則。應(yīng)用場景三:不允許斷號:不允許斷號的應(yīng)用場景就是要求斷號約束的編碼規(guī)則,要滿足這種需求,必須在單據(jù)保存的時候才去取編碼,這樣才能保證的不丟失編碼,另外,在單據(jù)刪除時,發(fā)現(xiàn)當(dāng)前啟用的編碼規(guī)則是不允許斷號的時候,必須顯式的調(diào)用編碼規(guī)則的回收接口來回收當(dāng)前的這個編碼,以備下一次取編碼的時候使用。(1)業(yè)務(wù)集成”新增顯示且不允許斷號”需要設(shè)置實體擴(kuò)展屬性CRAddNoBreak為true。

前*t|利『*國明外|前*t|利『*國明外|明中齷世*—用BKEB 一WKZ/tairm htC■Ji的野0H|R*』事TihwwIE-]口b用fi'fi.E..疑國 ¥??書-111 ■■ 41141310.■■/■事□*]口昌昌JSS1T打(2)通過ICodingRuleManager接口中g(shù)etRuleStatus方法取得RuleStatus,判斷是否為"新增顯示且不允許斷號"ruleStatus.isAddNoBreak()。(3)單據(jù)上通過readNumber取得臨時編碼顯示。詳見第5章isUseIntermitNumberisUseIntermitNumberisAddView方法斷號維護(hù)功能描述:編碼規(guī)則使用‘不允許斷號’或‘新增顯示且不允許斷號’時??梢栽凇S護(hù)斷號’功能中對已回收編碼進(jìn)行維護(hù)。屬性參與編碼功能描述:如果客戶要求根據(jù)某個屬性來影響單據(jù)的編碼,這個時候需要將這個屬性添加到編碼規(guī)則的定義中,并做一些相關(guān)的設(shè)置來實現(xiàn)各種控制,可以將屬性包含的下級屬性也參與編碼。

生成編碼的控制功能描述:分類排序:單據(jù)可能要根據(jù)某個屬性進(jìn)行分類并獨立的編碼,即每個分類從初始值開始編號。這是個與單據(jù)屬性相關(guān)的一個需求,所以在編碼規(guī)則的接口中需要將單據(jù)的值對象傳入??梢曅栽O(shè)置:編碼規(guī)則可以將屬性或時間等信息定義到編碼中(例如當(dāng)前CU的編碼作為單據(jù)的編碼的一部分),作為編碼的一段,當(dāng)客戶需要按某個分段進(jìn)行排序,同時呢,又不需要在編碼中顯示這個分段,這個時候就應(yīng)該將屬性值的可視性設(shè)為不可視。適用條件功能描述:編碼規(guī)則的應(yīng)用條件支持部分指定應(yīng)用條件,部分不指定,同時還要支持應(yīng)用條件組合。要求對發(fā)票類型+發(fā)票狀態(tài)進(jìn)行組合來定義適用條件,就是普通發(fā)票的提交狀態(tài)適

還有增值稅發(fā)票提交和增值用一個編碼規(guī)則,普通發(fā)票的作廢狀態(tài)又要適用一個編碼規(guī)則,稅發(fā)票作廢狀態(tài),都可以分別定義規(guī)則。還有增值稅發(fā)票提交和增值不指定屬性:“不指定屬性”的編碼規(guī)則應(yīng)用于所有未指定屬性的場景,例如只為提交狀態(tài)的發(fā)票定義了規(guī)則,同時,啟用了一個“不指定屬性”的規(guī)則,那么發(fā)票處于作廢、暫存等狀態(tài)時,就會使用“不指定屬性”的規(guī)則。多適用條件:來源業(yè)務(wù)實體自由屬性且類型為字符類型或枚舉類型的字段。需要業(yè)務(wù)和編碼規(guī)則共同集成。修改文件W:\eas\Server\server\lib\client\eas\bs_codingrule-client.jar

土sto!丁打看式J-.a:怩?因何>-<4忸*1gWjhie刊斯?】1噌15卸融皿皿EiffT"=1但Hl地比■.EK335RJSE£*mrm15mznwmQ£i油二nirF~opaci在口:力?1mhfi2THJWe套FlUIS00■■4:機(jī)力■陽,ir-.Hi|H-mIEhh統(tǒng)Tl嗖ISoo學(xué)典."好"fl…………要...…-魴一E產(chǎn)E湃咫學(xué)生常乂-型T士&11:MlAdAf3-iITJtE蠟5文件pr邛mt*200770-33Id/中>4np.Hijclot's啟傅4,CUffihkMJi-ii-2rtgQ?faskkEAuifif<usle-iiS配5LW口即HAkFkU3KP-JIH2g;2京碼師口-Unds?匯"1l-LMrpirclkteI'SiLfiOZLftSSrd*2iUT-]c-i-asg:LJegQtigIlU足度小整qTfrJHe:二*TfrJHe:二*,二,+*■,.EF*,W.t||it白加尼運苴,fiit組」”字節(jié)UH文口」CodingRperties文件結(jié)構(gòu)為:#BF0C040E元數(shù)據(jù)BOStype#當(dāng)設(shè)置為true時則使用多適用條件false或者為空時使用單適用條件BF0C040E=true業(yè)務(wù)組建在getNumber和readNumber時需要傳入ParmCodingRule參數(shù)對象獲取多適用條件編碼。通過ParmCodingRule.setBindingPropertyExtendInfo設(shè)置多適用條件??蓞⒖家韵麓aBindingPropertyInfobindingPropertyInfo=newBindingPropertyInfo();bindingPropertyExtendInfo =bindingPropertyExtendInfo = newBindingPropertyExtendInfo();bindingPropertyInfo.setProName("effectedStatus");bindingPropertyInfo.setProValue("EFFECTED");Listlist=newArrayList();list.add(bindingPropertyInfo);bindingPropertyExtendlnfo.setList(list);pcr.setBindingPropertyExtendlnfo(bindingPropertyExtendlnfo);this.kDLabel5.setText(CodingRuleManagerFactory.getRemoteInstance().getNumber(info,org,pcr));詳見第5章checkMoreAdapt方法應(yīng)用字段功能描述:支持在編碼之外的字段使用編碼規(guī)則,例如名稱字段、批號批次字段、出貨號等等字段都可能需要采用一定的規(guī)則產(chǎn)生編碼。主要應(yīng)用于預(yù)算表的名稱,支持獲取組織名稱、會計期間還有固定值來產(chǎn)生名稱的編碼規(guī)則。該預(yù)算表的編碼和名稱同時應(yīng)用編碼規(guī)則。房地產(chǎn)的合同號也有相同需求。默認(rèn)支持應(yīng)用字段為編碼(number)需要業(yè)務(wù)和編碼規(guī)則共同集成。關(guān)于編碼規(guī)則多應(yīng)用字段集成修改配置文件codingruleadape.prperties工卡了前…:FRD卡簟.匚中帝咐觸上川3--安卜共學(xué)妙耳仃修吊n?rThi*拒GOmm■firi':.rigf「optf1丁曰1工uHnE■iritis:S5USSFile2t)l7-]i-215呼士匾6MLLEL=-?Cfl?Zty£=d.l.BX二hj匚Mm三fdL12JDT-1E-E1S:DDJ^DzJbQiXi■:,機(jī)*p-sr*ii1iImv-MlI.TTfinJSTThU21m力通i?g■SJTM11」-L-1,155豆件pr窗mdonm?r?=r/?egQI.iilua電I出電?藺,匚14hid血m1<gJeLk山?“川l%。出.才1。舊4州W?F.k聽崢腳5T輿輔強(qiáng)?Hq赳idua百lcdnjSE-anr-iL-zis:dd■t-u-r£4diia^ha^.4.clAi-t,,皿檔心口a%如ormVieii.?t.'-rt*i.iu土廠放入實體的實現(xiàn)類全路徑BF0C040E=com.kingdee.eas.base.codingrule.util.Test接口ICodingRuleAdaptpublicinterfaceICodingRuleAdapt{/***獲取多應(yīng)用字段*@return*/publicListgetAdaptItemList();接口返回的list中必須為多應(yīng)用itempublicclassAdaptItem{privateStringnumber;privateStringname_l1;privateStringname_l2;privateStringname_l3;publicStringgetName_l1(){returnname_l1;}publicvoidsetName_l1(Stringname_l1){_l1=name_l1;}publicStringgetName_l2(){returnname_l2;}publicvoidsetName_l2(Stringname_l2){_l2=name_l2;}publicStringgetName_l3(){returnname_l3;}publicvoidsetName_l3(Stringname_l3){_l3=name_l3;}publicStringgetNumber(){returnnumber;}publicvoidsetNumber(Stringnumber){this.number=number;測試類寫法publicclassTestimplementsICodingRuleAdapt{publicListgetAdaptItemList(){AdaptItemitem=newAdaptItem();item.setNumber("name");item.setName_l2("簡體名稱");item.setName_l3("繁體名稱");Listlist=newArrayList();list.add(item);returnlist;}}效果圖

業(yè)務(wù)組建在getNumber和readNumber時需要傳入ParmCodingRule參數(shù)對象,獲取自定義字段編碼。可參考以下代碼ParmCodingRulepcr=newParmCodingRule();pcr.setCustomProperty("name");this.kDLabel5.setText(CodingRuleManagerFactory.getRemoteInstance().getNumber(info,org,pcr));可參考第五章controlCustomProperty方法。新增一條憑證新增顯示的編碼規(guī)則,執(zhí)行憑證的增刪改操作新增一條憑證不允許斷號的編碼規(guī)則,執(zhí)行憑證的增刪改操作第一步:實體定義時定義擴(kuò)展屬性:codingRuleEnabled,將值設(shè)為true,然后再構(gòu)建輸出后就能在規(guī)則定義的子系統(tǒng)樹中定義規(guī)則。MM*<-1、/曲UH,?機(jī)ejklWfJt耳情?wa睥鼻_LE|癡*5的恭破病;->eo知名-MM*<-1、/曲UH,?機(jī)ejklWfJt耳情?wa睥鼻_LE|癡*5的恭破病;->eo知名-由俄二2EfiJK布用雷林什季克品〒"不4==方足前二n*5占源?J二€4==^:-「■i"?nr>?v口陽博時■疑屐包,河心」口占Hmthlh[占飛產(chǎn)學(xué)仃此B總印學(xué)幅*M%UI"pir-WTifeW-ft-nTM好?臉| 取內(nèi)他妙■IU*siriaag.Rtar$[in3iLJutaLoc?l |?士J _Xi5?□l-l呂和:劃承帝格田用月捍;J-Ft,*rrk!i-十帽鬼君航c^r^rdc帽鬼君航c^r^rdc[UraRgCMbdioarfiiiriLi-gT-ypa自】3frngkbj[eoEir嚏.妙*小、V0WIET4-..KEf-tyXme3cmP£fiils9DriEHn¥MFFW.t>*1GirchjLrfcSOiTtHm.l-r^n.Jidujt--5Tlmmm.Hrq...ifSTBiJI百皿峽*蜘,.6件114星苦修單,“.一PB?5DT_..三嫌n啤重口工作?jT需中心,大需中心,大■歲mJ五寸H.t.nr1,稀?Vf網(wǎng)JifflffitiJrttfi唐f|第二步:如果實體的屬性要參與編碼,需要設(shè)置該屬性的擴(kuò)展屬性:isInCode,將值設(shè)為true即可。第三步:如果要定義某個屬性作為編碼規(guī)則的過濾屬性,需要設(shè)置該屬性的擴(kuò)展屬性isBindingProperty,將值設(shè)為true即可。營再X當(dāng)型凹鼻沖:而■午可=賽?作...才生也一約中上is"f'ifwiungQendwjjbgd盯H營再X當(dāng)型凹鼻沖:而■午可=賽?作...才生也一約中上is"f'ifwiungQendwjjbgd盯HEd坳即口官*廿擊證:1沙±"駕T:*G也紀(jì)Il-Zll^ff?3Khrms〉Gn*鵬由鵬Mlbft^ucU]bs+upEMfli利斌gggpsc^c-tnoddTlTn?IulJIIrvxiwF^iceHccdfituih?看小片片?%?kJ第?修金定義獷口鼠也匕工日99.星星空?S:僮夙體晶甫吊0£,總I牌上號歲RISttM用用可列刑n而前任用B候;匕邙哂3J9L W靖 恒 利名 用副&豆把d.ii eiHC£de- [國片 本■性差… Z…出靠fiL£-pJm, iKHdnsA'wn Mbn UBtHk.!! Friw .it.◎主Xa手舞i:K*em -|百WfE『l"

0rnwi^< oe情迓集o:■it后事〔鼻唯5(i*-<ftfor郎,i■叮叫#5荒)便竹幽第四步:客戶端調(diào)用:見框架的FrameWorkUtils的getCodeRuleClient方法:publicSttin(getCpdeRqleClient(C^reEaselnfdinfQjS-trinjcoitpsnyID)IbTOTsCodingRnleEsc&ptiart,HASBieEkcaption,EOSExceptionWtfiiig-null:ICodingRuleManageriCqdlngRuleltana^er=CodingRuleManagerFactory.g:etdemoteInstqnce();if(iCodingRuleHanager.i^EKist(info,com.panyID))if(iCodingKuleMarLager-isllaeIntermitNumber(info_companyID))〃業(yè)處的□%工與步賺1)的口鵬工日時一毀的.判斷由戶是否啟施易支驛功能“啟用了斷號朝項能,此時只是讀取當(dāng)前最新編嗎,真正的搶號在保利sysNumber=iCodingRnleManae&r『工eadNwnhbr(infcompanyID);else“沒有啟用斷芳寶蘆功能,此時獲取了編碼規(guī)則產(chǎn)生的編碼sysNiunber=iCcdingRuleMarLager.getNumber(info.couiipanylD)returnFysNumber:;服務(wù)端調(diào)用,見框架的DataBaseControllerBean的setNumberFromCodingRule方法生成騙碼。/"F儲時設(shè)置最終編碼的萬法式如aras.ctzh胤izraBcallerx?p強(qiáng)工心orgld?throwsBOSException“^throwsEASBi工Exception/protectedvoldsetttunib?rFrOJiCodingRule(Centex-tctSjD^taBaselnfqcaller;,StTinsnrgId)throwsBOSExcepiicrLEASBizExceirticn{ICodingRuleHariassriCcdin^RuleMariager=CodirgRuleManaaer?actoryif(argld==null||argil.trimO*Len£thO==0){return:if(iCftiLngRjLLleKanager.isEKi^itcaller,orgld)){iftiCodingRuleManager.isUseIntermitNumber(cal1er3orgld)廢版(!iCodingRileMinager.isEserSelect(callerjorgld)))(caller?setHunt&r(iCodingRuLeMaiid名egetNumber(calletjargTd)):}else{|if(iCodinffR-jleMsna£ei.isAddVrew(caller,orald)){^,if.iCodinaREleManager.isModifiableicaller,orgld))//判斯是否修或了編碼,是否改大,順序號iCodLTLgRuleWar,ajer.checkHodifiedNumber(calleijor^Idj

caller.getNumberO,toString()):else{“什么都沒選,新增不顯示,允講斷號,業(yè)務(wù)峙空rumbh倡,在此設(shè)置numb,call&r*sttNumber(iCDdingRul&MarLager.E*南mh?T(「al1”,nrgTd)))}StringaddNew(CodingRuleInfocodingRuleInfo)增加一個新的編碼規(guī)則對象,參數(shù)為待插入的編碼規(guī)則對象StringgetNumber(IObjectValuebizObject,Stringorg,ParmCodingRulecustomProperty)獲取編碼Booleanupdate(CodingRuleInfocodingRuleInfo)更新一個編碼規(guī)則對象,參數(shù)為待插入的編碼規(guī)則對象Booleandelete(CodingRuleInfocodingRuleInfo)刪除一個編碼規(guī)則對象,參數(shù)為待插入的編碼規(guī)則對象BooleandeleteByNumber(Stringnumber)刪除指定number的編碼規(guī)則CodingRuleInfogetCodingRule(IObjectValuebizObject,Stringorg)獲取編碼規(guī)則對象

CodingRuleInfogetCodingRuleByNumber(Stringnumber)獲取指定number的編碼規(guī)則對象CodingRuleInfogetCodingRuleByName(Stringname)獲取指定name的編碼規(guī)則對象String口getBatchNumber(IObjectValuebizObject,CodingRuleInfocodingrule,intcount)用滿足指定條件的編碼規(guī)則對象生成指定的數(shù)量的編碼返回String口getBatchNumberFromInitialValue(IObjectValuebizObject,Stringorg,Stringbindingproperty,StringcustomString,intcount)從初始值開始批量取一組編碼-StringgetSimulateNumber(CodingRuleInfocodingruleinfo)獲取滿足指定條件的編碼規(guī)則對象生成的模擬編碼StringsumLength(CodingRuleInfocodingruleinfo)獲取滿足指定條件的編碼規(guī)則對象的編碼長度StringreadNumber(IObjectValuebizObject,Stringorg,Stringbindingproperty,StringcustomString)讀取滿足指定條件的編碼規(guī)則對象的生成編碼只讀booleanhasCuscomString(IObjectValuebizObject,Stringorg)滿足指定條件的編碼規(guī)則對象中是否包含有自定義段StringgetNonbreakNumber(IObjectValuebizObject,Stringorg)獲取非中斷的編碼即不允許斷號存在的編碼booleanisUserSelect(CodingRuleInfocr)是否用戶選擇booleanisExist(CodingRuleInfocr)是否存在指定條件的編碼規(guī)則對象RuleStatusgetRuleStatus(IObjectValuebizObject,Stringorg,Stringbindingproperty,ParmCodingRulecustomPro)獲取規(guī)則的各種狀態(tài)booleanisUseIntermitNumber(CodingRuleInfocr)指定的編碼規(guī)則是否啟用斷號支持功能booleanisUseIntermitNumber(IObjectValu

溫馨提示

  • 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

提交評論