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

下载本文档

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

文档简介

编码规则1.简介31.1.目的31.2.适用对象32.编码规则32.1.概念定义32.2.规则定义43.常用功能53.1.编码规则模板导出53.2.编码规则应用范围优先策略63.3.不允许断号、新增显示、新增显示且不允许断号63.4.断号维护83.5.属性参与编码103.6 对生成编码的控制113.7 多适用条件113.8 多应用字段144.案例181. 简介1.1. 目的对编码规则常见使用问题进行归纳总结。1.2. 适用对象本文档适用于: 测试人员:熟悉编码规则模块,了解编码规则常用功能。 开发工程师:了解业务组件对编码规则集成方案。2. 编码规则2.1. 概念定义 编码:对于业务管理中的基础资料和业务单据,我们都要用一个唯一的、有意义的标识符来表示,这个标识符,就是编码。 编码规则:对于同一类型的基础资料和业务单据,我们必须采用统一的编码生成策略进行管理,这个编码生成策略,就是编码规则。 2.2. 规则定义 进入方法:系统平台-编码规则-规则定义编码规则系统流程图主要属性类别: 固定值:标识编码业务对象的含义,可以由用户按自己的设计要求,定义固定值的具体内容: 通常为英文缩写或中文缩写, 例如:借款单-20051115-001 LRB-20051115-001 属性值:用户可以将当前业务对象的属性参与编码。 系统日期:用户可以将当前的时间加入到编码中,而且我们可以提供各种不同的时间格式供用户选择。 系统属性:用户可以将当前系统属性加入到编码中,例如创建时间,修改时间。 顺序号:初始值: 顺序号起始的数值步长: 业务对象递增编码的顺序号之差例如:对于客户编码,初始值为100,步长为10,对于第一个客户编码为Coding00000100,那么第二个客户编码为Coding00000110。注意:一般用于编码规则的尾段,目的是为了对应用规则的对象进行计数和相关排序。 校验码:检查编码是否存在分隔符以及编码长度是否符合要求。分9+1和EAN13两种验证码,主要是用来验证长度,而且检验码必须放在分录的最后一行。3. 常用功能3.1. 编码规则模板导出功能描述:对初始库中建立好的编码规则模板进行导出 目前不支持对编码规则进行导出。3.2. 编码规则应用范围优先策略功能描述:应用范围优先策略,可以定义在集团内或多组织中使用同一编码规则。避免重复定义、易于对编码进行管理。 集团优先:集团内任何一个组织设定的编码规则均可以被集团内所有组织应用。 多组织优先:指定的组织(可以指派多个)均可以使用当前规则。 组织优先:指定的组织均可以使用当前规则。3.3. 不允许断号、新增显示、新增显示且不允许断号 功能描述:编码规则使用不允许断号或新增显示且不允许断号时。可以在维护断号功能中对已回收编码进行维护。 不允许断号:许多单据的编码是不能有断号,同时也不让随便更改的,这是对编码的一个很强约束的需求,这个需求直接影响到编码规则的实现方式。应用场景一:新增显示:即单据新增时即产生编码,这样的方式不能用在不允许断号的场景,因为新增一个单据时就取了号,用户很可能不会保存这么一个单据,那这个取到号就会丢失,就会产生断号。应用场景二:新增不显示:即单据新增时不取编码,同时这个单据的编码允许断号。这时候就要定义新增不显示的规则。应用场景三:不允许断号:不允许断号的应用场景就是要求断号约束的编码规则,要满足这种需求,必须在单据保存的时候才去取编码,这样才能保证的不丢失编码,另外,在单据删除时,发现当前启用的编码规则是不允许断号的时候,必须显式的调用编码规则的回收接口来回收当前的这个编码,以备下一次取编码的时候使用。 (1) 业务集成 ”新增显示且不允许断号” 需要设置实体扩展属性CRAddNoBreak为true。(2)通过ICodingRuleManager接口中getRuleStatus方法取得RuleStatus,判断是否为”新增显示且不允许断号” ruleStatus.isAddNoBreak()。(3)单据上通过readNumber取得临时编码显示。详见第5章isUseIntermitNumber isUseIntermitNumber isAddView方法3.4. 断号维护 功能描述:编码规则使用不允许断号或新增显示且不允许断号时。可以在维护断号功能中对已回收编码进行维护。 3.5. 属性参与编码功能描述:如果客户要求根据某个属性来影响单据的编码,这个时候需要将这个属性添加到编码规则的定义中,并做一些相关的设置来实现各种控制,可以将属性包含的下级属性也参与编码。3.6 对生成编码的控制功能描述:分类排序:单据可能要根据某个属性进行分类并独立的编码,即每个分类从初始值开始编号。这是一个与单据属性相关的一个需求,所以在编码规则的接口中需要将单据的值对象传入。可视性设置:编码规则可以将属性或时间等信息定义到编码中(例如当前CU的编码作为单据的编码的一部分),作为编码的一段,当客户需要按某个分段进行排序,同时呢,又不需要在编码中显示这个分段,这个时候就应该将属性值的可视性设为不可视。3.7 多适用条件功能描述:编码规则的应用条件支持部分指定应用条件,部分不指定,同时还要支持应用条件组合。要求对发票类型+发票状态进行组合来定义适用条件,就是普通发票的提交状态适用一个编码规则,普通发票的作废状态又要适用一个编码规则,还有增值税发票提交和增值税发票作废状态,都可以分别定义规则。 不指定属性:“不指定属性”的编码规则应用于所有未指定属性的场景,例如只为提交状态的发票定义了规则,同时,启用了一个“不指定属性”的规则,那么发票处于作废、暂存等状态时,就会使用“不指定属性”的规则。 多适用条件:来源业务实体自由属性且类型为字符类型或枚举类型的字段。 需要业务和编码规则共同集成。修改文件 W:easServerserverlibclienteasbs_codingrule-client.jar CodingRperties文件结构为:# BF0C040E元数据BOS type#当设置为true时 则使用多适用条件 false或者为空时 使用单适用条件BF0C040E=true业务组建在getNumber和readNumber时需要传入ParmCodingRule参数对象获取多适用条件编码。通过ParmCodingRule.setBindingPropertyExtendInfo设置多适用条件。可参考以下代码BindingPropertyInfo bindingPropertyInfo = new BindingPropertyInfo();BindingPropertyExtendInfo bindingPropertyExtendInfo = new BindingPropertyExtendInfo();bindingPropertyInfo.setProName(effectedStatus);bindingPropertyInfo.setProValue(EFFECTED);List list = new ArrayList();list.add(bindingPropertyInfo);bindingPropertyExtendInfo.setList(list);pcr.setBindingPropertyExtendInfo(bindingPropertyExtendInfo);this.kDLabel5.setText(CodingRuleManagerFactory.getRemoteInstance().getNumber(info,org,pcr);详见第5章checkMoreAdapt方法3.8 多应用字段功能描述:支持在编码之外的字段使用编码规则,例如名称字段、批号批次字段、出货号等等字段都可能需要采用一定的规则产生编码。主要应用于预算表的名称,支持获取组织名称、会计期间还有固定值来产生名称的编码规则。该预算表的编码和名称同时应用编码规则。房地产的合同号也有相同需求。 默认支持应用字段为编码(number) 需要业务和编码规则共同集成。关于编码规则 多应用字段集成修改配置文件 codingruleadape.prperties放入实体的实现类全路径BF0C040E=com.kingdee.eas.base.codingrule.util.Test接口ICodingRuleAdapt public interface ICodingRuleAdapt /* * 获取 多应用字段 * return */ public List getAdaptItemList();接口返回的list中必须为多应用itempublic 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 String 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; 测试类写法public class Test implements ICodingRuleAdapt public List getAdaptItemList() AdaptItem item = new AdaptItem(); item.setNumber(name); item.setName_l2(简体名称); item.setName_l3(繁体名称); List list = new ArrayList(); list.add(item); return list; 效果图业务组建在getNumber和readNumber时需要传入ParmCodingRule参数对象,获取自定义字段编码。可参考以下代码ParmCodingRule pcr = new ParmCodingRule();pcr.setCustomProperty(name);this.kDLabel5.setText(CodingRuleManagerFactory.getRemoteInstance().getNumber(info,org,pcr);可参考第五章controlCustomProperty方法。4. 案例新增一条凭证新增显示的编码规则,执行凭证的增删改操作新增一条凭证不允许断号的编码规则,执行凭证的增删改操作第一步:实体定义时定义扩展属性:codingRuleEnabled,将值设为true,然后再构建输出后就能在规则定义的子系统树中定义规则。第二步:如果实体的属性要参与编码,需要设置该属性的扩展属性:isInCode,将值设为true即可。第三步:如果要定义某个属性作为编码规则的过滤属性,需要设置该属性的扩展属性isBindingProperty,将值设为true即可。第四步:客户端调用:见框架的FrameWorkUtils的getCodeRuleClient方法:服务端调用,见框架的DataBaseControllerBean的setNumberFromCodingRule方法5. 提供给用户的接口String addNew(CodingRuleInfo codingRuleInfo)增加一个新的编码规则对象,参数为待插入的编码规则对象String getNumber(IObjectValue bizObject, String org, ParmCodingRule customProperty)获取编码Boolean update(CodingRuleInfo codingRuleInfo)更新一个编码规则对象,参数为待插入的编码规则对象Boolean delete(CodingRuleInfo codingRuleInfo)删除一个编码规则对象,参数为待插入的编码规则对象Boolean deleteByNumber(String number)删除指定number的编码规则CodingRuleInfo getCodingRule(IObjectValue bizObject, String org)获取编码规则对象CodingRuleInfo getCodingRuleByNumber(String number)获取指定number的编码规则对象CodingRuleInfo getCodingRuleByName(String name)获取指定name的编码规则对象String getBatchNumber(IObjectValue bizObject, CodingRuleInfo codingrule, int count)用满足指定条件的编码规则对象生成指定的数量的编码返回String getBatchNumberFromInitialValue(IObjectValue bizObject, String org, String bindingproperty, String customString, int count)从初始值开始批量取一组编码-String getSimulateNumber(CodingRuleInfo codingruleinfo)获取满足指定条件的编码规则对象生成的模拟编码String sumLength(CodingRuleInfo codingruleinfo)获取满足指定条件的编码规则对象的编码长度String readNumber(IObjectValue bizObject, String org, String bindingproperty, String customString)读取满足指定条件的编码规则对象的生成编码只读boolean hasCuscomString(IObjectValue bizObject, String org)满足指定条件的编码规则对象中是否包含有自定义段String getNonbreakNumber(IObjectValue bizObject, String org)获取非中断的编码即不允许断号存在的编码boolean isUserSelect(CodingRuleInfo cr)是否用户选择boolean isExist(CodingRuleInfo cr)是否存在指定条件的编码规则对象RuleStatus getRuleStatus(IObjectValue bizObject, String org, String bindingproperty, ParmCodingRule customPro)获取规则的各种状态boolean isUseIntermitNumber(CodingRuleInfo cr)指定的编码规则是否启用断号支持功能boolean isUseIntermitNumber(IObjectValue bizObject, String org, String bindingproperty)指定的编码规则是否启用断号支持功能boolean isAddView(CodingRuleInfo cr)是否是新增显示boolean recycleNumber(IObjectValue bizObject, String org, String number)回收号码到指定条件的编码规则对象中IntermilNOCollection getIntermitNumbers(IObjectValue bizObject, String org)获取满足指定条件的编码规则对象的断号集合Collection getPropertyCollection(String bosType, String propertyName)获取某业务实体的指定属性的值集合String getSortIte

温馨提示

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

最新文档

评论

0/150

提交评论