BOS运行时-编码规则-更新最大流水号

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

BOS运行时-编码规则-更新最大流水号

如果通过系统生成单据编号,不需要更新流水号,星空会按照最大流水号+步长依次生成。


某些场景下,客户手动录入一个编号,比如当前流水号最大值100,下一个生成的流水号101,客户手动录入编号的流水号为101,这种情况下。当有人自动生成编号为101时,因为编码唯一校验器的存在,会提示编号唯一。


星空因为考虑性能,手动录入编号时,不会自动更新流水号,如果客户想要实时更新,可以参考以下示例,注意,调用更新流水号会影响保存或其他操作的性能,请根据实际情况谨慎选择。


以物料为例子,当前流水号最大值为2035

image.webp


手动录入物料编号为2050后,调用更新最大流水号

image.webp

检查流水号最大值

image.webp


参考代码如下:

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);

                }
            }
        }
    }
}




BOS运行时-编码规则-更新最大流水号

如果通过系统生成单据编号,不需要更新流水号,星空会按照最大流水号+步长依次生成。某些场景下,客户手动录入一个编号,比如当前流水号最...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息