简体   繁体   English

NumberSequence - 动态斧2012

[英]NumberSequence - Dynamics ax 2012

I need help. 我需要帮助。

I'm trying to add a few auto-generated number sequences in my tables. 我正在尝试在表格中添加一些自动生成的数字序列。 I'm doing it by using loadModule() in Class NumberSeqModuleMine : 我是通过在NumberSeqModuleMine类中使用loadModule()NumberSeqModuleMine

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);

Next I've created a job and execute it: 接下来我创建了一个作业并执行它:

static void jobName(Args _args){
NumberSeqModuleMine  NumberSeqModuleMine = new NumberSeqModuleMine();
NumberSeqModuleMine.loadModule();

Next in all tables I have metodls like this: 接下来在所有表格中我都有这样的符号:

static client server NumberSequenceReference numRefIdOrderSq(){
return NumberSeqReference::findReference(extendedTypeNum(IdOrderSeq)); }

My question: I added all numbers without IdOrderSeq however I used the same methods like in other SeqNumbers - have you got idea what I'm doing wrong so only one number isn't working? 我的问题:我添加了没有IdOrderSeq所有数字但是我使用了与其他SeqNumbers相同的方法 - 你知道我做错了所以只有一个数字不起作用吗?

EDIT - Ok... As I noticed by testing my aplication NumberSequence is working but not always - sometimes Dynamics set the number but sometimes it leaves blank field in base. 编辑 - 好的...正如我注意到通过测试我的应用程序NumberSequence正在工作但并不总是 - 有时动态设置数字但有时它会留下空白字段。 But I don't know this is server issue, my form problem or something else. 但我不知道这是服务器问题,我的表单问题还是其他问题。 Any idea? 任何想法?

Try clearing all caches, in particular run this code: 尝试清除所有缓存,特别是运行此代码:

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

Or restart AX, and if all fails, restart the AOS as well. 或者重新启动AX,如果全部失败,也要重新启动AOS。

See also Using the Enhanced Number Sequence Framework (White paper) 另请参阅使用增强型数字序列框架(白皮书)

Note: In Microsoft Dynamics AX 2009, number sequence references could be initialized by restarting the Application Object Server (AOS). 注意:在Microsoft Dynamics AX 2009中,可以通过重新启动应用程序对象服务器(AOS)来初始化数字序列引用。 In Microsoft Dynamics AX 2012, the initialization of references to populate the NumberSequenceDatatype and NumberSequenceParameterType tables has moved to the initialization checklist. 在Microsoft Dynamics AX 2012中,填充NumberSequenceDatatype和NumberSequenceParameterType表的引用的初始化已移至初始化核对表。 To initialize the newly created references, run a job that executes the LoadModule method. 要初始化新创建的引用,请运行执行LoadModule方法的作业。

You can also reinitialize all references by running a job that executes the LoadAll method in the NumberSequenceModuleSetup class. 您还可以通过运行在NumberSequenceModuleSetup类中执行LoadAll方法的作业来重新初始化所有引用。 However, for reinitializing all references, you must ensure that there are no existing number sequences already defined in the system.. 但是,要重新初始化所有引用,必须确保系统中尚未定义现有的数字序列。

Have you tried setting the sort field of IdOrderSeq to eg 13? 您是否尝试将IdOrderSeq的排序字段设置为例如13? I think each number in a module needs its own sorting number. 我认为模块中的每个数字都需要自己的排序编号。 To be clear, I'm talking about the following line of code: 要清楚,我正在谈论以下代码行:

datatype.parmSortField(12)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM