CData Software Blog

クラウド連携のCData Software の技術ブログです。

kinconeの勤怠・交通費精算情報をPower BI で可視化

はじめに

こんにちは、CData Japan 技術ディレクターの桑島です。本記事では、クラウド型勤怠管理・交通費精算ソリューションkinconeの勤怠情報や交通費精算情報をCData API Driver for ODBC を利用してPowerBI Desktopで可視化する方法をご紹介します。

f:id:kuwazzy:20200520131050p:plain

kincone とは

株式会社ソウルウェアが提供するクラウド型勤怠管理・交通費精算ソリューションです。kinconeは、SuicaなどのICカードを端末にタッチするだけで勤怠と交通費を同時に読み取る、スマホがあればすぐ始められる、他社サービスと繋がる、低コストで導入ができるといった特長を持っています。

f:id:kuwazzy:20200520111125p:plain

www.kincone.com

kinconeでは、Swagger(OpenAPI)SpecでのAPIドキュメントを公開しており、APIを利用することで様々なシステムと連携や組み込むことができるようになっています。

kincone.com

CData API Driver for ODBCとは?

CData API Driverは、あらゆるアプリケーション、データベース、SaaS にBI、ETL、アナリティクスツールからシームレスに連携を実現するユニバーサルなドライバーです。CData Drivers にビルトインのSQL エンジンによりあらゆるAPI に標準SQL でのクエリを可能にします。

f:id:kuwazzy:20200520112208p:plain

https://www.cdata.com/jp/apidriver/

API Profile をCData API Driver に読み込ませるだけでkinconeなどの事前に定義されたデータソースAPI へ連携が可能になります。

前提

kincone APIトークンの取得

kinconeの設定画面「外部連携 > APIトークン」からAPIトークンを取得します。このAPIトークンの値は後の手順で必要となりますので手元に控えておいてください。

f:id:kuwazzy:20200520121236p:plain

CData API Profile for kinconeのダウンロード

以下のWebページからkinconeのProfileをダウンロードします。

f:id:kuwazzy:20200520120633p:plain

www.cdata.com

ダウンロードしたKincone.apipファイルは後の手順で必要となるので保管してください。

CData API Driver for ODBCのインストール

以下のサイトからダウンロードします。

ダウンロードされたインストーラ形式(.exe)のファイルを起動します。

下記のようなインストーラが起動するので、ライセンス契約書を確認した上で、デフォルト設定のままインストールを進めて完了させます。

f:id:kuwazzy:20200520115613p:plain

インストール途中にVC++ Redistributableのインストールが求められる場合はインストールしてください(x86、および、x64の2回求められます)。

f:id:kuwazzy:20200317135211p:plain

インストールが完了するとデフォルトブラウザが起動して製品ヘルプファイルが起動します。

f:id:kuwazzy:20200520115508p:plain

ODBCのDSN設定

インストーラが完了するとデフォルトでは「ODBCデータソース を構成する」にチェックがついているので「完了」ボタンをクリックすると下記のDSN構成画面が表示されます。一度閉じてしまったり、起動しない場合は、ODBC Administrator 64bitを起動してください。

f:id:kuwazzy:20200520121715p:plain

「CData APIs Source」に、kinconeへの接続情報を設定します。

項目 備考
Profile APIProfileのパス 例:C:\wrk\Profiles\Kincone.apip
Profile Settings APIToken={APIトークン値} 例:APIToken=qBhXXXXXXXXXXXXXXXXXL0nYkI

「Test Connection」ボタンをクリックします。下記のようなダイアログが表示されれば成功です。「「OK」ボタンをクリックして保存します。

f:id:kuwazzy:20200520122052p:plain

再度ODBCのDSN設定を確認する場合は、ODBC Administrator 64bitを起動してユーザーDSNの「CData APIs Source」を開くと確認することができます。

f:id:kuwazzy:20200520122353p:plain

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

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

f:id:kuwazzy:20200520122638p:plain

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

f:id:kuwazzy:20200520122723p:plain

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

f:id:kuwazzy:20200520122825p:plain

認証情報が求められる場合は、必須項目となっているユーザー名に適当な値(本例では、user)をセットして「接続」ボタンをクリックします。

f:id:kuwazzy:20200520122917p:plain

「ナビゲータ」画面が表示されます。左側の階層を開いていくと、テーブルのリストが表示されます。今回は、勤怠申請一覧の詳細である「AttendanceWorkflowsDetails」と交通費申請一覧取得の詳細である「ExpenseWorkflowsDetails」テーブルを選択してみます。選択すると右側にデータのプレビューが表示されますので「読み込み」ボタンをクリックします。

f:id:kuwazzy:20200520131547p:plain

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

f:id:kuwazzy:20200520123623p:plain

「レポート」ページに戻り、「テーブル」を2つと「円グラフ」を配置して、勤怠申請一覧の詳細である「AttendanceWorkflowsDetails」と交通費申請一覧取得の詳細である「ExpenseWorkflowsDetails」テーブルの各種情報をフィールドに配置します。勤怠申請の一覧と交通費申請の一覧の可視化が出来ました。

f:id:kuwazzy:20200520131333p:plain

テストデータは、1ユーザのデータのみの表示となりますが、部門に所属する各ユーザの勤怠情報や交通費を管理者がモニタリングするような画面が作成できると思います。

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

補足

勤怠、交通費のデータを取得する際には、emailとtermをSQLのwhere句で指定する事で、該当ユーザや取得する年月を指定する事が可能です。サンプルのSQLは以下の通りです。

テーブル名(論理) テーブル名(物理) SQLサンプル 備考
従業員一覧 Users  select * from Users  
部署・店舗一覧 Departments select * from Departments  
勤怠一覧 Attendances select * from Attendances where email = '@.co.jp' and term = '201805' emailは必須、 termは任意(指定しない場合は当月)
勤怠申請一覧 AttendanceWorkflows select * from AttendanceWorkflows where email = '@.co.jp' and term = '201805' email、 term共に任意(指定しない場合は当月) 
勤怠申請一覧(詳細) AttendanceWorkflowsDetails select * from AttendanceWorkflowsDetails where email = '@.co.jp' and term = '201805'  email、 term共に任意(指定しない場合は当月) 
交通費申請一覧 ExpenseWorkflows select * from ExpenseWorkflows where email = '@.co.jp' and term = '201805' email、 term共に任意(指定しない場合は当月)  
交通費申請一覧(詳細) ExpenseWorkflowsDetails select * from ExpenseWorkflowsDetails where email = '@.co.jp' and term = '201805' email、 term共に任意(指定しない場合は当月)