Tables
NetSuite のテーブルのメタデータは、実行時にNetSuite の定義済みの多数のスキーマ、および固有のNetSuite アカウント情報に基づいて取得されます。 カスタムテーブルおよびカスタムフィールドが一覧表示され、他のテーブルと同様に操作できます。 connector には、独自の機能を持ついくつかの異なるタイプのテーブルが用意されています。 このセクションでは、各種テーブルの使い方に関する説明やサンプルを見ることができます。
エンティティテーブル
エンティティテーブルは、NetSuite のエンティティを表します。これらのアイテムは標準のリストに存在し、エンティティは子リストに表示されるか、InternalId 経由でトランザクションで参照されます。
エンティティテーブルは集計カラムを含む場合があります。
例えば、Account テーブルはSubsidiaryListAggregate カラムを持ちます。
このカラムは、アカウントに関連のある子会社のXML 形式のリストを含みます。
これらは集計を更新することで修正できます。次に例を示します。
UPDATE Account SET SubsidiaryListAggregate = '<Account_subsidiaryList><Row><SubsidiaryList_InternalId>00001</SubsidiaryList_InternalId></Row><Row><SubsidiaryList_InternalId>00002</SubsidiaryList_InternalId></Row></Account_subsidiaryList>' WHERE InternalId = @AccountInternalId
エンティティテーブルの例をいくつか示します。
名前 | 説明 |
Account | NetSuite のAccount テーブル。 |
Contact | NetSuite のContact テーブル。 |
Customer | NetSuite のCustomer テーブル。 |
Department | NetSuite のDepartment テーブル。 |
DiscountItem | NetSuite のDiscountItem テーブル。 |
Employee | NetSuite のEmployee テーブル。 |
InventoryItem | NetSuite のInventoryItem テーブル。 |
NonInventoryPurchaseItem | NetSuite のNonInventoryPurchaseItem テーブル。 |
Subsidiary | NetSuite のSubsidiary テーブル。 |
Vendor | NetSuite のVendor テーブル。 |
トランザクションテーブル
トランザクションテーブルは、NetSuite のトランザクションを表します。これらのトランザクションは、操作上、エンティティと同様に動作します。
ただし、いくつかのトランザクションでは、挿入を行うためにline アイテムを指定するよう要求される場合があります。
これらは、該当するすべてのリストで利用可能なItemListAggregate フィールドを使って指定できます。
AggregateColumnMode 接続プロパティをList に設定すると、これらのカラムが表示されます。
例えば、パラメータ化されたクエリが2つのline アイテムを持つCashRefund レコードを挿入する例を以下に示します。
<CashRefund_itemList> <Row> <itemlist_rate>2.00</itemlist_rate> <itemlist_taxcode_name>CA-ALAMEDA</itemlist_taxcode_name> <itemlist_units_name></itemlist_item_units_name> <itemlist_amount>2.0</itemlist_amount> <itemlist_item_internalid>860</itemlist_item_internalid> <itemlist_price_internalid>1</itemlist_price_internalid> <itemlist_taxcode_internalid>-159</itemlist_taxcode_internalid> <itemlist_description>Item Description</itemlist_description> <itemlist_item_name>Backing</itemlist_item_name> <itemlist_taxrate1>8.25%</itemlist_taxrate1> <itemlist_price_name>Base Price</itemlist_price_name> <itemlist_units_internalid></itemlist_units_internalid> <itemlist_quantity>1.0</itemlist_quantity> <itemlist_costestimate>0.0</itemlist_costestimate> </Row> <Row> <itemlist_taxcode_name>-Not Taxable-</itemlist_taxcode_name> <itemlist_units_name>Ea</itemlist_units_name> <itemlist_amount>100.0</itemlist_amount> <itemlist_item_internalid>704</itemlist_item_internalid> <itemlist_price_internalid>-1</itemlist_price_internalid> <itemlist_taxcode_internalid>-7</itemlist_taxcode_internalid> <itemlist_description>Designer Seat / Back Cushions</itemlist_description> <itemlist_item_name>Designer Seat Cushions</itemlist_item_name> <itemlist_price_name>Custom</itemlist_price_name> <itemlist_units_internalid>1</itemlist_units_internalid> <itemlist_quantity>4.0</itemlist_quantity> <itemlist_costestimate>100.0</itemlist_costestimate> </Row> </CashRefund_itemList> INSERT INTO CashRefund (entity_internalId, location_internalid, exchangerate, trandate, postingperiod_internalid, itemListAggregate) VALUES (@EntityInternalId, @LocationInternalId, '1', '01/22/2012', @PostingPeriodInternalId, @ItemListAggregate)
トランザクションテーブルの例をいくつか示します。
名前 | 説明 |
CashRefund | NetSuite のCashRefund テーブル。 |
CreditMemo | NetSuite のCreditMemo テーブル。 |
Estimate | NetSuite のEstimate テーブル。 |
Invoice | NetSuite のInvoice テーブル。 |
PurchaseOrder | NetSuite のPurchaseOrder テーブル。 |
SalesOrder | NetSuite のSalesOrder テーブル。 |
VendorBill | NetSuite のVendorBill テーブル。 |
VendorCredit | NetSuite のVendorCredit テーブル。 |
VendorPayment | NetSuite のVendorPayment テーブル。 |
WorkOrder | NetSuite のWorkOrder テーブル。 |
子リストテーブル
多くのテーブルには、テーブル上の指定されたエントリの一部として存在できる多くのリストがあります。CData はこのデータを、XML 集計カラムとして直接テーブルに表示します。 これらの子リストは、各行がリスト自体のシングルエントリを表す独自のテーブルとしてアクセスすることも可能です。 子テーブルを有効にするには、IncludeChildTables 接続プロパティをtrue に設定します。
子テーブルは、常にParentTableName_ChildListName 形式で表示されます。例えば、CashRefund_itemList です。すべての子テーブルは、子リスト自体の修正、または基本エンティティやトランザクションの挿入 / 更新に使用できます。 唯一の例外として、子テーブルから基本エンティティを削除することはできません。 削除コマンドは、子リストから指定した行を削除するコマンドとして解釈されます。
子テーブルを使用して挿入する場合、上記で説明したように、#TEMP テーブルを使用して、最終的に親テーブルに渡される構造を設定できます。次に例を示します。
INSERT INTO CashRefund_itemList#TEMP (entity_internalId, itemlist_rate, itemlist_taxcode_name, itemlist_amount, itemlist_item_internalid, itemlist_price_internalid, itemlist_taxcode_internalid, itemlist_description, itemlist_item_name, itemlist_taxrate1, itemlist_price_name, itemlist_quantity, itemlist_costestimate, itemlist_units_name, itemlist_units_internalid) VALUES (@EntityInternalId, @LocationInternalId, '1', '01/22/2012', @PostingPeriodInternalId, '2.00', 'CA-ALAMEDA', '2.0', '860', '1', '-159', 'xxxx', 'Backing', '8.25%', 'Base Price', '1.0', '0.0', '', '') INSERT INTO CashRefund_itemList#TEMP (entity_internalId, itemlist_taxcode_name, itemlist_units_name, itemlist_amount, itemlist_item_internalid, itemlist_price_internalid, itemlist_taxcode_internalid, itemlist_description, itemlist_item_name, itemlist_price_name, itemlist_units_internalid, itemlist_quantity, itemlist_costestimate) VALUES (@CashRefundInternalId, @EntityInternalId, @LocationInternalId, '1', '01/22/2012', @PostingPeriodInternalId, '-Not Taxable-', 'Ea', '100.0', '704', '-1', '-7', 'Designer Seat / Back Cushions', 'Designer Seat Cushions', 'Custom', '1', '4.0', '100.0') INSERT INTO CashRefund (entity_internalId, location_internalid, exchangerate, trandate, postingperiod_internalid, ItemListAggregate) VALUES (@EntityInternalId, @LocationInternalId, '1', '01/22/2012', @PostingPeriodInternalId, 'CashRefund_itemList#TEMP')
あるいは、子テーブルを使用して完全な親子レコードを挿入することもできます。しかし、この方法で挿入できる子レコードは1つだけです。たとえば、次の例では、それぞれに2つの項目を持つ2つの個別のCashRefund レコードが作成されます。
INSERT INTO CashRefund_itemList (entity_internalId, location_internalid, exchangerate, trandate, postingperiod_internalid, itemlist_taxcode_name, itemlist_units_name, itemlist_amount, itemlist_item_internalid, itemlist_price_internalid, itemlist_taxcode_internalid, itemlist_description, itemlist_item_name, itemlist_price_name, itemlist_units_internalid, itemlist_quantity, itemlist_costestimate) VALUES (@EntityInternalId, @LocationInternalId, '1', '01/22/2012', @PostingPeriodInternalId, '-Not Taxable-', 'Ea', '100.0', '704', '-1', '-7', 'Designer Seat / Back Cushions', 'Designer Seat Cushions', 'Custom', '1', '4.0', '100.0') INSERT INTO CashRefund_itemList (entity_internalId, location_internalid, exchangerate, trandate, postingperiod_internalid, itemlist_taxcode_name, itemlist_units_name, itemlist_amount, itemlist_item_internalid, itemlist_price_internalid, itemlist_taxcode_internalid, itemlist_description, itemlist_item_name, itemlist_price_name, itemlist_units_internalid, itemlist_quantity, itemlist_costestimate) VALUES (@EntityInternalId, @LocationInternalId, '2', '01/23/2012', @PostingPeriodInternalId, '-Not Taxable-', 'Ea', '101.0', '704', '-1', '-7', 'Designer Seat / Back Cushions', 'Designer Seat Cushions', 'Custom', '1', '4.0', '101.0')
既存のエンティティに行を追加するには、INSERT ステートメントでエンティティのInternalId を指定するだけです。
次に例を示します。
INSERT INTO CashRefund_itemList (InternalId, entity_internalId, location_internalid, exchangerate, trandate, postingperiod_internalid, itemlist_rate, itemlist_taxcode_name, itemlist_amount, itemlist_item_internalid, itemlist_price_internalid, itemlist_taxcode_internalid, itemlist_description, itemlist_item_name, itemlist_taxrate1, itemlist_price_name, itemlist_quantity, itemlist_costestimate, itemlist_units_name, itemlist_units_internalid) VALUES (@CashRefundInternalId, @EntityInternalId, @LocationInternalId, '1', '01/22/2012', @PostingPeriodInternalId, '2.00', 'CA-ALAMEDA', '2.0', '860', '1', '-159', 'xxxx', 'Backing', '8.25%', 'Base Price', '1.0', '0.0', '', '') INSERT INTO CashRefund_itemList (InternalId, entity_internalId, location_internalid, exchangerate, trandate, postingperiod_internalid, itemlist_taxcode_name, itemlist_units_name, itemlist_amount, itemlist_item_internalid, itemlist_price_internalid, itemlist_taxcode_internalid, itemlist_description, itemlist_item_name, itemlist_price_name, itemlist_units_internalid, itemlist_quantity, itemlist_costestimate) VALUES (@CashRefundInternalId, @EntityInternalId, @LocationInternalId, '1', '01/22/2012', @PostingPeriodInternalId, '-Not Taxable-', 'Ea', '100.0', '704', '-1', '-7', 'Designer Seat / Back Cushions', 'Designer Seat Cushions', 'Custom', '1', '4.0', '100.0')
シンプルテーブル
テーブルからデータを選択する場合、多くのテーブルはWHERE 句と一緒に使用できます。 しかし、NetSuite API には併用できず、すべてのアイテムがリストされるテーブルがあります。 これらは大抵の場合、返すデータをほとんど持たないシンプルなテーブルです。
デフォルトで設定されているSupportEnhancedSQL 機能を使うと、これらテーブルに対してクエリでWHERE 句を利用できます。 この機能を使うと、以下のテーブルがWHERE 句で使用可能になります。
名前 | 説明 |
BudgetCategory | NetSuite のBudgetCategory テーブル。 |
CampaignAudience | NetSuite のCampaignAudience テーブル。 |
CampaignCategory | NetSuite のCampaignCategory テーブル。 |
CampaignChannel | NetSuite のCampaignChannel テーブル。 |
CampaignFamily | NetSuite のCampaignFamily テーブル。 |
CampaignOffer | NetSuite のCampaignOffer テーブル。 |
CampaignSearchEngine | NetSuite のCampaignSearchEngine テーブル。 |
CampaignSubscription | NetSuite のCampaignSubscription テーブル。 |
CampaignVertical | NetSuite のCampaignVertical テーブル。 |
CostCategory | NetSuite のCostCategory テーブル。 |
Currency | NetSuite のCurrency テーブル。 |
LeadSource | NetSuite のLeadSource テーブル。 |
SalesTaxItem | NetSuite のSalesTaxItem テーブル。 |
State | NetSuite のState テーブル。 |
SupportCaseIssue | NetSuite のSupportCaseIssue テーブル。 |
SupportCaseOrigin | NetSuite のSupportCaseOrigin テーブル。 |
SupportCasePriority | NetSuite のSupportCasePriority テーブル。 |
SupportCaseStatus | NetSuite のSupportCaseStatus テーブル。 |
SupportCaseType | NetSuite のSupportCaseType テーブル。 |
TaxGroup | NetSuite のTaxGroup テーブル。 |
TaxType | NetSuite のTaxType テーブル。 |
カスタムテーブル
カスタムテーブルは、NetSuite で作成されたあらゆるカスタムエンティティをリストします。これらも、トランザクションテーブルやエンティティテーブルと同じように動作します。 ただし、カスタムテーブルは集計カラムを持ちません。