Axapta:验证从显示方法返回值的访问权限

时间:2009-12-02 20:01:18

标签: methods axapta x++ dynamics-ax-2009

Dynamics AX 2009最佳实践加载项会在显示方法覆盖上抛出以下错误。

"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;
}

我假设它要我在返回结果之前检查配置或安全密钥。有关从哪里开始的任何建议/示例?

由于

1 个答案:

答案 0 :(得分:5)

这提醒您需要考虑用户是否应该有权访问您从函数返回的数据。对于表字段,内核通常根据用户所在的安全组和字段上设置的安全密钥为您执行此操作。

要检查用户是否有权访问某个字段,请使用hasFieldAccess功能。要查看如何使用它,请查看表格方法BankAccountStatement.openingBalance()CustTable.openInvoiceBalanceMST()。还有其他帮助函数可以检查hasMenuItemAccesshasSecuritykeyAccesshasTableAccess等安全密钥。

在您的情况下,请添加以下代码:

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

即使添加了该代码,您仍会收到最佳实践错误。要告诉编译器您已解决该问题,您需要在函数声明之前立即添加以下注释:

//BP Deviation Documented