Questetra BPM SuiteのデータをBIツールでビジュアライズ

# はじめに
本記事は、クエステトラ社のBPM製品である[Questetra BPM Suite](https://www.questetra.com/ja/)内の案件リストをWebAPI経由で各BIツールでビジュアライズする手順についてご紹介します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/12578403-f77e-a556-f402-7bfb60e4fd52.png)

# 前提条件

本記事では以下のサービスや製品を使用しています。

- [Questetra BPM Suite](https://www.questetra.com/ja/) ※無料版あり
- [CData REST ODBC Driver](http://www.cdata.com/jp/drivers/rest/odbc/) ※30日間の評価版あり
- [Tableau Desktop](https://www.tableau.com/ja-jp/products/desktop) ※無料トライアル版あり
- [QlikSense](https://www.qlik.com/ja-jp/products/qlik-sense) ※無料ダウンロード版あり
- [Power BI Desktop](https://powerbi.microsoft.com/ja-jp/desktop/) ※無料版あり

# 手順

## Questetra BPM SuiteのWebAPIの利用準備

Questetra BPM SuiteのWebAPIを利用する場合の認証認可には、Basic認証とOAuth2が利用できます。今回はBasic認証を利用します。
「アカウント設定」＞「パスワード」＞「APIパスワード」を開き、表示されるBasic認証用のパスワードは後の手順で必要となるので手元に控えます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/a7d7cf09-7957-2886-ac12-3bf0ca84e3f3.png)
次に、Questetra BPM Suiteの「APIマニュアル」を確認します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/a505d7a2-d30e-e291-3ab3-ce134b2ae4eb.png)
WorkFlowのAPIマニュアルを開きます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/b5715f31-b058-ad7c-0fd9-1ba9d6fffeb5.png)

Swagger記述形式のAPIリファレンスが表示されます。今回は、APIのエンドポイント一覧からワークフロー案件のリスクを取得する「/API/OR/Workitem/listAllocated」を選択、開き、「Excecute」ボタンをクリックしてAPIを叩きます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/89cbb415-b0cf-ee10-3681-93f9796b6160.png)
「Response」エリアにCode（ステータスコード）200のDetailsに実際のレスポンスデータの例が表示されていることが確認できれば成功です。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/70d58288-d274-8c5d-715f-8d6fca750bee.png)

## CData REST ODBC DriverのインストールおよびQuestetra BPM Suiteへの接続設定

[CData REST ODBC Driver](http://www.cdata.com/jp/drivers/rest/odbc/)の30日間の評価版をダウンロードします。ダウンロードの際には、Emailの登録が必要となります。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/fb4765dc-76f3-fd11-ca3c-8153e3073f3c.png)

ダウンロードしたsetup.exeファイルをBIツールがインストールされているマシンにインストールします。インストールウィザードに従い、EULAを確認したうえでインストールを完了します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/b7afd1e2-6174-b90b-c736-3a373131af2e.png)
※途中、ライセンスサーバーへのオンラインアクティベーションが行われるためネットワーク環境に接続されている必要があります。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/bf873630-7522-6f13-7be3-d895b4e34428.png)
インストールが完了すると、ODBCのDSN設定のウィンドウが立ち上がります。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/2167655d-99a3-0dfc-17ff-97046590fb11.png)

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

- HTTP
 - Auth Scheme : BASIC
 - Password : （Questetra BPM SuiteのWebAPIの利用準備で生成したBaisc認証のパスワード）
 - User : Questetra BPM SuiteへのログインユーザID

- Connection
 - Format : JSON
 - Generate Schema Files : OnStart

- Schema : 書き込み権限がある任意のパス（例：C:\Program Files\CData\CData ODBC Driver for REST\db）

「接続のテスト」ボタンをクリックして接続が成功することを確認します。次に、「テーブル」タブに移動して「テーブルまたはビュー：」のドロップダウンから「＜新しいテーブルの定義＞」を選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/8bd56ad0-4c15-4c6d-9a5c-5835cbc53e23.png)

「新しいテーブル定義」のウィンドウにて、以下の項目をセットします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/e8cd4f9d-ae98-6280-c7bf-a24dbd6a02d9.png)

- Table Name : listAllocated　※APIエンドポイント名
- Format : JSON
- URI : https://kawaramachi-imadegawa-444.questetra.net/API/PE/Workitem/listAllocated ※APIエンドポイント
- X Path : /workitems　※JSON内の繰り返しルート
- File Location : C:\Program Files\CData\CData ODBC Driver for REST\db ※ODBCのDSNのSchemaと同じパス
- File Name : listAllocated.rsd ※TalbeName＋拡張子「.rsd」ファイル

