1. 程式人生 > >Dynamics 365-RetrieveDependenciesForDeleteRequest

Dynamics 365-RetrieveDependenciesForDeleteRequest

https nts IT tty 一個 one ret asp 得到

  不少人在使用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。

  

  

Dynamics 365-RetrieveDependenciesForDeleteRequest