Axapta 数字序列-动态ax 2012

Axapta 数字序列-动态ax 2012,axapta,x++,dynamics-ax-2012,Axapta,X++,Dynamics Ax 2012,我需要帮助 我正在尝试在我的表中添加一些自动生成的数字序列。我是通过在类numbersqmodulemine中使用loadModule() NumberSeqDatatype datatype = NumberSeqDatatype::construct(); datatype.parmDatatypeId(extendedtypenum(IdStuffSeq)); datatype.parmReferenceHelp(literalstr("@SYS32633")); datatype.par

我需要帮助

我正在尝试在我的表中添加一些自动生成的数字序列。我是通过在类
numbersqmodulemine
中使用
loadModule()

NumberSeqDatatype datatype = NumberSeqDatatype::construct();
datatype.parmDatatypeId(extendedtypenum(IdStuffSeq));
datatype.parmReferenceHelp(literalstr("@SYS32633"));
datatype.parmWizardIsContinuous(true);
datatype.parmWizardIsManual(NoYes::No);
datatype.parmWizardIsChangeDownAllowed(NoYes::No);
datatype.parmWizardIsChangeUpAllowed(NoYes::No);
datatype.parmWizardHighest(99999);
datatype.parmWizardLowest(1);
datatype.parmSortField(12);
this.create(datatype);

datatype.parmDatatypeId(extendedtypenum(IdOrderSeq));
datatype.parmReferenceHelp(literalstr("@SYS32674"));
datatype.parmWizardIsContinuous(true);
datatype.parmWizardIsManual(NoYes::No);
datatype.parmWizardIsChangeDownAllowed(NoYes::No);
datatype.parmWizardIsChangeUpAllowed(NoYes::No);
datatype.parmWizardHighest(99999);
datatype.parmWizardLowest(1);
datatype.parmSortField(12);
this.create(datatype);
接下来,我创建了一个作业并执行它:

static void jobName(Args _args){
NumberSeqModuleMine  NumberSeqModuleMine = new NumberSeqModuleMine();
NumberSeqModuleMine.loadModule();
接下来,在所有表格中,我有这样的方法:

static client server NumberSequenceReference numRefIdOrderSq(){
return NumberSeqReference::findReference(extendedTypeNum(IdOrderSeq)); }
我的问题:我添加了所有没有
IdOrderSeq
的数字,但是我使用了与其他
SeqNumbers
中相同的方法-你知道我做错了什么,所以只有一个数字不起作用吗


编辑-好的。。。正如我在测试我的应用程序时注意到的那样,数字序列是有效的,但并不总是有效的——有时动态设置数字,但有时它会在底部留下空白字段。但我不知道这是服务器问题,我的表单问题还是其他问题。有什么想法吗?

您是否尝试过将IdOrderSeq的排序字段设置为例如13?我认为模块中的每个数字都需要自己的排序号。说清楚一点,我说的是以下代码行:


datatype.parmSortField(12)
尝试清除所有缓存,尤其是运行以下代码:

NumberSeqApplicationModule::loadAll();
SysGlobalObjectCache::clearAllCaches();
appl.numberSeqGlobal().buildModulesMap();
或者重新启动AX,如果全部失败,也重新启动AOS

另见

注意:在Microsoft Dynamics AX 2009中,可以初始化数字序列引用 通过重新启动应用程序对象服务器(AOS)。在Microsoft Dynamics AX 2012中 初始化引用以填充NumberSequenceDatatype和 NumberSequenceParameterType表已移至初始化检查表。到 初始化新创建的引用,运行执行LoadModule的作业 方法

还可以通过运行执行LoadAll的作业来重新初始化所有引用 NumberSequenceMemoduleSetup类中的方法。但是,对于重新初始化所有 引用时,必须确保没有现有的编号序列 在系统中定义


嗨,Jaszym,请在完成此操作后尝试同步数据字典。DD sync负责加载这些模块,因此可能会有所帮助。