各製品の資料を入手。
詳細はこちら →JasperReports Server で NetSuite に連携する帳票を作成
CData JDBC ドライバをJasperReports Server に配置して、Jasper Studio でリアルタイムNetSuite のデータを連携利用する帳票を作ろう。
最終更新日:2022-06-07
この記事で実現できるNetSuite 連携のシナリオ
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
CData JDBC Driver for NetSuite は企業全体のNetSuite へのデータ連携を可能にします。この記事では、JasperReports server にドライバーを配布してレポーティングドメイン、ビルディングブロックを作成し、ad hoc 帳票を作成する方法を説明します。
NetSuite ドライバーのJAR を配布
下記の手順に従って、ドライバーのJAR をJasperReports server に配置します。標準的なプロセスに従って、JNDI データソースをTomcat またはJBoss に配布できます。以下の説明にはNetSuite およびJasperReports Server にバンドルされたTomcat server の詳細が含まれます。
- インストールディレクトリの[lib]サブフォルダ内のドライバーJAR およびlic ファイルを、apache-tomcat フォルダの[lib]サブフォルダにコピーします。
-
以下のリソースエントリーをjasperserver-pro Web アプリケーションのcontext.xml に追加します。これはアプリケーションの[META-INF]サブフォルダに配置されています。必要な接続プロパティをJDBC URL に指定します。
Netsuite への接続
NetSuite は現在、2つの異なるAPI を提供しています。
- SuiteTalk はNetSuite との通信に使用する、SOAP ベースのより古いサービスです。多くのエンティティを幅広くサポートし、INSERT / UPDATE / DELETE を完全にサポートします。 しかしデータの抽出用ツールは低機能で、SELECT 時のパフォーマンスは極めて低いです。テーブルを結合するよい方法もありません。データのグループ化および集計はこのAPI からは利用できず、 そのためこれらの操作をサポートするには、すべてをクライアントサイドで実行しなければなりません。
- SuiteQL は新しいAPI です。サービスとのSQL ライクな通信方法を実現するため、JOIN の機能はより豊富になり、GROUP BY や集計機能もサポートします。 加えて、抽出したいカラムだけを取得する機能も完全にサポートします。そのため、データを抽出する際のパフォーマンスがSuiteTalk より大幅に向上しています。ただし、サポートされるのはデータの抽出のみです。
NetSuite に接続するには、以下を行う必要があります。
- Schema を設定して、接続に使用するAPI を指定。データを取得するだけの場合は、SuiteQL の使用をお勧めします。データの取得および変更が必要な場合は、SuiteTalk の使用をお勧めします。
- 使用するAPI に適した接続オプションを設定します。(それぞれのAPI で利用可能な接続オプションが異なります。ヘルプドキュメントの「許可の設定」を参照してください。)
Netsuite への認証
SuiteTalk またはSuiteQL
NetSuite は3つの形式のOAuth 認証を提供します。
- トークンベース認証(TBA)は、基本的にOAuth 1.0 で、OAuthAccessToken とOAuthAccessTokenSecret を実行時ではなくNetSuite UI 内で作成します。 TBA は、2020.2 以降のSuiteTalk およびSuiteQL の両方で利用可能です。
- OAuth 2.0 認証は、SuiteQL でのみ利用できます。OAuth 2.0 認証を強制するには、次のいずれかを実行します。
- OAuthVersion を使用するAPI に明示的に設定、または
- Schema をSuiteQL に設定
- OAuth JWT 認証は、OAuth 2.0 クライアント認証フローであり、クライアント認証情報を含むJWT を使用してNetSuite データへのアクセスを要求します。この認証方法は、Schema がSuiteQL に設定されている場合にのみ使用できます。
認証方法の詳細はヘルプドキュメントの「はじめに」を参照してください。
<Resource name="jdbc/netsuite" auth="Container" type="javax.sql.DataSource" driverClassName="cdata.jdbc.netsuite.NetSuiteDriver" url="jdbc:netsuite:Account Id=XABC123456;Password=password;User=user;Role Id=3;Version=2013_1;" maxActive="20" maxIdle="10" maxWait="-1" factory="com.jaspersoft.jasperserver.tomcat.jndi.JSBasicDataSourceFactory"/>
-
jasperserver-pro Web アプリケーションのweb.xml に以下の参照を追加します。これはアプリケーションの[WEB-INF]サブフォルダに配置されています。
NetSuite データ JSP jdbc/netsuite javax.sql.DataSource Container - サーバーを再起動します。
NetSuite JDBC データソースの作成
ドライバーを配布したら、JNDI 接続を作成してバンドルされたあらゆるドライバーと同じように接続できます。
- JasperReports Server にログインして[Create]>[Data Source]をクリックします。
- [Type]メニューで[JNDI Data Source]を選択します。
- [Service Name]ボックスにNetSuite に定義したJDNI ルックアップを入力します。例では、ルックアップは jdbc/netsuite です。
ドメイン の作成
データのドメインはJaspersoft のメタデータレイヤです。アドホックな分析および帳票で使うことができます。
- [Create]>[Domain]をクリックし、ドメインにID を入力します。
- [Data Source]セクションで[ブラウズ]をクリックし、作成したNetSuite のデータソースを選択します。
- [Domain Design]セクションで[Create with Database Designer]をクリックします。[Select Database Schema]ダイアログが表示されます。
- NetSuite のデータソースを選択します。
- [Tables]タブの[Data Source]ペインでテーブルを選択し、矢印をクリックして[Selected Tables]に追加します。
- [Display]タブの[Resources]ペインでNetSuite エンティティを選択し、矢印をクリックしてリソースを[Sets and Items]ペインに追加します。
ドメインにView Based を作成
ドメインを使ってNetSuite のビジネスビューを作成したら、データに関連あるサブセットを表示するビューを作成します。下記の手順に従って、[Ad Hoc Editor]の[Ad Hoc view]にビューを作成します。
- [Create]>[Ad Hoc View]をクリックします。
-
ダイアログが表示されたら、作成したNetSuite ドメインを選択します。
-
[Choose Data]ページで、ビューで使いたいカラムを選択します。[Select Fields]セクションでは、フィルターおよび入力用のプロンプトユーザーを作成できます。[Display]セクションでは、フィールドおよびフィールド名の並び順を変更できます。
- ウィザードを完了したら、ビューの種類を選択しビューにカラムを追加できます。JasperSoft はドライバーのメタデータを使って、利用可能なdimensions およびmeasures をデータの種類に基づいて検出します。 [Columns] および[Rows]ボックスにdimensions およびmeasures をドラッグします。例えば、チャートを作成するには[Columns]ボックスに[excol#1]を、[Rows]ボックスに[excol#2]をドラッグします。
- ビューを保存します。
帳票の作成
これでドメインから帳票を作成できます:
