BOS开发指南_编码规则配置_第1页
BOS开发指南_编码规则配置_第2页
BOS开发指南_编码规则配置_第3页
BOS开发指南_编码规则配置_第4页
BOS开发指南_编码规则配置_第5页
已阅读5页,还剩20页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、编码规则1. 简介11.1. 目的11.2. 适用对象12. 编码规则12.1. 概念定义12.2. 规则定义23. 常用功能43.1. 编码规则模板导出 43.2. 编码规则应用范围优先策略 43.3. 不允许断号、新增显示、新增显示且不允许断号 53.4. 断号维护73.5. 属性参与编码93.6 对生成编码的控制 103.7多适用条件103.8 多应用字段134. 案例171.1.目的对编码规则常见使用问题进行归纳总结。1.2. 适用对象本文档适用于:测试人员:熟悉编码规则模块,了解编码规则常用功能。开发工程师:了解业务组件对编码规则集成方案。2.1. 概念定义编码:对于业务管理中的基础

2、资料和业务单据,我们都要用一个唯一的、有意义的标识符来表示,这个标识符,就是编码。编码规则:对于同一类型的基础资料和业务单据,我们必须采用统一的编码生成策略进行管理,这个编码生成策略,就是编码规则。22规则定义进入方法:系统平台-编码规则-规则定义编码规则系统流程图主要属性类别:固定值:标识编码业务对象的含义,可以由用户按自己的设计要求,定义固定值的具体内容:通常为英文缩写或中文缩写,例如:借款单-20051115-001LRB-20051115-001属性值:用户可以将当前业务对象的属性参与编码。系统日期:用户可以将当前的时间加入到编码中,而且我们可以提供各种不同的时间格式供用户选择。系统属

3、性:用户可以将当前系统属性加入到编码中,例如创建时间,修改时间。顺序号:初始值:顺序号起始的数值步长:业务对象递增编码的顺序号之差例如:对于客户编码,初始值为100,步长为 10,对于第一个客户编码为Coding00000100,那么第二个客户编码为CodingOOOOOIIO。注意:一般用于编码规则的尾段,目的是为了对应用规则的对象进行计数和相关 排序。校验码:检查编码是否存在分隔符以及编码长度是否符合要求。分9+1和EAN13两种验证码,主要是用来验证长度,而且检验码必须放在分录的最后一行。3.1. 编码规则模板导出功能描述:对初始库中建立好的编码规则模板进行导出目前不支持对编码规则进行导

4、出。3.2. 编码规则应用范围优先策略功能描述:应用范围优先策略,可以定义在集团内或多组织中使用同一编码规则。避免重 复定义、易于对编码进行管理。集团优先:集团内任何一个组织设定的编码规则均可以被集团内所有组织应用。多组织优先:指定的组织(可以指派多个)均可以使用当前规则。组织优先:指定的组织均可以使用当前规则。33不允许断号、新增显示、新增显示且不允许断号功能描述:编码规则使用不允许断号或新增显示且不允许断号时。可以在维护 断号功能中对已回收编码进行维护。不允许断号:许多单据的编码是不能有断号,同时也不让随便更改的,这是对编码的一个 很强约束的需求,这个需求直接影响到编码规则的实现方式。应用

5、场景一:新增显示:即单据新增时即产生编码,这样的方式不能用在不允许断号的场景,因为新增 一个单据时就取了号,用户很可能不会保存这么一个单据,那这个取到号就会丢失,就会 产生断号。应用场景二:新增不显示:即单据新增时不取编码,同时这个单据的编码允许断号。这时候就要定义新增不显示的规则。应用场景三:不允许断号:不允许断号的应用场景就是要求断号约束的编码规则,要满足这种需求,必 须在单据保存的时候才去取编码,这样才能保证的不丢失编码,另外,在单据删除时,发 现当前启用的编码规则是不允许断号的时候,必须显式的调用编码规则的回收接口来回收当前的这个编码,以备下一次取编码的时候使用。 业务集成”新增显示且

6、不允许断号 ”需要设置实体扩展属性CRAddNoBreak为true。|J| mrwlvrtLhrl 賈Customvlb nlJ ttMJlr - -,HEiwr iryp :!忖 J*-TFITtJS3LGMM14cwwmBWF7iTHrTni:tT7 sSitfliltefiliiUf tij-t-snltEi ipJjifrfs ?ldf414卜国htnStrijLErsz.lrjcl j 匸込岂*3,lgJ.El:丄 |丄11aCnr.LgiJ ii4w vl C *LJ I包毛F5EJ3.HTi-t cj-c-gjir:i| 丨汕.诈打曲|1厂: 僵日価l|T|11上*1*1-3诃

