Morning Girl

Web API, Windows, C#, .NET, Dynamics 365/CRM etc..

Dynamics 365(CRM)の監査ログをExcelに出力する:CData Excel-Addin for Dynamics 365を使用

最近、Dynamics 知り合いの方から、「Dynamics 365 for Customer Engangement の監査ログをExcel エクスポートしたいんだけど、できないのー。なんとかしてー」という、質問(?)をもらいました。

確かにDynamics 365の監査ログって、取得しづらいんですよね。

Excel エクスポートボタンが画面についていないですし、

f:id:sugimomoto:20181209170041p:plain

内部構造も若干複雑で、Web API経由で取得するのもちょっと面倒な代物です。

でも、取得できると、ユーザーが普段どんなエンティティを使っているのか? どんな操作をしているのか? いつWeb アクセスしているか? などの情報が取れるので、Dynamics 365(CRM)を活用していくにあたって、結構重要な情報なので用途は多いと思います。

通常であれば、Web APISDKを使って、ガリゴリするところですが、CData Excel-Addinを利用することで、かなり簡単に監査データにアクセスできたので、紹介してみたいと思います。

あと、個人的に CData Excel-Addinでどこまで取得できるのかなーという自分自身の純粋な興味もありました。

どんな情報が取得できるのか?

のっけから結論ですが、CData Excel Add-In だと以下のような感じで、Excelにデータがエクスポートできます。

レコードのCreateやUpdateの情報は対象のエンティティ、レコードのGUID、プライマリのタイトル、実行したユーザーなどが。

フィールド情報は残念ながらColumnNumberしか取れません。ちょっとこの辺はAttributeと掛け合わせて解析する必要があります。

f:id:sugimomoto:20181209170055p:plain

ユーザーアクセスはDynamics 365画面上から見ることができる通りに取得できますね。

ただ、注意したいのが、この記録はDynamics 365の仕様上、ログインした時間ではなく、ログインを実施していれば操作や一定時間ごとに取得される情報なので、この数が多いからと言って、ログインが多いユーザーとは限りません(アクセスは間違いなくしていますが)

f:id:sugimomoto:20181209170106p:plain

では、実際にこのデータの取得方法を説明していきたいと思います。

必要なもの

・CData Dynamics CRM Excel-Addin ・Dynamics 365 for Customer Enagement アカウント

実施手順

まず、CData Dynamics CRM Excel-Addinをダウンロードします。

Dynamics 365 Salesでもいいのですが、Web APIの仕様上、若干取得できるデータが異なるので、監査ログであれば、Dynamics CRM タイプがおすすめです。

https://www.cdata.com/jp/drivers/dynamicscrm/excel/

f:id:sugimomoto:20181209170126p:plain

ダウンロードしインストーラーを立ち上げると、以下の画面で製品インストールを進めることができます。

f:id:sugimomoto:20181209170136p:plain

インストール後、Excelを起動するとリボンに「CData」タブが追加されています。

ここから、取得元 Dynamics CRM を選択し

f:id:sugimomoto:20181209170148p:plain

ログイン情報、「User」「Password」「Url」を入力し、「OK」をクリックしてください。

f:id:sugimomoto:20181209170636p:plain

「サーバーに接続できました」とメッセージが表示できれば、OKです。

f:id:sugimomoto:20181209170215p:plain

監査ログを取得できるテーブルはAuditテーブルです。

Audit テーブルを選択し、取得条件などを入力して、OKをクリックすれば

f:id:sugimomoto:20181209170223p:plain

以下のようにデータを取得できます。

f:id:sugimomoto:20181209170235p:plain

初期状態では100件上限ですが、日付などでフィルタリングもできるので用途に応じて、調整してみてください。