CData Software Blog

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

勤怠管理システム IEYASU APIをドライバー化:各種ツールから連携

こんにちは。CData Software Japanリードエンジニアの杉本です。

本記事では、各種 Web APIODBC / JDBC / ADO.NET といった標準のDB接続規格でアクセスできるようにするCData API Driverを用いて、IEYASUの API を各種ツールから接続する方法を紹介します。

f:id:sugimomoto:20201116193227p:plain

ExcelAccess・Power BIなどのエンドユーザーが利用するUIベースのツールはもちろん、Visual StduioやEclipseといった開発ツールからも接続することが可能です。

対象 API

IEYASUは無料から初められるクラウドベースの勤怠管理システムです。

https://www.ieyasu.co/

f:id:sugimomoto:20201116193234p:plain

IEYASU APIでは、ユーザー情報や日次・月次の勤怠データ、勤怠レポートなどを取得するAPIが提供されています。

https://ieyasu.co/docs/api.html

f:id:sugimomoto:20201116193240p:plain

実現イメージ

この記事では IEYASU APIに対してBIツールやIDEでから接続します。しかしながら、各APIは単純にツールと接続・連携することはできません。

各ツールがどのようにWeb API側へリクエストを投げるべきかの判断材料や各種認証方法の処理、メタデータの情報等が無いためです。そのためには基本的にカスタムコネクタを作るか、プログラムを組まなければいけません。

f:id:sugimomoto:20201116193246p:plain

そこで、CData API Driver を用いて、このボトルネックを解決します。

まず、各ツールからはODBCJDBCインタフェースでSQL(Select文)をCData API Driverに向けて発行してもらいます。そのリクエストを受け取った CData API Driverは、IEYASU の API のエンドポイントに対して、SQL文を解釈し、HTTPリクエスト発行します。

リクエスト後、JSONフォーマットで返ってきたデータをCData API Driverが各種インタフェースフォーマットにデータを変換してツールに返します。

f:id:sugimomoto:20201116193253p:plain

これにより、各種ツールからアドホックSQLによるリクエストがあったタイミングで最新のデータをIEYASU API から取得することが可能となります。

各種接続シナリオと必要なツール

CData API Driver は様々なツールとの接続に利用できますが、今回は以下のツールを用いて接続する方法を解説していきます。

  • ExcelExcel-addin で利用)
  • AccessODBC 接続で利用)
  • PowerBI (Power BI Connector 接続で利用)

上記以外のツールからの接続に関しては、以下のページで各種接続方法記事を公開しています。

www.cdata.com

f:id:sugimomoto:20201124135144p:plain

テーブル一覧

IEYASU API Profileでは、以下のテーブルを提供しています。用途に合わせて、接続してみてください。

テーブル名 対応API 備考
StampLogsByDaily 日付指定の打刻履歴の一覧 デフォルトでは現在の日付のデータを取得します。
StampLogsByUsers ユーザー指定の打刻履歴の一覧 対象ユーザーを指定する必要があります。
Users ユーザー一覧
WorkOutputsDaily 指定された日の日次勤怠データの一覧 デフォルトでは現在の日付のデータを取得します。
WorkOutputsMonthly 指定された月の日次勤怠データの一覧 デフォルトでは現在の月のデータを取得します。
WorkOutputsMonthlyReport 月次レポートの一覧 デフォルトでは現在の月のデータを取得します。

IEYASU API 利用準備

最初にIEYASUのAPIを利用するために、IEYASU側でAPIの有効化設定を行います。

IEYASUにログインし、「システム管理」画面から「システム設定」に移動して、「編集」ボタンをクリックします。

f:id:sugimomoto:20201116193303p:plain

一覧の中のAPI KEYの設定にある「API KEYの生成」をクリックします。

f:id:sugimomoto:20201116193311p:plain

生成されると以下のようにSecret Keyが表示されるので、これを控えておいて、登録を行います。以上で設定は完了です。

f:id:sugimomoto:20201116193317p:plain

API データ処理用 設定ファイルを作成

続いて、IEYASU の API を CData API Deiver が解釈できるように設定ファイル(API Profile)を作成します。

すでに私が作成したものがあるので、以下のURLからダウンロードしてください。

https://cdatajbuilds.s3-ap-northeast-1.amazonaws.com/APIProfiles/IEYASU.apip

保存先フォルダは後ほど使用するので「C:\API Profiles\IEYASU」といった書き込み可能な任意のフォルダに配置してください。

f:id:sugimomoto:20201116193326p:plain

CData API Driver のインストール

各種ツールと IEYASU API を繋ぐために必要となる CData API Driverをインストールします。

基本的なインストール・設定方法は各種Driver共通ですので、ここではODBC Driverを例に説明します。

まず、CData API ODBC Driverの30日間の評価版をダウンロードします。ダウンロードの際には、Emailの登録が必要となります。

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

f:id:sugimomoto:20201027111336p:plain

