2009-12-02 62 views
3

Dynamics AX 2009最佳實踐加載項在顯示方法覆蓋上引發以下錯誤。Axapta:驗證從顯示方法返回值的訪問權限

"TwC: Validate access to return value from the display/edit method." 

這是我的顯示方法。

display ABC_StyleName lookupModuleName(ABC_StyleSettings _ABC_StyleSettings) 
{ 
    ; 
return ABC_Styles::find(_ABC_StyleSettings.StyleID).StyleName; 
} 

我假設它希望我在返回結果之前檢查配置或安全密鑰。任何關於從哪裏開始的建議/例子?

感謝

回答

5

這是你需要考慮用戶是否有權訪問你從函數返回的數據提醒。對於表格字段,內核通常會根據用戶所在的安全組和字段上的安全密鑰爲您執行此操作。

要檢查如果用戶訪問一個字段,使用hasFieldAccess功能。要了解如何使用它,請查看錶格方法BankAccountStatement.openingBalance()CustTable.openInvoiceBalanceMST()。還有其他幫助功能可以檢查安全密鑰,例如hasMenuItemAccesshasSecuritykeyAccesshasTableAccess

在你的情況下,添加以下代碼:你添加的代碼即使經過

if(!hasFieldAccess(tablenum(ABC_Styles),fieldnum(ABC_Styles,StyleName))) 
{ 
    throw error("@SYS57330"); 
} 

,你仍然會得到最佳實踐的錯誤。要告訴編譯器你已經解決了這個問題,你需要立即在函數聲明之前添加下面的註釋:

//BP Deviation Documented 
+1

我在幾個問題上看到了你的名字。感謝您花時間幫助新人。從.NET到X ++是一個痛苦的過渡,但我到了那裏。 ;) – Brad 2009-12-03 14:01:41

相關問題