「作成ボタン」をクリックしてテーブル定義の作成が成功した旨のメッセージ「The new table was defined successfully」が表示されたら成功です。作成された「listAllocated」テーブルの定義情報が表示されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/bac3a29e-832a-7a9e-555a-7cf078afc770.png)
また、File Locationのパスに「listAllocated.rsd」が作成されたことを確認します。

## Tableauからの接続確認

Tableau Desktopを起動して、データ接続より「サーバーへ」＞「詳細」＞「その他データベース（ODBC）」を選択します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/536d35fd-c5d5-413e-16de-4b6b46271f78.png)

「その他のデータベース（ODBC）」設定ウィンドウが開いたら、接続手段内のDSNから「CData REST Source」を選択して「サインイン」します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/7d091749-a0a1-cffa-ef8b-6f8153a41a8b.png)

「データソース」画面が開くので、左側のペインで、表「listAllocated(REST.listAllocated)」を選択して、右上のエリアにドラッグ＆ドロップします。抽出を行い、右下のデータプレビューにQuestetra BPM Suiteの自身の案件一覧が表示されることを確認します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/8f546736-bcbe-fd4a-435c-e17d2c1c826c.png)

「シート」ページに移動して、グラフや表を追加します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/e78c7dc6-257f-a283-7aa5-ce0289b282c5.png)

今回は、以下３つのシートを作成してダッシュボードとして並べて表示してみました。

- 円グラフ１　：　ディメンション：nodeName、メジャー：レコード数
- 円グラフ２　：　ディメンション：ProcessModelInfoNmae、メジャー：レコード数
- クロス集計表　：　nodeName、ProcessModelInfoNmae、レコード数

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/729400e7-2458-9bd9-b18b-595b2000d33d.png)

## QlikSenceからの接続確認

QlikSence Desktopを起動して、「アプリの新規作成」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/f7268226-daa4-8909-11d6-478abca7ba94.png)

「データの追加」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/3d8b6be3-a092-2e22-9833-f821ec7b2fb2.png)

「ODBC」を選択します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/910763ec-a3a5-9eb2-ff55-230f24ee325b.png)

「CData REST Sources」を選択します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/d96cdee2-3208-6710-af29-03cef8af0325.png)

テーブル「listAllocated」を選択してデータプレビューにQuestetra BPM Suiteの自身の案件一覧が表示されることを確認します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/d457a302-45c1-3a35-b65c-0c9b9349d810.png)

「シート」を追加して、チャートを追加します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/c04ced27-5574-ad25-d338-d357fca31a3d.png)

今回は、以下３つのオブジェクトを作成してダッシュボードとして並べて表示してみました。

- 円グラフ１　：　ディメンション：nodeName、メジャー：id（Count）
- 円グラフ２　：　ディメンション：ProcessModelInfoNmae、メジャー：id（Count）
- リスト　　　：　allocatedDatetime, allecatedQgroupName, nodeName、ProcessModelInfoNmae, State, ProcessModelInfoCategory

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/6926785e-b790-53e2-3da5-3a93cffe666d.png)

## PowerBIからの接続確認

PowerBI Desktopを起動して、「Get Data」から「Other」＞「ODBC」を選択します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/08a3446e-bd58-9815-d8c4-dce9272c3a25.png)

「Data source name(DSN)」で「CData REST Source」を選択します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/8ce9a31d-42e9-a2ec-789a-6fe4a837fce1.png)

「Navigator」にてテーブル「listAllocated」を選択してデータプレビューにQuestetra BPM Suiteの自身の案件一覧が表示されることを確認します。。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/5f46959a-9664-c8df-232f-8927bafd208b.png)

「Page」を追加して、チャートを追加します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/6fbbf23d-15b2-22a8-d667-411ba70d6468.png)

今回は、以下３つのオブジェクトを作成してダッシュボードとして並べて表示してみました。

- 円グラフ１　：　ディメンション：nodeName、メジャー：id（Count）
- 円グラフ２　：　ディメンション：ProcessModelInfoNmae、メジャー：id（Count）
- リスト　　　：　Year, Quarter, Month, Day, allocatedOgroupId,　allocatedQgroupName, allocatedQuserid, allocatedQName, data, swimianeType, state, startDatetime, started, read

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/2acec0cc-219f-ed3f-4a9f-18c9c8429085.png)

# まとめ

Questetra BPM Suite内の自身の案件状況の一覧をWebAPI経由でCData REST ODBC Driverを使用してネイティブに各BIツールからビジュアライズする手順について説明しました。本記事で必要な各サービスおよび製品は無償版や評価版が用意されているので是非お試しください。