首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ax 2012中自定义表的编号规则

ax 2012中自定义表的编号规则
EN

Stack Overflow用户
提问于 2012-12-14 22:49:49
回答 2查看 6.6K关注 0票数 1

我有一个自定义实用程序,它使用AX 2012 AOT的自定义表格,我想有一个身份字段为我的表,有人告诉我,我可以使用数字序列为此,可以映射到我的表,以便它可以获得一个新的唯一的id在插入行的时候,当我尝试生成数字序列,它会问我的区域和模块信息,因为我想为我的自定义表格和实用程序,这是工作在外面的dynamics ax 2012使用.net业务连接器,我无法搞清楚输入什么向导。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-15 00:18:49

您可能见过使用NumberSeqModule枚举并向其添加自定义模块枚举值的方法。然后,通常会创建一个扩展NumberSeqApplicationModule类的类,然后使用数字序列引用加载链接到数据类型的数字序列。

虽然这是“最佳实践方法”,但对于你现在想要做的事情来说,这有点过头了。下面是你可以做的:

您只需覆盖正在使用的表的insert方法即可。您可以在NumberSeq类上使用newGetNumFromCode构造函数。

代码语言:javascript
运行
复制
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中创建一个新的数字序列(组织管理|数字序列|数字序列),并记住数字序列代码。

然后,在表的insert方法上,您可以执行以下操作:(该示例取自联系人表)

代码语言:javascript
运行
复制
if (!this.ContactPersonId)
{
    this.ContactPersonId = NumberSeq::newGetNum(CompanyInfo::numRefContactPersonId()).num();
}

这将确保在插入记录时,您也会填写ID。

票数 4
EN

Stack Overflow用户

发布于 2013-09-25 19:30:00

这就是你如何用正常的方式来编号序列

代码语言:javascript
运行
复制
custTable.xyz = NumberSeq::newGetNum(CompanyInfo::numrefContactId()).num();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13880939

复制
相关文章

相似问题

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