ディスカッション
AIを用いた自動化で請求書処理を合理化
AIを用いた考察を使用して、計画と予測を迅速化
SuiteWorldまであと41日となりました。以下の最新情報をご確認ください。
アジェンダビルダー公開
SuiteWorld On Airの登録受付開始
新しいNetSuite Prompt Studioコンテスト
その他の最新情報も!
詳細はこのスレッドでご確認ください!
Map Reduceスクリプトで複数の計算式列を持つカスタム検索を使用する
適用
製品: NetSuite 2022.1
シナリオ
保存検索結果を Map Red スクリプトに使用しています。検索結果のすべての数値式列を取得し、それをマッピング処理に使用する方法を知りたい。
解決策
SuiteScript API - search.ResultSet を使用して検索結果行を1行取得する際、複数の種類の数式を使用している場合、数式列の名前に数字が追加されます。 例えば、このスクリプトでは、保存検索で3つの計算式(数式)列を使用しているとすると、APIの実行時には、Formulanumeric, formulanumeric_1, formulanumeric_2というように計算式の名前が表示されます。 以下のスクリプトは、保存検索の結果が1000件以上であっても、その結果をすべて返します。重要なのは、収集したデータが検索結果の合計と等しくなるまで、do whileループ内でgetRangeメソッドを使用することです。 以下、サンプルコード:
function getInputData() {
var soSearch = search.load({
id: 'customsearch76'
});
var soResult = [];
var count = 0;
var pageSize = 1000;
var start = 0;
do {
var soResultSet = soSearch.run().getRange({
start: start,
end: start + pageSize
});
soResult = soResult.concat(soResultSet);
count = soResultSet.length;
start += pageSize;
} while (count == pageSize);
return soResult
}
function map(context) {
log.debug('In Map Stage');
var searchResult = JSON.parse(context.value);
log.debug({
title: 'First formula',
details: searchResult.values.formulanumeric
});
log.debug({
title: 'Second Formula',
details: searchResult.values.formulanumeric_1
});
log.debug({
title: 'Third Formula',
details: searchResult.values.formulanumeric_2
});
}
免責事項
ここに記載されているサンプルコードは、法律で認められている最大限の範囲で、いかなる種類の保証もなく、「現状のまま」で提供されています。Oracle+NetSuite社は、開発者がそれぞれの開発プラットフォームにサンプルコードを実装したり、独自の Web サーバー構成を使用したりする際に、個々の成功を保証するものではありません。