CData Python Connector for NetSuite はじめに:インストールから接続まで

Mohsin Turki
Mohsin Turki
Technical Marketing Engineer
CData Python Connector のインストール、ライセンス認証、NetSuite のデータ への接続設定方法を解説します。

このガイドでは、CData Python Connector をインストールし、ライセンスを認証して、 ライブの NetSuite のデータ に接続する方法を解説します。以下の内容を学べます:

  1. コネクタのインストールとライセンスの適用
  2. NetSuite への接続設定
  3. Python アプリケーションでライブの NetSuite のデータ を統合する手順

それでは始めましょう。

前提条件

  1. お使いのマシンに Python(v3.8 以上)がインストールされていること。 こちらからダウンロードしてインストールしてください。
  2. 有効なライセンスを持つ CData Python Connector for NetSuite。 こちらからダウンロードしてインストールしてください。
  3. 有効な資格情報を持つアクティブな NetSuite アカウント。

NetSuite データ連携について

CData は、Oracle NetSuite のライブデータにアクセスし、統合するための最も簡単な方法を提供します。お客様は CData の接続機能を以下の目的で使用しています:

  • Standard、CRM、OneWorld を含む、すべてのエディションの NetSuite にアクセスできます。
  • SuiteTalk API(SOAP ベース)のすべてのバージョンと、SQL のように機能し、より簡単なデータクエリと操作を可能にする SuiteQL に接続できます。
  • Saved Searches のサポートにより、事前定義されたレポートとカスタムレポートにアクセスできます。
  • トークンベースおよび OAuth 2.0 で安全に認証でき、あらゆるユースケースで互換性とセキュリティを確保します。
  • SQL ストアドプロシージャを使用して、ファイルのアップロード・ダウンロード、レコードや関連付けのアタッチ・デタッチ、ロールの取得、追加のテーブルやカラム情報の取得、ジョブ結果の取得などの機能的なアクションを実行できます。

お客様は、Power BI や Excel などのお気に入りの分析ツールからライブ NetSuite データにアクセスするために CData ソリューションを使用しています。また、CData Sync を直接使用するか、Azure Data Factory などの他のアプリケーションとの CData の互換性を活用して、NetSuite データを包括的なデータベースやデータウェアハウスに統合しています。CData は、Oracle NetSuite のお客様が NetSuite からデータを取得し、NetSuite にデータをプッシュするアプリを簡単に作成できるよう支援し、他のソースからのデータを NetSuite と統合することを可能にしています。

当社の Oracle NetSuite ソリューションの詳細については、ブログをご覧ください:Drivers in Focus Part 2: Replicating and Consolidating ... NetSuite Accounting Data


はじめに


ステップ 1:インストールとライセンス認証


1.1 コネクタのインストール

Python の依存関係について:Python がインストールされていることを確認してください。 CData Python Connector は Python バージョン 3.8、3.9、3.10、3.11、3.12 をサポートしています。 この範囲外のバージョンを使用している場合は、virtualenv で仮想環境を作成する必要がある場合があります。

Windows でのインストール

  1. コネクタ ZIP をダウンロードして解凍し、 目的の場所に配置します。
  2. ターミナルまたはコマンドプロンプトを開き、.whl ファイルがある場所(/win/ ディレクトリ内)に移動します。 例:
    ~\Downloads\NetSuitePythonConnector\CData.Python.NetSuite\win\Python312\64
  3. pip を使用して .whl ファイルをインストールします。 Python のバージョンとアーキテクチャに一致するファイルを使用してください。例:
            pip install cdata_netsuite_connector-24.0.9111-cp312-cp312-win_amd64.whl
            
  4. pip list を実行してインストールを確認します。 cdata-netsuite-connector が表示されれば、インストールは成功です。

Linux/Mac でのインストール

  1. コネクタ ZIP をダウンロードして解凍し、 目的の場所に配置します。
  2. ターミナルを開き、解凍したインストールディレクトリに移動して、 /unix/ または /mac/ フォルダ内の .tar.gz ファイルを確認します。 例:
    ~/Downloads/NetSuitePythonConnector/CData.Python.NetSuite/unix/
    または
    CData.Python.NetSuite/mac/
  3. pip を使用して .tar.gz ファイルをインストールします。例:
            pip install cdata_netsuite_connector-24.0.####-python3.tar.gz
            
  4. pip list を実行してインストールを確認します。 cdata-netsuite-connector が表示されれば、インストールは成功です。

