不少人在使用Dynamics 365的時(shí)候,或多或少都會(huì)遇到Delete a Component的情況,比如Unregister a Plugin/Workflow。 想象這么一個(gè)常見(jiàn)的情形:你定制了一個(gè)Custom Workflow,然后在CRM環(huán)境中新建了一個(gè)Workflow,其中使用了Custom Workflow作為Step,但是現(xiàn)在需求有變動(dòng),Custom Workflow不需要,你需要Unregister它。直接使用Plugin注冊(cè)Tool去Unregister能夠成功么? 答案是否定的,因?yàn)檫€有依賴它的Workflow存在呢。這個(gè)時(shí)候你只需要先處理CRM環(huán)境中的Workflow,再去Unregister Custom Workflow就能夠成功了。 把上面的例子想的再?gòu)?fù)雜點(diǎn),CRM環(huán)境中的Workflow是CRM Administrator配置的,作為開(kāi)發(fā)的你完全不知道這些依賴的Workflows到底是哪些,這個(gè)時(shí)候怎么辦呢? 如果我們能夠查出這些依賴的Components,然后先處理一番,是不是就可以了呢。這個(gè)時(shí)候就可以使用RetrieveDependenciesForDeleteRequest對(duì)象了。 這個(gè)Request的使用很簡(jiǎn)單,僅需要兩個(gè)必填信息即可:ComponentType和ObjectId。對(duì)應(yīng)的都是你要?jiǎng)h除的Component的描述。 ComponentType:對(duì)應(yīng)的其實(shí)是一個(gè)枚舉值,可以參考官方描述給出對(duì)應(yīng)的int值。比如Custom Workflow:90 ObjectId:對(duì)應(yīng)的就是Component的Guid了。 調(diào)用Request之后,從RetrieveDependenciesForDeleteResponse中訪問(wèn)EntityCollection集合,就能得到所有依賴的Components。 那么如何知道依賴的Component的類(lèi)型和Guid呢? 查看Entity的兩個(gè)屬性:DependentComponentObjectId和DependentComponentType。
|
|
來(lái)自: 路人甲Java > 《待分類(lèi)》