数字序列AX 2012

时间:2013-12-19 15:07:11

标签: x++ dynamics-ax-2012 ax dynamics-ax-2012-r2

我已经阅读了msdn文章,阅读了有关数字序列的白皮书,并多次编号。但在这种情况下,我需要一些帮助。

场景是; 我想通过x +代码使用数字序列代码无参考等获得下一个序列号。

我尝试了以下(以及其他许多人,但这是最接近的解决方案);

static void myTestJob(Args _args)
{
    NumberSeq  num;

    num = NumberSeq::newGetNumFromCode('SAO-Y');

     info(num.num())  ;
}

它针对某些数字序列代码生成数字序列,但对于其他序列代码,它会抛出错误;

  

“数字序列不存在。”

我尝试过很多其他博客上提到的其他选项,并试图探索AX,但现在需要一些帮助。

P.S。我不是使用x ++代码创建数字序列,而是从前端(组织管理)创建数字序列。

4 个答案:

答案 0 :(得分:3)

我可以使用以下内容来抑制异常;

num = NumberSeq::newGetNumFromCode(<<someNumberSequenceCode>>, NumberSeqScopeFactory::createDefaultScope(), true, true);

As,NumberSeq的第四个可选参数:: newGetNumFromCode(,,, true);说不要在遗失的参考上抛出异常。

boolean _dontThrowOnMissingRefSetUp = false,

正如我之前所说,我已经从组织管理中创建了数字序列而没有编写任何代码(EDT,类,参数表等等),因此没有生成引用,我认为由于这个原因我得到了异常。

答案 1 :(得分:0)

请查看您设置的号码序列。我认为它与数字序列范围有关。

确保数字序列的范围在您呼叫的公司内有效。

答案 2 :(得分:0)

它的工作,但没有结果:没有生成凭证。

工作方式:

 num = NumberSeq::newGetNumFromCode(<<someNumberSequenceCode>>, 
NumberSeqScopeFactory::createDefaultScope(), **false**, true);

答案 3 :(得分:0)

当我的号码序列 - 范围设置为共享时,我可以使用此代码:

%let last_mth_beg = %sysfunc(intnx(month,%sysfunc(inputn(&date_num,yymmdd10)),-1,b),yymmdd10);

当我的号码序列 - 范围设置为公司时,我可以使用此代码:

numSequence = NumberSeq::newGetNumFromCode(<<someNumberSequenceCode>>, NumberSeqScopeFactory::createDataAreaScope(curext()), true, true);