【发布时间】:2023-03-26 10:22:01
【问题描述】:
我的客户要求我以编程方式删除自定义实体及其依赖项(防止删除此实体)。
我已经使用 RetrieveDependenciesForDeleteRequest 检索了自定义实体的依赖项。此请求为我提供了依赖项集合,必须在删除该自定义实体之前将其删除。
RetrieveDependenciesForDeleteResponse resp =
(RetrieveDependenciesForDeleteResponse) service.Execute(req);
//A more complete report requires more code
foreach (Entity dependencyEntity in resp.EntityCollection.Entities)
{
service.Delete(d.LogicalName, dependencyEntity.Id);
}
现在我在这里面临的问题是 dependencyEntity.Id 始终为空 GUID,而不是有效的 GUID。
谁能帮我实现这个功能?
【问题讨论】:
-
您要删除所有依赖项还是只删除依赖项?例如,如果要删除的实体有一个关系,它被用作对另一个实体的表单的查找,这是依赖关系,您必须在删除实体之前解决。大概您不想删除该实体或实体的表单(只是表单上的查找控件-顺便说一句,需要发布。)如果您知道没有此类依赖项(表单、视图、仪表板等),您' 可能会没事 - 如果不是,这将很难在代码中实现。因此,为什么 MSFT 还没有处理它。
-
实际上我们已经删除了这个自定义实体的所有已知依赖项(关系、插件、视图等).. 但是当我们尝试从 UI 中删除这个实体时.. 它会显示弹出消息并说仍有一些依赖项..现在我们无法从 UI 中找到这些依赖项..所以我们考虑以编程方式将其删除。从 UI.. 它说有一些“SDK 消息处理步骤”类型的依赖项......但正如我所提到的,我们找不到它。
-
这些将是插件步骤注册。您可以通过 UI 查看它们或启动
PluginRegistrationTool.exe将它们删除。 -
是的。我已经使用 PluginregistrationTool 注销了所有插件(插件步骤).. 但仍然遇到这个奇怪的问题。
标签: dynamics-crm microsoft-dynamics dynamics-crm-2015