Long array to search cause SSS_REQUEST_TIME_EXCEEDED on Suitelet 2.x

Long array to search cause SSS_REQUEST_TIME_EXCEEDED on Suitelet 2.x
typescript
Ethan Jackson

I have IDs grouped by brands and array was long

// Set brand ID array for selected business var brandOptions = { BHS: [1, 2, 3, 4, 21, 22, 23, 24, 25, 26, 41, 48, 39, 40, 19, 75, 76, 81], LGPS: [16, 69, 70, 71, 72, 73, 77, 78], BGPS: [82], OVERVIEW: [1, 2, 3, 4, 21, 22, 23, 24, 25, 26, 41, 48, 39, 40, 19, 16, 69, 70, 71, 72, 73, 82, 75, 76, 77, 78, 81] }; info.brand = brandOptions[info.business_option] || [];

Section on displaying the data was in `info.output = '';

businessOptions.forEach(function(opt) { var displayStyle = info.business_option === opt ? '' : 'style="display:none;"'; var brand = brandOptions[opt] || []; var dataUrl = url.resolveScript({ scriptId: 'customscript_bhs20_sl_five9_report_data2', deploymentId: 'customdeploy_bhs20_sl_five9_report_data2', returnExternalUrl: true, params: { call: info.call, from: info.date_info.from_text, to: info.date_info.to_text, lgps: brand.join(',') } }); log.debug('Data url:', dataUrl); var tabContent = '<div id="tab-' + opt + '" class="tab-content" ' + displayStyle + '>'; /*var getData = https.get({ url: dataUrl }); log.debug('Get Data',getData); if (getData.code === 200) { var loadData = JSON.parse(getData.body); if (loadData.stats.length > 0) { tabContent += o.buildOutput(loadData, 'screen'); } }*/ try { var getData = https.get({ url: dataUrl, timeout: 5000 }); log.debug('Get Data', getData); if (getData.code === 200) { var loadData = JSON.parse(getData.body); if (loadData.stats.length > 0) { tabContent += o.buildOutput(loadData, 'screen'); } } } catch (e) { log.error('Failed to load data for option: ' + opt, e.message); tabContent += '<p class="error">Data unavailable for ' + opt + '.</p>'; } tabContent += '</div>'; info.output += tabContent; }); info.output += '</div>'; form.addField({ id: 'custpage_stats', type: widget.FieldType.INLINEHTML, label: 'Stats', container: 'custpage_stats_group' }).updateLayoutType({ layoutType: widget.FieldLayoutType.OUTSIDE }); form.getField('custpage_stats').defaultValue = info.output;`

When I search last month or last year search on my suitelet it shows Data unavailable for OVERVIEW. especially on brand with longer array. Is there something I can do to display data report on longer array for search?

Answer

You can raise the timeout setting slightly but this only delays the problem and may still fail

var getData = https.get({ url: dataUrl, timeout: 10000 // 10 seconds or longer });

Related Articles