JasperReports Server で Salesforce のレポートを作成
CData JDBC Driver for Salesforce を使用すると、企業全体で Salesforce のデータ へのアクセスを提供できます。この記事では、JasperReports Server にドライバーをデプロイし、Salesforce のデータ のビジネスビューであるレポートドメインに基づいたシンプルなレポートを作成する方法を説明します。
Salesforce データ連携について
CData を使用すれば、Salesforce のライブデータへのアクセスと統合がこれまでになく簡単になります。お客様は CData の接続機能を以下の目的で利用しています:
- カスタムエンティティやフィールドにアクセスでき、Salesforce ユーザーは Salesforce のすべてにアクセスできます。
- アトミックおよびバッチ更新操作を作成できます。
- Salesforce データの読み取り、書き込み、更新、削除ができます。
- SOAP API バージョン 30.0 のサポートにより、最新の Salesforce 機能を活用できます。
- SOQL サポートによる複雑なクエリの Salesforce サーバーへのプッシュダウンにより、パフォーマンスの向上を実現できます。
- SQL ストアドプロシージャを使用して、ジョブの作成・取得・中止・削除、添付ファイルやドキュメントのアップロード・ダウンロードなどのアクションを実行できます。
ユーザーは、Salesforce データを以下と頻繁に統合しています:
- 他の ERP、マーケティングオートメーション、HCM など。
- Power BI、Tableau、Looker などのお気に入りのデータツール。
- データベースやデータウェアハウス。
CData ソリューションが Salesforce とどのように連携するかについての詳細は、Salesforce 統合ページをご覧ください。
はじめに
ドライバー JAR のデプロイ
以下の手順に従って、JasperReports Server にドライバー JAR をデプロイします。この手順は Salesforce と JasperReports Server にバンドルされている Tomcat サーバーに固有のものです。Tomcat ではなく JBoss AS 7 を使用している場合は、標準的なプロセスに従って JBoss への Salesforce JDBC Driver のデプロイを行ってください。
- インストールディレクトリの lib サブフォルダにあるドライバー JAR と .lic ファイルを、JasperReports Server インストールディレクトリ内の apache-tomcat フォルダの lib サブフォルダにコピーします。
-
apache-tomcat -> webapps -> jasperserver-pro -> META-INF に移動し、以下のリソースエントリを context.xml ファイルに追加します。
<Resource name="jdbc/salesforce" auth="Container" type="javax.sql.DataSource" driverClassName="cdata.jdbc.salesforce.SalesforceDriver" url="jdbc:salesforce:User=username;Password=password;SecurityToken=Your_Security_Token;" maxActive="20" maxIdle="10" maxWait="-1" factory="com.jaspersoft.jasperserver.tomcat.jndi.JSCommonsBasicDataSourceFactory"/>
JDBC URL(url 属性)に必要な接続プロパティを指定します。
Salesforce 接続プロパティの設定方法
埋め込みOAuth(UI でのログイン)による接続設定
それでは、Salesforce への接続について説明していきましょう。最も簡単な方法として、Salesforce にログインする際と同様にUI 上からログインするだけで接続設定が完了します(埋め込みOAuth)。この方法をご利用になる場合は、「Salesforce への接続」をクリックしてください。
標準認証の設定
埋め込みOAuth 以外の方法を利用する場合、以下の3つの認証方式をご利用いただけます。標準的な認証方式では、以下の情報が必要となります。
- ユーザー名
- パスワード
- セキュリティトークン
セキュリティトークンの取得方法については、セキュリティトークン取得手順をご確認ください。
OAuth 認証の設定
ユーザー名とパスワードによる認証がご利用いただけない(避けたい)場合は、OAuth 認証をお使いいただけます。
SSO(シングルサインオン)の設定
最後に、IDプロバイダー経由でのシングルサインオンをご利用になる場合は、以下のプロパティを設定してください。
- SSOProperties
- SSOLoginUrl
- TokenUrl
より詳細な設定手順については、ヘルプドキュメントの「はじめに」セクションをご確認ください。
組み込みの接続文字列デザイナー
JDBC URL の構築には、Salesforce JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルをダブルクリックするか、コマンドラインから JAR ファイルを実行します。
java -jar cdata.jdbc.salesforce.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
JDBC URL を設定する際に、Max Rows 接続プロパティを設定することもできます。これにより返される行数が制限され、レポートやビジュアライゼーションを設計する際のパフォーマンス向上に役立ちます。
-
jasperserver-pro -> WEB-INF に移動し、以下の参照を web.xml ファイルに追加します。
Salesforce のデータ JSP jdbc/salesforce javax.sql.DataSource Container
- サーバーを再起動します。
Salesforce JDBC データソースの作成
以下の手順に従って、Salesforce JDBC Driver を JDBC データソースにマッピングします。
- JasperReports Server にログインし、Create -> Data Source をクリックします。
- Type メニューで、JNDI Data Source を選択します。
- Service Name ボックスに、web.xml ファイルのリソース定義で指定した JNDI ルックアップを入力します。この例では、ルックアップは「jdbc/salesforce」です。
- Save をクリックしてデータソースを作成します。
ドメインの作成
ドメインは、レポート作成者に関連するビジネスビューを提供するメタデータおよびアクセス制御レイヤーです。以下の手順に従って、Salesforce のカラムを選択し、フィルタを適用し、SQL を実行してドメインを作成します。
- Create -> Domain をクリックします。ドメインの ID を入力し、保存場所を選択します。
- Data Source セクションで Browse をクリックし、作成した Salesforce データソースを選択します。
- Domain Design セクションで、Create with Domain Designer をクリックします。
- テーブルが含まれるスキーマを選択します。
- Tables タブで、Data Source ペインからテーブルを選択し、矢印をクリックして Selected Tables ペインに追加します。
- Derived Tables タブでは、SQL クエリに基づいてドメインを定義できます。例えば、
SELECT Contact.Name, SUM(Account.AnnualRevenue) FROM Contact, Account GROUP BY Contact.Name
- Joins タブでは、結合条件を構築するカラムを選択し、結合タイプを選択することでテーブルを結合できます。
- Pre-Filters タブでは、カラムをドラッグ&ドロップして、ドメインを通じて公開されるデータをフィルタする検索条件を定義します。
- Display タブで、ユーザーに提示されるデータセットに Salesforce データを選択します。
- OK をクリックして変更を確定し、Submit をクリックしてドメインを作成します。
リアルタイムでデータを探索
ドメインを作成したら、データに接続する準備が整います。以下の手順に従って、Ad Hoc Editor で Ad Hoc ビューを作成します。
- Create -> Ad Hoc View をクリックします。
-
表示されるダイアログで、作成した Salesforce ドメインを選択します。
-
Choose Data ページで、ビューで使用するカラムを選択します。Pre-Filters セクションでは、選択したフィールドに基づいてフィルタを作成できます。Display セクションでは、ドメインで表示されるカラム情報を変更できます。
- ウィザードが完了したら、ビュータイプを選択し、ビューにカラムを追加します。JasperSoft はドライバーのメタデータを使用して、データ型に基づいて利用可能なディメンションとメジャーを検出します。ディメンションとメジャーを Columns ボックスと Rows ボックスにドラッグします。メジャーを右クリックして集計計算を変更できます。Filters セクションで Columns スライダーを目的のデータレベルにドラッグします。
- ビューの設計中にデータの更新にアクセスするには、設計モードのツールバーでメニュー選択を Sample Data から Full Data に変更します。変更を行うと、JasperSoft Server はドライバーに対して基になる SQL クエリを実行します。
- ビューを保存します。
リアルタイムレポートの作成
これで、JasperSoft Server でホストされるレポートを作成できます。Ad Hoc Editor から作成するには、Save Ad Hoc View をクリックし、Create Report をクリックします。