BOS运行时-编码规则-更新最大流水号原创
85人赞赏了该文章
1,072次浏览
编辑于2023年08月31日 11:18:58
如果通过系统生成单据编号,不需要更新流水号,星空会按照最大流水号+步长依次生成。
某些场景下,客户手动录入一个编号,比如当前流水号最大值100,下一个生成的流水号101,客户手动录入编号的流水号为101,这种情况下。当有人自动生成编号为101时,因为编码唯一校验器的存在,会提示编号唯一。
星空因为考虑性能,手动录入编号时,不会自动更新流水号,如果客户想要实时更新,可以参考以下示例,注意,调用更新流水号会影响保存或其他操作的性能,请根据实际情况谨慎选择。
以物料为例子,当前流水号最大值为2035
手动录入物料编号为2050后,调用更新最大流水号
检查流水号最大值
参考代码如下:
using Kingdee.BOS.Core.Bill.PlugIn; using Kingdee.BOS.Core.Bill.PlugIn.Args; using Kingdee.BOS.ServiceHelper; using Kingdee.BOS.Util; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Cloud.BOS.Support.Bill { [HotUpdate] [Description("测试更新最大流水号")] public class UpdateMaxNoPlugin:AbstractBillPlugIn { public override void BeforeSave(BeforeSaveEventArgs e) { var billNoField = this.View.BillBusinessInfo.GetBillNoField(); if(billNoField != null ) { var billNo = this.Model.GetValue(billNoField); if (!billNo.IsNullOrEmptyOrWhiteSpace()) { //当单据编号值不为空时,说明手动指定了编号,可以更新最大流水号 BusinessDataServiceHelper.UpdateMaxSerialNO(this.Context, this.View.BillBusinessInfo, new Kingdee.BOS.Orm.DataEntity.DynamicObject[] { this.Model.DataObject }, null); } } } } }
赞 85
85人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读