2009-12-02 65 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

相关问题