ADO.NET Provider for NetSuite

Build 22.0.8479

接続の確立

NetSuite への接続

SuiteTalk とSuiteQL の比較

SuiteTalk はNetSuite との通信に使用する、SOAP ベースのより古いサービスです。多くのエンティティを幅広くサポートし、挿入、更新、および削除を完全にサポートします。 しかしデータの抽出用ツールは低機能で、SELECT 時のパフォーマンスは極めて低いです。テーブルを結合するよい方法もありません。データのグループ化および集計はこのAPI からは利用できず、そのためこれらの操作をサポートするには、すべてをクライアントサイドで実行しなければなりません。

SuiteQL は新しいAPI です。サービスとのSQL ライクな通信方法を実現するため、結合の機能はより豊富になり、GROUP BY や集計機能もサポートします。 加えて、抽出したいカラムだけを取得する機能も完全にサポートします。そのため、データを抽出する際のパフォーマンスがSuiteTalk に比べて大幅に向上しています。ただし、サポートされるのはデータの抽出のみです。

どちらのAPI を接続に使用するかは、Schema で指定できます。データの取得だけであればSuiteQL を、取得と変更の両方が必要であればSuiteTalk の使用を推奨します。 それぞれのAPI で、次に説明する異なる接続オプションを利用可能です。

メタデータフォルダの設定

SuiteTalk に接続する際には、NetsuiteMetadataFolder を指定することが推奨されますが、必須ではありません。NetSuite Metadata Folder は、NetSuite のメタデータファイルが格納されるディスク上のフォルダです。 指定しない場合は、フォルダの場所は自動的に選択されます。 テーブルに関するメタデータをリスト化する際のロード時間を速くするには、このプロパティを設定してください。

NetSuite Web サービス権限

本製品 はNetSuite Web サービス経由でNetSuite と通信します。これは接続するすべてのユーザーが、NetSuite Web サービス経由で接続するためのAccountId 上の権限を持っている必要があることを意味します。 必須の権限と任意の権限についての詳細は、許可の設定 を参照してください。

Web サービス権限用のロールを作成または編集する

  • NetSuite にログインし、[設定]メニューから[ユーザー/ロール]->[ロール管理]->[新規作成]に進みます。または、既存のロールを編集します。
  • [許可]->[設定]をクリックし、[SOAP Webサービス]と[REST Webサービス]権限を追加します。
  • その他、さまざまなエンティティやトランザクションを扱うために必要な権限を追加します。
  • [設定]メニューから[ユーザー/ロール]->[ユーザー管理]に進み、ユーザーを選択します。
  • [アクセス]タブで、新規作成したロールを追加しユーザーを保存します。

NetSuite への認証

Basic

Note:このセクションの内容はSuiteTalk でのみ有効です。SuiteQL ではOAuth またはトークン認証が必須です。

2020.2以降、NetSuite はユーザーネームとパスワードでの接続をサポートしていません。Version が2020.2以下の値に設定されている場合、CData ADO.NET Provider for NetSuite はユーザーネームとパスワードでの接続を引き続きサポートしますが、すべてのお客様が次に記載のOAuth とトークンベース認証 システムに移行することを推奨します。ユーザー名とパスワード情報をサポートするには、AuthScheme をBasic に設定してください。ただし新しいバージョンではこの機能が削除されているため、使用するにはVersion に過去のバージョンを手動で指定する必要があります。

トークンベース認証

Token Based Authentication(トークンベース認証)またはTBA は、SuiteTalk およびSuiteQL Schema のどちらでも使用可能です。TBA をサポートするにはAuthScheme をToken に設定してください。 トークンベース認証は、権限を持った管理者がOAuthClientIdOAuthClientSecretOAuthAccessToken、および OAuthAccessTokenSecret をNetSuite UI 内で直接作成することで実行されます。この処理に関する詳細はNetSuite でアクセストークンを作成 を参照してください。

OAuth

OAuth をサポートするにはAuthScheme をOAuth に設定してください。 NetSuite は1.0と2.0の2つのOAuth 認証を提供します。トークンベース認証は実際には、 OAuthAccessTokenOAuthAccessTokenSecret を実行時ではなくNetSuite UI 内で作成する、単なるOAuth 1.0です。OAuth 1.0は SuiteTalk およびSuiteQL の両方で利用可能です。OAuth 2.0はSuiteQL でのみ利用可能です。そのためOAuthVersion はデフォルで空であり、 Schema をSuiteTalk に設定した場合はOAuth 1.0が使用され、Schema をSuiteQL に設定した場合はOAuth 2.0が使用されます。 これはOAuthVersion 接続プロパティを明示的に設定することでオーバーライドでき、SuiteTalk とSuiteQL をどちらも使用する場合や、 SuiteQL をOAuth 1.0のみがサポートされていた以前のバージョンからアップグレードする際に有効です。

OAuthVersion は変更できますがAPI 側でサポートしていないため、 Schema をSuiteTalk に設定したとしても、SuiteTalk でOAuth 2.0を使用することはできません。

OAuth 経由で接続する方法についての詳細は、OAuth 認証の使用 を参照してください。

同時リクエスト

NetSuite はアカウント毎に一定数の同時リクエストのみ受け付け、通常デフォルトでは5ですが、接続毎に設定できます。 最大の同時リクエストがすでに使用されている際に他のリクエストを試行した場合、次の接続の際に「1つのセッションに対して、一度に1つのリクエストしか行うことができません」という内容のエラーが表示されるかもしれません。 CData ADO.NET Provider for NetSuite はこの制限を考慮して、同時リクエスト制限を超えないように追加のリクエストを遅延させます。 ただし、アカウントに複数のマシンやアプリケーションから接続がある場合、この処理を適切に実行することができないことがあります。

非同期サービス

NetSuite の応答時間の遅延は、挿入、更新、または削除にも及びます。これはバッチ処理を使用する場合に特に顕著です。 一度に複数のレコードを挿入、更新、または削除する場合は、UseAsyncServices をtrue に設定するとよいかもしれません。これによりリクエストはNetSuite 側で非同期で処理され、JobId がInfo#TEMP テーブルに返されます。 JobId はストアドプロシージャCheckJobStatus およびGetJobResults に対して、ジョブがいつ完了したか、エラーが発生したかどうか、新規作成されたエンティティのInternalId を確認できます。

Copyright (c) 2023 CData Software, Inc. - All rights reserved.
Build 22.0.8479