ダウンロードしたsetup.exeファイルをBIツールがインストールされているマシンにインストールします。インストールウィザードに従い、EULAを確認した上でインストールを完了します。

f:id:sugimomoto:20201027111341p:plain

※途中、ライセンスサーバーへのオンラインアクティベーションが行われるためネットワーク環境に接続されている必要があります。

インストールが完了すると、ODBCのDSN設定のウィンドウが立ち上がります。

以下の項目をセットし、保存します。

プロパティ名 備考
Profile C:\API Profiles\IEYASU.apip 予めダウンロードしたIEYASU.apipのパスを指定します。
ProfileSettings APIKey=XXXXX;CompanyName=cdatatest; APIKeyには予め取得したKeyを指定します。 CompanyNameには接続先のIEYASU ログインURLに含まれる会社のIDを指定します。

f:id:sugimomoto:20201116193334p:plain

以上で、CData API Driverの準備は完了です。

Excel から IEYASU API に接続(Excel Add-in for API

CData Excel Add-in for API をインストール後、Excelを立ち上げるとCDataタブが追加されていることがわかります。このタブから各種操作を実施します。

接続を開始するには、CDataタブから[取得元 API]をクリックします。

f:id:sugimomoto:20201116171024p:plain

最初に接続するためのウィザードが表示されるので、「CData API Driverのインストール」の内容と同様に各種パラメータを入力します。

f:id:sugimomoto:20201116193346p:plain

接続後、対象テーブルを選択し、「OK」をクリックします。また、ここの画面で細かなフィルターやJOINの指定を行うことも可能です。

f:id:sugimomoto:20201116193359p:plain

f:id:sugimomoto:20201116193403p:plain

クリック後、対象のデータが一括で取得できます。

f:id:sugimomoto:20201116193412p:plain

Access リンクテーブル から IEYASU API に接続(CData REST ODBC Driver)

次はCData ODBC Driverを利用して、Access リンクテーブルから接続してみたいと思います。

あらかじめ新規にAccessを立ち上げて、空のデータベースを作成しておきましょう。

続いて「外部データ」タブから「新しいデータ ソース」→「他のソースから」→「ODBC データベース」を選択します。

image.png

ウィザードが表示されるので「リンクテーブルを作成」を選択し、「OK」をクリックします。

image.png

データソースの選択では「コンピューターデータソース」から事前に作成したCData API Driver用DSNを選択し「OK」をクリック

f:id:sugimomoto:20201116193440p:plain

テーブルの一覧が表示されるので、任意のテーブルを選択し「OK」をクリックします。

f:id:sugimomoto:20201116193445p:plain

設定後、リンクテーブルが追加され、以下のようにIEYASUのデータを閲覧することができるようになります。もちろん、通常通りクエリデザイナーでも使用可能です。

f:id:sugimomoto:20201116193451p:plain

なお、Accessでうまくデータが取得できない場合は「Other」の項目に「SupportAccessLinkedMode = False;」を設定してみてください。

f:id:sugimomoto:20201124134536p:plain

PowerBI から IEYASU API に接続(CData API Driver for Power BI)

最後にCData ODBC Driverを用いて、Power BIからIEYASUの勤怠データを取得します。

PowerBI Desktopを起動して、「データを取得」をクリックします。

f:id:sugimomoto:20201027111449p:plain

データ接続先一覧の中から「CData API」を選択し、「接続」をクリックします。

f:id:sugimomoto:20201027111519p:plain

データソース名は先程登録したIEYASUのDSNを入力し「OK」をクリックします。

f:id:sugimomoto:20201027111508p:plain

テーブルの一覧から対象となるテーブルを選択し「読み込み」をクリックします。

f:id:sugimomoto:20201116193614p:plain

以下のようにIEYASUのデータを読み込みことができます。

f:id:sugimomoto:20201116193752p:plain

あとはPoewr BIの機能を用いて、ビジュアライズに利用することができます。

f:id:sugimomoto:20201116193946p:plain

Tips:対象月や日付の絞り込み方法

「WorkOutputsMonthly」や「WorkOutputsMonthlyReport」はデフォルトで現在の日付の月を元にデータ取得を行います。

もし任意の月を指定したい場合は、「TargetMonth」の項目に対して「=(次の値に等しい)」で任意の月を指定してください。例えば「[TargetMonth] = '2020-11'」

f:id:sugimomoto:20201124101950p:plain

「WorkOutputsDaily」や「StampLogsByDaily」の場合も同様です。「[TargetDay] = '2020-11-20'」といった形式で取得対象の日付を指定できます。

f:id:sugimomoto:20201124102207p:plain

「StampLogsByUsers」の場合は、UserIdを指定します。UserIdは「Users」テーブルで確認することができます。

f:id:sugimomoto:20201124102332p:plain

終わりに

いかがでしたでしょうか。

これ以外にもCData API Driverは各種ETLツールや帳票ツールなどからも接続することが可能です。

以下のCData オンラインナレッジベースには、各種ツールからの接続方法を紹介した記事が多数掲載されているので、是非見てみてください。

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