MFクラウド経費の明細をPower BI Desktopでビジュアライズ

# はじめに

本記事では、株式会社マネーフォワードが提供する[MFクラウド経費](https://biz.moneyforward.com/expense)の経費明細を[CData ODBC](http://www.cdata.com/jp/odbc/)を利用してPowerBI Desktopでビジュアライズする方法について説明します。

# 前提

- インターネットに接続可能なWindowsマシン
- [MFクラウド経費](https://biz.moneyforward.com/expense)のアカウント ※1ヶ月の無料試用版あり
- [CData ODBC Drivers for MoneyforwardExpense](https://s3-ap-northeast-1.amazonaws.com/cdatajbuilds/Article/MFCloud/MFCloudExpenseODBC.exe) ※現在、利用期限付きのβ版でのご提供
- [Microsoft Power BI Desktop](https://powerbi.microsoft.com/ja-jp/desktop/)


# MFクラウド経費のAPIを利用するための準備

[MFクラウド経費APIドキュメント](https://github.com/moneyforward/expense-api-doc) の「認証について」の以下手順を実施して、Client IDとClient Secretを取得します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/5b54931b-03be-6ab5-13a6-3a508a77668a.png)

# CData 製品のインストール、および、初期設定

[CData ODBC Drivers for MoneyforwardExpense](https://s3-ap-northeast-1.amazonaws.com/cdatajbuilds/Article/MFCloud/MFCloudExpenseODBC.exe) のビルドをダウンロードします。ダウンロードすると、インストールファイル（.exe）がダウンロードされます。インストーラーを起動してソフトウェア使用許諾契約書を確認してデフォルトのままインストールします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/efead1a5-9cb5-e7e5-38cc-a93423622904.png)

（注意） オンラインアクティベーションのためインターネットへの接続が必要となります

インストールが成功するとODBCのDSN設定画面が起動する設定となっていることを確認して「完了」します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/0c5abdc8-fdae-aaaa-3b4f-a60dcba0e761.png)

ODBCのDSN構成画面にて以下の項目をセットします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/29642e9d-5060-2ab6-fb10-63d70fd54a30.png)

| 項目 | 値 | 備考 |
|:-----------------|:------------------|:------------------|
| OAuth ClientId | *********************************** | MFクラウド請求書でアプリケーション登録時のClientId |
| OAuth Client Secret | *********************************** | MFクラウド請求書でアプリケーション登録時のClient Secret |
| Callback urls | https://localhost:33333 | MFクラウド請求書側のアプリケーション登録時のCallback urls |
| logfile | C:\Program Files\CData\CdataMoneyForwardExpenseODBC.log | (任意)CDataのログファイルを出力する場合、出力パスを指定 |
| verbosity | 1 | (任意)出力するCDataのログファイルレベル。通常は1,エラー調査時は3 |

「接続のテスト」ボタンをクリックします。ブラウザが起動して、MFクラウド請求書のログイン画面が表示されるので、MFクラウド請求書へのユーザIDおよびパスワードを入力してログインします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/c8dbb3bc-0b68-9abf-c331-a34b219d105c.png)

すると下記のような認証が出来た旨の画面と接続に成功して旨のダイアログが表示されれば、MFクラウド請求書へのAPIアクセスに必要なOAuthによる認証認可のプロセスが完了したことになります。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/6959f40e-2413-84d2-e171-f5ae3b836050.png)

ダイアログの「OK」ボタンで閉じて、「接続ウィザード」のODBCのDSN構成画面も「OK」ボタンをクリックして閉じます。

# Microsoft Power BI Desktopでのデータ可視化

Microsoft Power BI Desktopを起動します。起動すると下記のダイアログが表示されるので「データを取得」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/a972e0cb-4cf6-2100-f979-3d7f21fd37b3.png)

「データの取得」ダイアログが表示されるので、「その他 > ODBC」を選択して「接続」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/7f5dddf2-4a3a-8b7b-ab80-109050d68ede.png)

「ODBCからインポート」ダイアログが表示されるので、「データソース名（DSN）」に「CData MoneyForwardExpense Source」を選択します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/d0c49290-c94a-035d-2602-89ab1f6b7fff.png)

認証情報が求められる場合は、既にODBCのDSN設定にてクレデンシャル情報を登録済みのため登録は不要なのですが、「ユーザー名」が必須項目となっているため適当な文字列を登録して「接続」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/952d95c2-142f-b707-8d9a-3596717aca17.png)

「ナビゲータ」画面が表示されます。左側の階層を開いていくと、テーブルのリストが表示されます。今回は、経費明細である「Transactions」、各種マスターデータとして「Office」「Department」「Projects」テーブルを選択してみます。選択すると右側にデータのプレビューが表示されますので「読み込み」ボタンをクリックします。

(Memo)　経費費目「Item」を追加しておりませんが、現在、正しく取得出来ていないので修正予定です。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/31ef642c-4274-320d-f6b1-d857ee8ee504.png)

レポートのキャンパスの画面が表示されます。右側のフィールドにテーブル内の各項目がリストとして表示されることを確認します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/2f827593-f97b-03ba-a87b-de9663bf4d80.png)


リレーションシップの設定を開き、リレーションシップの設定を「Transaction」テーブル内の各種マスターデータのIDとマスターテーブル内のIDを以下の設定の通りリレーションシップを作成します。

| マスター(テーブル) | マスター(項目) | トランザクション(テーブル) | トランザクション(項目) | 備考 |
|:-----------------|:------------------|:------------------|:------------------|:------------------|
| Offices | Id | Transactions | OfficeId | | 
| Departments | Id | Transactions | DepartmentId |  | 
| Projects | Id | Transactions | ProjectId | | 

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/4b9fe6ed-ae82-cd42-45ce-53e479c2dd05.png)

「レポート」ページに戻り、「積み上げ縦棒グラフ」を選択します。フィールド内の「RecognizedAt」「ItemId」「value」をそれぞれ「軸」「凡例」「値」にドラッグ＆ドロップでセットします。経費科目別×時系列の経費金額のビジュアライズが出来ました。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/bc06d74c-e092-83ee-bc74-3ebf90fc2585.png)

右側にスペースを作成して、スライサーを追加します。「Projects」内の「Name」をフィールドにドラッグ＆ドロップでセットします。スライサーで絞り込むことでプロジェクト毎の経費のビジュアライズが出来ました。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/f3d18a20-e643-f0ae-52e8-8ae76fdc2de8.png)

レポートの右側のエリアに各セグメント（プロジェクト・部門）毎の経費金額の割合の円グラフを追加します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/6873fde9-94f5-79ce-ed34-420cf7e2c87a.png)

必要に応じて左上の保存ボタンをクリックして作成したレポートを「Power BI ファイル（*.pbix）」として保存してください。
Microsoft PowerBI Desktopからkintoneのデータを可視化することが出来ました。