我已经阅读了msdn文章,阅读了有关数字序列的白皮书,并多次编号。但在这种情况下,我需要一些帮助。
场景是; 我想通过x +代码使用数字序列代码和无参考等获得下一个序列号。
我尝试了以下(以及其他许多人,但这是最接近的解决方案);
static void myTestJob(Args _args)
{
NumberSeq num;
num = NumberSeq::newGetNumFromCode('SAO-Y');
info(num.num()) ;
}
它针对某些数字序列代码生成数字序列,但对于其他序列代码,它会抛出错误;
“数字序列不存在。”
我尝试过很多其他博客上提到的其他选项,并试图探索AX,但现在需要一些帮助。
P.S。我不是使用x ++代码创建数字序列,而是从前端(组织管理)创建数字序列。
答案 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);