通过AL代码添加跟踪规范行吗?

问题描述

我正在尝试通过代码添加跟踪规范条目;

rec_trackingspec.init();

                                                      if rec_trackingspec2.FindLast() then
                                                          rec_trackingspec."Entry No." := rec_trackingspec2."Entry No." + 1 else
                                                          rec_trackingspec."Entry No." := 1;
                                                     

                                                      rec_trackingspec."Creation Date" := WorkDate();
                                                      rec_trackingspec.Positive := true;
                                                      rec_trackingspec.Validate("Item No.",rec_SalesLine."No.");
                                                      rec_trackingspec.Validate("Lot No.",rec_itemledgerentry."Lot No.");
                                                      rec_trackingspec."Location Code" := 'MAIN';
                                                
                                                      rec_trackingspec.Validate("Quantity (Base)",rec_SalesLine.Quantity);
                                                      rec_trackingspec.Validate("Bin Code",rec_SalesLine."Bin Code");
                                                      rec_trackingspec."Source Ref. No." := rec_SalesLine."Line No.";
                                                
                                                      rec_trackingspec.Insert(true);

通过调试器检查,我看到Insert(true)被执行了,但是当我检查Tracking Spec是否有我要插入的行时,它不会在其中显示条目。

解决方法

检查INSERT之后是否有一个代码可以像ERROR命令一样撤消所有更改。

,

对于这种问题,我通常倾向于使用SQL Server。

  • 使用调试器,调试插入
  • 在SQL Server上运行,您应该会看到记录已插入。

SELECT * FROM [Table Name] with (nolock) WHERE [KeyFields]

  • 然后在调试器中按F5键,它将在发生错误的地方停止并删除记录,如果不发生这种情况,请使用F11进行一些代码行,并检查数据库中的记录是否仍然存在,直到找到哪一行删除记录。

但是也许在这几天中,您已经知道了。