编码规则结果中为何不能显示CU编码?

本文详细解释了单据编码规则的生成原理,包括getNumber与readNumber方法的区别及应用场景,并给出了编码缺失问题的具体解决方案。

对于单据的编码规则,实施人员在配置了编码规则后,单据新增时根据编码规则自动生成的编码中CU的编码为空,咨询研发相关人员后得知,目前的编码规则生成时,如果要生成新的编码需要调用getNumber(info,org)方法,readNumber(info,org)取得的结果始终是临时显示用。取得新的编码时,如果涉及当前单据的属性值的,则必须要包含在info中,才能生成正确的编码规则。

基于此原则,就是因为info中没有设置CU的对象,所以解决方法如下:

在EditUI中在createNewData()的方法中增加:

objectValue.setCU(SysContext.getSysContext().getCurrentControlUnit());

 

注意:

getNumber(info,org)中的org是过滤编码规则用的,对生成编码规则没有用;

这里要说说readnumber(info,org)和getNumber(info,org)的联系和区别:

联系:二者都能取到编码规则

区别:readNumber取到编码规则时不会在后台自动增加计数,也就是说如果没有其他用户调用相同编码规则,则每次取回来的编码一定是相同的;而对于getNumber来说,如果编码规则中含有序数,则每调一次都会按照步长返回一个新的编码。

对于客户端单据新增时显示的编码,是调用readNumber的,真正单据在服务端保存时,框架再自动调用getNumber来取一次编码赋给单据,这是因为客户端新增时,可能中途放弃新增,那么这时如果是用getNumber的话就会浪费一个编码,所以要用readNumber。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值