PowerBuilder からNetSuite のデータに連携

この記事では、NetSuite JDBC ドライバーを使用してPowerBuilder からNetSuite にアクセスする方法を説明します。

加藤龍彦
デジタルマーケティング

最終更新日:2022-06-13

こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。

CData JDBC Driver for NetSuite は、標準ベースのコントロールであり、PowerBuilder を含むJDBC をサポートするプラットフォームまたは開発テクノロジーから使用できます。 また、PowerBuilder でCData JDBC Driver for NetSuite を使用する方法についても詳しく説明します。

この記事では、CData JDBC Driver for NetSuite を使用して読み取りと書きこみを実行する基本的なPowerBuilder アプリケーションを作成する方法を説明します。

PowerBuilder からNetSuite のデータに接続

以下のステップに従ってDatabase Painter ツールを使用し、JDBC URL for NetSuite に基づいてデータベースプロファイルを作成します。データベースプロファイルを使用して、接続プロパティを保存できます。Ⅾatabase Painter では、データをグラフィカルに操作したり、SQL クエリを実行したりできます。

  1. ドライバーJAR をPowerBuilder クラスパスに追加します。CLASSPATH システム環境変数を、インストールディレクトリのlib サブフォルダにあるドライバーJAR へのパスに設定します。

    NotePowerBuilder Classic を使用している場合は、[Tools]->[System Options]->[Java]をクリックし、ドライバーJAR へのパスを追加することもできます。

  2. [Tools]->[Database Painter]と進みます。
  3. JDBC のノードを右クリックし、[New Profile]をクリックします。
  4. [Database Profile Setup]ダイアログで、以下を入力します。
    • Profile Name:プロファイルのわかりやすい名前を入力します。
    • Driver Name:ドライバーのクラス名にcdata.jdbc.netsuite.NetSuiteDriver を入力します。
    • URL:JDBC URL を入力します。

      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 に設定されている場合にのみ使用できます。

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

      ビルトイン接続文字列デザイナ

      JDBC URL の構成については、NetSuite JDBC Driver に組み込まれている接続文字列デザイナを使用してください。JAR ファイルのダブルクリック、またはコマンドラインからJAR ファイルを実行します。

      java -jar cdata.jdbc.netsuite.jar

      接続プロパティを入力し、接続文字列をクリップボードにコピーします。以下は一般的なJDBC URL です。

      jdbc:netsuite:Account Id=XABC123456;Password=password;User=user;Role Id=3;Version=2013_1;
    The JDBC data source defined in the Database Profile Setup dialog.(Salesforce is shown.)
  5. テーブルを表示および編集するには、テーブルを右クリックして[Edit Data]->[Grid]をクリックします。
Modify database objects in the Database Painter.(Salesforce is shown.)

NetSuite をPowerBuilder Controls と共に使用する

標準のPowerBuilder オブジェクトを使用してJDBC データソースに接続し、クエリを実行できます。以下の例は、NetSuite をDataWindowに取得する方法を示しています。次のコードをopen メソッドに追加できます。

SQLCA.DBMS = "JDBC" SQLCA.AutoCommit = False SQLCA.DBParm = "Driver='cdata.jdbc.netsuite.NetSuiteDriver',URL='jdbc:netsuite:Account Id=XABC123456;Password=password;User=user;Role Id=3;Version=2013_1;"; CONNECT USING SQLCA; dw_salesorder.SetTransObject(SQLCA); dw_salesorder.Retrieve();

関連コンテンツ

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

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