Cognos BI でNetSuite のデータを使ってデータビジュアライゼーションを作成

Cognos Business Intelligence のODBC データソースとしてNetSuite にアクセスし、Cognos Report Studio でデータビジュアライゼーションを作成。

古川えりか
コンテンツスペシャリスト

最終更新日:2022-07-18

この記事で実現できるNetSuite 連携のシナリオ

こんにちは!ドライバー周りのヘルプドキュメントを担当している古川です。



CData ODBC Driver for NetSuite を使って、NetSuite のデータをドラッグアンドドロップ スタイルのCognos Report Studio に連携できます。この記事では、データビジュアライゼーションをSQL を書かずに作成するグラフィカルアプローチと、NetSuite がサポートする任意のSQL クエリを実行する方法の両方について説明します。

CData ODBC ドライバとは?

CData ODBC ドライバは、以下のような特徴を持った製品です。

  1. NetSuite をはじめとする、CRM、MA、会計ツールなど多様なカテゴリの270種類以上のSaaS / オンプレデータソースに対応
  2. 多様なアプリケーション、ツールにNetSuite のデータを連携
  3. ノーコードでの手軽な接続設定
  4. 標準SQL での柔軟なデータ読み込み・書き込み

CData ODBC ドライバでは、1.データソースとしてNetSuite の接続を設定、2.Cognos BI 側でODBC Driver との接続を設定、という2つのステップだけでデータソースに接続できます。以下に具体的な設定手順を説明します。

CData ODBC ドライバのインストールとNetSuite への接続設定

まずは、本記事右側のサイドバーからNetSuite ODBC Driver の無償トライアルをダウンロード・インストールしてください。30日間無償で、製品版の全機能が使用できます。

下記の手順に従って、[Cognos Administration]ツールのライブ NetSuite に接続を確立します。この接続はCognos BI 全体で使えます。このドライバーを使って、すべてのユーザーは一貫したデータおよびメタデータ:リアルタイムNetSuite を利用できます。

  1. 接続プロパティの指定がまだの場合は、ODBC DSN (データソース名)で行います。Microsoft ODBC データソースアドミニストレーターを使ってODBC DSN を作成および設定できます。

    64ビット版のマシンからCognos を実行している場合は、32ビット版ODBC データソースアドミニストレーターを起動する必要があります。以下のコマンドで開くことができます:

    C:\Windows\sysWOW64\odbcad32.exe

    Netsuite への接続

    NetSuite は現在、2つの異なるAPI を提供しています。

    • SuiteTalk はNetSuite との通信に使用する、SOAP ベースのより古いサービスです。多くのエンティティを幅広くサポートし、INSERT / UPDATE / DELETE を完全にサポートします。 しかしデータの抽出用ツールは低機能で、SELECT 時のパフォーマンスは極めて低いです。テーブルを結合するよい方法もありません。データのグループ化および集計はこのAPI からは利用できず、 そのためこれらの操作をサポートするには、すべてをクライアントサイドで実行しなければなりません。
    • SuiteQL は新しいAPI です。サービスとのSQL ライクな通信方法を実現するため、JOIN の機能はより豊富になり、GROUP BY や集計機能もサポートします。 加えて、抽出したいカラムだけを取得する機能も完全にサポートします。そのため、データを抽出する際のパフォーマンスがSuiteTalk より大幅に向上しています。ただし、サポートされるのはデータの抽出のみです。

    NetSuite に接続するには、以下を行う必要があります。

    1. Schema を設定して、接続に使用するAPI を指定。データを取得するだけの場合は、SuiteQL の使用をお勧めします。データの取得および変更が必要な場合は、SuiteTalk の使用をお勧めします。
    2. 使用するAPI に適した接続オプションを設定します。(それぞれのAPI で利用可能な接続オプションが異なります。ヘルプドキュメントの「許可の設定」を参照してください。)

    Netsuite への認証

    SuiteTalk またはSuiteQL

    NetSuite は3つの形式のOAuth 認証を提供します。

    • トークンベース認証(TBA)は、基本的にOAuth 1.0 で、OAuthAccessTokenOAuthAccessTokenSecret を実行時ではなくNetSuite UI 内で作成します。 TBA は、2020.2 以降のSuiteTalk およびSuiteQL の両方で利用可能です。
    • OAuth 2.0 認証は、SuiteQL でのみ利用できます。OAuth 2.0 認証を強制するには、次のいずれかを実行します。
      • OAuthVersion を使用するAPI に明示的に設定、または
      • SchemaSuiteQL に設定
    • OAuth JWT 認証は、OAuth 2.0 クライアント認証フローであり、クライアント認証情報を含むJWT を使用してNetSuite データへのアクセスを要求します。この認証方法は、SchemaSuiteQL に設定されている場合にのみ使用できます。

    認証方法の詳細はヘルプドキュメントの「はじめに」を参照してください。

    Microsoft ODBC データソースアドミニストレーターで必要なプロパティを設定する方法は、ヘルプドキュメントの「はじめに」をご参照ください。

  2. [Cognos Administration]を開いて新しいデータソースを追加します。[Data Source Connections]をクリックして[ODBC]オプションを選択したら、システムDSN とユーザーフレンドリーな名前を入力します。Click Retrieve Objects and choose the CData NetSuite database object.

    The DSN used to add the data source. (Salesforce is shown.)

