![]() |
沉着的热水瓶 · python 浅拷贝与深拷贝 - 小吉猫 ...· 11 月前 · |
![]() |
很酷的墨镜 · 开发网页游戏需要哪些工具和框架? - 知乎· 1 年前 · |
![]() |
不要命的拖把 · Android配置EGL环境C++版-腾讯云 ...· 2 年前 · |
![]() |
深沉的山羊 · mysql 查询区间 mysql ...· 2 年前 · |
![]() |
旅行中的硬盘 · パート 3、スキャフォールディングされた ...· 2 年前 · |
工作选择 解决方案 |
https://learn.microsoft.com/zh-cn/troubleshoot/power-platform/power-apps/ribbon-issues-button-not-working-correctly |
![]() |
爽快的伤痕
2 年前 |
不要从命令中删除
Mscrm.HideOnModern
显示规则,以强制按钮显示在统一接口中。 具有显示规则的
Mscrm.HideOnModern
命令适用于旧版 Web 客户端接口,在统一接口中不受支持。 因此,它们可能无法正常工作。
如果未正确声明命令,则选择按钮可能不执行任何操作或显示错误消息。
请选择以下最符合你的情况的选项之一,以帮助我们提供最佳解决方法。 第一个选项卡默认处于选中状态。
按钮在选中时不执行任何操作 我收到不同的错误消息选择按钮且未发生任何操作时,这通常是由与该按钮关联的 命令 配置不正确导致的。
下面是声明
JavaScriptFunction
操作
值时的典型命令配置错误。 这些错误可能会导致按钮发生故障,在选择按钮时似乎不执行任何操作。
$webresource:
前缀。
有关更多配置帮助,请参阅 定义功能区操作 。
如果这些配置正确,则可能是 JavaScript 代码错误的原因。 如果自定义 JavaScript 函数编码不正确,并且未调用预期行为,则按钮将无法按预期工作。 如果发现列出的配置错误之一,请修复命令定义以解决此问题。 否则,可能需要调试并修复 JavaScript 函数代码才能使按钮正常工作。
确定按钮命令是什么以及哪个解决方案安装了错误的定义。
你将使用应用内工具命令检查器检查功能区组件定义,以帮助确定选择按钮会导致错误的原因。
若要启用命令检查器工具,必须将参数
&ribbondebug=true
追加到 Dynamics 365 应用程序 URL。 例如:
https://yourorgname.crm.dynamics.com/main.aspx?appid=<ID>&ribbondebug=true
目前,命令检查器工具仅在 Web 浏览器中工作。 它不适用于 Android 和 iOS 应用。 计划将来进行更新,使此工具在这些移动应用中有效。
启用命令检查器工具后,在应用程序内查看每个各种命令栏, (全局、窗体、网格、子网格) 。 你将看到一个新的特殊“命令检查器”
按钮,用于打开该工具, (它可能列在
“更多
溢出浮出控件”菜单上) 。
导航到显示按钮的应用程序中的页面。
找到显示按钮的命令栏。
选择“命令检查器”
按钮, (“
更多
溢出浮出控件”菜单) 可能会列出它。
在命令检查器工具最左侧窗格中显示的按钮列表中查找并选择按钮。 不可见的按钮将用去强调和斜体字体以及 隐藏) 术语 ( 表示。 通过将标签采用普通字体来显示可见的按钮。 选择“ 命令属性 ”选项卡以显示此按钮的命令的详细信息。
“
命令属性
”选项卡显示操作和相应的
JavaScriptFunction
配置。 选择命令名称下方的
“查看命令定义解决方案层
”链接,查看安装了命令定义的解决方案。
“解决方案层”窗格显示已安装特定解决方案的每个功能区组件定义的分层。 列表顶部的层是应用程序使用的当前定义。 其他层处于非活动状态,目前应用程序不使用。 如果卸载顶级解决方案或安装了删除定义的更新版本,则下一层将成为应用程序使用的当前活动定义。 如果存在非托管 活动 解决方案层,则始终是应用程序使用的定义。 如果未列出活动解决方案,则列表顶部列出的解决方案将是应用程序使用的定义。 任何未由 Microsoft 发布的自定义托管解决方案也将优先于Microsoft发布的解决方案层。
实体上下文指示功能区自定义项所针对的对象。 如果列出了“所有实体”,则层来自应用程序功能区客户端扩展,而不是特定于实体。 否则,将列出实体的逻辑名称。
当存在两个或更多层时,可以选择两行,然后选择“ 比较 ”以查看每个解决方案提供的定义比较。
选择“ 上一个” 将返回到上一个命令检查器窗口。
如果只有一个解决方案层,请转到步骤 8。 否则,请选择前两个解决方案层。 (如果活动解决方案中有一个层,但顶部未列出该层,请选择“活动”解决方案层,然后选择顶部行。) 然后选择“ 比较 ”。
将显示当前活动定义与上一个非活动定义的比较,并显示差异(如果有)。 以下示例显示,与 Microsoft 发布的系统解决方案层中的其他非活动定义相比,通过错误地指定
FunctionName
值来自定义非托管 Active 定义。 该值
FunctionName
应为
XrmCore.Commands.Delete.deletePrimaryRecord
,但自定义定义已声明
FunctionName="deletePrimaryRecord"
。 在这种情况下,选择按钮时不会发生任何操作,因为找不到函数。
修复按钮的操作功能所需的方法将取决于特定方案中的各种自定义。 考虑到此示例,命令是通过指定不正确的
FunctionName
值来自定义的。 可以修改命令的自定义版本,并修复
FunctionName
值。 由于这是Microsoft发布的定义的自定义重写,并且没有其他有意的修改,因此建议删除命令的此自定义版本以还原默认功能。
请选择以下修复选项之一。
若要删除
活动
非托管解决方案层中的命令,需要导出包含实体或应用程序功能区的非托管解决方案,并在
customizations.xml
文件中编辑
<RibbonDiffXml>
节点,然后导入此解决方案的新版本,其中删除了此命令以删除组件。 请参阅
导出、准备编辑和导入功能区
。
根据示例方案,你确定实体是
帐户
,必须删除的命令是
Mscrm.DeletePrimaryRecord
,并且该命令在名为
DefaultPublisherCITTest
的发布者
的活动
非托管解决方案层中声明。
打开 “高级设置”。
导航到 “设置 > 解决方案 ”。
选择“ 新建 ”以创建新解决方案,并将 Publisher 设置为命令检查器的解决方案层列表中针对命令和活动解决方案层显示的值。 (在示例中,这是 DefaultPublisherCITTest .)
选择 “实体 ”。
选择 “添加现有项 ”。
在示例中,选择命令在 (上定义的实体,这是“account”) ,然后选择“ 确定 ”。
在选择 “完成 ”之前,请确保清除 “包括实体元数据 ”和“ 添加所有资产 ”选项。
选择“ 保存 ”。
选择“ 导出解决方案 ”,然后导出非托管解决方案。
提取.zip文件。
打开 customizations.xml 文件。
<Entity>
找到要编辑的实体节点的子节点,并找到其子
<RibbonDiffXml>
节点。
找到节点
<CommandDefinition>
。 (在此示例中,节点的
<CommandDefinition>
ID 为
Mscrm.DeletePrimaryRecord
。因此,可以找到以下 node.)
<RibbonDiffXml>
编辑节点以删除具有要删除的命令 ID 的特定
<CommandDefinition>
节点。 请确保不会无意中删除可能存在的其他
<CommandDefinition>
节点。 (根据示例,将删除
<CommandDefinition>
ID 为
Mscrm.DeletePrimaryRecord
.)
保存 customizations.xml 文件。
将修改 后的customizations.xml 文件还原到解决方案.zip文件。
导入解决方案文件。
选择 “发布所有自定义项 ”。
如果命令不是特定于实体的,而是适用于在应用程序功能区中声明的“所有实体”,则步骤将略有不同,如下所示:
<RibbonDiffXml>
节点。
<CommandDefinition>
。
<RibbonDiffXml>
编辑 ,然后删除
<CommandDefinition>
具有要删除的命令 ID 的节点。 请确保不会无意中删除可能存在的其他
<CommandDefinition>
节点。
若要删除由创建的自定义托管解决方案安装的命令,请执行以下步骤:
若要删除由第三方或 ISV 创建的自定义托管解决方案安装的命令,必须联系解决方案的作者,请求删除特定命令定义的新版本的解决方案,然后在受影响的组织中安装此新解决方案。
若要修复
活动
非托管解决方案层中的命令,需要导出包含实体或应用程序功能区的非托管解决方案,在
customizations.xml
文件中编辑
<RibbonDiffXml>
节点,然后导入包含固定命令定义的此解决方案的新版本。 请参阅
导出、准备编辑和导入功能区
。
不要从命令中删除
Mscrm.HideOnModern
显示规则,以强制按钮显示在统一接口中。 具有显示规则的
Mscrm.HideOnModern
命令适用于旧版 Web 客户端接口,在统一接口中不受支持,并且可能无法正常工作。
根据示例方案,你确定实体是
帐户
,必须修复的命令是
Mscrm.DeletePrimaryRecord
,并且该命令在名为
DefaultPublisherCITTest
的发布者
的活动
非托管解决方案层中声明。
打开 “高级设置”。
导航到 “设置 > 解决方案 ”。
选择“
新建
”以创建新解决方案,并设置为
Publisher
命令检查器的解决方案层列表中针对命令和活动解决方案层显示的值。 (在示例中,这是
DefaultPublisherCITTest
.)
选择 “实体 ”。
选择 “添加现有项 ”。
选择在 (在示例中,这是 帐户 ) 定义命令的实体,然后选择“ 确定 ”。
在选择 “完成 ”之前,请确保清除 “包括实体元数据 ”和“ 添加所有资产 ”选项。
选择“ 保存 ”。
选择“ 导出解决方案 ”,然后导出非托管解决方案。
提取.zip文件。
打开 customizations.xml 文件。
<Entity>
找到要编辑的实体节点的子节点,并找到其子
<RibbonDiffXml>
节点。
找到节点
<CommandDefinition>
。 (在此示例中,节点的
<CommandDefinition>
ID 为
Mscrm.DeletePrimaryRecord
。因此,可以找到以下 node.)
<RibbonDiffXml>
编辑节点,对节点进行必要的更改,
<CommandDefinition>
使命令能够在正确情况下正常运行,以修复命令。 有关如何声明命令的详细信息,请参阅
定义功能区命令
和
定义功能区操作
。 (根据示例,可以通过将
<CommandDefinition>
值设置为
FunctionName
XrmCore.Commands.Delete.deletePrimaryRecord
.) 来修改节点的
JavaScriptFunction
将修改 后的customizations.xml 文件还原到解决方案.zip文件。
导入解决方案文件。
选择 “发布所有自定义项 ”。
如果命令不是特定于实体的,而是适用于在应用程序功能区中声明的“所有实体”,则步骤将略有不同,如下所示:
<RibbonDiffXml>
节点。
<CommandDefinition>
找到 。
<RibbonDiffXml>
编辑节点以对节点进行必要的更改,
<CommandDefinition>
使命令能够在正确情况下正常运行,以修复命令。 有关如何声明命令的详细信息,请参阅
定义功能区命令
和
定义功能区操作
。
若要修复由创建的自定义托管解决方案安装的命令,请执行以下步骤:
若要修复由第三方或 ISV 创建的自定义托管解决方案安装的命令,必须联系解决方案的作者,请求包含固定命令定义的新版本的解决方案,并在受影响的组织中安装此新解决方案。
如果选择了功能区命令栏按钮并发生错误,则错误通常是由不正确的功能区 命令 自定义引起的。
你可能会收到类似于以下内容的脚本错误消息:
无效的 JavaScript 操作库:[脚本名称]不是 Web 资源,不受支持。
这是由于在命令的
JavaScriptFunction
上声明了错误的库的功能区命令自定义无效导致的。
应用内工具命令检查器将用于检查功能区组件定义,以帮助我们确定如何解决此问题。
若要启用命令检查器工具,必须将参数
&ribbondebug=true
追加到 Dynamics 365 应用程序 URL。 例如:
https://yourorgname.crm.dynamics.com/main.aspx?appid=<ID>&ribbondebug=true
目前,命令检查器工具仅适用于 Web 浏览器,不适用于 Android 和 iOS 应用。 计划将来进行更新,以在这些移动应用中实现此工作。
启用命令检查器工具后,在应用程序中, (全局、窗体、网格、子网格) 的各个命令栏内,将有一个新的特殊“命令检查器”
按钮打开该工具, (它可能会在
“更多
溢出浮出控件”菜单中列出) 。
导航到显示按钮的应用程序中的页面。
找到按钮可见的命令栏。
选择“命令检查器”
按钮, (“
更多
溢出浮出控件”菜单) 可能会列出它。
在命令检查器工具最左侧窗格中显示的按钮列表中查找并选择按钮,以显示按钮和命令属性。 以下示例显示帐户实体窗体页上的“ 新建 ”按钮可见,并且由标记为“ 新建 ”的项表示。
选择“ 命令属性 ”选项卡以显示此按钮的命令的详细信息。 这将显示 Actions 和 JavaScriptFunction 声明,任何启用或显示规则以及每个规则评估的结果 ( True 、 False 、 跳过 ) 。
通过选择“vron”图标展开
“JavaScriptFunction
”
以查看函数声明的详细信息。 Library 属性必须是 JavaScript Web 资源并带有
$webresource:
前缀。 以下示例显示 Library 属性为 _/_static/
common/scripts/RibbonActions.js
。 这不是有效 JavaScript Web 资源的路径。 接下来,应查看 命令的解决方案层,尝试确定正确的值来解决问题。
选择命令名称下方的 “查看命令定义解决方案层 ”链接,查看安装了命令定义的解决方案。
“解决方案层”窗格将显示已安装特定解决方案的每个功能区组件定义的分层。 列表顶部的层是应用程序使用的当前定义,其他层处于非活动状态,目前应用程序不使用。 如果卸载顶层解决方案或安装了删除定义的更新版本,则下一层将成为应用程序使用的当前活动定义。 当存在非托管 活动 解决方案层时,它将始终是应用程序使用的定义。 如果未列出活动解决方案,则列表顶部列出的解决方案将是应用程序使用的定义。 任何未由 Microsoft 发布的自定义托管解决方案也将优先于Microsoft发布的解决方案层。
实体上下文指示功能区自定义的对象,如果列出了“所有实体”,则层来自应用程序功能区客户端扩展,而不是特定于实体,否则将列出实体的逻辑名称。
当存在两个或更多层时,可以选择两行,然后选择“ 比较 ”以查看每个解决方案引入的定义比较。
选择“ 后退 ”将返回到上一个“命令检查器”窗口。
下图显示了示例中 命令的解决方案层,并指示有两个解决方案层,一个是名为 Active 的解决方案表示的非托管自定义,另一个来自 Microsoft 发布的系统解决方案。 你的实际方案可能有所不同,你可能没有活动解决方案层,你可能有一个托管解决方案,并且该解决方案的名称将在此处列出。
选择前两行,然后选择“ 比较 ”以查看每个解决方案引入的定义比较。 如果只有一个解决方案层,则将跳过此步骤。
命令定义之间的比较将显示两个层之间可能存在的任何差异。 以下示例清楚地显示了库值是不同的。 Active 解决方案中的非托管条目设置为不正确的路径 _/_static/
common/scripts/RibbonActions.js
, (特定路径) 可能略有不同,并且 Microsoft 的默认定义已将库设置为
$webresoure:Main_system_library.js
。 这是此特定命令的支持路径, (此值可能有所不同,具体取决于特定命令) 。 唯一支持的路径是一个以
$webresource:
有效 JavaScript Web 资源的名称开头并结束的路径。
查看解决方案层并确定安装自定义项的解决方案后,必须在相应的解决方案中修复定义。
选择与特定方案匹配的以下选项之一:
修复命令的方法将有所不同,具体取决于你的定义是唯一的,还是是否存在其他非活动定义,以及更改是否是有意的。
请选择反映方案的选项:
若要删除
活动
非托管解决方案层中的命令,需要导出包含实体或应用程序功能区的非托管解决方案,在
customizations.xml
文件中编辑
<RibbonDiffXml>
节点,然后导入该解决方案的新版本,其中删除了此命令以删除组件。 请参阅
导出、准备编辑和导入功能区
。
命令特定于实体
根据示例方案,你确定实体是
帐户
,必须删除的命令是
Mscrm.NewRecordFromForm
,并且该命令在名为
DefaultPublisherCITTest
的发布者
的活动
非托管解决方案层中声明。
打开 “高级设置”。
导航到 “设置 > 解决方案 ”。
选择“ 新建 ”以创建新解决方案,并将 Publisher 设置为命令检查器的解决方案层列表中针对命令和活动解决方案层显示的值。 (在示例中,这是 DefaultPublisherCITTest .)
选择 “实体 ”。
选择 “添加现有项 ”。
选择定义命令的实体。 (在此示例中,这是 帐户 ) ,然后选择“ 确定 ”。
在选择 “完成 ”之前,请确保清除 “包括实体元数据 ”和“ 添加所有资产 ”选项。
选择“ 保存 ”。
选择“ 导出解决方案 ”,然后导出非托管解决方案。
提取.zip文件。
打开 customizations.xml 文件。
<Entity>
找到要编辑的实体节点的子节点,并找到其子
<RibbonDiffXml>
节点。
<CommandDefinition>
找到节点 (在该示例中, 的
<CommandDefinition>
ID 为
Mscrm.NewRecordFromForm
。因此,可以找到以下 node.)
<RibbonDiffXml>
编辑节点以删除特定
<CommandDefinition>
节点。 请确保不会无意中删除可能存在的其他
<CommandDefinition>
节点。 (根据示例,将删除
<CommandDefinition>
ID 为
Mscrm.NewRecordFromForm
.)
保存 customizations.xml 文件。
将修改 后的customizations.xml 文件还原到解决方案.zip文件。
导入解决方案文件。
选择 “发布所有自定义项 ”。
命令位于应用程序功能区中, (适用于“所有实体”)
如果命令不是特定于实体的,而是适用于在应用程序功能区中声明的“所有实体”,则步骤将略有不同,如下所示:
<RibbonDiffXml>
节点。
<CommandDefinition>
。
<RibbonDiffXml>
以删除
<CommandDefinition>
具有要删除的命令的匹配 ID 的节点。 请确保不会无意中删除可能存在的其他
<CommandDefinition>
节点。
若要修复
活动
非托管解决方案层中的命令,需要导出包含实体或应用程序功能区的非托管解决方案,并在
customizations.xml
文件中编辑
<RibbonDiffXml>
节点,然后导入包含固定命令定义的此解决方案的新版本。 请参阅导出、准备编辑和导入功能区
不要从命令中删除
Mscrm.HideOnModern
显示规则,以强制按钮显示在统一接口中。 具有显示规则的
Mscrm.HideOnModern
命令适用于旧版 Web 客户端接口,在统一接口中不受支持,并且可能无法正常工作。
命令特定于实体
根据示例方案,你确定实体是
帐户
,必须修复的命令是
Mscrm.NewRecordFromForm
,并且该命令在名为
DefaultPublisherCITTest
的发布者
的活动
非托管解决方案层中声明。
打开 “高级设置”。
导航到 “设置 > 解决方案 ”。
选择“ 新建 ”以创建新解决方案,并将 Publisher 设置为命令检查器的解决方案层列表中针对命令和活动解决方案层显示的值。 (在示例中,这是 DefaultPublisherCITTest .)
选择 “实体 ”。
选择 “添加现有项 ”。
选择在 (在示例中,这是 帐户 ) 定义命令的实体,然后选择“ 确定 ”。
在选择 “完成 ”之前,请确保清除 “包括实体元数据 ”和“ 添加所有资产 ”选项。
选择“ 保存 ”。
选择“ 导出解决方案 ”,然后导出非托管解决方案。
提取.zip文件。
打开 customizations.xml 文件
<Entity>
找到要编辑的实体节点的子节点,并找到其子
<RibbonDiffXml>
节点。
找到节点
<CommandDefinition>
。 (在此示例中,节点的
<CommandDefinition>
ID 为
Mscrm.NewRecordFromForm
。因此,可以找到以下 node.)
编辑
<RibbonDiffXml>
以对节点进行必要的更改,
<CommandDefinition>
使命令能够在正确情况下正常运行,以修复命令。 有关如何声明命令的详细信息,请参阅
定义功能区命令
和
定义功能区操作
。 (根据示例,通过设置
Library="$webresoure:Main_system_library.js"
来修改
<CommandDefinition>
节点,然后确保
FunctionName
值匹配。在本示例中,该为
FunctionName="XrmCore.Commands.Open.openNewRecord"
.)
保存 customizations.xml 文件。
将修改 后的customizations.xml 文件还原到解决方案.zip文件。
导入解决方案文件。
选择 “发布所有自定义项 ”。
命令位于应用程序功能区中, (适用于“所有实体”)
如果命令不是特定于实体的,而是适用于在应用程序功能区中声明的“所有实体”,则步骤将略有不同,如下所示:
<RibbonDiffXml>
节点。
<CommandDefinition>
。
<RibbonDiffXml>
编辑节点以对节点进行必要的更改,
<CommandDefinition>
使命令能够在正确情况下正常运行,以修复命令。 有关如何声明命令的详细信息,请参阅
定义功能区命令
和
定义功能区操作
。
若要修复由第三方或 ISV 创建的自定义托管解决方案安装的命令,必须联系解决方案的作者,请求包含固定命令定义的新版本的解决方案,然后在受影响的组织中安装此新解决方案。
若要修复由Microsoft发布的托管解决方案安装的命令,可能需要安装较新版本的解决方案。 这通常在发布更新期间完成。 你可能已经发现了一个仍需要修复的 bug。 请联系客户支持获取帮助。
当选择功能区命令栏按钮并发生错误时,通常是由不正确的功能区 命令 自定义引起的。
选择按钮并发生错误时,可能是由与按钮关联的命令配置不正确或编码不正确的 JavaScript 引起的。
让我们确定按钮的命令是什么,以及哪个解决方案安装了定义。
应用内工具命令检查器将用于检查功能区组件定义,以帮助我们确定选择按钮导致错误的原因。
若要启用命令检查器工具,必须将参数
&ribbondebug=true
追加到 Dynamics 365 应用程序 URL。 例如:
https://yourorgname.crm.dynamics.com/main.aspx?appid=<ID>&ribbondebug=true
目前,命令检查器工具仅适用于 Web 浏览器,不适用于 Android 和 iOS 应用。 计划将来进行更新,以在这些移动应用中实现此工作。
启用命令检查器工具后,在应用程序中, (全局、窗体、网格、子网格) 的各个命令栏内,将有一个新的特殊“命令检查器”
按钮打开该工具, (它可能会在
“更多
溢出浮出控件”菜单中列出) 。
导航到显示按钮的应用程序中的页面。
找到按钮可见的命令栏。
选择“命令检查器”
按钮, (“
更多
溢出浮出控件”菜单) 可能会列出它。
在命令检查器工具最左侧窗格中显示的按钮列表中查找并选择按钮。 不可见的按钮将用去强调和斜体字体以及 隐藏) 术语 ( 表示。 可见的按钮将以普通字体显示标签。 选择“ 命令属性 ”选项卡以显示此按钮的命令的详细信息。
“ 命令属性 ”选项卡将显示 “操作” 和相应的 JavaScriptFunction 配置。 选择命令名称下方的 “查看命令定义解决方案层 ”链接,查看安装了命令定义的解决方案。
“解决方案层”窗格将显示已安装特定解决方案的每个功能区组件定义的分层。 列表顶部的层是应用程序使用的当前定义。 其他层处于非活动状态,目前应用程序不使用。 如果卸载顶层解决方案或安装了删除定义的更新版本,则下一层将成为应用程序使用的当前活动定义。 当存在非托管 活动 解决方案层时,它将始终是应用程序使用的定义。 如果未列出活动解决方案,则列表顶部列出的解决方案将是应用程序使用的定义。 任何未由 Microsoft 发布的自定义托管解决方案也将优先于Microsoft发布的解决方案层。
实体上下文指示功能区自定义项所针对的对象。 如果列出了“所有实体”,则层来自应用程序功能区客户端扩展,而不是特定于实体。 否则,将列出实体的逻辑名称。
如果有两个或更多层,可以选择两行,然后选择“ 比较 ”以查看每个解决方案提供的定义比较。
选择“ 后退 ”将返回到上一个“命令检查器”窗口。
如果只有一个解决方案层,请跳到步骤 9。 否则,请选择前两个解决方案层。 (如果活动解决方案中有一个层,但它未在顶部列出,请选择“活动”解决方案层,然后选择顶部行。) 然后选择“ 比较 ”。
将显示当前活动定义与上一个非活动定义的比较,并显示差异(如果有)。 以下示例显示与 Microsoft 发布的系统解决方案层中的其他非活动定义相比,通过错误地指定第一个参数来自定义的非托管 Active 定义。 函数需要主记录的单个 ID,由名为
FirstPrimaryItemId
的 CrmParameter 声明。 但是,自定义定义已声明
PrimaryItemIds
节点的值
<CrmParameter>
。 这将导致脚本引发错误,因为参数与函数签名不匹配。
修复按钮操作功能所需的方法将取决于特定方案中的各种自定义。 考虑到此示例,命令是通过错误地指定第一个参数来自定义的。 可以修改 命令的自定义版本并修复 参数。 由于这是Microsoft发布的定义的自定义重写,并且没有其他有意的修改,因此建议删除命令的此自定义版本以还原默认功能。
请选择以下修复选项之一。
若要删除
活动
非托管解决方案层中的命令,需要导出包含实体或应用程序功能区的非托管解决方案,并在
customizations.xml
文件中编辑
<RibbonDiffXml>
节点,然后导入此解决方案的新版本,其中删除了此命令以删除组件。 请参阅
导出、准备编辑和导入功能区
。
命令特定于实体
根据示例方案,你确定实体是
帐户
,必须删除的命令是
Mscrm.DeletePrimaryRecord
,并且该命令在名为
DefaultPublisherCITTest
的发布者
的活动
非托管解决方案层中声明。
打开 “高级设置”。
导航到 “设置 > 解决方案 ”。
选择“ 新建 ”以创建新解决方案,并将 Publisher 设置为命令检查器的解决方案层列表中针对命令和活动解决方案层显示的值。 (在示例中,这是 DefaultPublisherCITTest .)
选择 “实体 ”。
选择 “添加现有项 ”。
选择在示例中 (定义命令的实体,这是 帐户 ) 然后选择 “确定 ”。
在选择 “完成 ”之前,请确保清除 “包括实体元数据 ”和“ 添加所有资产 ”选项。
选择“ 保存 ”。
选择“ 导出解决方案 ”,然后导出非托管解决方案。
提取.zip文件。
打开 customizations.xml 文件。
<Entity>
找到要编辑的实体节点的节点子级,然后找到其子
<RibbonDiffXml>
节点。
找到节点
<CommandDefinition>
。 (在此示例中,节点的
<CommandDefinition>
ID 为
Mscrm.DeletePrimaryRecord
。因此,可以找到以下 node.)
<RibbonDiffXml>
编辑节点以删除具有要删除的命令 ID 的特定
<CommandDefinition>
节点。 请确保不会无意中删除可能存在的其他
<CommandDefinition>
节点。 (根据示例,将删除
<CommandDefinition>
ID 为
Mscrm.DeletePrimaryRecord
.)
保存 customizations.xml 文件。
将修改 后的customizations.xml 文件还原到解决方案.zip文件。
导入解决方案文件。
选择 “发布所有自定义项 ”。
命令位于应用程序功能区中, (适用于“所有实体”)
如果命令不是特定于实体的,而是适用于在应用程序功能区中声明的“所有实体”,则步骤将略有不同,如下所示:
<RibbonDiffXml>
节点。
<CommandDefinition>
。
<RibbonDiffXml>
删除
<CommandDefinition>
具有要删除的命令 ID 的节点。 请确保不会无意中删除可能存在的其他
<CommandDefinition>
节点。
若要删除由创建的自定义托管解决方案安装的命令,请执行以下步骤:
从第三方/ISV 从自定义托管解决方案中删除命令
若要删除由第三方或 ISV 创建的自定义托管解决方案安装的命令,必须联系解决方案的作者,请求删除特定命令定义的新版本的解决方案,然后在受影响的组织中安装此新解决方案。
若要修复
活动
非托管解决方案层中的命令,需要导出包含实体或应用程序功能区的非托管解决方案,并在
customizations.xml
文件中编辑
<RibbonDiffXml>
节点,然后导入包含固定命令定义的此解决方案的新版本。 请参阅
导出、准备编辑和导入功能区
。
不要从命令中删除
Mscrm.HideOnModern
显示规则,以强制按钮显示在统一接口中。 具有显示规则的
Mscrm.HideOnModern
命令适用于旧版 Web 客户端接口,在统一接口中不受支持,并且可能无法正常工作。
命令特定于实体
根据示例方案,你确定实体是
帐户
,必须修复的命令是
Mscrm.DeletePrimaryRecord
,并且该命令在名为
DefaultPublisherCITTest
的发布者
的活动
非托管解决方案层中声明。
打开 “高级设置”。
导航到 “设置 > 解决方案 ”。
选择“ 新建 ”以创建新解决方案,并将 Publisher 设置为命令检查器的解决方案层列表中针对命令和活动解决方案层显示的值。 (在示例中,这是 DefaultPublisherCITTest .)
选择 “实体 ”。
选择 “添加现有项 ”。
在示例中,选择命令在 (上定义的实体(这是 帐户 ) ),然后选择“ 确定 ”。
在选择 “完成 ”之前,请确保清除 “包括实体元数据 ”和“ 添加所有资产 ”选项。
选择“ 保存 ”。
选择“ 导出解决方案 ”,然后导出非托管解决方案。
提取.zip文件。
打开 customizations.xml 文件。
<Entity>
找到要编辑的实体节点的子节点,并找到其子
<RibbonDiffXml>
节点。
找到节点
<CommandDefinition>
。 (在此示例中,节点的
<CommandDefinition>
ID 为
Mscrm.DeletePrimaryRecord
。因此,可以找到以下 node.)
<RibbonDiffXml>
编辑节点以对节点进行必要的更改,
<CommandDefinition>
使命令能够在正确情况下正常运行,以修复命令。 有关如何声明命令的详细信息,请参阅
定义功能区命令
和
定义功能区操作
。 (根据示例,可以通过将
<CommandDefinition>
值设置为
FunctionName
XrmCore.Commands.Delete.deletePrimaryRecord
.) 来修改节点的
JavaScriptFunction
将修改 后的customizations.xml 文件还原到解决方案.zip文件。
导入解决方案文件。
选择 “发布所有自定义项 ”。
命令位于应用程序功能区中, (适用于“所有实体”)
如果命令不是特定于实体的,而是适用于在应用程序功能区中声明的“所有实体”,则步骤将略有不同,如下所示:
<RibbonDiffXml>
节点。
<CommandDefinition>
找到 。
<RibbonDiffXml>
编辑节点以对节点进行必要的更改,
<CommandDefinition>
使命令能够在正确情况下正常运行,以修复命令。 有关如何声明命令的详细信息,请参阅
定义功能区命令
和
定义功能区操作
。
若要修复由创建的自定义托管解决方案安装的命令,请执行以下步骤:
若要修复由第三方或 ISV 创建的自定义托管解决方案安装的命令,必须联系解决方案的作者,请求包含固定命令定义的新版本的解决方案,然后在受影响的组织中安装此新解决方案。
若要修复由Microsoft发布的托管解决方案安装的命令,可能需要安装较新版本的解决方案。 这通常在发布更新期间完成。 你可能已经发现了一个仍需要修复的 bug。 请联系客户支持获取帮助。