微软动态navision 2009中的状态代码

时间:2016-01-15 14:27:50

标签: microsoft-dynamics

我正在试图找出状态代码将被更改的位置。因为如果我尝试预订订单。然后出现问题。然后会有回滚。但是在今天,状态代码将被更改,而不是必须的。因为你不能预订整个订单。状态代码必须保持不变。

enter image description here

enter image description here

enter image description here

谢谢

此错误后将更改状态代码: enter image description here

是的,我调试了代码

并在代码单元中:7301在这一行:

END ELSE
    IF FromBinContent."Quantity (Base)" + "Qty. (Base)" < 0 THEN
      FromBinContent.FIELDERROR(
        "Quantity (Base)",STRSUBSTNO(Text000,FromBinContent."Quantity (Base)"));
END;

我会收到错误

谢谢

Oke,我找到了一段代码,其中的状态代码将被更改。

lRecStatus.FILTERGROUP(4);
lRecStatus.SETRANGE("Change Status",lRecStatus."Change Status"::Released);
lRecStatus.FILTERGROUP(0);
IF NOT lFncNextStatus2(vRecSalesHeader,lRecStatus,FALSE,FALSE) THEN
  ERROR(lCtx000,vRecSalesHeader."Document Type",vRecSalesHeader."No.",vRecSalesHeader."Status Code");
  lRecStatus.SETRANGE("Change Status",lRecStatus."Change Status"::01-NEW);

vRecSalesHeader.FIND('=');

所以我补充说:

 lRecStatus.SETRANGE("Change Status",lRecStatus."Change Status"::01-NEW);

但是如何设置值New - 它是怎么回事?而不是代码进入&#34; vrijgegeven&#34;?

谢谢

欧客。我发现在codeunit:1107570这个:

lRecStatus.FILTERGROUP(4);
lRecStatus.SETRANGE("Change Status",lRecStatus."Change Status"::Released);
lRecStatus.FILTERGROUP(0);
IF NOT lFncNextStatus2(vRecSalesHeader,lRecStatus,FALSE,FALSE) THEN
  ERROR(lCtx000,vRecSalesHeader."Document Type",vRecSalesHeader."No.",vRecSalesHeader."Status Code");
vRecSalesHeader.FIND('=');

如果我发表评论:

IF NOT lFncNextStatus2(vRecSalesHeader,lRecStatus,FALSE,FALSE) THEN
  ERROR(lCtx000,vRecSalesHeader."Document Type",vRecSalesHeader."No.",vRecSalesHeader."Status Code");

然后状态代码不会被更改。但我不知道这是否正确,因为可能是其他地方出错了。

谢谢

1 个答案:

答案 0 :(得分:0)

如果状态代码在错误消息后仍然保持更新,则最可能的原因是在调用发布路由之后但在错误消息之前已发出Maxims answer

销售订单上的OMS选项卡似乎是以太网ISV加载项或数据库特定自定义的结果,因此很难确定可疑代码的位置,有多种方法可以找到它。

找到代码的最直接的方法是使用调试器(工具 - &gt;调试器 - >触发器上的Active / Breakpoint),同时重复进程并逐步执行事务直到遇到COMMIT言。

如果您更熟悉C / AL代码(并且具有足够的许可/权限),您可以打开表单进行修改并手动跟踪用于发布文档的代码。

重构代码以删除COMMIT可能非常棘手,如果在发布路由中进行更改,可能需要您的Dynamics合作伙伴或ISV根据开发许可结构的工作方式进行修改。