請求管理ロボ APIをドライバー化：各種ツールから接続してみた


本記事は、各種 Web API を ODBC / JDBC / ADO.NET といった標準のDB接続規格でアクセスできるようにするCData REST Driverを用いて、請求管理ロボの API を各種ツールから接続する方法をまとめたものです。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/1b2a6111-a386-ddc5-cc1d-7ffd3aff5968.png)

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

# 対象 API

請求管理ロボは、毎月請求が発生する取引先に対して請求・集金・未収催促が全自動でできる「請求管理システム」です。

詳しくは以下のURLからどうぞ。

https://www.robotpayment.co.jp/service/mikata/

請求管理ロ APIでは、現在以下のようなエンドポイントが提供されています。請求書の更新や削除はもちろん、商品や請求先といったマスターの登録更新も実施できます。

- クレジットカード登録
- 口座振替依頼書発行
- 請求先
- 請求情報
- 即時決済
- 売上消込
- 請求書
- 商品　等

今回は請求書の参照機能をドライバー化してみました。

なお、ドキュメントは以下のリンクからダウンロードすることが可能です。

[APIの仕様書のダウンロードリンク](https://apispec.billing-robo.jp/)

# 実現イメージ

今回はAPIの連携対象BIツールやIDEでから接続しますが、各APIは単純にツールと接続することはできません。
各ツールがどのようにWeb API側へリクエストを投げるべきかの判断材料やメタデータの情報が無いためです。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/9ac17161-76cf-332d-7c8b-37d81b22ebd7.png)

そこで、CData REST ベースの各種 Driverを用いて、このボトルネックを解決します。

まず、各ツールからはODBCインタフェースでSQL（Select文）をCData REST ODBC Driverに向けて発行してもらいます。そのリクエストを受け取った、CData ODBC REST Driverは、請求管理ロボ の WebAPI のエンドポイントに対して、SQL文を解釈し、HTTPリクエスト形式に変換して、POSTメソッドを発行します。

リクエスト後、Jsonフォーマットで返ってきたデータセットはCData REST ODBC DriverがODBCインタフェースのResultsetに変換してツールに返します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/40153e79-4921-48cf-e9d1-849ffe41ab64.png)

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

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

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

- 各種CData REST Driver
- Excel（Excel-addinで利用）
- Access（ODBC接続で利用）
- PowerBI (ODBC 接続で利用)

## 請求管理ロボ API 利用準備

最初に請求管理ロボのAPIを利用するために、請求管理ロボ側でAPIの設定を行います。手順はは請求管理ロボのヘルプをご覧ください。アクセスキーは後の手順で使用するので手元に控えておいてください。

[請求管理ロボ ヘルプ > API > API](https://keirinomikata.zendesk.com/hc/ja/articles/115000131162-API%E6%8E%A5%E7%B6%9A%E8%A8%AD%E5%AE%9A)

## REST データ処理用 RSDファイルの作成

続いて、請求管理ロボ の API を CData 各種 REST DeiverがSQLとして解釈できるように設定ファイルを作成します。

サンプルとして請求管理ロボの請求書（bill）テーブルを取得するための設定ファイルを作成していますので、以下のGitHubから保存して、利用してみてください。

[CDataBillingRobo](https://github.com/kuwazzy/CDataBillingRobo)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/e25320fe-d79a-7137-6533-6a399fe9f2b1.png)

## CData 各種 REST Driverのインストール

各種ツールとて請求管理ロボ API を繋ぐために必要となるCData REST Driverをインストールします。

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

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/dbb5b845-9543-4d62-d088-9b748998bd7f.png)

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

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/7a9f141f-b798-acfa-83a2-0367dc9f3312.png)

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

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

Otherにはそれぞれ事前に取得したuser_id（メールアドレス）、access_key（アクセスキー）を設定してください。

- Schema
    - Location : 先程RSDファイルを配置したフォルダパス（例：C:\CData_REST\BillingRobo）   

- その他
    - Other　：user_id=メールアドレス;access_key=アクセスキー

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/b741a5c9-4088-9e74-3428-c75365875a40.png)


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

## Excel から 請求管理ロボ API に接続（Excel Add-in for REST）

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

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/2f315e79-d560-dd67-026a-f0fafcf9f8f8.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/275a87f1-6f02-45a6-6e09-5ec2e1139000.png)

接続後、対象テーブルを選択し、「OK」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/833cfaa0-421c-35ba-3d0d-8f154f981515.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/7e5db4e8-7b32-6e89-8586-062322733ead.png)


## Access リンクテーブル から 請求管理ロボ API に接続（CData REST ODBC Driver）

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

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

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/3086b073-b1fb-1061-2c2e-4cb68417cd41.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/866579b4-b480-5563-a784-43f3aed5d4c3.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/287bf526-8a8d-96b7-5a25-3ee1cc133f04.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/5a6748e1-1ee8-432b-7756-3d780e1f4a39.png)

固有レコードの識別選択では通常キーとなる情報を設定しますが、今回はUpdate等は行わないため、何も指定せずに「OK」をクリックしてください。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/55a85f39-15ed-5422-f1fb-bcc94b771a5f.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/d770a37c-f226-fafb-9fbe-6d6c1cb0c8d5.png)

##  PowerBI から 請求管理ロボ API に接続（CData REST ODBC Driver）

最後にCData ODBC Driverを用いて、Power BIから請求管理ロボの請求書データを取得します。

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/e9d4a969-8628-0702-8830-d60cccdedfc2.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/9d4328b2-a354-a81d-615a-a345fff83de5.png)

データソース名は先程登録した請求管理ロボのDSNを選択し「OK」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/da8bfa3b-39d8-48bd-567b-331f19b7c202.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/f2493a03-a36a-c577-3c5d-b1047439446c.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/cf50e739-81dd-0b41-14d6-cce8f84ff8dd.png)

以下のように請求管理ロボの請求書データを読み込みことができます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/ca44332f-8fb2-5b88-5e5b-0859e269bcc7.png)

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

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/2b950247-b9cd-ea6f-1532-f751ab4db8b9.png)

# 補足

請求管理ロボの請求書参照APIの請求書の最大取得件数は200件です。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/3b2c2e67-a9d9-512e-ced2-81ebb25edecd.png)

上記「REST データ処理用 RSDファイルの作成」でGithubからダウンロード可能な定義ファイルでは、200件取得出来る様に定義しております。２００件を超える場合には、下記のSQLの様に、where句にて、発行日の検索開始日(issue_start_date)と発行日の検索終了日（issue_stop_date）で絞り込んでください。

```sql
select * from bill where issue_start_date = '2018/08/01' and issue_stop_date = '2018/08/31'
```

# 終わりに

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

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

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

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