Axapta安全密钥最佳实践错误

时间:2010-02-18 22:35:38

标签: security axapta

对于分配了我的主要安全密钥的任何菜单项,我在Dynamics AX 2009中收到以下最佳实践错误(我们称之为MySecurityKey1)。

“安全密钥错误。安全密钥必须与主菜单中的位置匹配。”

我的项目中有以下项目:

菜单
MainMenu(动态默认项目 - 安全密钥为空白)
- 参考MyMenu
MyMenu(Key = MySecurityKey1)
- MySubMenu1(Key = MySecurityKey1)
- 参考MyMenuItem1
- 参考MyMenuItem2
- MySubMenu2(Key = MySecurityKey2)
- 参考MyMenuItem3
- 参考MyMenuItem4

的MenuItems
MyMenuItem1(Key = MySecurityKey1)!!此项目的BP错误
MyMenuItem2(Key = MySecurityKey1)!!此项目的BP错误
MyMenuItem3(Key = MySecurityKey2)
MyMenuItem4(Key = MySecurityKey2)

安全密钥
MySecurityKey1(无父键)
MySecurityKey2(无父键)

我几乎不知所措,因为这两个键或它们的使用似乎没有任何真正的区别。任何建议都会很棒。

谢谢!

2 个答案:

答案 0 :(得分:1)

此BP检查在SysBPCheckMenuFunction.checkSecurityKey()中实施。看起来如果您的菜单可以从主菜单访问,那么您必须具有父安全性,让我们称之为MyModule和子安全密钥。唯一有效的子安全密钥是MyModuleDaily,MyModuleReports,MyModuleInquiries,MyModulePeriodic,MyModuleSetup,MyModuleJournals,MyModuleMisc或MyModuleTables。

答案 1 :(得分:0)

MyMenuItem1 / 2或MyMenuItem3 / 4上的BP错误?如果它在MyMenuItem3 / 4上,我会期待一个,因为我相信菜单中的所有项目都需要共享相同的父安全密钥。

您是否尝试过引入MyMenu将使用的第三个安全密钥,并且是MySecurityKey1和MySecurityKey2的父级安全密钥?我认为这样做是正确的方法,并且与MainMenu引用的大多数菜单的设置是一致的。

例如,Ledger安全密钥具有子LedgerJournals,LedgerInquiries,LedgerReports等。然后在Ledger菜单下有日志,查询,报告等子菜单,子菜单中的每个菜单项都使用相关的安全性键。