1

顧客の請求書を取得して削除する Map/Reduce スクリプトを作成しました。以下の条件に基づいて UI で保存済み検索を作成すると、400 万件のレコードが表示されます。ここでスクリプトを実行すると、「getInputData」ステージの最大ストレージ制限が 200Mb であるため、「getInputData」ステージが完了する前に実行が停止します。そのため、400 万レコードのうち最初の 4000 レコードを取得して実行し、15 分ごとにスクリプトをスケジュールします。これが最初の段階のコードです(getInputData)-

            var count=0;
                var counter=0;
                var result=[];
                var testSearch = search.create({
                    type: 'customrecord1',
                    filters: [ 'custrecord_date_created', 'notonorafter', 'sta​rtO​fLa​stM​ont​h' ],
                    columns: [ 'internalid' ]
                }); 
                do{
                    var resultSearch = testSearch.run().getRange({
                        start : count,
                        end   : count+1000
                    });
                    for(var arr=0;arr<resultSearch.length;arr++){
                        result.push(resultSearch[arr]);
                    }
                    counter = count+counter;                        
                }while(resultSearch.length >= 1000 && counter != 4000);
                return result;

保存済み検索の作成中に時間がかかります。保存済み検索の作成中に最初の 4000 レコードをフィルタリングできる回避策はありますか?

4

3 に答える 3