NetSuiteデータ ソーステーブルとデータタイプ
Adaptive Integration 2017.1以降、NetSuiteアダプタはNetSuiteの2016.2 SuiteTalkウェブサービスをサポートしています。2017.1よりも前にプロビジョニングされたすべてのアダプタは、 NetSuiteの2013.2ウェブサービス商品に含まれています。Adaptive Insights NetSuite アダプタがNetSuite 2013.2からNetSuite 2016.2に自動移行されることはありません
サポートされるNetSuite テーブル
下表は、NetSuite Integrationでサポートされているテーブルに関する情報を示します。このテーブルの列は、次の情報を示します。
- 統合テーブル: 統合データ ソースに示されているテーブルの名前。
- テーブルソース: NetSuite スキーマブラウザで使用されているテーブルの名前 。
- アクセス: それぞれのNetSuite テーブルのアクセスメカニズム。タイプは次のとおりです。
- 「検索」とは、Integrationが指定されたAPIを使用して、検索条件に一致するすべてのレコードを取得することを意味します。“「制限付き検索」とは、Integrationが、NetSuiteが課す可能性のある検索の制限に加えて、検索に追加の制限を課すことを意味します。
- 「すべてを取得」とは、Integrationが指定されたAPIを使用して、すべてのレコードを取得することを意味します。
- 「差分」とは、Integrationが変更されたデータのみを取得することを意味します。
- コメント: テーブルに関するコメント。
Integration は、NetSuite ウェブサービスAPIによって公開されるカスタムNetSuite テーブルもサポートします。それぞれにインポートするテーブル/列を選択できます。
統合テーブル | テーブルソース | アクセス | コメント |
---|---|---|---|
Account | AccountSearchRowBasic | 検索 | |
AccountingPeriod | AccountingPeriodSearchRowBasic | 検索 | |
AdaptivePostingTransactionSummary |
統合データ ソースでAdaptiveによって作成されたテーブルで、NetSuiteでは使用できません。PostingTransactionSummaryテーブルを標準カテゴリーテーブル(科目、期間、子会社、部署、クラス、場所、項目、顧客)と結合します |
||
AllCustomLists | CustomList | すべてを取得 | |
Budget | BudgetSearchRowBasic | 検索 | |
BudgetExchangeRate | 特殊: getBudgetExchangeRate | 制限付き検索 | |
CalendarEvent | CalendarEventSearchRowBasic | 検索 | |
Campaign | CampaignSearchRowBasic | 差分 | |
CampaignCategory | CampaignCategory | すべてを取得 | |
CampaignFamily | CampaignFamily | すべてを取得 | |
Classification | ClassificationSearchRowBasic | 検索 | |
ConsolidatedExchangeRate | 特殊: getConsolidatedExchangeRate | 制限付き検索 | |
Contact | ContactSearchRowBasic | 検索 | |
Currency | Currency | すべてを取得 | |
CustomerCategory | CustomerSearchRowBasic | 差分 | |
CustomerStatus | CustomerCategorySearchRowBasic | 検索 | |
DeletedRecord | Special: getDeleted | 制限付き検索 | エンドユーザーによる使用はできません |
Department | DepartmentSearchRowBasic | 検索 | |
Employee | EmployeeSearchRowBasic | 差分 | |
EntityGroup | EntityGroupSearchRowBasic | 差分 | |
ExpenseCategory | ExpenseCategorySearchRowBasic | 検索 | |
Item | ItemSearchRowBasic | 差分 | |
Job | JobSearchRowBasic | 差分 | |
JobStatus | JobStatusSearchRowBasic | 検索 | |
JobType | JobTypeSearchRowBasic | 検索 | |
Location | LocationSearchRowBasic | ||
NetSuiteServerTime | 特殊: getServerTime | ||
Opportunity | OpportunitySearchRowBasic | ||
Partner | PartnerSearchRowBasic | ||
PostingTransactionBalance | 制限付き検索 |
統合ソースでAdaptiveによって作成されたテーブルで、NetSuiteでは使用できません。このテーブルには、期末残高が含まれています。 |
|
PostingTransactionSummary | 特殊: getPostingTransactionSummary | 制限付き検索 | |
ProjectTask | ProjectTaskSearchRowBasic | 差分 | |
PromotionCode | PromotionCodeSearchRowBasic | 検索 | |
SalesTaxItem | SalesTaxItem | すべてを取得 | |
Subsidiary | SubsidiarySearchRowBasic | 検索 | |
SupportCase | SupportCaseSearchRowBasic | 差分 | |
SupportCasePriority | SupportCasePriority | すべてを取得 | |
SupportCaseStatus | SupportCaseStatus | すべてを取得 | |
SupportIssue | IssueSearchRowBasic | 検索 | |
SupportSolution | SolutionSearchRowBasic | 検索 | |
SupportTopic | TopicSearchRowBasic | 検索 | |
Task | TaskSearchRowBasic | 検索 | |
TaxGroup | TaxGroup | すべてを取得 | |
TaxType | TaxType | すべてを取得 | |
Timebill | TimeBillSearchRowBasic | 差分 | |
Transaction | TransactionSearchRowBasic | 差分 | |
Vendor | VendorSearchRowBasic | 差分 |
AIで一般的に使用されているテーブル
次のテーブルは、NetSuite アダプタですぐにインポートできるようになっています。
- AdaptivePostingTransactionSummary (プランニング用のプライマリ ソーステーブル)
- 科目(Adaptive科目にマッピング)
- 分類(オプションのマッピング)
- 顧客(オプションのマッピング)
- 部署(オプションのマッピング)
- 項目(オプションのマッピング)
- 場所(オプションのマッピング)
- トランザクション転記の要約
- 子会社(通常はAdaptiveの組織にマッピングされます)
AdaptivePostingTransactionSummaryおよびPostingTransactionSummaryテーブルは月次差額を返す一方、PostingTransactionBalanceテーブルは期末残高を返します。AdaptivePostingTransactionSummaryおよびPostingTransactionSummaryテーブルは、標準カテゴリー(科目、期間、子会社、部署、クラス、場所、項目、顧客)をサポートします。追加のカテゴリーが必要な場合は、トランザクションテーブルを使用する必要があります。
差分更新されたテーブル
現在のNetSuite データ ソースで、次のテーブルが差分更新されます。
- Campaign
- Customer
- Employee
- EntityGroup
- Item
- Job
- Opportunity
- Partner
- ProjectTask
- SupportCase
- TimeBill
- Transaction
- Vendor
さらに、すべてのカスタムレコードタイプも差分更新されます。差分更新されたテーブルのデータインポートフィルターで差分日付列を使用することはできません。システムはこれを試みることを妨げませんが、差分更新メカニズムのエラーが発生します。
「探索中」、つまり列とフィルター設定を変更する際に、差分テーブルにインポートされるデータの量を制限できます。データ ソースには、差分データの完全負荷を短絡するためのメカニズムがあります。
下表には、すべての差分テーブルとその差分および作成日列が含まれています。
テーブル | 差分日列 | 作成日列 |
---|---|---|
Campaign | LastModifiedDate | CreatedDate |
Customer | LastModifiedDate | DateCreated |
CustomRecord (*) | LastModified | Created |
Employee | LastModifiedDate | CreatedDate |
EntityGroup | LastModifiedDate | -- なし -- |
Item | Modified | Created |
Job | LastModifiedDate | DateCreated |
Opportunity | LastModifiedDate | DateCreated |
Partner | LastModifiedDate | DateCreated |
ProjectTask | LastModifiedDate | CreatedDate |
SupportCase | LastModifiedDate | CreatedDate |
TimeBill | LastModified | DateCreated |
Transaction | LastModifiedDate | DateCreated |
Vendor | LastModifiedDate | DateCreated |
(*) - これはすべてのカスタムレコードに適用されます。
テーブルの [作成日] 列で、「~より大きい」または「~以上」のフィルターを指定すると、コードは完全なインポートをバイパスし、指定された日時から差分更新のみを行います。これはインポートされたデータを制限する際に役立ちます。差分アップロードされた大きなテーブルの探索を開始する場合に、最後の数日(または数週間)分のデータのみを抽出するようにフィルターを設定できます。この種のロードは非常に迅速に実行されます。そうすると、必要な列や使用したいその他のフィルター条件がわかります。そこで満足ならば、作成日フィルターを削除して、全データのロードを再開できます。
一部のテーブルについては、特定の日付より古いレコードが必要になることはないでしょう。それらのテーブルでは、適切な値で作成日フィルターを引き続き使用できます。
サポートされているNetSuite データタイプ
NetSuite からのデータが統合にインポートされると、そのデータの「タイプ」は、統合でサポートされているデータタイプのいずれかにマップする必要があります。
標準NetSuite データフィールド
「検索済み」テーブル内の標準NetSuite データフィールドには、次のマッピングを使用します。
NetSuite標準検索データタイプ | 統合データタイプ |
---|---|
SearchColumnStringField | Text |
SearchColumnSelectField | Text |
SearchColumnEnumSelectField | Text |
SearchColumnDoubleField | Float |
SearchColumnBooleanField | Boolean |
SearchColumnLongField | Integer |
SearchColumnTextNumberField | Text |
SearchColumnDateField | DateTime |
テーブル内の標準NetSuite データフィールド
テーブル内の標準NetSuite データフィールド(常に完全に取得されます)には、次のマッピングを使用します。
NetSuite 標準データタイプ | 統合データタイプ |
---|---|
String | Text |
RecordRef | Text |
Double | Text |
Boolean | Float |
Long | Boolean |
System.DateTimeFloat | Integer |
カスタムフィールド
NetSuite データソースは可能性のあるNetSuite カスタムフィールドのサブセットに対応します。
カスタムフィールドは次のレコードタイプに対応しています。
- CRMカスタムフィールド
- CalendarEvent
- Campaign
- SupportCase
- SupportIssue
- SupportSolution
- ProjectTask
- タスク
- カスタムエンティティフィールド
- お問い合わせ先
- 顧客
- 従業員
- エンティティグループ
- ジョブ
- パートナー
- ベンダー
- カスタム項目フィールド
- 項目
- カスタムトランザクションフィールド
- トランザクションボディ
- トランザクション列
- トランザクション項目
- その他のカスタムフィールド
- 科目
- 分類
- 部署
- 場所
- プロモーションコード
NetSuite ウェブサービスAPIでフィールドを表示するには、カスタムフィールドの [店舗価格] 特性にチェックマークを入れる必要があることに注意してください。
カスタムフィールド データタイプ
Adaptive Integrationは、定義済みのすべてのNetSuite カスタムフィールド データタイプをサポートします。ただし、統合は内部で5つの基本データタイプのみを実装するため、NetSuite カスタムフィールド データタイプは最も適切な統合データタイプにマップされます。下表は、このマッピングを示しています。
NetSuite データタイプ | 統合データタイプ | コメント |
---|---|---|
_checkBox | 浮動小数 | |
_currency | DateTime | |
_date | DateTime | |
_decimalNumber | 浮動小数 | |
_document | テキスト | 別のレコードの参照 |
_eMailAddress | テキスト | |
_freeFormText | テキスト | |
_help | テキスト | 「StoreValue」が設定されていません。NetSuite はこのタイプの取得を許可しません。 |
_hyperlink | テキスト | |
_image | テキスト | 別のレコードの参照 |
_inlineHTML | テキスト | |
_integerNumber | 整数 | |
_listRecord | テキスト | 別のレコードの参照 |
_longText | テキスト | |
_multipleSelect | テキスト | 指定されたタイプの他のゼロ以上のレコードの参照 |
_password | テキスト | |
_percent | 浮動小数 | |
_phoneNumber | テキスト | |
_richText | テキスト | |
_textArea | テキスト | |
_timeOfDay | DateTime | |
Netsuiteトランザクションタイプ
その他の情報
次のセクションでは、NetSuite データにアクセスするための追加の考慮事項について説明します。
データ インポートのフィルター
検索の各フィールドには、最大1つのフィルターを含めることができます。検索クエリが実行されると、フィルターはNetSuite によって「AND」で結合されます。
「検索」メカニズムを介してアクセスされるテーブルのみに、同期フィルターを設定できます。
また、[TableName]SearchRowBasicと[TableName]SearchBasicの両方に存在するフィールドのみが同期フィルターで使用できます。
ステージングから直接NetSuite をクエリ
(NetSuiteからステージングにインポートされた記録をクエリするのではなく)NetSuite を直接クエリする場合、フィルター式はウェブサービスを通じてNetSuite によって公開される機能に限定されます。
- 比較式と論理式を持つ単純な列フィルターは、NetSuiteをクエリする場合に使用できます。
- フィルターは「AND」で結合できますが、「OR」で結合することはできません。
- 演算子(+、-、/、*、$、||)を使用することはできません。
- スカラ関数は使用できません。
- CASE文は使用できません。
- カスタム列をフィルタリングするには、インポートするカスタム列にマークを付ける必要があります。
- 一部の列フィルターでは、フィルターを動作させるために特定のNetSuite 機能を有効にする必要があります。
一部のテーブルおよび一部の列は、フィルタリングをサポートしていません。
除外フィールド
さまざまな理由により、多くのNetSuite フィールドがインポートから除外されています。下表は、除外されたフィールドの一部を示しています。
NetSuite フィールド | 除外理由 |
---|---|
顧客: ccExpDate | プライバシー保護のため、クレジットカード情報は除外されます。 |
顧客: ccInternalId | プライバシー保護のため、クレジットカード情報は除外されます。 |
従業員: socialSecurityNumber | プライバシー保護のために除外されています。 |
SalesTaxItem: 郵便番号 | 郵便番号の区切りリスト。このテキストフィールドは非常に長くなる場合があり(テキストフィールドのデフォルトの1,024文字の制限より長い)、統合操作に特に有用ではありません。 |
トランザクション: ccExpDate | プライバシー保護のため、クレジットカード情報は除外されます。 |
フィールドに関する情報
NetSuite 標準およびカスタムフィールドに関する追加情報:
- テキストフィールドの最大サイズは1,024文字に制限されています。
- NetSuite 標準フィールドのカスタマイズはサポートされていません。
- カスタム非表示フィールドが表示されます。(NetSuite のウェブサービスを通じて表示されます。)
- 「店舗価格」特性が設定されているNetSuite カスタムフィールドのみがAdaptive Integrationにインポートされます。
保存済みの検索条件
NetSuite 保存済み検索を設定する方法については、NetSuite保存済み検索のインポートに関するAdaptive Integrationセクションを参照してください。
Adaptive InsightsからNetSuiteへのドリルスルー
顧客はNetSuiteからインポートしたデータのドリルスルーを有効化することができます。ドリルスルーのリンクは、[計画] シートおよびNetSuiteからインポートされた実績のレポートで利用可能になります。NetSuiteのドリルスルーを設定するためには、内部識別子が計画ローダ内の列マッピングの一部として使われていることを確認してください。NetSuite外部システムを設定し、計画ローダが使用するプロファイルに添付する必要があります。
NetSuite 側の複数の列を単一の「計画」属性にマップするよう設定する場合は、タプルSQL列を使ってそれらのNetSuite 列をデータソース内で一つにまとめる必要があります。詳細については、列/データマッピングとプロファイルに関するIntegrationセクションを参照してください。
ヒントとベストプラクティス
GL実績のインポートのプランニングをセットアップするためのベストプラクティス
トランザクションテーブルを使用してGL実績をインポートするには、プランニングのGL科目を「月次差額ごとの実績」に設定することを推奨します。この方法では、プランニングが貸借対照表科目の累積額を処理します。
NetSuite タイムアウトメッセージを処理するためのベストプラクティス
以下はNetSuite から返される可能性があるエラーの1つです。
検索がタイムアウトしました。検索に「contains」演算子が含まれる場合は、代わりに「hasKeywords」を使用してみてください。検索に広範な検索条件が含まれる場合は、条件を絞り込んでみてください。”
このエラーは、NetSuiteにおいて処理に時間がかかり過ぎていることを示しています。この状態は通常、リクエストのフィルター条件が非常に大きな結果を作成するために発生します。NetSuite では、リクエストの処理にかかる時間を約3分間許可しています。(これは、NetSuite内の実際のデータベースクエリに許可されている時間であることに注意してください。結果が返されるのに必要な時間は、NetSuiteのトラフィックポリシーによって制御されるため、はるかに長くなる可能性があります。)
このエラーに対処する方法はいくつかあります。望ましい一般的なガイドラインは、生成されるリクエストをできるだけ具体的なものにすることです。たとえば、ローダによって実際に使用されるトランザクションタイプのみを含むようにします。このエラーを防止または解決する別の方法は、[穴埋めバッチ処理期間] プロパティを使用することです。差分更新されるテーブルの場合、このプロパティは更新チャンクのサイズを決定します。穴埋めバッチ処理期間のデフォルト設定は168時間(1週間)です。ただし、高密度データのリクエストを処理している場合、この値は高すぎる可能性があります。この値を下げると、時間フィルターが絞り込まれ、個々のリクエストのサイズが小さくなるため、このエラーを防止または解決できます。
[穴埋めバッチ処理期間] プロパティの最小値は1時間です。ここでのトレードオフは、データを素早く大量に取り込むのではなく、少量のデータを取り込んでいることです。つまり、更新を完了するには、NetSuite にさらに多くのリクエストを送信する必要があります。たとえば、168を24に減らすことは、一度に1日分のみを取り込もうとしていることになります。ただしそれはリクエストの回数が7倍になることを意味します。
データの密度を事前に知る実用的な方法はないため、クエリを試して、必要に応じて [穴埋めバッチ処理期間] プロパティを調整して問題に対処することができます。
AllCustomListsステージング テーブルから個々のリストを作成
結合テーブルを使用して、AllCustomLists ステージング テーブルから個々のリストを抽出/フィルタリングできます。例えば、Resolutiontime の名前が付いたリスト( InternalId 19)のメンバーを含むテーブルを作成するには、次の手順を実行します。
この結合式では、InternalId 値は、必要とする特定のカスタム リストを選択する「セレクター」です。
- 新しい結合テーブルを作成します。テーブルの合理的な名前は、"CustomList[*]" となります。[*]は抽出するリストの「名前」値です。したがって、この例では、名前は "CustomListResolutiontime" となります。
- 主テーブルを "AllCustomLists" に設定します。
- 結合式を追加します。
- 主テーブル:AllCustomLists
- 結合済みのテーブル: AllCustomLists
- タイプ: 内部
- 列のプリフィックス:(空白)
- 結合式:
P."InternalId" = '19' and R."InternalId" = '19' and P."ValueId" = R."ValueId"
この結合式では、InternalId値は、必要とする特定のカスタム リストを選択する「セレクター」です。
結合テーブルでは、必要とする主テーブルからの列のみを選択できます(通常は "Value" および "ValueId" のみ)。
次のスクリーンショットは、この結果をキャプチャしたものです。
科目および組織データ作成のためのヒント
科目および組織データは顧客ごとに異なりますが、ここでは、プランニングに読み込む前に、データ デザイナーがステージング領域でSQL列を作成し、データを準備する方法を示す例をいくつかご紹介します。
科目:
CASE WHEN "acct.Number" is null THEN TRIM("acct.Name") ELSE TRIM("acct.Number") END
組織:
CASE WHEN "Department.Name" is null THEN 'No Department' ELSE TRIM("Department.Name") END || ' ' || "Location.Name"
ビジネスルールを使用するためのヒント
データ デザイナーでは、簡単に読み込むためのビジネスルールを作成できます。以下は、科目情報に関連するルールを取り扱うためのヒントです。
- 科目コードは、元に戻すGL科目の範囲を簡単に追加できるようにするため、数値とする必要があります。
- これらの種類の科目には下線を使用しないでください。下線を使用する場合、符号の変更に必要なすべての科目コードを手動で追加する必要があります。
- 科目コードにスペースを使用することはできません。
タイムゾーンの設定
Adaptive IntegrationにおけるNetSuite データ ソースの科目タイムゾーンは、[設定] > [タイムゾーンのローカライズ] 下のNetSuite’s GUIのタイムゾーンと一致していなければなりません。
これら2つが一致しない場合、以下のいずれかを行います。
- Adaptive Integration内で科目タイムゾーンを変更してそれらを一致させる。
- データ ソースに関連付けられているユーザーについて、NetSuite内のタイムゾーン設定を変更してそれらを一致させる。
外部参照
NetSuite APIのコアリソースは、NetSuite ウェブサイト(http://www.netsuite.com)のオンライン ヘルプ システムです。NetSuite は、製品の各リリースに伴い、このオンライン ヘルプのPDFを生成します。最新版は、"SuiteTalk (ウェブ サービス)記録ガイドを検索することで取得できます。”
NetSuiteの情報は、https://www.oracle.com/technical-resources/ にあります。アカウント登録する場合は、NetSuiteの対象領域へのアクセス権を申請できます。