公開データ
CData Cmdlets PowerShell Module for NetSuite は、NetSuite テーブルに関する情報を実行時に動的に取得します。 公開されるテーブルとカラムは、いくつかの接続プロパティで制御されます。 このセクションでは、リストされているテーブルとカラムの制御に使用できる接続プロパティについて、 および探しているNetSuite データを取得する方法について説明します。テーブルの種類と、各種類のテーブルにINSERT と更新を行う方法の例を含むより詳しい説明は、Tables を参照してください。
NetSuite デフォルトのレコードの種類
NetSuite には、カスタマイズせずとも多くのデフォルトのレコードの種類が存在します。 勘定科目(Account)、顧客(Customer)、仕入先(Vendor)などのエンティティです。注文書(SalesOrder)、請求書(Invoice)、発注書(PurchaseOrder)といったトランザクションも含まれます。 これらの各デフォルトのレコードの種類は、 Version 接続プロパティに基づいて実行時に決定されます。この方法で見つかった各レコードの種類について、1つのテーブルが公開されます。
これらの「デフォルトのレコードの種類」は、以下で子テーブルについて記述する際には、しばしば親テーブルとも呼称します。
バージョン
少なくとも年2回、NetSuite は新バージョンをリリースします。新バージョンには、すべてのユーザーが利用可能な、新しいデフォルトのレコードの種類が含まれます。 最新のレコードの種類をテーブルとして公開するには、Version 接続プロパティを設定してください。 各メジャーリリース毎にNetSuite の最新バージョンと合致するよう、デフォルトのレコードの種類が更新されます。
子テーブル
NetSuite 内の多くのデフォルトのレコードの種類は、さまざまなデータのコレクションを含みます。例えば、顧客(Customer)には複数の住所を登録できます。 請求書(Invoice)には複数の明細を登録できます。これらの子コレクションは、子テーブルに公開されます。 例えば、Invoice_itemList は親テーブルであるInvoice の子テーブルと捉えられます。
子コレクションの数が多いため、これらを公開すると全表示テーブル数が何百の単位で大幅に増加します。 子テーブルは IncludeChildTables 接続プロパティをtrue に設定することで有効化できます。デフォルト値はfalse です。
子テーブルは初期レベル以上は公開されません。例えば、Purchase Order のExpense List は、リンクされたOrder List を含みます。 リンクされたOrder List には何のテーブルも公開されません。その代わり、 下記のように、このデータを取得するには集計カラムを使用する必要があります。
集計カラム
また、AggregateColumnMode 接続プロパティを使って、子コレクションを別の方法で公開することもできます。 集計カラムは住所や明細のコレクションのような、複雑なデータのコレクションを返します。 これらの値を1つのカラムに収めることはできないので、XML の値として集計されます。 ほとんどの子コレクションの情報は、 IncludeChildTables をtrue に設定した方が、簡単に取得でき、可読性も高いです。集計はデフォルトでは無効になっています。
集計は子テーブル上にさらにコレクションを公開するのに便利です。例えば、リンクされたOrder List をPurchase Order のExpense List から取得したいとしましょう。 IncludeChildTables をtrue に、AggregateColumnMode をList に設定してください。これらの設定をするとExpenseList_linkedOrderList カラムが表示され、PurchaseOrder_expenseList テーブルのデータが返されます。
集計カラムからINSERT を行う場合やデータの概要を確認するためのサンプルの取得のような、非常に小さなサンプルを試す場合以外では、AggregateColumnMode をListAndRetrieve に設定することは非推奨です。 AggregateColumnMode をListAndRetrieve に設定すると、集計カラムのデータがすべてのテーブルに常にリクエストされるようになります。 このデータがリクエストされる場合、 NetSuite がデータを返す速度が大幅に遅くなるので、Customer、PurchaseOrder、Invoice といった親テーブルのパフォーマンスを大きく低下させます。 AggregateColumnMode がList に設定されると、 NetSuite がデータをパフォーマンスの低下なしで取得するため、子テーブルからデータを取得する際に、集計カラムは必ずデータを返します。
カスタムレコード
カスタムレコードはフルテーブルとして公開されます。 NetSuite にデフォルトで公開されているレコードの種類のいくつかは、カスタムレコードとみなされます。NetSuite の[カスタマイゼーション]->[リスト]->[レコードとフィールド]->[レコードの種類]で利用可能なものは、CData ではすべてカスタムレコードとみなします。 この設定を変えるには、 IncludeCustomRecordTables を変更してください。
カスタムリスト
カスタムリストは、デフォルトでは公開されていません。NetSuite のカスタムリストは、いくつかの種類のカスタムフィールド用に選択可能な情報のリストです。 これらはほとんど変更されないため、通常重要なデータを含みません。 しかし、これらのリストはIncludeCustomListTables 接続プロパティをtrue に設定することで、テーブルとして公開することもできます。
カスタムフィールド
カスタムフィールドはデフォルトで公開されており、適切なテーブルに直接表示されます。カスタムフィールドはInvoice やCustomer のような親テーブルと、Invoice_itemList やCustomer_addressbookList のような子テーブルの両方に表示されます。 カスタムフィールドの公開は、IncludeCustomFieldColumns 接続プロパティで設定できます。
参照カラム
参照カラムはレコード参照を含むカラムです。例えば、Invoice は1つのEntity レコード参照を含みます。レコード参照は常にInternalId とName を、場合によってはType やExternalId など、さまざまな情報を返します。 NetSuite のレコード参照カラムの数が多いため、デフォルトではInternalId とName のみ表示されます。 この動作は、IncludeReferenceColumns 接続プロパティから変更できます。
レポート
レポートはNetSuite API ではサポートされていません。これはAPI 側の制限で、そのためCData およびサードパーティ製のツールではレポートが利用できません。NetSuite は代わりに、PostingTransactionSummary を使用して、レポートにあるような情報を取得することを推奨しています。 PostingTransactionSummary ビューはこうした情報にアクセスするために使用できます。
保存検索
NetSuite の保存検索はサポートされていますが、NetSuite API のためいくらか制限があります。詳しくは、 保存検索 を参照してください。