7、hXlzt帥tmb4* .紀怙崛视:HKEFrtrc.B谆miih迪i i町i* kisw事CD .4-ji c.nev kl1SEI辛塚i-24-nr | tiCca:* 口洛吿JSS1T卫钿谥釦JM中科国平科 Et書 睾宵懊用RRWffi I世梶工甲el moHI cft 5 SI *eT L n皿 “ EeTlHI呦c1 TmgMl| 丰p 鼻 -A 曲w码 & 耳吧耳通过ICodingRuleManager接口中getRuleStatus方法取得 RuleStatus,判断是否为新增 显示且不允许断号 ” ruleStatus.isAddNoBreak()。(3)单据上通过readNu

8、mber取得临时编码显示。详见第 5 章 isUseIntermitNumberisUseIntermitNumber isAddView 方法3.4.断号维护功能描述:编码规则使用不允许断号或新增显示且不允许断号时。可以在维护 断号功能中对已回收编码进行维护。3.5.属性参与编码功能描述:如果客户要求根据某个属性来影响单据的编码, 这个时候需要将这个属性添加 到编码规则的定义中, 并做一些相关的设置来实现各种控制, 可以将属性包含的下级属性 也参与编码。3.6对生成编码的控制功能描述:分类排序:单据可能要根据某个属性进行分类并独立的编码,即每个分类从初始值开始编号。这是个与单据属性相关的一个

9、需求,所以在编码规则的接口中需要将单据的值对象传入。可视性设置:编码规则可以将属性或时间等信息定义到编码中(例如当前cu的编码作为单据的编码的一部分),作为编码的一段,当客户需要按某个分段进行排序,同时呢,又不需要在编码 中显示这个分段,这个时候就应该将属性值的可视性设为不可视。H曄曲U下比凰狙战:| T II 1*也&补位方向1Lkl3.7多适用条件功能描述:编码规则的应用条件支持部分指定应用条件,部分不指定,同时还要支持应用条件组合。要求对发票类型 +发票状态进行组合来定义适用条件,就是普通发票的提交状态适还有增值税发票提交和增值用一个编码规则,普通发票的作废状态又要适用一个编码规则, 税

10、发票作废状态,都可以分别定义规则。不指定属性:“不指定属性”的编码规则应用于所有未指定属性的场景,例如只为提交状态的发票定义了规则,同时,启用了一个“不指定属性”的规则,那么发票处于 作废、暂存等状态时,就会使用“不指定属性”的规则。多适用条件:来源业务实体自由属性且类型为字符类型或枚举类型的字段。需要业务和编码规则共同集成。修改文件 W:easServerserverlibclie nteasbs_codi ngrule-clie nt.jar!i-.:幣佃闽-znwwQ i nAa nirE* op ac3 4np .Hi j clots1Z滋JW-ii-2 rt AQ| i fask k

11、EAuififiL C14E1IE50 CLA53 Il UZSEF-Z IT- WD盘场世. 担曲帕 ic utiawEit.fiit加学节tin 史口Codi ngRperties文件结构为:# BF0C040E 元数据 BOS type#当设置为true 时则使用多适用条件false或者为空时使用单适用条件BF0C040E= true业务组建在 getNumber和readNumber时需要传入 ParmCodingRule参数对象获取多适用条 件编码。通过 ParmCodi ngRule.setBi ndi ngPropertyExte ndl nfo 设置多适用条件。可

12、参考以下代码Bi ndi ngPropertyl nfo bindin gPropert ylnfo = new Bindin gPropertyI nfo();Bin di ngPropertyExte ndl nfobindin gPropertyExte ndlnfoBi ndin gPropertyExte ndl nfo();bindin gProperty In fo.setProName(effectedStatus);bindingPropertylnfo.setProV alue(EFFECTED);List list = new ArrayList();newlist.ad

