簡體   English   中英

AX 2012中自定義表格的編號順序

[英]Number sequence for custom table in ax 2012

我有一個自定義實用程序,它在AX 2012 AOT中使用自定義表,我想為我的表提供一個標識字段,有人告訴我我可以為此使用數字序列,並且可以將數字序列映射到我的表以便可以獲取在插入行時有一個新的唯一ID,當我嘗試生成數字序列時,它會詢問我區域和模塊信息,因為我希望我的自定義表和實用程序在使用.net業務連接器在Dynamicsax 2012之外運行的自定義表和實用程序有此要求,我不知道要輸入什么向導。

您可能已經看到了使用NumberSeqModule枚舉並向其添加自定義模塊枚舉值的方法。 然后,通常將創建一個擴展NumberSeqApplicationModule類的類,然后使用數字序列引用加載鏈接到數據類型的數字序列。

盡管這是“最佳實踐方法”,但是對於您現在想做的事情來說,這有點過頭了。 因此,您可以執行以下操作:

您可以覆蓋正在使用的表的插入方法。 您可以在NumberSeq類上使用newGetNumFromCode構造函數。

public static NumberSeq newGetNumFromCode(
    NumberSequenceCode  _numberSequenceCode,
    NumberSeqScope      _scope = NumberSeqScopeFactory::createDefaultScope(),
    boolean             _makeDecisionLater           = false,
    boolean             _dontThrowOnMissingRefSetUp  = false,
    SysLastValue        _nextNumSeq = null,
    boolean             _fillNextNumSeq = false)
{
    return NumberSeq::newGetNumFromId(
            NumberSequenceTable::findByNaturalKey(_numberSequenceCode, _scope.getId()).RecId,
            _makeDecisionLater,
            _dontThrowOnMissingRefSetUp,
            _nextNumSeq,
            _fillNextNumSeq);
}

因此,現在要使用它,您只需在Dynamics Ax中創建一個新的數字序列(組織管理|數字序列|數字序列),並記住數字序列代碼。

然后,在表的插入方法上,您可以執行以下操作:(該示例取自聯系人表)

if (!this.ContactPersonId)
{
    this.ContactPersonId = NumberSeq::newGetNum(CompanyInfo::numRefContactPersonId()).num();
}

這應該確保在插入記錄時,您還將填寫ID。

這就是您按常規方式編號順序的方式

custTable.xyz = NumberSeq::newGetNum(CompanyInfo::numrefContactId()).num();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM