はじめ

Pleasanterでデータを管理・表示する際、もっと別の形でデータを表示させたいと思ったことはないでしょうか?
Power BIを使用すればPleasanterのデータを更に別の形で表示させることができます。今回はPower BIでPleasanterのデータを扱う方法について説明していきたいと思います。

前提条件

・Pleasanterのデータが記録されているDBにビューを作成する

・作成したビューを参照する形でPower BIにPleasanterのデータを表示させる

用意したもの

・Pleasanter(今回はローカルにインストールしたPleasnterを使用しています)

・SQL Server Management Studio

・Power BI Desktop

Power BI × Pleasanterを実践するにあたって上記3つを用意しました。また、使用するデータはPleasanterのデモサイトにある商談管理に関するデータをローカルにダウンロードしています。
(デモサイトへの申し込みは https://pleasanter.org/demo/ から申し込めます)

Pleasanter(ローカル)のデータの保存場所

Pleasanter(ローカル)で登録したデータはPleasanterインストール時に指定したサーバーに保存されています。私はローカルにインストールしたSQL Serverを指定したので、ローカルのSQL Serverを確認したいと思います。

ログイン画面

DB

Pleasanterに登録したデータは上記の Implem.Pleasanter DBに保存されています。
Power BIでデータを取得する際はこちらを参照しながら進めることになります。

DBにビューを作成

Pleasanterに作成したテーブル情報

Pleasanterに登録したテーブル情報は Sites テーブルに記録されています。まずは Sites テーブルを参照してテーブル情報を確認しましょう。

今回必要な情報は Title カラムと ReferenceType カラムになります。
Title カラムにはPleasanterに作成したテーブルの名称、ReferenceType にはテーブル内に作成したレコード情報が記録されているテーブル(SQL Server)名が入っています。
こちらは記録テーブルであれば Results、期限付きテーブルであれば Issus が値として入ってきます。
SiteId はレコード情報が登録されているテーブルと紐づけるためのキーです。今回は以下の3つのテーブルを作成しているので、確認に必要なレコードは5~7行目です。

Pleasanterに作成したテーブルに登録されているレコード情報

先ほど確認したSites テーブルのレコード情報を使用し、Pleasanterに作成したテーブルに登録されているレコード情報を確認してみましょう。

顧客マスタのレコード情報を確認するクエリと実行結果

Pleasanterに表示されている顧客マスタのレコード一覧

上記の2つを比較すると、DBの ResultId ・Title カラムとPleasanterの ID タイトル/内容カラムの値が一致していることが分かると思います。
このことから、顧客マスタのレコード情報は Results テーブルに記録されていると言えるでしょう。

他2つのテーブルも同様です。

商談テーブル

仕入テーブル

ビューの作成

上記で確認したレコード情報を元にDBにビューを作成します。(クエリは必要なカラムのみを取得するようにしています)

ビュー作成前

ビュー作成

ビュー作成後

Power BIでPleasnterのデータを取得

1.Power BI Desktopを起動し、空のレポートを作成

2.データを取得を押下後、空のクエリを選択

3.詳細エディターを選択

4.詳細エディターにDBへの接続に必要な情報とクエリを記述後、完了ボタンを押下

5.必要であればクエリの名称を変更

6.空のクエリを2つ追加

7.手順3~5と同様の手順で、手順6で追加した空のクエリに business_negotiation purchase を参照するクエリを記述

8.閉じて適用を選択

9.Pleasanterのデータを取得できたことでテーブルビューから取得してきたデータを確認することができます。

取得してきたデータ同士の紐づけ

1.モデルビューを押下後、リレーションシップを押下

2.新しいリレーションシップを押下

3.customer_masterbusiness_negotiation を選択し、customer_masterID カラム、business_negotiation顧客カラムを選択後、保存ボタンを押下

4.手順2を実行後、business_negotiationpurchaseを選択し、business_negotiationID カラム、purchase商談カラムを選択後、保存ボタンを押下

5.再びモデルビューを見ると手順1とは UI が異なり、データ同士の紐づけが出来ていることが分かります

レポートの作成

1.レポートビューを押下後、視覚化ペインから使用したい UI を選択

2.UI 毎に使用したいデータを選択していくと以下のようにレポートを作成できます

以下、使用した UI と当てはめたデータの一覧です。

●スライサー(customer_master の顧客名)
   ・ビジュアルの書式設定からスタイルをドロップダウンに変更しています。

●スライサー(案件名)

●カード(選択した案件名の確度、選択した案件名の売り上げ、選択した案件名の仕入合計、選択した案件名の粗利、選択した案件名の粗利率)
   ・こちらは以下のようなDAXクエリを使用して案件名が選択された時のみ値が表示されるように
    しています。
    [表示させたいタイトル]=SELECTEDVALUE ( [表示させたい値の列名], BLANK() )

●テーブル( purchase の件名)

●積み上げ横棒グラフ( purchase の件名と金額の合計)

調べるのに苦労したところ

DBに作成したビューを介してPleasanterのデータをPower BIで取得する方法

 ・APIを介する方法やテーブル自体を参照する方法は簡単に出てきましたが、DBに作成したビューを
  介する方法は調べても中々出てきませんでした。