13、d(b indin gProperty In fo);bindin gPropertyExte ndln fo.setList(list);pcr.setBi ndin gPropertyExte ndln fo(bi ndi ngPropertyExte ndl nfo);this.kDLabel5.setText(Codi ngRuleMa nagerFactory.getRemote In sta nce().getNumber(i nfo,org,pcr);详见第5章checkMoreAdapt 方法3.8多应用字段功能描述:支持在编码之外的字段使用编码规则,例如名称字段、批号批次字段

14、、出货号等等字段都可能需要采用一定的规则产生编码。主要应用于预算表的名称,支持获取组织名称、会计期间还有固定值来产生名称的编码规则。该预算表的编码和名称同时应用编码规则。房地产的合同号也有相同需求。默认支持应用字段为编码 (nu mber)需要业务和编码规则共同集成。关于编码规则多应用字段集成修改配置文件codi ngruleadape.prperties放入实体的实现类全路径BF0C040E=com.k in gdee.eas.base.codi ngrule.util.Test 接口 ICodingRuleAdaptpublic in terface ICodi ngRuleAdapt *

15、获取多应用字段* return*/ public List getAdaptltemList(); 接口返回的 list 中必须为多应用 item public class AdaptItem private String number;private String name_l1;private String name_l2;private String name_l3;public String getName_l1() return name_l1;public void setName_l1(String name_l1) _l1 = name_l1;public S

16、tring getName_l2() return name_l2;public void setName_l2(String name_l2) _l2 = name_l2;public String getName_l3() return name_l3;public void setName_l3(String name_l3) _l3 = name_l3;public String getNumber() return number;public void setNumber(String number) this.number = number;测试

17、类写法public class Test impleme nts ICodi ngRuleAdapt public List getAdaptItemList() AdaptItem item = new Adaptltem();item.setNumber(” name); item.setName2(简体名称); item.setName3(繁体名称);List list = new ArrayList(); list.add(item);return list;效果图业务组建在 getNumber和readNumber时需要传入 ParmCodingRule参数对象,获取自定义 字段编码

18、。可参考以下代码ParmCodi ngRule per = new ParmCodi ngRule();pcr.setCustomProperty(” name);this.kDLabel5.setText(Codi ngRuleMa nagerFactory.getRemote In sta nce().getNumber(i nfo,org,pcr);可参考第五章con trolCustomProperty方法。新增一条凭证新增显示的编码规则,执行凭证的增删改操作新增一条凭证不允许断号的编码规则,执行凭证的增删改操作第一步:实体定义时定义扩展属性:codingRuleEnabled,将值设

19、为true,然后再构建输出后就能在规则定义的子系统树中定义规则。第二步:如果实体的属性要参与编码,需要设置该属性的扩展属性:islnCode,将值设为true即可。第三步:如果要定义某个属性作为编码规则的过滤属性,需要设置该属性的扩展属性 isBindingProperty,将值设为 true 即可。km 1-HTfi PrrWrtbri*i|FEE口细审饰口 HI壶口 河巴理程&窖 询冃0 匚说即 运厅I出 1F口監 歹航;,二33 1 -o -册电. ”,.#*: ”主 hFraWUJlHgK p Cd4HukOflidvc人田tg如話塾-sji研3 S Khtw1.割 07247 皂a

20、fi fwiun0 Qendw# HMdsyD HT超吐t曲i7ff3Khn*叶亍n*bs+upEMfliRxpsspjtflCi JdTlTn?IulJII rvxiwFice Hccdfitui旳斤河 kasssHtri扩国風if上二昌日护展空如Kh吓 T: 少匚沟上 ift-zik-d博主戸編 VWMW15E -0Tl|T*i?7構谊izei:匚public(CQL&Easelnf d inf QjS+rinj conipsnylD) -thro-vs C o dine Ku LeEx c ep tiorL, E AS B1 sEuc apt i cm, BOSEKceptianSt r

21、- null:IC o dingRuleManager iC qdlnRul eltanaer = CodingRuleManage rFactory,g:et demote Inst qnce();i (i匚odingRuleManager. isEKist (info, com.panyID)if I iCodingEuleMarLager. isUse Inter mi tJhimbEizfiLrLf , campaiivID) 此处的唧出步骡1)的汀d时一報的,判断审户昱否启鼬鸟支薛功第ID)/启阳了断号強持助能,此时只是读取当前就新编碑,宜止前枪号在保存sysNumber = i.C

