我很想搞清楚狀態碼將在哪裏改變。因爲如果我嘗試預訂訂單。並出現問題,然後會出現回滾。但是在現在,狀態代碼將會改變,不一定是什麼。因爲你以後無法預訂整個訂單。狀態代碼必須保持不變。微軟動力學中的狀態代碼navision 2009
謝謝
是的,我調試的代碼
,並在代碼單元:7301在這條線:
END ELSE
IF FromBinContent."Quantity (Base)" + "Qty. (Base)" < 0 THEN
FromBinContent.FIELDERROR(
"Quantity (Base)",STRSUBSTNO(Text000,FromBinContent."Quantity (Base)"));
END;
我會得到錯誤
謝謝
奧凱,我發現了一段代碼,其中狀態代碼將被改變。
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);
但是如何設置值新 - 究竟是怎麼回事?而不是代碼去「vrijgegeven」?
謝謝
Oke。我在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");
則狀態代碼將沒有被改變。但我不知道這是否正確,因爲也許別的地方出了問題。
謝謝
我不確定您是否試圖完全刪除狀態更改,或者只是處理更新情況,即使事務由於錯誤而回滾。代碼單元1107570意味着這應該是ISV解決方案[編號約定](https://msdn.microsoft.com/en-us/library/ee414238.aspx);你會得到最好的結果,討論你試圖用代碼的原作者完成的事情。如果您仍然希望這樣做,則需要查看lFncNextStatus2中的代碼,然後在已更改的系統上進行一些測試。 – Akedren