Dynamics 365-RetrieveDependenciesForDeleteRequest

  不少人在使用Dynamics 365的时候,或多或少都会遇到Delete a Component的情况,比如Unregister a Plugin/Workflow。

  想象这么一个常见的情形:你定制了一个Custom Workflow,然后在CRM环境中新建了一个Workflow,其中使用了Custom Workflow作为Step,但是现在需求有变动,Custom Workflow不需要,你需要Unregister它。直接使用Plugin注册Tool去Unregister能够成功么?

  答案是否定的,因为还有依赖它的Workflow存在呢。这个时候你只需要先处理CRM环境中的Workflow,再去Unregister Custom Workflow就能够成功了。

  把上面的例子想的再复杂点,CRM环境中的Workflow是CRM Administrator配置的,作为开发的你完全不知道这些依赖的Workflows到底是哪些,这个时候怎么办呢?

  如果我们能够查出这些依赖的Components,然后先处理一番,是不是就可以了呢。这个时候就可以使用RetrieveDependenciesForDeleteRequest对象了。

  这个Request的使用很简单,仅需要两个必填信息即可:ComponentType和ObjectId。对应的都是你要删除的Component的描述。

  ComponentType:对应的其实是一个枚举值,可以参考官方描述给出对应的int值。比如Custom Workflow:90

  ObjectId:对应的就是Component的Guid了。

  调用Request之后,从RetrieveDependenciesForDeleteResponse中访问EntityCollection集合,就能得到所有依赖的Components。

  那么如何知道依赖的Component的类型和Guid呢?

  查看Entity的两个属性:DependentComponentObjectIdDependentComponentType。

  

  

原文地址:https://www.cnblogs.com/yobyron/p/9043112.html