RESTlets
本製品 はRESTlet をビューとしてモデル化できます。このセクションでは、同梱のRESTlet スクリプトを使用して保存検索をクエリする方法を示します。保存検索をより詳しく表示するために、テーブルスキーマを調整する方法も含みます。
RESTlet とSavedSearches ビューの比較
保存検索をクエリするには、RESTlet の使用が推奨されます。RESTlet の使用方法は、保存検索 内に記載された手法とは異なります。この古い手法はSuiteTalk API に依存し、このAPI では保存検索が返す結果がより制限されます。
RESTlet を使用して保存検索をクエリ
以下の手順に従って同梱のスクリプトをデプロイし、SELECT クエリを実行してRESTlet を実行します。
SuiteScript を有効化
[設定]->[会社]->[機能を有効化]に進みます。[SuiteCloud]タブで、[クライアントSuiteScript]、[サーバーSuiteScript]、[SuiteScriptサーバーページ]がすべて有効化されていることを確認してください。
SuiteScript ファイルをアップロード
[ドキュメント]->[ファイル]->[SuiteScripts]に進みます。[ファイルを追加]ボタンをクリックしてください。 CData Cmdlets PowerShell Module for NetSuite に同梱されているsearch_script.js スクリプトをアップロードしてください。インストールディレクトリのdb フォルダ以下に格納されています。
スクリプトレコードを作成
[カスタマイゼーション]->[スクリプト]->[スクリプト]->[新規作成]に移動してください。メニューからsearch_script.js を探して、選択してください。 その後[スクリプトレコードを作成]をクリックしてください。
スクリプトレコードをデプロイ
スクリプトに名前を付けて、[デプロイメント]タブ以下でタイトルを追加します。 その後[保存]をクリックします。これで、デプロイメントが作成されます。
Note:[スクリプトデプロイメント]がテスティングのステータスにある間は、デプロイメントを作成したユーザーだけが、クエリされた保存検索の結果を返します。RESTlet を他のユーザーにも利用可能にするには、[スクリプトデプロイメント]のステータスをリリース済みにして、[閲覧者/閲覧許可]タブ内で許可するロールを追加してください。
デプロイメントId とスクリプトId を取得
スクリプトレコード内にデプロイメントへのリンクがあります。デプロイメントへのリンクを辿ってください。または、[カスタマイゼーション]->[スクリプト]->[スクリプトデプロイメント]に進み、フィルターを使って、作成したデプロイメントを探してください。 デプロイメントレコード内に、URL と外部URL があります。 スクリプト番号とデプロイメント番号をURL からコピーしてください。
保存検索Id を取得
search_script.js を実行するには、保存検索のId を渡す必要があります。 [リスト]->[検索]->[保存検索]と進み、保存検索のId からコピーしてください。作成日のような、常に同じ順序を返すカラムで整列する方法での検索を推奨します。 これはNetSuite が、結果をページングする際にデータが変更された場合、重複や欠損データが発生する可能性のある結果をキャッシュしないためです。
認証を設定
RESTlet は次の認証方法をサポートしています。
- ユーザー名/パスワード:User とPassword に加えて、UseSessions 接続プロパティを設定する必要があります。
-
OAuth:OAuth 接続プロパティに加えて、RESTlet OAuth 認証にはAccountId が必要です。 認証するには、AccountId、OAuthClientId、OAuthClientSecret、OAuthAccessToken、およびOAuthAccessTokenSecret を設定します。
接続方法については、接続の確立 を参照してください。
RESTlet スキーマを作成
CreateRestletSchema ストアドプロシージャを呼び出して、RESTlet 用のビュースキーマを作成できます。ストアドプロシージャはスキーマを返します。スキーマは.rsd ファイルで定義されています。カラム名はテキストエディタでカスタマイズすることも可能です。次のセクションを参照してください。
以下はストアドプロシージャへの入力例です。 スキーマを保存しておくフォルダの場所を指定するLocation 接続プロパティも設定する必要があります。
Note:この本製品 は複数のスキーマをサポートするため、すべての個別のスキーマフォルダを含むルートフォルダを、ファイルパスの最後に指定してください。
EXEC CreateRESTletSchema @TableName='MyRESTletSchema', @ScriptId='548', @DeploymentNum='1', @FlattenSelects='true', @UseLabels='true', @SearchId='customsearch795'
注意として、少なくともTableName、ScriptId(デプロイメントURL より取得)、DeploymentNum(デプロイメントURL より取得)、SearchId が必要となります。 FlattenSelects と UseLabels はオプションです。
-
FlattenSelects:保存検索が複数選択のカラムを含む場合、このパラメータをfalse に設定してください。このパラメータは、本製品 が(エンティティやカスタム参照のような)選択されたデータ型をどのようにモデル化するかを設定します。FlattenSelects をfalse に設定すると、複数選択されたデータはJSON として集計され、返されます。
デフォルトでは本製品 は選択用に2つのカラムを表示します。1つは名前用で、1つは値(多くの場合Id)用です。この設定は、保存検索が複数選択のカラムを含む場合にはうまく動作しません。RESTlet メタデータには、複数選択と単一選択のカラムを区別する項目はありません。
-
UseLabels:本製品 がカラム名を保存検索に表示された結果と合致させるか、単に保存検索が返したAPI 名そのものを使用するかを決定します。 注意として、UseLabels がtrue に設定されていても、名前はアンダースコア付きの英数字に変換されます。また、保存検索ではラベルが同一名で返されることがあるので、注意してください。 こうした場合、名前を一意に保つため重複名の末尾に数字が付加されます。
RESTlet を実行
Location を設定して接続すると、簡単なSELECT クエリでデータをテーブルから取得できます。次に例を示します。
SELECT * FROM MyRESTletSchema
Note:ページングはCData Cmdlets PowerShell Module for NetSuite 側で自動的に処理されます。
スキーマを調整
スキーマの設定は.rsd ファイルで定義され、表示されるカラムをテキストエディタ上で変更することが可能となります。.rsd ファイルは、Location 接続プロパティで指定されたパスに書き込まれます。カラム名を変更するには、 <attr name=""> セクションを変更してください。
制限
- 現時点では、本製品 は同梱のsearch_script.js スクリプト内のフォーマットでレスポンスに従うRESTlet のみをサポートしています。
- 本製品 は、結果のサーバーサイドでのフィルタリングはサポートしていません。クエリの実行速度を上げるには、保存検索自体の内部ですべてのフィルタを定義してください。この設定をしない場合、データがSupportEnhancedSQL で取得された後に、クライアントサイドのフィルタが適用される可能性があります。