Acumatica 为什么我的自动编号设置不起作用?

Acumatica 为什么我的自动编号设置不起作用?,acumatica,Acumatica,据我所知,我已经正确设置了这个自动编号字段。我过去做过多次自动编号设置,但这一次似乎不起作用,我不明白为什么 这是用于存储自动编号的DAC对象: [PXDBString(15, IsUnicode = true, InputMask = "")] [PXSelector(typeof(Numbering.numberingID), DescriptionField = typeof(Numbering.descr))] [PXUIField(DisplayName = "Catalog Head

据我所知,我已经正确设置了这个自动编号字段。我过去做过多次自动编号设置,但这一次似乎不起作用,我不明白为什么

这是用于存储自动编号的DAC对象:

[PXDBString(15, IsUnicode = true, InputMask = "")]
[PXSelector(typeof(Numbering.numberingID), DescriptionField = typeof(Numbering.descr))]
[PXUIField(DisplayName = "Catalog Header Nbr")]
public virtual string CatalogHeaderNbr { get; set; }
public abstract class catalogHeaderNbr : IBqlField { }
这是将其分配到CD字段:

[PXDBString(15, IsUnicode = true, InputMask = ">CCCCCCCCCCCCCCC", IsKey = true)]
[AutoNumber(typeof(CFBSNumberingSetup.catalogHeaderNbr), typeof(AccessInfo.businessDate))]
[PXUIField(DisplayName = "Catalog ID")]
[PXDefault]
[PXSelector(typeof(Search<CFBSCatalogHeader.catalogCD>),
    new Type[]
    {
        typeof(CFBSCatalogHeader.catalogCD),
        typeof(CFBSCatalogHeader.vendorID),
        typeof(CFBSCatalogHeader.descr)
    },
    DescriptionField = typeof(CFBSCatalogHeader.catalogCD)
    )]

public virtual string CatalogCD { get; set; }
public abstract class catalogCD : IBqlField { }
[PXDBString(15,IsUnicode=true,InputMask=“>cccccc”,IsKey=true)]
[自动编号(typeof(CfsNumberingSetup.catalogHeaderNbr),typeof(AccessInfo.businessDate))]
[PXUIField(DisplayName=“目录ID”)]
[默认值]
[PX选择器(类型)(搜索),
新类型[]
{
类型(CfsCatalogHeader.catalogCD),
类型(CFBSCatalogHeader.vendorID),
类型(CFBSCatalogHeader.descr)
},
DescriptionField=typeof(CFBSCatalogHeader.catalogCD)
)]
公共虚拟字符串CatalogCD{get;set;}
公共抽象类catalogCD:IBqlField{}
编号顺序屏幕(请注意我的符号是新的):

我制作的具有指定存储值的编号设置页:

保存时出现错误(请注意,符号表示选择而不是新建):

错误跟踪:

2018年11月7日上午10:19:34错误: 值不能为null。 参数名称:格式

位于System.String.FormatHelper(IFormatProvider提供程序,字符串格式,ParamsArray args) at System.String.Format(字符串格式,对象[]args) 在PX.Data.PXMessages.LocalizeFormat(字符串strMessage、字符串和消息前缀、对象[]args) 在PX.Data.PXException..ctor(字符串格式,对象[]args) 在F:\Bld\AC-FULL2018R112-JOB1\sources\WebSites\Pure\PX.Objects\CS\Descriptor\Attribute.CS中的PX.Objects.CS.AutoNumberAttribute.RowPersisting(PXCache sender,PXRowPersistingEventArgs e)中 在PX.Data.PXCache.OnRowPersisting(对象项,PXDBOperation操作) 在PX.Data.PXCache`1.persisted处(对象行) 在PX.Data.PXCache`1.Persist处(PXDBOperation操作) 在PX.Data.PXGraph.Persist(类型cacheType,PXDBOperation) 在PX.Data.PXGraph.Persist()处 在PX.Data.PXSave`1.d_uuu2.MoveNext()中 在PX.Data.PXAction`1.d_uu31.MoveNext()中 在PX.Data.PXAction`1.d_uu31.MoveNext()中 在PX.Web.UI.PXBaseDataSource.tryExecutePendingCommand(字符串视图名称、字符串[]排序列、布尔[]后代、对象[]搜索、对象[]参数、PXFilterRow[]过滤器、数据源SelectArguments参数、布尔和closeWindowRequired、Int32和adapterStartRow、Int32和adapterTotalRows) 在PX.Web.UI.PXBaseDataSource.ExecuteSelect(字符串viewName、DataSourceSelectArguments参数、PXDSSelectArguments pxarguments)


您可能希望在划行过程中尝试处理分配,例如:

    public virtual void DAC_RowPersisting(PXCache cache, PXRowPersistingEventArgs e)
    {
        DAC record = (DAC)e.Row;
        if (record != null)
        {
            if (this.DAC.Cache.GetStatus(record) == PXEntryStatus.Inserted)
            {
                string nextNumber = AutoNumberAttribute.GetNextNumber
        (DAC.Cache, record, "CATHEADNBR", DateTime.Now);
                record.CatalogCD = nextNumber;
            }
        }
    }

您可能希望在划行过程中尝试处理分配,例如:

    public virtual void DAC_RowPersisting(PXCache cache, PXRowPersistingEventArgs e)
    {
        DAC record = (DAC)e.Row;
        if (record != null)
        {
            if (this.DAC.Cache.GetStatus(record) == PXEntryStatus.Inserted)
            {
                string nextNumber = AutoNumberAttribute.GetNextNumber
        (DAC.Cache, record, "CATHEADNBR", DateTime.Now);
                record.CatalogCD = nextNumber;
            }
        }
    }

使用此编号顺序,确保图形中的设置表具有PXSetup视图。从屏幕截图上看,它没有找到您期望的编号顺序,因为新符号不是您期望的符号。这可能是由于缺少PXSetup视图而缺少设置

在岗
它引用:“确保在构建文档的图形中包含设置表的PXSetup视图。”

使用此编号顺序确保图形中的设置表具有PXSetup视图。从屏幕截图上看,它没有找到您期望的编号顺序,因为新符号不是您期望的符号。这可能是由于缺少PXSetup视图而缺少设置

在岗
它引用:“确保在构建文档的图形中包含设置表的PXSetup视图。”

我试图避免这种情况,因为基本功能会自动填充ID,而不是强制我手动执行。如果没有人能解决为什么这个特殊的自动编号不能自动填充的问题,我将沿着这条路线走下去。你知道有没有办法强制显示为?我试图避免这种情况,因为基本功能会自动填充ID,而不是强制我手动执行。如果没有人能解决为什么这个特殊的自动编号不能自动填充的问题,我将沿着这条路线走下去。你知道有没有办法强迫我把它表现为?我就知道我会错过一些小东西。。。当你在查看自己的代码时看不到自己遗漏的小东西时,你一定会喜欢的。我同意这一点。有时候,有一个有着外部视角的人会有所帮助(在这里就stackoverflow提问)。很高兴你把它解决了。说真的,我每次都被这个问题困扰着!甚至今天!我知道我会错过一些小东西。。。当你在查看自己的代码时看不到自己遗漏的小东西时,你一定会喜欢的。我同意这一点。有时候,有一个有着外部视角的人会有所帮助(在这里就stackoverflow提问)。很高兴你把它解决了。说真的,我每次都被这个问题困扰着!甚至今天!