1.2 ライセンスの認証

購入後、CData Orders チームからメールでライセンスキーを受け取っているはずです。 ライセンスキーは次のような 25 文字のコードです:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

Windows でのライセンス認証

  1. ターミナルまたはコマンドプロンプトを開き、Python インストールの site-packages ディレクトリ内の cdata フォルダに移動します。
  2. パスの例:
    C:\Users\Username\AppData\Local\Programs\Python\Python312\Lib\site-packages\cdata\installlic_netsuite
  3. ライセンスキーを指定して license-installer.exe ファイルを実行します:
            .\license-installer.exe [YOUR LICENSE KEY HERE]
            
  4. プロンプトが表示されたら、登録済みの名前とメールアドレスを入力して認証を完了します。

Linux/macOS でのライセンス認証

  1. ターミナルを開き、Python の site-packages ディレクトリ内の cdata フォルダに移動します。 このディレクトリは通常、以下の場所にあります:
    ~/Library/Python/3.12/lib/python/site-packages/cdata/installlic_netsuite または
    /usr/local/lib/python3.12/site-packages/cdata/installlic_netsuite
  2. Linux/Mac ライセンスインストーラースクリプトを実行します:
            ./install-license.sh [YOUR LICENSE KEY HERE]
            
  3. プロンプトが表示されたら、登録済みの名前とメールアドレスを入力して認証を完了します。

ライセンスに関するよくある質問

ライセンスは複数のマシンで使用できますか?
はい、サブスクリプションプランによります。注文確認メールを確認するか、アカウント担当者にお問い合わせください。 アカウント担当者が不明な場合は、[email protected] までお問い合わせください。

ライセンスキーを紛失しました。どうすれば取得できますか?
注文番号を添えて [email protected] までメールでお問い合わせいただければ、ライセンスキーを再送いたします。

ライセンスを別のマシンに移行できますか?
はい。以下のリンクからライセンス移行リクエストを送信する必要があります:

https://www.cdata.com/lic/transfer/

ライセンス移行リクエストが送信され、処理されると、プロダクトキーに追加のアクティベーションが付与されます。 その後、新しいマシンで正規ライセンスを認証できます。 このプロセスが完了すると、以前のマシンのライセンスは無効になります。

ライセンスに関するその他のご質問は、[email protected] までお問い合わせください。 ライセンスの確認と管理は、セルフサービスポータル portal.cdata.com から行えます。


ステップ 2:接続設定

インストールとライセンス認証が完了したら、CData Python Connector を使用して接続を確立できます。

2.1 接続の確立

CData Python Connector for NetSuite は、標準の import 文でインポートできる Python モジュールとして公開されており、 それを基にアプリケーションコードを構築できます。

コネクタには sys_tablessys_tablecolumns などの 組み込みメタデータツールも含まれており、NetSuite のデータ の 利用可能なテーブル、カラム、構造メタデータを含むスキーマ検出を実行できます。

以下の例では、認証プロパティを使用して NetSuite への接続を確立し、 特定のテーブルからカラム名を取得します。

以下の接続文字列の値を実際の資格情報に置き換え、必要に応じて '[TABLE NAME]' のテーブル名を更新してください。

NetSuite インスタンスで MFA や追加のセキュリティ要件を使用している場合は、 接続文字列に PasscodeSecurityToken などのプロパティを含める必要がある場合があります。 サポートされているプロパティの完全なリストについては、 コネクタヘルプドキュメントConnection String Options セクションを参照してください (コネクタの help ディレクトリ内でも参照可能です)。



import cdata.netsuite as mod

# 設定したプロパティを使用して接続を確立
conn = mod.connect(
    "AccountId=XABC123456;"
    "Schema=SuiteTalk;"
    "AuthScheme=Token;"
    "OAuthClientId=MyOAuthClientId;"
    "OAuthClientSecret=MyOAuthClientSecret;"
    "OAuthAccessToken=MyOAuthAccessToken;"
    "OAuthAccessTokenSecret=MyOAuthAccessTokenSecret;"
)

# 指定したテーブルのカラム名をクエリ
cur = conn.cursor()
cur.execute("SELECT ColumnName FROM sys_tablecolumns WHERE TableName = '[TABLE NAME]'")

