首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Acumatica -可以使用现有的numberingId创建多个numberingId

Acumatica -可以使用现有的numberingId创建多个numberingId
EN

Stack Overflow用户
提问于 2018-07-18 23:21:24
回答 1查看 100关注 0票数 1

我在针灸中的AutoNumberAttribute遇到了一些问题。在我的项目问题屏幕中,我可以使用现有的numberingId (见下面的屏幕截图)创建新的实体Field selector with AutoNumberAttribute

但其他实体,如POOrder,Case没有这个问题。代码如下所示:

代码语言:javascript
复制
 [Serializable]
[PXEMailSource]
[PXPrimaryGraph(typeof(ProjectIssueMaint))]
[PXCacheName(Messages.ProjectIssue.CacheName)]
public class ProjectIssue : BaseCache, IBqlTable, IAssign, IPXSelectable
{
    [PXDBIdentity]
    [PXUIField(Visible = false, Visibility = PXUIVisibility.Invisible, DisplayName = Messages.ProjectIssue.NumberId)]
    public virtual int? ProjectIssueId
    {
        get;
        set;
    }

    [PXDefault]
    [PXFieldDescription]
    [PXDBString(10, IsKey = true, IsUnicode = true, InputMask = ">CCCCCCCCCCCCCCC")]
    [PXUIField(DisplayName = Messages.ProjectIssue.NumberId, Required = true)]
    [PXSelector(typeof(Search<projectIssueCd>),
        typeof(projectIssueCd),
        typeof(projectId),
        typeof(projectTaskId),
        typeof(classId),
        typeof(summary),
        typeof(status),
        typeof(ownerID),
        Filterable = true)]
    [AutoNumber(typeof(ProjectManagementSetup.projectIssueNumberingId), typeof(createdDateTime))]
    public virtual string ProjectIssueCd
    {
        get;
        set;
    }

    public abstract class projectIssueCd : IBqlField
    {
    }

    public abstract class projectIssueId : IBqlField
    {
    }
}

 [Serializable]
[PXCacheName(Messages.ProjectManagementSetup.CacheName)]
public class ProjectManagementSetup : BaseCache, IBqlTable
{
    [PXDBString(10, IsUnicode = true, InputMask = ">aaaaaaaaaa")]
    [PXDefault(Constants.ProjectIssue.NumberingId)]
    [PXSelector(typeof(Numbering.numberingID), DescriptionField = typeof(Numbering.descr))]
    [PXUIField(DisplayName = Messages.ProjectManagementSetup.ProjectIssueNumberingSequence)]
    public virtual string ProjectIssueNumberingId
    {
        get;
        set;
    }

    public abstract class projectIssueNumberingId : IBqlField
    {
    }
}

 public class ProjectIssueMaint : PXGraph<ProjectIssueMaint, ProjectIssue>
{
    [PXViewName(Messages.ProjectIssue.CacheName)]
    [PXCopyPasteHiddenFields(typeof(ProjectIssue.status))]
    public PXSelect<ProjectIssue> ProjectIssue;

    [PXHidden]
    [PXCheckCurrent]
    public PXSetup<ProjectManagementSetup> ProjectManagementSetup;}

public class ProjectManagementSetupMaint : PXGraph<ProjectManagementSetupMaint>
{
    public PXSave<ProjectManagementSetup> Save;
    public PXCancel<ProjectManagementSetup> Cancel;

    public PXSelect<ProjectManagementSetup> ProjectManagementSetup;
}

我通过更改number sequence屏幕中的最后一个数字字段重现了这个问题(参见屏幕截图https://snag.gy/UpIe8a.jpg)。有人知道为什么会发生这种事吗?任何信息都会对我有所帮助)

EN

回答 1

Stack Overflow用户

发布于 2018-07-25 00:19:43

AutoNumberAttribute完全依赖于相关编号序列的配置,并且没有内置验证来防止插入由AutoNumberAttribute生成的具有重复编号的记录。由于您的表是使用A Pair of Columns with Key Substitution in the UI构建的,因此必须添加一个由CompanyID和ProjectIssueCd列组成的唯一索引,以防止在数据库级别插入具有相同ProjectIssueCd的多个ProjectIssue记录。

代码语言:javascript
复制
CREATE UNIQUE NONCLUSTERED INDEX [ProjectIssue_ProjectIssueCd_Uindex] ON [dbo].[ProjectIssue]
(
    [CompanyID] ASC,
    [ProjectIssueCd] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51405677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档