0

ここで説明するには複雑すぎるさまざまな理由から、ソリューションをそのままにして、カスタムコードワークフローを削除できるようにする必要がある立場にいることに気づきました。

私は基本的にプラグイン登録ツールと同じコードを持っています

つまり、

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

ここで、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がインスタンス化される方法です。プラグイン登録ツールにはセキュリティトークンを更新する方法が含まれていますが、私が知る限り、それはあまり機能していません(コードをステップスルーしましたが、何かを見逃した可能性があります)

4

2 に答える 2

1

依存関係が OptionSetValue であることは確かですか? GUI を使用して依存関係を判断する方がはるかに簡単です。CRM 2011 でソリューションを起動し、[プラグイン アセンブリ] をクリックして関連するアセンブリを選択し、各カスタム ワークフロー/プラグイン アイテムを確認して、[依存関係を表示] をクリックします。

私の場合、カスタム ワークフローを参照する別のワークフロー (CRM 内で作成) があり、アセンブリの削除が妨げられていました。

于 2012-11-26T10:26:34.510 に答える
0

管理対象ソリューションからコンポーネントを削除することはできません...あなたは元々ソリューションの作成者ですか?

余談ですが、依存関係として表示されているOptionSetの変更時にワークフローが起動しますか?

于 2012-09-14T09:23:26.820 に答える