保存検索
保存検索はNetSuite 側の制約のため、一定の制限付きでサポートされています。
Note:このページよりもRESTlets の参照を推奨します。この手順は現在でも動作しますが、以下に記述のSuiteTalk API から使用する保存検索は、メタデータの取得が可能かどうか、どのような内容が利用可能か、という両面で制限があります。 RESTlet は制限も少なく、NetSuite から正確なメタデータを返します。
SavedSearches ビュー
SavedSearches ビューは、入力された検索タイプで利用可能な保存検索のリストを取得する方法として優れています。
SavedSearches ビューから情報を取得するには、SearchType を指定する必要があります。
次に例を示します。
SELECT * FROM SavedSearches WHERE SearchType='Transaction'
CreateSavedSearchSchema ストアドプロシージャ
CreateSavedSearchSchema ストアドプロシージャは、保存検索用のスキーマファイルの生成に使用します。 このスキーマファイルは、保存検索の結果に基づいて自動的に生成されます。このファイルはLocation 接続プロパティで指定されたフォルダに書き込まれます。
Note: このconnector は複数のスキーマをサポートするため、すべての個別のスキーマフォルダを含むルートフォルダを、ファイルパスの最後に指定してください。
ストアドプロシージャを実行するには、Name、SearchType、Id(SavedSearches から返されます)を入力してください。
SELECT * FROM (SELECT * FROM EXECSP('SuiteTalk.CreateSavedSearchSchema','Orders To Ship', '32','','Transaction')
通常のテーブルとは異なり、保存検索にメタデータのリクエストはありません。メタデータを取得するには、結果のサンプルを取得して、レスポンスに基づいて利用可能なカラムを推測する必要があります。 場合によっては、サンプルレスポンス内ですべての値がnull であるために、カラムが欠損している可能性もあります。
これらのスキーマファイルを変更するのは簡単です。お好みのテキストエディタでファイルを開いてください。ファイルは、カラム名がファイルの上部付近で定義されているだけの、単なるXML です。 カラム名をよりふさわしいものに変更することもできます。 ただし、これらのXML ファイルの有効なカラム名は、英数字で、アルファベットで始まる必要があり、英数字以外ではアンダースコア"_" のみを使用できます。
データを取得
スキーマファイルの作成後、そのスキーマ名を使用して保存検索からデータを取得できます。次に例を示します。
SELECT * FROM MySavedSearch
カラム名がUI に表示されるものと異なる可能性があります。これはNetSuite が、保存検索を実行する際のラベルを使用しているためです。 カラムは他のテーブルから取得される場合(結合がある場合)や、カスタムフィールドであることがあります。 保存検索のメタデータサービスが利用可能でないことから、自動でラベルを取得するのに適した方法はありません。 ただし上述のようにこれらのスキーマファイルは、手動でカラム名をお好みのものに変更することができます。
制限
NetSuite は保存検索にいくつかの制限を課しています。計算を含むカラム(式)は、NetSuite API からは取得できません。
カラムはテーブルから直接の取得のみ可能です。保存検索内に計算を含む場合、計算内で使用される個々のカラムを返して、クライアントサイドで計算を行う必要があります。
つまり、以下のようになります。
SELECT (col1 / col2) AS calc FROM MySavedSearch
集計やサマリー(Group、Count、Sum、Minimum、Maximum、Average)を出力する保存検索は、返すことができません。 NetSuite API がこれらの保存検索を取得しようとすると、例外が発生します。 この制限のため、これらの保存検索はCData、および他のサードパーティ製のツールから利用できません。