数字序列 - Dynamics ax 2012

3

我需要帮忙。

我正在尝试在我的表格中添加一些自动生成的数字序列。我是通过在NumberSeqModuleMine类中使用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相同的方法——你有什么想法,我做错了什么,只有一个数字不起作用?

编辑-好吧...当我测试我的应用程序时,我注意到NumberSequence正在工作,但并不总是如此——有时Dynamics设置数字,但有时它会在基础中留下空白字段。但我不知道这是服务器问题,还是我的表单问题,或者其他什么问题。有什么想法吗?

2个回答

1

尝试清除所有缓存,特别是运行以下代码:

NumberSeqApplicationModule::loadAll();
SysGlobalObjectCache::clearAllCaches();
appl.numberSeqGlobal().buildModulesMap();

或者重新启动AX,如果所有方法都失败了,也可以重新启动AOS。

另请参阅使用增强型数列框架(白皮书)

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

您还可以运行执行NumberSequenceModuleSetup类中的LoadAll方法的作业来重新初始化所有引用。 但是,要重新初始化所有引用,必须确保系统中没有已定义的现有数字序列。


0

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

datatype.parmSortField(12)


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接