2

我有一个按钮的命令定义如下:

<CommandDefinition Id="new.lead.CreditCheck.Command">
    <EnableRules>
        <EnableRule Id="new.lead.CreditCheck.EnableRule" />
    </EnableRules>
    <DisplayRules>
        <DisplayRule Id="new.lead.CreditCheck.DisplayRule" />
    </DisplayRules>
    <Actions>
        <JavaScriptFunction FunctionName="new.LeadDynamic.creditCheck" Library="$webresource:new_Lead_dyn.js" />
    </Actions>
</CommandDefinition>

如果我从命令中删除显示规则,(但保留实际的显示规则定义)它看起来像这样:

<CommandDefinition Id="new.lead.CreditCheck.Command">
    <EnableRules>
        <EnableRule Id="new.lead.CreditCheck.EnableRule" />
    </EnableRules>
    <DisplayRules />
    <Actions>
        <JavaScriptFunction FunctionName="new.LeadDynamic.creditCheck" Library="$webresource:new_Lead_dyn.js" />
    </Actions>
</CommandDefinition>

尝试导入时出现错误(尝试使用 Ribbon Workbench 并且也出现相同的错误)

功能区项目“new.lead.CreditCheck.Command”依赖于 。

我正在尝试删除依赖项,但显然我无法删除它,因为它存在!我错过了什么?

4

2 回答 2

1

我认为这是 CRM 中的一个错误,但为了执行此操作,您必须删除命令,然后发布解决方案! 删除命令后,您可以删除显示规则。你不能一步完成!

如果您的命令特别复杂,您可以导出解决方案,删除命令,导入解决方案,删除显示规则并添加回没有显示规则的命令并导入。

于 2015-05-27T13:25:06.177 回答
0

您的解决方案有一个CommandDefinition取决于DisplayRuleID 为“new.lead.CreditCheck.DisplayRule”的一个。DisplayRule只要有一个已发布和/或未发布的组件依赖于它,就不能从 RibbonDiffXml 中删除,在本例中为CommandDefinition.

因此,您需要删除对DisplayRule第一个的所有引用,然后发布这些自定义。完成此操作后,您应该能够删除它DisplayRule本身。

当您需要从实体中删除过时的属性时,必须遵循相同的过程:

  1. 从所有表单、视图等中删除该属性。
  2. 发布自定义
  3. 从实体模型中删除属性
  4. 发布自定义

在这方面,Dynamics CRM 的行为是 imo 的“设计”。

于 2015-05-28T14:10:17.017 回答