print("テーブルのカラム:")
for row in cur.fetchall():
    print(row[0])

cur.close()
conn.close()

このコードは NetSuite に接続し、メタデータカタログをクエリして、 指定したテーブルのすべてのカラム名を出力します。完全な コネクタドキュメント を参照して、追加のスキーマ、テーブル、その他のサポートされているメタデータビューを 探索するための SQL クエリの変更方法を学べます。


2.2 利用可能な接続設定

NetSuiteへの接続

NetSuite では、2種類のAPI でデータにアクセスできます。どちらのAPI を使用するかは、Schema 接続プロパティで以下のいずれかを選択して指定してください。

  • SuiteTalk は、NetSuite との通信に使用されるSOAP ベースの従来から提供されているサービスです。幅広いエンティティをサポートし、INSERT / UPDATE / DELETE の操作も対応しています。ただし、SuiteQL API と比べるとデータの取得速度が劣ります。また、サーバーサイドでのJOIN に対応していないため、これらの処理はCData 製品がクライアントサイドで実行します。
  • SuiteQL は、より新しいAPI です。JOIN、GROUP BY、集計、カラムフィルタリングをサーバーサイドで処理できるため、SuiteTalk よりもはるかに高速にデータを取得できます。ただし、NetSuite データへのアクセスは読み取り専用となります。

データの取得のみが目的でしたらSuiteQL をお勧めします。データの取得と変更の両方が必要な場合は、SuiteTalk をお選びください。

NetSuite への認証

CData 製品では、以下の認証方式がご利用いただけます。

  • トークンベース認証(TBA)はOAuth1.0に似た仕組みです。2020.2以降のSuiteTalk とSuiteQL の両方で利用できます。
  • OAuth 2.0 認証(OAuth 2.0 認可コードグラントフロー)は、SuiteQL でのみご利用いただけます。
  • OAuth JWT 認証は、OAuth2.0 クライアント認証フローの一つで、クライアント認証情報を含むJWT を使用してNetSuite データへのアクセスを要求します。

トークンベース認証(OAuth1.0)

トークンベース認証(TBA)は、基本的にOAuth 1.0 の仕組みです。この認証方式はSuiteTalk とSuiteQL の両方でサポートされています。管理者権限をお持ちの方がNetSuite UI 内でOAuthClientId、OAuthClientSecret、OAuthAccessToken、OAuthAccessTokenSecret を直接作成することで設定できます。 NetSuite UI でのトークン作成手順については、ヘルプドキュメントの「はじめに」セクションをご参照ください。

アクセストークンを作成したら、以下の接続プロパティを設定して接続してみましょう。

  • AuthScheme = Token
  • AccountId = 接続先のアカウント
  • OAuthClientId = アプリケーション作成時に表示されるコンシューマーキー
  • OAuthClientSecret = アプリケーション作成時に表示されるコンシューマーシークレット
  • OAuthAccessToken = アクセストークン作成時のトークンID
  • OAuthAccessTokenSecret = アクセストークン作成時のトークンシークレット

その他の認証方法については、ヘルプドキュメントの「はじめに」をご確認ください。


2.3 よくある接続の問題

認証エラー

解決策:UserPassword、および NetSuite で必要な追加の認証プロパティが正しいことを確認してください。 データソースが MFA、SSO、またはパスコードを強制している場合は、 接続文字列に正しいプロパティが含まれていることを確認してください。 サポートされている認証プロパティの完全なリストについては、 コネクタドキュメントを参照するか、 認証設定の検証については [email protected] までお問い合わせください。

サーバーに接続できない

解決策:接続文字列のエンドポイント URL が正しく、 環境からアウトバウンド HTTPS トラフィックが許可されていることを確認してください。 ファイアウォールやプロキシの背後にいる場合は、Python がサービス URL に 到達できることを確認してください。 ネットワーク設定の詳細やポート要件については、 [email protected] までお問い合わせください。

テーブルが見つからない

解決策:SQL クエリの DatabaseSchema、およびテーブル名を確認してください。 sys_tablessys_tablecolumns などのメタデータビューを使用して、 NetSuite のデータ が公開している正確なテーブル名とカラム名を確認してください。 テーブル名が大文字小文字を区別する場合は、クエリで正しい大文字小文字を使用していることを確認してください。

モジュールが見つからない、またはインポートエラー

