1

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

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

我的项目中有以下项目:

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

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

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

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

谢谢!

4

2 回答 2

1

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

于 2010-02-19T23:39:27.730 回答
0

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

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

例如,Ledger 安全密钥有子 LedgerJournals、LedgerInquiries、LedgerReports 等。然后在 Ledger 菜单下有 Journals、Inquiries、Reports 等子菜单,子菜单中的每个菜单项都使用相关的安全密钥。

于 2010-02-19T00:58:12.097 回答