こんにちは。CData Software Japan テクニカルサポートエンジニアの菅原です。
本記事では、各種 Web API を ODBC / JDBC / ADO.NET といった標準のDB接続規格でアクセスできるようにするCData API Driverを用いて、サスケWorks の API を各種ツールから接続する方法を紹介します。
ExcelやAccess・Tableau などのエンドユーザーが利用するUIベースのツールはもちろん、Visual StduioやEclipseといった開発ツールからも接続することが可能です。
サスケWorks とは
サスケWorksはプログラミングの知識がなくてもドラッグ&ドロップの直感的な操作で、使う現場や目的に合わせた業務効率化アプリを作ることができるサービスです。
サスケWorksではAPI 連携機能が提供されています。
※サスケWorks APIを利用するには、Premiumプランのご契約が必要となります。
https://works.saaske.com/api/document.html
API | API Profileの備考 |
---|---|
アプリ一覧の取得 | |
アプリ詳細の取得 | |
レコード一覧(固定リスト) | 各アプリの項目を静的な項目として事前に定義する必要があります |
一括登録設定の取得 | |
カスタムリスト一覧取得 | |
ファイルの取得 | |
ユーザー一覧の取得 | |
ユーザー詳細の取得 | |
レコード一括登録 | API Profileでは不可 |
一括登録作業データの削除 | API Profileでは不可 |
※レコード一覧(固定リスト)については、各アプリ毎にカスタマイズが必要となります。今回は「顧客管理×売上管理」をターゲットとしました。 別アプリやカスタマイズしたアプリに対応するには、各アプリ毎に「レコード一覧(固定リスト)」を事前に定義する必要があります。
本記事では、このAPIを用いて様々なツールとの連携を実現します。
実現イメージ
この記事では サスケWorks APIに対してBIやETL/EAIなど、様々なツールから接続します。しかしながら、各APIは単純にツールと接続・連携することはできません。
各ツールがどのようにWeb API側へリクエストを投げるべきかの判断材料や各種認証方法の処理、メタデータの情報等が無いためです。そのためには基本的にカスタムコネクタを作るか、プログラムを組まなければいけません。
そこで、CData API Driver を用いて、このボトルネックを解決します。
まず、各ツールからはODBCやJDBCインタフェースでSQL(Select文)をCData API Driverに向けて発行してもらいます。そのリクエストを受け取った CData API Driverは、サスケWorks の API のエンドポイントに対して、SQL文を解釈し、HTTPリクエスト発行します。
リクエスト後、JSONフォーマットで返ってきたデータをCData API Driverが各種インタフェースフォーマットにデータを変換してツールに返します。
これにより、各種ツールからアドホックにSQLによるリクエストがあったタイミングで最新のデータをサスケWorks API から取得することが可能となります。
各種接続シナリオと必要なツール
CData API Driver は様々なツールとの接続に利用できますが、今回は以下のツールを用いて接続する方法を解説していきます。
なお、CData API Driverは上記以外にも様々なツールと連携することが可能です。
テーブル一覧
CData API Drvier で サスケWorks APIに接続するためには専用の設定ファイル(Profile)が必要になります。 今回作成したサスケWorks API Profile では、以下のテーブルを提供しています。
※レコード一覧(固定リスト)については、各アプリ毎に必要となります。今回は「顧客管理×売上管理」をターゲットとしました。 別のアプリに対応するにはXXX_recordsのように各アプリ毎にテーブルを定義する必要があります。
Name | Resource |
---|---|
app | アプリ一覧の取得 |
apps | アプリ詳細の取得 |
CRM_records | レコード一覧(固定リスト):「顧客管理×売上管理」 |
user | ユーザー一覧の取得 |
users | ユーザー詳細の取得 |
APIキー・APIアクセストークンの取得
サスケWorks API に接続するためにAPIキー・APIアクセストークンが必要となります。サスケWorksであらかじめ取得しておいてください。 取得方法はサスケWorksのサイトにも詳しく記載されておりますので、ご確認ください。
https://works.saaske.com/api/document.html#section/Works-API/APIAPI
API データ処理用 設定ファイル(API Profile)を作成
続いて、サスケWorks の API を CData API Deiver が解釈できるように設定ファイル(API Profile)を作成します。
すでに私が作成したものがあるので、以下のURLからダウンロードしてください。
https://cdatajbuilds.s3.ap-northeast-1.amazonaws.com/APIProfiles/SaaskeWorks.apip
保存先フォルダは後ほど使用するので「C:\APIProfiles\SaaskeWorks.apip」といったツールからアクセスが可能な任意のフォルダに配置してください。
なお、サスケWorks のカラムなどは自由にカスタマイズすることができます。apipファイルは一度zipに拡張子を変更することで中を確認できます。
以下のような項目定義がXMLで行われているので、ご利用中の環境に合わせて、チューニングしてみてください。
API Profileの制約
今回サンプルとして作成しましたAPI Profileには下記のような制約があります。
①読み取り専用のため、登録・更新・削除を行うことができません。
②別アプリやカスタマイズしたアプリに対応するには、そのアプリ毎に設定されたオブジェクト名をAPI Profileに事前に定義する必要があります。
※例えばオブジェクト名が変更になった際にも、その都度API Profileの定義も変更する必要があります。
CData API Driver のインストール
各種ツールとサスケWorks API を繋ぐために必要となるCData API Driverをインストールします。
基本的なインストール・設定方法は各種Driver共通ですので、ここではODBC Driverを例に説明します。
まず、CData API ODBC Driverの30日間の評価版をダウンロードします。
ダウンロードしたsetup.exeファイルをBIツールがインストールされているマシンにインストールします。インストールウィザードに従い、EULAを確認した上でインストールを完了します。
※途中、ライセンスサーバーへのオンラインアクティベーションが行われるためネットワーク環境に接続されている必要があります。
インストールが完了すると、ODBCのDSN設定のウィンドウが立ち上がります。
以下の項目をセットし、「接続のテスト」をクリックします。
プロパティ名 | 値 | 備考 |
---|---|---|
Profile | C:\APIProfiles\SaaskeWorks.apip | サスケWorks.apipのパスを指定します。 |
ProfileSettings | APIKey=XXXXX;Token=YYYYY; | 接続先となるAPIKey・Tokenを指定します。 |
これで CData API Driver から サスケWorks API への接続が完了します。
それでは実際に各種ツールからの接続方法を解説していきましょう。
Excel から サスケWorks API に接続(Excel Add-in for API)
CData Excel Add-in for API をインストール後、Excelを立ち上げるとCDataタブが追加されていることがわかります。このタブから各種操作を実施します。
接続を開始するには、CDataタブから[取得元 API]をクリックします。
最初に接続するためのウィザードが表示されるので、「CData API Driverのインストール」の内容と同様に各種パラメータを入力します。
接続後、対象テーブルを選択し、クエリを編集の上、「OK」をクリックします。
クリック後、対象のデータが一括で取得できます。
Access リンクテーブル から サスケWorks API に接続(CData API ODBC Driver)
次はCData ODBC Driverを利用して、Access リンクテーブルから接続してみたいと思います。
あらかじめ新規にAccessを立ち上げて、空のデータベースを作成しておきましょう。
続いて「外部データ」タブから「新しいデータ ソース」→「他のソースから」→「ODBC データベース」を選択します。
ウィザードが表示されるので「リンクテーブルを作成」を選択し、「OK」をクリックします。
データソースの選択では「コンピューターデータソース」から事前に作成したCData API Driver用DSNを選択し「OK」をクリック
テーブルの一覧が表示されるので、任意のテーブルを選択し「OK」をクリックします。
設定後、リンクテーブルが追加され、以下のようにサスケWorksのデータを閲覧することができるようになります。もちろん、通常通りクエリデザイナーでも使用可能です。
Tableau から サスケWorks API に接続(CData API Driver for Tableau)
続いて CData API Driver for Tableauを用いて、Tableau からサスケWorksのデータを取得します。
Tableau Desktopを起動して、「CDataによるAPI」をクリックします。
Connection Stringに「Profile="C:\APIProfiles\SaaskeWorks.apip";ProfileSettings="APIKey=XXXXX;Token=YYYYY;";」を設定して、「サインイン」をクリックします。
あとは取得したいTableをドラッグアンドドロップして、データを取得します。
その後はTableauの各機能を使用してビジュアライズやPublish等を行ってください。
CData Sync から サスケWorks に接続
CData Sync ではデータソースとして、サスケWorksに接続することができます。
なお、CData Sync Windows版の場合は「SaaskeWorks.apip」のプロファイルをSyncの本体が存在するフォルダの「www\app_data\profiles」に配置してください。profilesフォルダが存在しない場合は手動で作成してください。
C:\ProgramData\CData\sync\profiles
Cross-Platform版の組み込みJettyで構成している場合は、以下のフォルダにapipファイルを配置します。
/opt/sync/profiles
配置後、CDataSyncを起動すると以下のようにデータソースとして サスケWorksが利用できるようになります。
接続プロパティは以下の通り設定します。
プロパティ名 | 値 | 備考 |
---|---|---|
ProfileSettings | APIKey=XXXXX;Token=YYYYY; |
入力後、「接続」ボタンをクリックし、接続テストが完了すればOKです。
併せて、任意の同期先の接続情報も構成しておきましょう。
接続完了後、新しくジョブを作成します。
先程作成した サスケWorks のコネクションを選択します。
ジョブを作成した後は、サスケWorks の同期対象となる任意のテーブルを選択しましょう。
データのプレビュー画面で、実際に取得が成功しているかどうかを確認できました。
あとは、任意のスケジュールを指定してデータのレプリケーションを実行できます。
試しに手動で実行してみると、それぞれのレプリケーション件数が結果として表示されます。
RDBの中でもレプリケーションされたデータが確認できました。
終わりに
これら以外にもCData API Driverは各種ETLツールや帳票ツールなどからも接続することが可能です。
以下のCData オンラインナレッジベースには、各種ツールからの接続方法を紹介した記事が多数掲載されているので、是非見てみてください。
不明な点があれば、テクニカルサポートまでお気軽にご連絡ください。