编码跳号不用愁-明哥帮你来解忧

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

编码跳号不用愁-明哥帮你来解忧


每个单据上都有“编号”字段,平台的编码规则模块为其提供自动生成功能。


为单据配置编码规则就意味着赋予单据编号一定的生成规律,即减轻录单时的繁琐, 也起到约束编号的作用。


1 编码跳号的场景介绍


这篇文档会阐述在新增单据过程中遇到的一个特殊问题:


在单据进行保存或提交操作时, 出现校验失败,则编号会丢失并继续取下一个编号。出现此现象的原因是,唯一编号在校验前已经生成,若校验失败, 编号会被废弃。


简单举个例子


1. 现在我们要操作A单据, 在A单据的保存操作上绑定一个校验逻辑, 校验我们A单据的一个文本字段T不能为空。


2. 新增一张单据时,编号字段显示“金蝶中国-0001”,我们选择不给文本字段T填写任何值。


3. 点击保存操作,会出现提示告诉你,文本字段T不能为空。


4. 此时我们的单据编号字段, 会显示“金蝶中国-0002”, 即产生我们之前描述的“跳号问题”。


图例如下:




2 跳号问题解析


这个模块我们讲三个事情: 为何产生跳号、解决思路、产品层面思考。


2.1 为何产生跳号?


当我们对单据进行保存等操作时, 在苍穹体系中会有如下流程:



目前我们编码规则标准插件, 选择在“校验前”这个时机, 生成唯一的编号。


而校验器工作的时机是在生成编号之后, 所以校验失败且没有成功入库, 则这个编号就会丢弃。


2.2 解决思路


思路一:断号补偿


一般我们的业务中不会用到断号补偿,这是一个很特殊的功能, 它会收集任何丢弃或者删除的编号加以回收利用, 在下次新增时从断号表取出这些编号。

这个功能为什么能解决我们跳号问题呢? 因为校验失败丢弃的编号被回收了,二次使用时是能获取到这个号码的。(如果有并发竞争, 不一定能获得)



思路二:插件组替换


针对跳号问题我们开发了另外一套插件, 同样是刚刚的那个流程图,我们将编号生成时机延后, 在“校验后”才生成唯一编号, 以此来避免校验失败导致的编号丢弃问题。


2.3 产品层面的思考


针对断号补偿的解决方式, 我们做一个思考,跳号问题是否是客户关注问题?


跳号或者不跳号其实涉及到一个编号连续性的问题。


客户如果需要编号一直具有连续性, 比如删除一张单据从而导致单据编号缺失一个, 那么他需要开启断号补偿, 在下次新增时, 删除的单据的编号会被重复利用回来。


客户如果不需要编号连续性, 则不论是删除也好, 校验不通过产生跳号也好, 最终的产生结果其实不对客户造成任何影响。那么跳号问题本质上就不是一个需要解决的问题。


出于客户不需要关注编号连续性的考量,我们衍生出第三种解决方案,即在保存成功后才展示“编号”,保存成功前不做编号预览。那么客户在不关注编号连续性的同时, 也避免了页面上“编号”字段变换导致的使用歧义。


此方案仅需在编码规则配置中, 取消“新增显示”选项的勾选即可。



3 相关资讯链接


金蝶云·苍穹-基础服务云使用指南

基础服务云知识精选

基础服务开发进阶及接口指南

基础服务微课件汇总

基础服务特性发布汇总

基础服务常见问题汇总





更多精彩内容,”码“上了解↓


编码跳号不用愁-明哥帮你来解忧

每个单据上都有“编号”字段,平台的编码规则模块为其提供自动生成功能。为单据配置编码规则就意味着赋予单据编号一定的生成规律,即减轻录...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息