在芬蘭版 Microsoft Dynamics NAV 2013 中,當您在未指定成本中心指派的情況下,發布發票時,成本中心代碼不會反映在已公布的總帳分錄中

套用到
Dynamics NAV 2013

本文適用於芬蘭 (Fi) 地區的 Microsoft Dynamics NAV。

症狀

假設在芬蘭版 Microsoft Dynamics NAV 2013 中,自動會計行設定包含負值分配。 當你在未設定成本中心指派的情況下入帳發票時,成本中心代碼不會反映在已登記的總帳分錄中。

解決方式

Hotfix 資訊

Microsoft 現在已經支援熱修補程式。 然而,這僅是為了修正本文所描述的問題。 只應用在遇到這個特定問題的系統上。 此熱修補可能會進行額外測試。 因此,如果您未受到此問題嚴重影響,我們建議您等待下一個 Microsoft Dynamics NAV 2013 服務包或包含此熱修補的 Microsoft Dynamics NAV 版本。

注意:在特殊情況下,若 Microsoft Dynamics 及相關產品的技術支援專業人員判斷特定更新能解決您的問題,通常因支援電話而產生的費用可能會被取消。 一般來說,如果有所描述之特定更新無法解決的其他支援問題,才會收取支援費用。

安裝資訊

Microsoft 僅提供圖例的程式設計範例,不含明示或暗示的擔保。 這包括 (但不限於) 適用于特定目的之可操作性或適用性的暗示擔保。 本文假設您熟悉正在示範的程式設計語言,以及用來建立和進行程式偵錯工具的工具。 Microsoft 支援工程師可以協助說明特定程式的功能。 不過,他們將不會修改這些範例以提供新增功能或建構符合您特定需求的程式。

注意:安裝此熱修補程式前,請確認所有 Microsoft Dynamics NAV 用戶端使用者皆已登出系統。 這包括Microsoft Dynamics NAV應用伺服器 (NAS) 服務。 當你實施這個熱修補時,應該只有你一個登入的客戶端使用者。

要實作這個熱修補,你必須擁有開發者授權。

我們建議在 Windows 登入視窗或資料庫登入視窗中,將使用者帳號分配「SUPER」角色 ID。 若使用者帳號無法被指派「SUPER」角色 ID,您必須驗證該帳號擁有以下權限:

  • 你要更改的物件的修改權限。

  • 系統物件 ID 5210 及系統物件 ID 9015 的執行權限

    物件。

注意:除非你必須進行資料修復,否則你不必擁有資料儲存的權利。

法規變更

注意:在將修正程式套用到生產電腦之前,務必在受控環境中測試修正。

為了解決這個問題,請修改 Gen. 的 PostAutoAcc 函式中的程式碼。 Jnl.-郵政線碼單元 (12) 如下:

現行法規1

...
OrigGenJnlLine@1070006 : Record 81;
        NoOfAutoAccounts@1070003 : Decimal;
        TotalAmount@1070002 : Decimal;
        AccLine@1070001 : Integer;
        GLEntryAutoAccExist@1070000 : Boolean;
      BEGIN
        // NTR Start
        GLSetup.GET;
...

替換代碼1

...
OrigGenJnlLine@1070006 : Record 81;
        NoOfAutoAccounts@1070003 : Decimal;
        TotalAmount@1070002 : Decimal;
        AccLine@1070001 : Integer;

// Add the following line.
       DimensionSetIDArr@1070004 : ARRAY [10] OF Integer;
// End of the added line.

        GLEntryAutoAccExist@1070000 : Boolean;
      BEGIN
        // NTR Start
        GLSetup.GET;
...

現有的第二號法規

...
END ELSE
                  GenJnlLine.VALIDATE(
                    Amount,ROUND("VAT Base Amount" * AutoAccLine."Allocation %" / 100,GLSetup."Amount Rounding Precision"));
                GenJnlLine.VALIDATE("Auto. Acc. Group",'');
                GenJnlLine."Dimension Set ID" := "Dimension Set ID";

// Delete the following lines.
               GenJnlLine."Shortcut Dimension 1 Code" := "Shortcut Dimension 1 Code";
               GenJnlLine."Shortcut Dimension 2 Code" := "Shortcut Dimension 2 Code";
// End of the deleted lines.

                AccLine := AccLine + 1;
                TotalAmount := TotalAmount + GenJnlLine.Amount;
                IF (AccLine = NoOfAutoAccounts) AND (TotalAmount <> 0) THEN
...

替換代碼2

...
END ELSE
                  GenJnlLine.VALIDATE(
                    Amount,ROUND("VAT Base Amount" * AutoAccLine."Allocation %" / 100,GLSetup."Amount Rounding Precision"));
                GenJnlLine.VALIDATE("Auto. Acc. Group",'');
                GenJnlLine."Dimension Set ID" := "Dimension Set ID";

// Add the following lines.
               IF AutoAccLine."Dimension Set ID" <> 0 THEN
                 IF GenJnlLine."Dimension Set ID" = 0 THEN BEGIN
                   GenJnlLine."Dimension Set ID" := AutoAccLine."Dimension Set ID";
                   GenJnlLine."Shortcut Dimension 1 Code" := AutoAccLine."Shortcut Dimension 1 Code";
                   GenJnlLine."Shortcut Dimension 2 Code" := AutoAccLine."Shortcut Dimension 2 Code";
                 END ELSE BEGIN
                   DimensionSetIDArr[1] := GenJnlLine."Dimension Set ID";
                   DimensionSetIDArr[2] := AutoAccLine."Dimension Set ID";
                   GenJnlLine."Dimension Set ID" :=
                     DimMgt.GetCombinedDimensionSetID(
                       DimensionSetIDArr,GenJnlLine."Shortcut Dimension 1 Code",GenJnlLine."Shortcut Dimension 2 Code");
                 END
               ELSE BEGIN
                 GenJnlLine."Shortcut Dimension 1 Code" := "Shortcut Dimension 1 Code";
                 GenJnlLine."Shortcut Dimension 2 Code" := "Shortcut Dimension 2 Code";
               END;
// End of the added lines.

                AccLine := AccLine + 1;
                TotalAmount := TotalAmount + GenJnlLine.Amount;
                IF (AccLine = NoOfAutoAccounts) AND (TotalAmount <> 0) THEN
                  GenJnlLine.VALIDATE(Amount,GenJnlLine.Amount - TotalAmount);
...

              

先決條件

你必須安裝芬蘭版的 Microsoft Dynamics NAV 2013 才能套用此熱修補。

移除資訊

你無法移除這個熱修正。

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。

注意本文為 Microsoft 支援單位內部直接建立的「快速發佈」文章。 此處包含的資訊是以其現況提供,用於回應新產生的問題。 由於快速發佈,資料可能包含拼字錯誤,並可能會隨時修訂,不另行通知。 請參閱使用條款以瞭解其他相關考量。