如何从 CRM Online 中的功能区命令中删除显示规则?
How To Remove Display Rule From a Ribbon Command in CRM Online?
我有一个按钮命令定义如下:
<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>
我在尝试导入时遇到错误(尝试使用功能区 Workbench 也遇到了同样的错误)
The ribbon item 'new.lead.CreditCheck.Command' is dependent on
.
我正在尝试删除依赖项,但显然我无法删除它,因为它存在!我错过了什么?
我会认为这是 CRM 中的一个错误,但为了执行此操作,您必须删除该命令,然后 发布解决方案! 一旦命令被删除, 您可以删除显示规则。您不能一步完成!
如果您的命令特别复杂,您可以导出解决方案,删除命令,导入解决方案,删除显示规则并添加回没有显示规则的命令并导入。
您的解决方案有一个 CommandDefinition
,它依赖于 ID 为 "new.lead.CreditCheck.DisplayRule" 的 DisplayRule
。您不能从 RibbonDiffXml 中删除 DisplayRule
,只要有一个已发布的 and/or 未发布的组件依赖于它,在本例中为 CommandDefinition
.
因此您需要先删除对 DisplayRule
的所有引用,然后再发布这些自定义项。完成此操作后,您应该能够删除 DisplayRule
本身。
当您需要从实体中删除过时的属性时,必须遵循相同的过程:
- 从所有表单、视图等中删除属性
- 发布自定义项
- 从实体模型中删除属性
- 发布自定义项
在这方面,Dynamics CRM 的行为是 i.m.o。 'by design'.
我有一个按钮命令定义如下:
<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>
我在尝试导入时遇到错误(尝试使用功能区 Workbench 也遇到了同样的错误)
The ribbon item 'new.lead.CreditCheck.Command' is dependent on .
我正在尝试删除依赖项,但显然我无法删除它,因为它存在!我错过了什么?
我会认为这是 CRM 中的一个错误,但为了执行此操作,您必须删除该命令,然后 发布解决方案! 一旦命令被删除, 您可以删除显示规则。您不能一步完成!
如果您的命令特别复杂,您可以导出解决方案,删除命令,导入解决方案,删除显示规则并添加回没有显示规则的命令并导入。
您的解决方案有一个 CommandDefinition
,它依赖于 ID 为 "new.lead.CreditCheck.DisplayRule" 的 DisplayRule
。您不能从 RibbonDiffXml 中删除 DisplayRule
,只要有一个已发布的 and/or 未发布的组件依赖于它,在本例中为 CommandDefinition
.
因此您需要先删除对 DisplayRule
的所有引用,然后再发布这些自定义项。完成此操作后,您应该能够删除 DisplayRule
本身。
当您需要从实体中删除过时的属性时,必须遵循相同的过程:
- 从所有表单、视图等中删除属性
- 发布自定义项
- 从实体模型中删除属性
- 发布自定义项
在这方面,Dynamics CRM 的行为是 i.m.o。 'by design'.