Applies ToMicrosoft Dynamics AX 2009 Dynamics AX 2009 Service Pack 1

本文適用於所有地區的 Microsoft 動態 AX。

徵狀

當您在 Microsoft 動態 AX 2009 張貼採購訂單時,您會收到下列錯誤訊息:

無法建立採購訂單標題更新的資料表 (PurchParmSubTable) 中的記錄。

如果下列條件其中一項成立,就會發生這個問題:

  • 您啟用 「 生命科學電子簽章稽核軌跡安裝程式 」 設定,為所有的資料表。

  • 您建立的通用資料表的記錄。

  • 您可以設定 PurchParmTable 資料表在資料庫記錄檔中。

當您在張貼採購訂單、 回條清單、 封裝名單和發票時,就會發生這個問題。下列產品中,就會發生這個問題:

  • Service Pack 的 Microsoft 動態 AX 2009 1

  • Microsoft 動態 AX 2009

解決方案

Hotfix 資訊

已經可以從 Microsoft 取得支援的 hotfix。 不過,它只被用來修正本文所述的問題。 它只適用於發生此特定問題的系統上。 此 hotfix 可能會接受其他測試。 因此,如果此問題不會嚴重影響,我們建議您等候下一步的 Microsoft 動態 AX 2009 service pack 或包含此 hotfix 的下一個版本。 注意: 在特殊的情況下,通常會支援呼叫可能已被取消如果技術支援專業人員的 Microsoft 動態及相關的產品所產生的費用會決定某特定更新程式可以解決您的問題。 一般來說,如果有所描述之特定更新無法解決的其他支援問題,才會收取支援費用。

安裝資訊

套用此 hotfix 之前,請確認 Microsoft 動態 AX 用戶端使用者已登出系統。 您應該是唯一的用戶端使用者已登入,當您實作此 hotfix。若要實作此 hotfix,您必須有開發人員授權。注意: 我們建議您在 Windows 登入] 視窗中的色彩,或資料庫登入] 視窗中的使用者帳戶會在 [Microsoft 動態 AX 的系統管理員使用者群組的成員。

程式碼變更

Microsoft 僅提供示範性的程式設計範例,不做任何明示或默示的保證。 其中包括 (但不限於) 其適售性與適合某特定用途之默示擔保。 本文假設您已相當熟悉示範所使用的程式設計語言,以及用於建立和偵錯程序的工具。 Microsoft 技術支援工程師可以協助說明特定程序的功能, 不過,他們不會修改這些範例以提供附加功能或建構程序來滿足您的特定需求。 永遠測試程式碼修正在受控制的環境中才能套用到實際執行電腦的修正程式。若要解決這個問題,請依照下列這些步驟執行:

  1. 以下列方式覆寫在 PurchParmSubTable 資料表中的insert方法中的程式碼:

    public void insert(){    PurchParmSubTable tempPurchParmSubTable;    ;    select tempPurchParmSubTable where        tempPurchParmSubTable.ParmId == this.ParmId        && tempPurchParmSubTable.TableRefId == this.TableRefId        && tempPurchParmSubTable.OrigPurchId == this.OrigPurchId;    if(tempPurchParmSubTable.RecId == 0)    {        super();    }}
  2. 以下列方式覆寫在 PurchParmSubTable 資料表中的createFromPurchParmTable方法中的程式碼:

    static PurchParmSubTable createFromPurchParmTable(PurchParmTable _purchParmTable, boolean _insert = true){    PurchParmSubTable   purchParmSubTable;    systemSequence systemSequence;    ;    ttsbegin;    purchParmSubTable.clear();    purchParmSubTable.initValue();    purchParmSubTable.initFromPurchParmTable(_purchParmTable);    if (_insert)    {        systemSequence = new systemSequence();        purchParmSubTable.RecId = systemSequence.reserveValues(1, tablenum(PurchParmSubTable));        purchParmSubTable.insert();    }    ttscommit;    return purchParmSubTable;}
  3. 以下列方式覆寫在 SalesParmSubTable 資料表中的insert方法中的程式碼:

    public void insert(){    SalesParmSubTable tempSalesParmSubTable;    ;    select tempSalesParmSubTable where        tempSalesParmSubTable.ParmId == this.ParmId        && tempSalesParmSubTable.TableRefId == this.TableRefId        && tempSalesParmSubTable.OrigSalesId == this.OrigSalesId        && tempSalesParmSubTable.subId == this.subId;    if(tempSalesParmSubTable.RecId == 0)    {        super();    }}

注意: 您必須合併這些方法中任何現有的自訂內容。

先決條件

沒有需要的先決條件。

重新啟動需求

您不必套用此 hotfix 之後,重新啟動電腦。

狀態

Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。