本文介绍了在单据中应用编码规则及其相关操作的方法,包括如何启用编码规则、让实体属性参与编码、设置编码规则的应用条件、处理不允许断号的情况、支持编码修改、将编码规则应用于其他字段、设置文本类型适用条件、解决编码重复错误、排查编码生成问题、处理编码规则序时薄不显示单据、getnumber和recyclenumber方法的调用顺序、处理数据过多异常等,并给出了注意事项。
1、 我想在单据中应用编码规则怎么处理? 让单据应用编码规则,可以在单据对应的实体中加扩展属性codingruleenable,并将该值设置为true。 2、 我想让实体的属性参与编码该怎么处理?让实体的属性参与编码可以在实体属性的扩展属性中加入isincode,并加该属性的值设置为true。 3、 我想让为定义的编码规则设置应用条件该做哪些设置?让实体的扩展属性参与到适用条件可以在该属性的扩展属性中加入isBindingProperty,并将这个属性的值设置为true。 4、 规则定义的时候勾选了不允许断号,新增单据的时候不能出现编码?这个问题首先要区分新增显示和不允许断号,新增显示且不允许断号的区别新增显示的时候调用的是getnumber方法,这样在单据新增的时候就去抢号了。 不允许断号是不能在单据新增的调用getnumber的,因为会出现这样一个场景,但用户新增一个单据时,调用了getnumber方法,抢号动作发生了,但是这时用户不保存这条单据,那么就造成断号了。如果要在不允许断号的时候能够显示出编码可以调用编码规则的readnumber方法生成一个临时的编码,真正保存的时候(在bean方法里)调用的是getnumber。 新增显示且不允许断号的实现就是要在单据新增的时候调用readnumber生成一个临时的编码,然后在单据保存的时候再调用getnumber方法。 5、 勾选了不允许断号的时候出现了断号现象?这个要先确认在单据删除的时候是不是调用了编码规则的recyclenumber方法,如果没有调用这个方法是肯定 会出现断号的,因为如果调用了recyclenumber方法,我们就会把回收到的断号放到一个断号表里,这样下次再新增一个单据的时候我们会从断号表中去取断号,这样就避免了出现断号。 6、 编码规则怎样才能支持修改?支持修改的时候要注意哪些问题要让生成的编码支持修改必须在单据的实体的扩展属性中加入CRNumberEdit,并加该属性设置为true。这样在规则定义的时候再去勾选支持修改,这样在新增单据的时候就会让用户可以修改了。在单据支持修改的时候要注意:保存时候会调用编码规则的checkModifiedNumber方法,调用这个方法时把修改后的编码传进来,如果修改后的编码的顺序号超过了当前的编码规则生成的最大号,这个时候就会抛出最大值超过范围的提示。 7、 我想让设置的编码规则应用到除编码外的其他字段该怎么处理?如果想让设置的编码规则应用到除编码外的其他字段,可以继承我们提供的接口ICodingRuleAdapt,并且实现ICodingRuleAdapt类的getAdaptItemList方法,将要参与编码的其他属性以AdaptItem的方式放到list中。并且将要改单据的bostype和实现类放到CodingRuleAdapt.properties这个文件中。格式如下:FF66566A=com.kingdee.eas.ma.budget.NameCodeRuleAdapt并且在规则定义的时候把要应用该编码规则的字段加进来
8、我想在编码规则的适用条件里设置文本类型如果想在适用条件里应用文本类型,可以实现编码规则提供的接口IbindingProperty,并实现里面的方法,将要参与适用条件的文本类型数据的值传过来。同时将单据的bostype和属性值以及实现类放到property.xml中,格式如下:
推荐阅读