こんにちは。CData Software Japanリードエンジニアの杉本です。
CData に良く問い合わせが来る Dynamics 365(CRM)・Dataverseのトピックとして、監査ログの取得があります。
確かにDynamics 365の監査ログって、取得しづらいんですよね。
Excel エクスポートボタンが画面についていないですし、内部構造も若干複雑で、Web API経由で取得するのもちょっと面倒な代物です。
でも、取得できると、ユーザーが普段どんなエンティティを使っているのか? どんな操作をしているのか? いつWeb アクセスしているか? などの情報が取れるので、Dynamics 365(CRM)を活用していくにあたって、結構重要な情報なので用途は多いと思います。
通常であれば、Web APIやSDKを使って、ガリゴリするところですが、CData Excel-Addinを利用することで、かなり簡単に監査データにアクセスできるので、紹介してみたいと思います。
なお、手順としてはDynamics 365 for Sales(Customer Engagement)を元にしていますが、Dataverseでも同様に実施できます。
監査ログの有効化
今回はトライアル環境に接続したので、予め監査ログを有効化しておきます。
「詳細設定」→「管理」→「システムの設定」を表示し、「監査」タブから「監査の開始」と必要な監査対象をそれぞれ有効化しておきましょう。
有効化後、監査概要ビューに移動することで、監査ログが確認できます。
CData Excel-Addin for Dynamics 365 for Salesのセットアップ
続いて取得するためのツールとして、「CData Excel-Addin for Dynamics 365 for Sales」もしくは、「Dataverse」をセットアップします。
以下のページから、トライアルを取得できます。
なお、今回はExcel Add-inで行いましたが、Power BI Connectorを使っても同じことができます。(ちなみに、なぜかPower BI 純正のコネクターではAuditにアクセスできませんでした。不思議です。)
セットアップ後、Excelを起動して「CData」タブから「データの取得」→「取得元:D365Sales」を選択します。
最初に接続設定の画面が開くので以下のプロパティを設定して、アクセスしましょう。
プロパティ名 | 値 | 備考 |
---|---|---|
Organization URL | 例)https://XXXX.crm7.dynamics.com | 対象の組織URLを指定します。 |
Include Formatted Values | True | 関連項目を表示するための設定です。 |
ポイントは、「Include Formatted Values」のプロパティをTureにしておくことです。これにより通常の取得よりも詳しい内容が取得できるようになります。
入力後、接続テストをクリックすると以下のようにブラウザが立ち上がり、接続プロセスが開始されます。
ログインし、接続許可を行うことで、接続設定が完了します。
監査ログを取得する
それでは実際に監査ログを取得してみましょう。監査ログは「autids」というテーブルでアクセスできます。
「audits」テーブルを選択後、必要なカラムを選択してデータ取得を行います。今回はすべてのカラムをとりあえず取得してみます。
以下のような形でデータが取得できました。
ユーザーアクセスや変更の内容が確認できますね。
更新データはどのように見えるのか?
では、もうちょっと詳しくどのようにこのデータが見えるのか、確認してみましょう。
試しに取引先企業データに対して、以下のような更新を行ってみました。
監査概要ビューでは更新イベントとして以下のような記録されています。
詳細画面を開くと、各項目の更新情報が取得できます。
これをExcel Add-inから取得してみると、下記のような結果が得られます。
書き込みを行ったエンティティやどんなアクションを実施したのか、エンティティのプライマリフィールドの情報を出ていますね。
ただ、各項目の値がそれぞれどのように変更されたか、については取得できませんでした。確認できるのは、Attirbutemaskで更新された項目のIDだけとなっています。この点は利用する際は要注意です。