前回の記事(Power BIとCRM&MAのDBを接続⦆ではVtigerCRMのDBと接続するところまでを解説しましたが、今回は実際に分析するためのモデルづくりの設定について解説します。

リレーションシップの管理

最初にリレーションシップの設定を行います。実はこのリレーションシップの設定さえ完了すれば準備はほぼ整ったことになります。

リレーションシップとは取り込んだテーブル間の関連付け設定になります。今回のようにVtigerCRMのDBに接続し、テーブルごとデータを取り込む場合は、このリレーションシップの設定を行うことで必要なデータを取得することができます。

ちなみに、MySQLのDBと接続し、テーブルの情報を読み込むとPower BI側でテーブルの構造を解析し、リレーションシップを自動で作成します。但し、これには間違いもあるため内容を確認した上で、削除や修正を行い、足りないものは追加を行ってリレーションシップを完成させることになります。

VtigerCRMのテーブル構造

リレーションシップの設定の前にVtigerCRMのテーブル構造について少し解説したいと思います。

前回の記事で解説した通り、モジュールに関する基本のテーブルは[vtiger_モジュール名]と[vtiger_モジュール名cf]になります。モジュールによっては、関連する住所情報や定義リストが別にテーブルになっています。

下記の図は一部のモジュール間の関連を表したものです。

VtigerCRMのテーブルのリレーションシップ

VtigerCRMのテーブルは少し特殊なデータの持ち方をしています。例えば、データの作成日、更新日、更新者、データのユーザー担当(オーナー)などの情報は各モジュールのテーブル内では保持していません。

それらのデータは上の図の[vtiger_crmentity]というテーブルに格納されています。Power BI上で、各モジュールデータのユーザー担当や作成日、更新日などのデータを取得するためには、[vtiger_crmentity]テーブルと各モジュールのテーブル間にリレーションシップの設定を行う必要があります。更に、ユーザーの情報(担当者の氏名など)を取得するためには、[vtiger_crmentity]と[vtiger_users〕との間にリレーションシップの設定が必要です。

※各モジュールのテーブルの[モジュール名id]フィールドを[crmentity]テーブルの[crmid]フィールドとの間に1対1のリレーションシップを設定することで、担当者や作成日時、更新日時などのデータ取得が可能になります。

リレーションシップの設定

左メニューの3つ目のフロー図のようなアイコンをクリックします。

Power BIの画面

リレーションシップのビューが開きます。

リレーションシップの設定は非常に簡単で、テーブルAの該当フィールドをドラッグし、テーブルBの関連するフィールドにドロップするだけです。

例えば、モジュールの各データの担当者名を取得するためには[vtiger_crmentity]と[vtiger_users]との間にリレーションシップが必要です。この場合、[vtiger_crmentity]テーブルの[smownerid]フィールドをドラッグし、[vtiger_users]テーブルの[id]フィールドにドロップすればリレーションシップが設定されます。

usersテーブルとcrmentityテーブルが1対多の関係で設定されました。

テーブル間の関連性を変更したい場合は、各フィールドをつなぐ線の中央の▲マークをクリックしてください。

リレーションシップの編集ウィンドウが開きます。

上段のテーブルと下段のテーブルで関連付け対象のフィールドをそれぞれ選択し、[カーディナリティ]のところで関連性のパターンを選択して設定します。

以上のような方法で、分析対象のテーブルに対して必要なリレーションシップ設定を行えば準備は完了です。

リレーションシップの構成に関しては少し古い資料になりますが本家のWikiサイトの以下の資料を参考にしてください。

https://www.vtiger.com/products/crm/docs/510/vtigerCRM_DataModel_5.2.1.pdf

ビジュアルの作成

グラフを作成してみたいと思います。

担当者別の商談金額の棒グラフを作成してみましょう。

左メニューのグラフアイコンをクリックし、[視覚化]のエリアから棒グラフをクリックします。

あとは、右端の[フィールド]のエリアから、各テーブルの分析に必要なフィールドをドラッグし、グラフにドロップするだけです。

まずは、[vtiger_potential]テーブルから[amount]フィールドをグラフにドラッグします。商談金額の総計がグラフ表示されます。

次に、[vtiger_users〕テーブルから[first_name]又は[last_name]フィールドをドロップします。これで商談の担当者情報が軸と設定されます。

商談の総金額が、商談の担当者別に分割され、営業担当別の商談額のグラフが作成できました。

このようにリレーションシップさえ正しく設定しておけば、関連するデータを使ったグラフが簡単に作成できます。

Power BIは機能が豊富で様々な表現が可能です。詳細の機能に関しては今後記事化予定です。

以上になります。