22、cdingRul cWIarLaeer 1:亡adNwnhur( inf ocomp any ID ):else没有启用断芳支挿功餾 此时荻取了编码规则*生的编码 sysNiunber 二 iC c dingltiil eManag & r get Number (info.couiipanylD)return FysNumber :;服务端调用,见框架的DataBaseControllerBean 的 setNumberFromCodingRule 方法M j|(*主応编码B /尽删擾畫量终编码的方法* 筍jam ctz“细电ras callerx虫td* orId* throws BOSE

23、xcept iony ttirovs EASBizExc:eptian*/protected void setttunibrFrOJiCodingRule(CentctSj DtaBaselnfq caller;, St Tins nrg Id) throws BOSExceni ierb EASBi zExceirt icnICodirRuleHarLassr iCcdinjRuleMarLager = C odirgRul eManae r? act oryif (argld = null | | argil. trimO * LenthO = 0)return:if (iCftdingR

24、iileKarLager. isEKii tcaller, orgld)if tiCodingRuleManager. 1 sUseInt ermitNumber (cal 1 er3 orgld) 數孔 (! iCodingRileMinager. isEserSelect (calleij orgld)calLer set Hunt&r (iCodin岂RuLeMariager” get Number (calletj argTd): el se|if (iCo dinffRjl eMsna ei. 1 sAddV rew( call er. oral d) 、if .lCodinaREl

25、eManager. isModifiabLe caller, orgld)/炎断是否修改了編陽是否改大7:顺序号iCodLTLgRuleWar,ajer. checkHodif iedNumber (caLlerj orIdjcaller. getNumberO, toSt ring ():else/供么都汝选斯增不显丞九诗断僉.业务诗空rumbEi直在此吸置number callttr sttNumaer (iCDdingRul&MarLager.gp+MimhpT 1 *r, nrgTd)Stri ngaddNew(Codi ngRulel nfo codi ngRulel nfo)增加一

26、个新的编码 规则对象,参数为待 插入的编码规则对 象StringgetNumber(IObjectValuebizObject,Stringorg,ParmCodi ngRule customProperty)获取编码Boolea n update(Codi ngRule Info cod in gRule Info)更新一个编码规则 对象,参数为待插入 的编码规则对象Boolean delete(CodingRulelnfo codingRuleInfo)删除一个编码规则 对象,参数为待插入 的编码规则对象Boolea n deleteByNumber(Stri ng nu mber)删除指

27、定number的 编码规则Codi ngRulel nfo getCodi ngRule(IObiectValue bizObject, Stri ng org)获取编码规则对象Codi ngRule Info getCodi ngRuleByNumber(Stri ng nu mber)获取指定 number的编码规则对象Codi ngRulel nfo getCodi ngRuleByName(Stri ng n ame)获取指定name的编 码规则对象Stri ng getBatchNumber(IObjectValuebizObject, Codi ngRulel nfocodi ng

28、rule, int count)用满足指定条件的 编码规则对象生成 指定的数量的编码 返回Stri ng getBatchNumberFroml nitialValue(IObjectValuebizObject,String org, String bindingproperty, String customString, int count)从初始值开始批量取一组编码-Stri ng getSimulateNumber(Codi ngRulel nfo codi ngrule info)获取满足指定条件 的编码规则对象生 成的模拟编码String sumLe ngth(Codi ngRul

29、e Info cod in grule info)获取满足指定条件 的编码规则对象的 编码长度String readNumber(IObjectValuebizObject, String org, Stringbindingproperty, String customString)读取满足指定条件 的编码规则对象的 生成编码只读boolea n hasCuscomStri ng(IObjectValue bizObject, String org)满足指定条件的编 码规则对象中是否 包含有自定义段String getN on breakNumber(IObjectValue bizObje

30、ct, String org)获取非中断的编码 即不允许断号存在 的编码boolea n isUserSelect(Codi ngRule Info cr)是否用户选择boolea n isExist(Codi ngRulel nfo cr)是否存在指定条件 的编码规则对象RuleStatus getRuleStatus(IObjectValue bizObject, Stri ng org, Stri ng bindin gproperty, ParmCodi ngRule customPro)获取规则的各种状 态boolea n isUsel ntermitNumber(Codi ngRulel nfo cr)指定的编码规则是 否启用断号支持功 能boolean isUseIntermitNumber(IObjectValuebizObject, String org,String bindin gproperty)指定的编码规则是 否启用断号支持功 能boolea n isAddView(Codi ngRulel nfo cr)是否是新增显示boolean recycleNumber(IObjectValue bizObject, String org, String nu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论