2012-09-14 92 views
0

由於各種原因太過複雜以便在此解釋,我發現自己處於需要移除自定義代碼工作流程的位置,同時將解決方案留在那裏。以編程方式刪除自定義代碼工作流程

我基本上具有相同的代碼作爲插件登錄工具

service.Delete("plugintype", new Guid(info)); 

其中信息是工作流ID [上foreach循環運行,但是這樣的點旁邊]

然而,而該工具沒有任何問題地刪除工作流程,我的代碼抱怨依賴關係。

EM:

附加信息:PluginType(a0b2dcf7-CF2A-111E-7da9-003021880a42)成分不能因爲它是由其它1個部件引用刪除。有關引用組件的列表,請使用RetrieveDependenciesForDeleteRequest。

我正式做

RetrieveDependenciesForDeleteRequest req = new RetrieveDependenciesForDeleteRequest(); 
req.ComponentType = 90; //plugintype 
req.ObjectId = new Guid(info); 
RetrieveDependenciesForDeleteResponse resp = (RetrieveDependenciesForDeleteResponse)OrgService.Execute(req); 

這檢索一個optionvalueset,但是有一點我可以用它做的是解決方案的管理,我不能從溶液中取出。

我能看到的唯一區別是OrganizationServiceProxy被實例化的方式。該插件註冊工具包括一種刷新安全令牌的方式,但據我所知它沒有太大的作用(我已經遍歷代碼,但有可能我錯過了某些內容)

回答

0

您將無法從託管解決方案中刪除組件...您最初是否是解決方案的作者?

另一方面,您的工作流是否觸發顯示爲依賴項的OptionSet的更改?

+0

我知道我無法從託管解決方案中刪除組件,但可以將它們從系統中刪除,這就是我正在做的。它不適用於工作流程,但適用於插件 – ManyRootsofAllEvil

+0

而我的另一個問題是「您的工作流程是否觸發顯示爲依賴關係的OptionSet更改?」 –

+0

我沒有檢查過,我沒有編寫工作流程,只是一些插件 – ManyRootsofAllEvil

1

您確定它是依賴項的OptionSetValue嗎?使用GUI來確定依賴關係更容易。在CRM 2011中啓動您的解決方案,單擊「插件程序集」,選擇相關程序集,然後遍歷每個定製工作流程/插件項目並單擊「顯示依賴」。

在我的情況下,我有另一個工作流程(在CRM中創建)引用自定義工作流程來防止刪除程序集。

相關問題