CData NetSuiteドライバーでカスタムフィールドの取得を制御する:IncludeCustomFieldColumnsとCustomFieldPermissions活用ガイド

by 浦邊信太郎 | June 2, 2026 | Last Updated: June 2, 2026

NetSuiteはカスタムフィールドを豊富にサポートしており、企業ごとに独自の項目を追加して業務データを管理できます。CData NetSuiteドライバーには、これらのカスタムフィールドをどのように扱うかを制御する2つの重要な接続プロパティが用意されています。それが IncludeCustomFieldColumnsCustomFieldPermissions です。本記事では、両プロパティの仕組みと使い分け方を、実際の接続文字列例やよくあるエラーへの対処法とともに解説します。

カスタムフィールドとは

NetSuiteでは標準項目に加え、管理者がビジネス要件に合わせてカスタムフィールドを追加できます。例えば「顧客登録番号」「内部承認コード」「特定業種向けの分類コード」など、標準フィールドには存在しない情報を各レコードに付与できます。

CData NetSuiteドライバーはこれらのカスタムフィールドを、通常のテーブルカラムと同様に扱えるよう設計されています。ただし、カスタムフィールドのメタデータはNetSuiteのAPIを通じて動的に取得するため、いくつかの設定で挙動をコントロールできます。

IncludeCustomFieldColumns

概要

IncludeCustomFieldColumns はブール型(true / false)のプロパティで、カスタムフィールドを各テーブルのカラムとして表示するかどうかを制御します。

設定値

挙動

true(デフォルト)

カスタムフィールドがテーブルの個別カラムとして表示される

false

カスタムフィールドはカラムとして表示されない

動作の詳細

true に設定すると、接続を初めて開いたときにNetSuiteのAPIへメタデータリクエストを送り、カスタムフィールド情報を取得します。取得したメタデータは接続オブジェクト内にキャッシュされ、接続が閉じられると破棄されます。

このため、接続初回のメタデータ取得にはパフォーマンスコストが発生します。カスタムフィールドの数が多い環境では、接続確立まで数秒〜数十秒かかる場合があります。一方で、一度キャッシュされれば以降のクエリはスムーズに実行できます。

SuiteQLスキーマを使用している場合、このプロパティと IncludeCustomRecordTablestrue にすることで、カスタムフィールドのメタデータをAPIから正確に取得できます。

接続文字列の例(JDBC)

# カスタムフィールドを有効化する場合(デフォルト)
jdbc:netsuite:AccountId=[your_account_id];AuthScheme=Token;OAuthClientId=[your client id];OAuthClientSecret=[your client secret];OAuthAccessToken=[your token];OAuthAccessTokenSecret=[your token_secret];RoleId=[your_role_id];IncludeCustomFieldColumns=true;
# カスタムフィールドが不要でパフォーマンスを優先する場合
jdbc:netsuite:AccountId=[your_account_id];AuthScheme=Token;OAuthClientId=[your client id];OAuthClientSecret=[your client secret];OAuthAccessToken=[your token];OAuthAccessTokenSecret=[your token secret];RoleId=[your_role_id];IncludeCustomFieldColumns=false;

いつ false にすべきか

以下のシナリオでは false への変更を検討してください。

  • カスタムフィールドを一切参照しないバッチ処理や定期レポートで、接続のオーバーヘッドを削減したい場合

  • 接続プールを多用しており、接続ごとのメタデータ取得コストを抑えたい場合

  • 接続確立の速度が最優先で、カスタムフィールドへのアクセスは別の接続で行う場合

CustomFieldPermissions

概要

CustomFieldPermissions は文字列型のプロパティで、どの種類のカスタムフィールドのメタデータを取得するかを細かく指定します。カンマ区切りで複数の権限カテゴリを列挙できます。

このプロパティが空(デフォルト)の場合、IncludeCustomFieldColumns の設定が優先されます。値を設定した場合は IncludeCustomFieldColumns の設定を上書きし、指定されたカテゴリのカスタムフィールドのみを取得します。

指定できるカスタムフィールド権限カテゴリ

NetSuiteで利用可能なカスタムフィールド権限カテゴリは以下のとおりです。

カテゴリ名

対象

Custom Body Fields

レコード本体に付与されたカスタムフィールド(受注・請求書など)

Custom Column Fields

明細行(サブリスト)に付与されたカスタムフィールド

Custom Entity Fields

顧客・取引先・従業員など「エンティティ」レコードのカスタムフィールド

Custom Event Fields

イベントやタスクに付与されたカスタムフィールド

Custom Item Fields

商品・品目レコードのカスタムフィールド

Item Number Fields

品目番号(シリアル番号・ロット番号)のカスタムフィールド

Other Custom Fields

上記に分類されないその他のカスタムフィールド

すべてのカスタムフィールドを取得する場合

# プロパティ設定例(すべてのカスタムフィールドを対象にする)
CustomFieldPermissions=Custom Body Fields, Custom Column Fields, Custom Entity Fields,
  Custom Event Fields, Custom Item Fields, Item Number Fields, Other Custom Fields

特定カテゴリのみを取得する場合

権限が制限されたロールを使って接続しており、一部のカスタムフィールドしかアクセスできない場合に有効です。例えば、顧客エンティティのカスタムフィールドと商品のカスタムフィールドのみを取得したい場合は次のように設定します。

# プロパティ設定例(一部のカスタムフィールドを対象にする)
CustomFieldPermissions=Custom Entity Fields, Custom Item Fields

両プロパティの優先関係と使い分け

以下の図で関係を整理します。

CData NetSuiteドライバーでカスタムフィールドの取得を制御する:IncludeCustomFieldColumnsとCustomFieldPermissions活用ガイド

実務上の推奨設定パターンは以下のとおりです。

パターンA:全カスタムフィールドを取得(開発・調査用途)

IncludeCustomFieldColumns=true
# CustomFieldPermissions は空のまま

パターンB:特定カテゴリのみ取得(本番運用・権限制限環境)

CustomFieldPermissions=Custom Body Fields, Custom Entity Fields

パターンC:カスタムフィールド不要(パフォーマンス最優先)

IncludeCustomFieldColumns=false

まとめ

IncludeCustomFieldColumnsCustomFieldPermissions を適切に設定することで、CData NetSuiteドライバーはカスタムフィールドへのアクセスをより柔軟かつ効率的に制御できます。権限が限定されたロールを使う本番環境では CustomFieldPermissions で必要なカテゴリのみを指定し、パフォーマンスとセキュリティの両立を図ることが重要です。