Dynamics CRM 2011 インポート機能を利用したデータ操作


みなさん、こんにちは。

今回は Dynamics CRM 2011 で拡張された、インポート機能を紹介します。

Dynamics CRM 2011 では以下の機能がサポートされます。

‐ Excel へのデータのエクスポート
‐ エクスポートしたデータを編集した後、再度インポートすることでの、データ更新
‐ エクスポートした Excel に、新しい行を追加することでの、データ作成
‐ Excel、CSV、テキスト形式ファイルのインポート
‐ ZIP 形式の圧縮された複数ファイルの一括インポート
‐ 単一ファイルから複数エンティティへのデータインポートおよび相互参照の設定

今回は、エクスポートしたデータの更新および新規作成に関して詳細を紹介します。
では早速手順を確認しましょう。

Excel を利用したデータの更新手順

1. Internet Explorer で Dynamics CRM 2011 に接続します。

2. レコードの更新をしたいエンティティに移動します。今回は取引先企業を利用します。

3. ワークプレース | 取引先企業グリッドに移動して、リボン上の 「Excel にエクスポート」
ボタンをクリックします。

image

4. ダイアログが出るので、画面下部にある 「このデータを再インポートできるように必須
の列見出しを対象に含める」 にチェックを入れて、エクスポートをクリックします。

image

5. ファイルは一旦任意の場所に保存します。

6. 保存したファイルを開きます。

7. 任意の場所を更新します。(更新箇所を黄色にしています)
また新規レコード用に一行追加します。

image

8. リボンのデータのインポートボタンをクリックします。

image

9. 更新したファイルを選択して、次へをクリックします。

10. 設定の確認とデータのインポート画面で、重複の許可等設定を行います。

image

11. 送信をクリックします。

12. 状況を確認するため、ワークプレースにある、インポートをクリックします。

image

13. 該当するインポートのレコードの結果を確認します。

image

image

14. ワークプレース | 取引先企業グリッドを確認します。レコードの更新および作成が
成功しています。

image

機能の詳細

いかに機能の詳細を紹介します。

サポートされる内容

・ 取引先企業名等、更新できるフィールドの修正
・ エクスポートされた Excel に新しい行を追加することでのレコードの作成
・ Owner 列を編集することでの、他ユーザー、チームへのレコード割り当て
・ アクティブ/非アクティブ等の、レコードのステータス変更

サポートされない内容

・ エクスポートされた Excel の行を削除することでの、レコードの削除
・ データ更新時、CreatedOn 等の、更新対象ではない行の修正
・ データ作成時、CreatedOn 等の、作成対象ではない行の作成
・ 関連レコードの列の修正

関連レコードの列に関しては、Excel で編集しようとした場合に、セルが保護されている
旨のエラーが出力されるため、容易に判断が可能です。

特別な型に関して

Dynamics CRM でのみ利用する特別な型は、以下のように処理されます。

‐ オプションセット
Excel にエクスポートした時点で、プルダウンによる選択肢を提供しています。
image

‐ ステータス
ステータスに関してもオプションセット同様の振る舞いになりますが、実際の
更新時には、 SetStateStatus メッセージが呼ばれます。エンティティごとに
特定のステータスになるための前提条件があるため、それを満たさない場合には
エラーとなります。

‐ 所有者
レコードの名前で、ユーザーとチームの検索が行われます。

‐ 通貨型
Excel にエクスポート時に、通貨型と値に分離されます。数値の列が更新可能です。
image

‐ 文字列
最長文字列の定義が、マウスオーバーが確認可能です。

image

‐ 数値と日付
OS の設定にそった形式で表示されます。形式は自動でチェックされます。

image

重要なポイント

この機能を利用する場合、以下の点に留意してください。

‐ データの変更がない行は、インポート時に処理の対象になりません。これは不要な
ワークフローやプラグインが呼ばれることを避けるためです。
‐ 取引先担当者やユーザーのように、参照を設定する場合は、フルネームの指定が必須です。
‐ 電子メールの宛先等、複数の関連を設定できる行は、本機能の対象外です。
‐ グリッドが同じ表示名の列を含んでいる場合、本機能は使用できません。
image
‐権限のない列を更新するような変更は処理されません。
‐ Excel 2010 RTM を利用している場合、一旦エクスポートしたファイルは保存して開いてください。
‐ 非表示になっている A 列から C 列までのデータは変更しないでください。

まとめ

Dynamics CRM 2011 のインポート機能は大幅に拡張されました。その中でもデータの
更新および作成機能は、非常に柔軟でかつ使いやすい機能だと思います。他シス連携や
マスターデータ更新等で、是非本機能を試してください。

情報元: Leverage Microsoft Excel to edit records
http://blogs.msdn.com/b/crm/archive/2011/06/01/leverage-microsoft-excel-to-edit-records.aspx

– Dynamics CRM サポート 中村 憲一郎

Comments (5)

  1. hattori より:

    すいません。

    インポート機能で1つ質問させてください。

    当記事にございますように、マウスオーバした時に、文字列の最大桁数や、必須有無のコメントが表示されます。

    さらに、最大桁数のチェックも入っており、最大桁数以上の文字は入力できない制限がはいっているようのですが、

    必須項目については、未入力でもチェックがかからずそのままインポートされてしまいました。

    他に手段がないかと調査を行い、重複データルールを使用して「空白の値を無視」にチェックをいれずに試してみたのですが、

    インポートされてしまいました。

    必須項目に対して未入力である項目についてはインポート時にチェックをかけて取り込まれないようにしたく考えております。

    何か方法があればご教授いただきたく、なにとぞよろしくお願いいたします。

  2. kenakamu より:

    コメントありがとうございます。

    インポートや SDK で作成したレコードについては必須項目のチェックが行われないため、どうしても必須項目をチェックしたい場合には、プラグインが必要となります。

    値を確認して既定値を与える等、エラーで返すのではなく処理を続ける場合は、同期ワークフローやサーバー側で実行できる業務ルールを利用することもできます。

    同期ワークフロー

    blogs.msdn.com/…/dynamics-crm-2013-fall-13-synchronous-workflow-1.aspx

    業務ルール

    blogs.msdn.com/…/dynamics-crm-2015-update-business-rule-new-feature.aspx

    ご検討ください。

    中村 憲一郎

  3. hattori より:

    ご回答ありがとうございました。

    コメント頂きました内容承知いたしました。

    運用を含め検討したいと思います。

  4. saito より:

    お世話になります。
    インポートについて確認させてください。今までDynamics CRM 2013 にて当ページと同じ方法(xml形式)でデータのインポートをしておりましたがUR4にアップしたタイミングなのか、「このデータを再インポートできるように必須 の列見出しを対象に含める」のエクスポートがなくなってしまいました。普通に静的ワークシートをエクスポートしてからのインポート、インポートテンプレートをダウンロードしてからのインポート、CSVファイルからのインポートなど試しましたが、ステータスが提出済みからいっこうに進む気配はなく、処理されない状態で困っております。
    何か原因などわかりましたら、ご教示頂けないでしょうか。
    よろしくお願いします。

    1. コメントありがとうございます。

      ご不便をおかけしており申し訳ございません。
      残念ながらすぐに原因がわかりませんでしたので、お手数ですが弊社サポートセンターまでお問合せいただきますようお願いします。

      – 中村 憲一郎