我正试图通过代码添加Tracking Spec条目;
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遍历一些代码行,检查DB中的记录是否仍然存在,直到找到删除记录的行
但可能在这么多天里你就已经明白了。