NetSuiteの保存検索やレポートをマスターするための究極のガイドである
分析センターを使用して、データの力を最大限に活用しましょう。複雑さを単純化し、組織の真の可能性を解き放ちます。今すぐ
分析センターに参加して、新たな高みを目指しましょう!
NetSuite Release 2025.1リリース・ノートは、
こちらからダウンロードできます。
SuiteWorld 2025年10月6日~9日 アジェンダビルダーが公開されました!
SuiteWorldまであと41日となりました。以下の最新情報をご確認ください。
アジェンダビルダー公開
SuiteWorld On Airの登録受付開始
新しいNetSuite Prompt Studioコンテスト
その他の最新情報も!
詳細はこの
スレッドでご確認ください!
Please note that on Friday, September 19, 2025, at 8:00 PM Pacific time, our Case Management System will undergo a scheduled maintenance for approximately 4 hours. During this time, case creation via SuiteAnswers will be unavailable and inbound calls will be routed to Customer Service.
SuiteCloud 大容量データ処理に関する、5つのFAQ
NetSuiteのSuiteCloud Platformは、世界中の企業に広く採用されている堅牢なアプリケーションプラットフォームです。NetSuite で高度な大量データ処理ソリューションを構築する場合、開発者はしばしば特定のプラットフォーム制約に遭遇します。この FAQ では、仮想スクロール、レコード数の上限、一括マッチングの自動化、API タイムアウト、およびカスタムレコードの整合性という 5 つの技術的考慮事項について簡潔に説明し、NetSuite 内で効率的でスケーラブルなアプリケーションを開発するためのガイダンスを提供します。
質問 | 回答 |
---|
1.仮想スクロール (UI パフォーマンス) NetSuiteは従来のページングなしで 大きなデータセットをレンダリング する仮想スクロールグリッドを 再現できますか? | NetSuiteの標準UIリストはページング方式ですが、Suiteletフロントエンドは、インクリメンタルデータ取得とクライアントサイドの仮想スクロールにより、プラットフォームの制限内に収まりながら、ページングのないエクスペリエンスを再現することは可能です。主なポイント: - レイジーローディングまたは "無限スクロール "パターンを採用する:各AJAXコールは次のスライスを取得して、メモリ配列に追加する。
- JSONフィード用に、RESTletまたはセカンダリSuiteletエンドポイントを公開します。これにより、UIレイヤーをビジネスロジックから切り離します。
- SuiteScriptのガバナンスとHTTPタイムアウトの範囲内に収まるように、各データ呼び出しを小さく保つ(1,000レコード未満、5秒未満)。
- フィルタリングツールを提供し、ユーザーが結果のサイズを自然に小さくできるようにします。
注:上記は、仮想スクロールの実装を推奨しているわけではありません。以下のリンクはコミュニティフォーラムを指しており、参考のために提供されています。
|
2.レコード数の上限 (プラットフォームのスケーラビリティ) パフォーマンスのオーバーロードを 避けるためにNetSuiteはどのような レコード数制限やその他の上限を 推奨していますか? | UIは、リストまたは保存検索のいずれにおいても、最大で約10,000行を表示します。スクリプト呼び出し(N/search、SuiteQL)は、リクエストごとにおよそ最大1,000行を返します。これらの制限を超える場合は、明示的なページング(0 - 999, 1 000 - 1 999 ...)またはMap/Reduceジョブが必要です。これらの上限は意図的なもので、ブラウザを保護し、Suitelets/RESTletsの5分の上限を維持し、ガバナンスの利用を予測可能に保つためです。実用的なルール: - バルクマッチングでは、1回の長いRESTlet呼び出しではなく、バックグラウンドのMap/ReduceまたはScheduledスクリプトで1,000行のスライスをループします
- データを表示する際は、仮想ページまたは無限スクロールバッチごとに200~500行を表示する。作業セットが5,000行を超える場合は、条件を絞り込むようユーザーに促す。
- 可能であれば、古いカスタムレコードをアーカイブまたは要約し、日々のクエリーを軽量化しましょう。
|
3.バルクマッチングルーチン (バックエンド自動化) NetSuite は、一括照合用の temp-table やストアドプロシージャロジックを エミュレートできますか? | NetSuite は、SQL ストアドプロシージャや真のテンポラリテーブルをホストすることはできませんが、プラットフォーム内でバルクマッチングロジックをエミュレートすることは可能です。- データのステージング: 顧客、金額、日付、参照、内部IDのみを保持するカスタムレコード(例:ステージング請求書、ステージング支払)を作成します。これらのレコードは10万件以上まで拡張可能で、テンポラリテーブルのように機能します。 - 候補の抽出:SuiteScriptからSuiteQLを実行して、2つのステージングテーブルをJOINします(同じ顧客+同じ金額など)。SuiteQLは高速で読み取り専用のファインダーです。更新はスクリプトで実施します。
- マッチングを大容量データで行う(Map/Reduceジョブを起動する):Map-各ステージング支払をループし、SuiteQLファインダーを呼び出し、対象のステージング請求書を選択する。Reduce: 「結果一時仕訳」などを作成し、一致したステージング行をマークまたは削除します。自動イールドにより、ガバナンスやREST/Suiteletの5分制限にぶつかることなく、数万行を処理できます。
- 非同期実行: RESTlet、Suiteletボタン、またはワークフローを介してMap/Reduceをトリガーすることで、UIをレスポンシブに維持することができます。
https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_160045092035.html
|
4.実行時間の制約 (API と インテグレーションのパフォーマンス) NetSuite で長時間実行される SuiteScript または REST API 呼び出しには どのようなタイムアウトまたは 実行時間の制限が適用されますか? | SuiteScript エンドポイント(RESTlet/Suitelet)は、約5分(300秒)で停止します。この時間を越えると、リクエストは SSS_TIME_LIMIT_EXCEEDED を返します。 - 非同期フローの例: 1) ユーザーが「Start Matching」をクリックします。2) Suitelet/RESTlet が Map/Reduce を送信し、「進行中…」を表示します(タスク 123)。3) クライアントはタスクが完了するまで15秒ごとにポーリング(軽量 REST 呼び出し)を実行し、タスク完了後に結果を取得します。これにより、長時間接続やブラウザのフリーズは発生しません。
- ガバナンスの考慮事項: 各 SuiteScript 呼び出しはガバナンス単位を消費します。チャンク処理やバックグラウンド設計により使用を分散させ、自動的なリソース解放を可能にし、実行ごとの 10,000 単位の制限を超過しないようにします。
https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_161591009480.html
https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_N3351480.html
|
0
ようこそ!
登録アカウントがありませんか?ここをクリックして始めましょう!