codeplex 上で Microsoft CRM 4.0 Many To Many Exporter/Importer というツールが公開されています。このツール CSVファイルで指定された レコードの GUID 値を使用して 多対多(NN)関連のインポートもしくは逆にエクスポートをしてくれるコマンドラインツールです。プロジェクトの移行作業で結構お世話になりました。ツールの詳細は下記リンク先を参照してください。

- Microsoft CRM 4.0 Many To Many Exporter/Importer
http://crmmanytomany.codeplex.com/

このツールはインポート(関連付け)はしてくれるのですが、 関連の解除をしてくれません。なので、公開されているソースを修正して、remove というオプションを指定すると、入力ファイルで指定されたレコードの関連を解除(Disassociate)するように修正しました。ソリューションを記事の下のほうに公開していますので必要であれば使ってください。

簡単な使い方

関連付けのインポート(既存の機能)を使用する場合は、コマンドプロンプト上で次のように入力します。

CRMAssocManyToMany.exe "import" "http://crmsv01" "dyn" "np_np_importtest_account" "np_importtest" "account" "sample.txt"

引数の意味は、紹介したcodeplex上のURLや コマンドラインヘルプで確認できますが、簡単に説明を記載します。

引数 説明
 import  インポート処理の場合に指定します。removeを指定すると、関連解除。export で関連のexport を実施します。
 http://crmsv01  CRMサーバへのURL
 dyn  対象とする組織名
 np_np_importtest_account  対象とする多対多関連名
 np_importtest  関連付ける1つめのエンティティの論理名
 account  関連付ける2つめのエンティティの論理名
 sample.txt  関連付けするエンティティのGUIDを入力したCSVファイル

関連付けを解除する場合は、コマンドプロンプト上で次のように入力します。

CRMAssocManyToMany.exe "remove" "http://crmsv01" "dyn" "np_np_importtest_account" "np_importtest" "account" "sample.txt"

改造したソリューションは次のリンクからダウンロードできます。

- 実行ファイルのみ
Modified-CRMManyToMany-52176-exe.zip
- ソリューションファイル付き
Modified-CRMManyToMany-52176-Source.zip

 説明は以上です。問題等なにかありましたらご連絡ください。