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的兩個屬性:DependentComponentObjectId和DependentComponentType。
Dynamics 365-RetrieveDependenciesForDeleteRequest