解決策:Python Connector が正しい環境にインストールされていることを確認してください。 pip list を実行して、コネクタ (cdata-netsuite-connector)が存在することを確認してください。 仮想環境を使用している場合は、スクリプトを実行する前に正しい環境を有効にしてください。

接続文字列エラー

解決策:プロパティのフォーマットが正しくない、またはセミコロンが欠落していると、 コネクタが接続設定を解析できなくなります。 接続文字列を確認し、各プロパティが正しい Key=Value; 形式に従っていることを確認してください。 NetSuite でサポートされているプロパティ名については、Python Connector ドキュメントを参照してください。

接続に関するその他のトラブルシューティングについては、完全なエラーメッセージを添えて (機密の資格情報をマスクしてから)[email protected] までお問い合わせください。


ステップ 3:次のステップ

コネクタがインストールされ、接続が設定されたら、 Python でライブの NetSuite のデータ を操作できます。以下のリソースを参照して、 統合を拡張し、複雑なワークフローを構築してください。


サポート

ご不明な点がございましたら、お気軽にお問い合わせください:


FAQ

インストールとライセンス

  • コネクタのインストールには管理者権限が必要ですか?
    Python Connector のインストール自体には管理者権限は必要ありませんが、 ライセンスの適用やシステム全体の Python 環境へのインストール時には必要になる場合があります。
  • 複数の Python 環境にコネクタをインストールできますか?
    はい。環境ごと(venv、Conda、システム Python)に一度インストールしてください。 各環境は独自のパッケージを管理し、認証後はマシンライセンスを使用します。

接続

  • 認証情報はどのように提供しますか?
    mod.connect() を呼び出す際に、接続文字列で認証プロパティを渡します。 サポートされているプロパティの完全なリストについては、コネクタヘルプドキュメントを参照してください。
  • テーブルとカラムを検出するにはどうすればよいですか?
    sys_tablessys_tablecolumns などのメタデータビューを使用してください。 例:
    SELECT * FROM sys_tables;
  • プロキシサーバー経由で接続できますか?
    はい。接続文字列に ProxyServerProxyPortProxyUser などの プロキシプロパティを含めてください。 詳細については、ドキュメントの Firewall & Proxy セクションを参照してください。

パフォーマンスとトラブルシューティング

  • クエリが遅いのはなぜですか?
    以下を確認してください:
    • フィルター(WHERE 句)を追加して結果サイズを削減する
    • 頻繁に変更されないデータにはキャッシュを使用する
    • DatabaseSchema の選択情報が正しいことを確認する
    • 最適化のサポートについては [email protected] までお問い合わせください
  • ログを有効にするにはどうすればよいですか?
    接続文字列にログプロパティを直接追加します。例: Logfile=/path/log.txt;Verbosity=5;
    Verbosity はログの詳細レベルを制御します。 サポートを依頼する際は、このログファイルを [email protected] に送信してください。
  • どのポートを開放する必要がありますか?
    ほとんどのクラウドサービスは、ポート 443 でアウトバウンド HTTPS を必要とします。 ソース固有の要件については、 [email protected] までお問い合わせください。
  • インポート時に「Module not found」と表示されるのはなぜですか?
    スクリプトを実行する Python 環境にコネクタがインストールされていることを確認してください。 pip list または pip show を使用してインストールを確認してください。

一般

  • サポートされている SQL 構文はどこで確認できますか?
    コネクタドキュメントの SQL Compliance セクションを参照してください。
  • コネクタはどのくらいの頻度で更新されますか?
    CData はメジャーアップデートを年次でリリースし、定期的なパッチを提供します。 最新バージョンについては、アカウントポータルを確認するか、サポートにお問い合わせください。
  • その他のコード例はどこで確認できますか?
    オンラインドキュメントには、接続、クエリ、フィルタリング、ページング、 メタデータビューの操作に関する例が含まれています。

この FAQ で解決しない場合は、 [email protected] までお問い合わせください。

はじめる準備はできましたか?

NetSuite Connector のコミュニティライセンスをダウンロード:

 ダウンロード

詳細:

NetSuite Icon NetSuite Python Connector お問い合わせ

NetSuite へのデータ連携用のPython Connecotr ライブラリ。 pandas、SQLAlchemy、Dash、petl などの主要なPython ツールにNetSuite をシームレスに統合。