Data Visualizations をレポートに追加

これで、[Source Explorer]からレポートオブジェクトにカラムをドラッグアンドドロップしてCognos Report Studio のNetSuite のデータ にレポートを作成できます。以下では、最新データを表示するチャートを持つシンプルなレポートを作成する方法を説明します。

レポートをビルドすると、Cognos Report Studio はSQL クエリを生成して実行をドライバーに依存します。ドライバーはクエリをNetSuite API へのリクエストに変換します。ドライバーはリアルタイムNetSuite へのクエリの実行を基になるAPI に依存します。

アグリゲートに基づきチャートを作成

[Source Explorer]からオブジェクトのdimentions にカラムをドラッグアンドドロップするだけで、Cognos レポートオブジェクトとしてNetSuite のデータを使うことができます。チャートのSeries dimension のカラムは自動的にグループ化されます。

さらにCognos は、measure dimesion のロジカルなデフォルトアグリゲート関数をデータタイプに基づいて設定します。この例では、デフォルトをオーバーライドしています。[Data Items]タブの SalesOrderTotal カラムをクリックしてAggregate Function プロパティを Not Applicableに設定します。Rollup Aggregate Function プロパティは Automatic に設定する必要があります。

NetSuite columns used in a pie chart. (Salesforce is shown.)

Query オブジェクトをSQL に変換

必要なクエリを把握している、あるいは生成されたクエリを調整したい場合は、query オブジェクトをSQL ステートメントに変換します。クエリがSQL に変換されると、UI コントロールはquery オブジェクトで利用できなくなります。下記の手順に従って、ユーザー定義のSQL でチャートを埋めます。

Cognos はユーザー定義クエリの実行をドライバーに依存します。ドライバーのSQL エンジンを使うと、キャッシュデータのコピーがないためクエリは常に最新の結果を返します。

  1. [Query Explorer]の上にカーソルを置き、[Queries]フォルダをクリックしてレポートにquery オブジェクトを表示します。
  2. 自動生成されたクエリを編集したい場合は、Generated SQL プロパティにあるquery オブジェクトのボタンをクリックします。ダイアログが表示されたら、[Convert]をクリックします。

    新たにSQL ステートメントを入力したい場合は、query オブジェクトと一緒にSQL オブジェクトをドロップします。

  3. SQL オブジェクトのプロパティを編集:SQL プロパティでNetSuite のデータソースを選択してSQL Syntax プロパティをNative に設定します。
  4. SQL プロパティのボタンをクリックし、ダイアログが表示されたらSQL クエリを入力します。この例では以下のクエリを使います:

    SELECT Customer.FirstName AS CustomerName, SalesOrder.Total AS SalesOrderTotal FROM SalesOrder, Customer
  5. query オブジェクトのプロパティを編集:Processing プロパティを[Limited Local]に設定します。この値はquery オブジェクトをSQL に変換するために必要です。

    A query object created from an SQL statement.

クエリ結果をチャートで使用

これで[Data Items]タブのオブジェクトとしてSQL クエリ結果にアクセスできるようになりました。下記の手順に従って、クエリ結果を使ってチャートを作成します;例えば、SalesOrder テーブルからSalesOrderTotal を各CustomerName へ。

  1. [Page Explorer] 上にカーソルを置きpage オブジェクトをクリックしてページに戻ります。
  2. 円グラフをツールボックスからワークスペース上にドラッグします。
  3. チャートのプロパティで、Query プロパティに先ほど作成したクエリの名前を設定します。
  4. [Data Items]タブをクリックしてカラムをx およびy 軸上にドラッグします。この例ではCustomerName カラムをSeries (pie slices) ボックスに、SalesOrderTotal カラムをDefault Measure ボックスにドラッグします。
  5. Default Measure (SalesOrderTotal 値) のデフォルトのプロパティを編集します:[Aggregate Function]ボックスで "Not Applicable" オプションを選択します。

A pie chart populated with the result of executing the SQL query. (Salesforce is shown.)

レポートを実行してクエリ結果を追加します。

The rendered report. (Salesforce is shown.)

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。