Axapta:検証アクセス表示方法から値を返します
-
11-09-2019 - |
質問
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;
}
私はそれは私が結果を返す前に、configまたはセキュリティキーをチェックしたいと仮定しています。開始する場所に任意の提案/例?
おかげ
解決
これは、ユーザーがあなたが関数から戻ってきているデータへのアクセス権を持っている必要があるかどうかを検討する必要が思い出させてくれます。テーブルのフィールドの場合、カーネルは通常、ユーザーがであるセキュリティグループおよびフィールドに設定されたセキュリティキーに基づいて、あなたのためにこれを行います。
ユーザーがフィールドへのアクセス権を持っている場合、チェックhasFieldAccess
機能を使用するには。これがどのように使用されるかを確認するには、テーブル方式のBankAccountStatement.openingBalance()
またはCustTable.openInvoiceBalanceMST()
を見てください。このようhasMenuItemAccess
、hasSecuritykeyAccess
、およびhasTableAccess
などのセキュリティキーを確認するため、他のヘルパー関数があります。
あなたのケースでは、このコードを追加します:
if(!hasFieldAccess(tablenum(ABC_Styles),fieldnum(ABC_Styles,StyleName)))
{
throw error("@SYS57330");
}
あなたがそのコードを追加した後でも、あなたはまだベストプラクティスのエラーが発生します。あなたが問題に対処しているコンパイラに指示するには、関数宣言の前にすぐに次のコメントを追加する必要があります:
//BP Deviation Documented
所属していません StackOverflow