0

當變量賦值錯誤的參數類型我已經從AX 2012 RTM就地升級完成了對AX 2012 R2AX 2012錯誤執行代碼:確認PO

,但目前我有想確認一個在下面的例外採購訂單

執行代碼時出錯:變量賦值中的參數類型錯誤。

堆棧跟蹤

(S)\Classes\FormLetterContract\unpack - line 8 

(S)\Classes\PurchFormLetterContract\unpack - line 13 

(S)\Classes\SysOperationDataContractInfo\unpackDataContractObject - line 21 

(S)\Classes\SysOperationController\unpackDataContractInfoObjects - line 34 

(S)\Classes\SysOperationController\unpack - line 70 

(S)\Classes\SysOperationServiceController\unpack - line 15 

(S)\Classes\PurchFormLetter\unpack - line 10 

(S)\Classes\PurchFormLetter_PurchOrder\unpack - line 73 

(S)\Classes\xSysLastValue\getLast - line 29 

(S)\Classes\SysOperationController\loadFromSysLastValue - line 29 

(S)\Classes\SysOperationController\getDataContractInfoObjects - line 10 

(S)\Classes\SysOperationController\getDataContractInfoObject - line 17 

(S)\Classes\SysOperationController\getDataContractObject - line 18 

(S)\Classes\FormLetterServiceController\init - line 3 

(S)\Classes\PurchFormLetter_PurchOrder\init - line 3 

(S)\Classes\PurchFormLetter_PurchOrder\newPurchOrder - line 7 

(S)\Classes\PurchFormLetter\construct - line 11 

(S)\Classes\PurchFormLetter\mainOnServer - line 46 

(C)\Classes\PurchFormLetter\main - line 50 

(C)\Classes\FormFunctionButtonControl\Clicked 

我試圖調試和達到這一點,其中例外的[版本,#ParmListFormLetter] = _packedClass發生;在FormLetterContract

我試圖清除xppil,做一個完整的編譯和CIL生成和同步字典,但錯誤仍然出現我也檢查了在堆棧跟蹤的類中的定製,但所有這些都是SYS層和免費任何定製

public boolean unpack(container _packedClass) 
{ 
    Integer version = conPeek(_packedClass,1); 

    switch (version) 
    { 
     case #CurrentVersion: 
      [version, #ParmListFormLetter] = _packedClass; 
      break; 
     default : 
      return false; 
    } 

    return true; 
} 

可能這個 您的幫助任何一個建議是最讚賞

回答

0

只是看你提供的代碼,並沒有從2012 RTM這些類變化中的任何知識,我會做如下:

  1. 確保#ParmListFormLetter宏(可在FormLetterContract類聲明中找到)中指定的parm列表與通過_packedClass進入的parm列表匹配。如果它們不同,則需要更改CurrentVersion宏中指定的版本號。然後針對代碼中交換機的默認情況下的差異編寫自定義處理程序。

  2. 嘗試向前編譯FormLetterContract。右鍵單擊AOT中的類節點,然後轉到加載項>編譯轉發。這將解決任何與繼承有關的類型問題。唯一一次我遇到了你所描述的錯誤,我只能通過編譯來解決它。