2

我成功地按照以下答案将下拉菜单添加到 CRM 2011 功能区,并使用子菜单按钮等实现了三个动态加载的 FlyoutAnchor 按钮。

昨天子菜单按钮工作正常(点击事件被触发等),但在使用功能区 XML 等重新导入解决方案后,子菜单按钮告诉我(在工具提示中)它们被禁用。确切的消息是“此按钮当前已禁用。您可能没有选择使用此功能的项目。如果您没有使用此功能的权限,请联系您的系统管理员”。

所以我恢复到以前的 Ribbon XML,但子菜单按钮仍然禁用。看起来我遇到了与以下线程中描述的相同的问题:CRM 2011 Dynamic Ribbon disabled HELP!. 但是我已经在我的服务器上安装了 Rollup 6,所以这不应该发生。

我已经尝试过重置 IIS 并重新导入解决方案(多次)。我还检查/添加了 <EnableRule Id="Mscrm.Enabled" /> 规则等。

我无法再次启用子菜单按钮。我究竟做错了什么?请帮我。

4

2 回答 2

2

我终于再次启用了我的子菜单按钮。很难说出让它再次工作的确切操作组合,但我会尝试在此处记录它作为参考。建议的解决方案是强制 CRM 完全更新功能区。这可以通过执行以下步骤来完成:

  1. 将您的解决方案导出为备份。
  2. 在某处解压缩此导出解决方案的副本,以便您可以修改“customizations.xml”文件以更新“问题”实体的 RibbonDiffXml。
  3. 用空的功能区差异 xml 替换您的 <RibbonDiffXml> ...</RibbonDiffXml>,即:

      <RibbonDiffXml>
        <CustomActions />
        <Templates>
            <RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates>
        </Templates>
        <CommandDefinitions />
        <RuleDefinitions>
          <TabDisplayRules />
          <DisplayRules />
          <EnableRules />
        </RuleDefinitions>
        <LocLabels />
      </RibbonDiffXml>
    
  4. 保存您的更改。

  5. 重新压缩更改后的解决方案,导入并发布它。
  6. 从第 1 步重新导入您的原始解决方案并发布。将重新创建功能区。
  7. 您的按钮应该再次启用。

可以采取的另一种方法是使用Ribbon Workbench for Dynamics CRM 2011 (Beta)。但是要小心并始终备份解决方案,因为我发现该工具仍然有很多错误(或者我的解决方案可能太大)。使用该工具进行一些功能区更改(例如:向您的“问题”实体添加一个新按钮),重新发布和测试。如果您的子菜单按钮再次启用,请重新导入并发布您的原始备份。子菜单按钮可能会保持启用状态。

因此,CRM 内部出现了问题,通过强制重新构建有故障的 Ribbon,CRM 可以自行恢复或其他什么……我真的不能指望它。

于 2012-03-15T12:14:54.283 回答
1

我最近有一个类似的问题。您是从功能区运行的 javascript 吗?如果是这样,功能区可能会禁用您的按钮,因为它找不到您正在调用的 javascript 函数(我找不到支持这种信念的文档,定义操作定义 javascript页面没有提及它,这可能只是我的巧合案子)。您最近是否更新了与功能区关联的 js 文件?

于 2012-03-09T17:09:38.247 回答