NickSuite
01/19/2022, 5:17 AMbattk
01/19/2022, 5:47 AMNickSuite
01/19/2022, 6:14 AMbattk
01/19/2022, 6:16 AMNickSuite
01/19/2022, 6:18 AMbattk
01/19/2022, 6:20 AMNickSuite
01/19/2022, 6:20 AMbattk
01/19/2022, 6:22 AMbattk
01/19/2022, 6:22 AMbattk
01/19/2022, 6:22 AMNickSuite
01/19/2022, 6:23 AMbattk
01/19/2022, 6:23 AMNickSuite
01/19/2022, 6:23 AMNickSuite
01/19/2022, 6:24 AMbattk
01/19/2022, 6:24 AMbattk
01/19/2022, 6:25 AMbattk
01/19/2022, 6:25 AMNickSuite
01/19/2022, 6:26 AMNickSuite
01/27/2022, 8:57 AMbattk
01/27/2022, 9:18 AMNickSuite
01/27/2022, 9:33 AMbattk
01/27/2022, 9:36 AMNickSuite
01/27/2022, 9:36 AMNickSuite
01/27/2022, 9:37 AMbattk
01/27/2022, 9:37 AMNickSuite
01/27/2022, 9:37 AMbattk
01/27/2022, 9:37 AMNickSuite
01/27/2022, 9:38 AMbattk
01/27/2022, 9:38 AMNickSuite
01/27/2022, 9:39 AM/**
* @NApiVersion 2.1
* @NScriptType Suitelet
*/
define(['N/https', 'N/search', 'N/record', 'N/file', './ns_handler'], (https, search, record, file, nsHandler) => {
/**
* Defines the Suitelet script trigger point.
* @param {Object} scriptContext
* @param {ServerRequest} scriptContext.request - Incoming request
* @param {ServerResponse} scriptContext.response - Suitelet response
* @since 2015.2
*/
function onRequest(scriptContext) {
var request = scriptContext.request;
var response = scriptContext.response;
var params = request.parameters;
//try {
if (request.method === 'GET') {
var customerId = params.customer_id;
var reqAuthKey = params.authentication_key;
var customerRec = record.load({type: record.Type.CUSTOMER, id: customerId});
var entityId = customerRec.getValue({fieldId: 'nameorig'});
var authKey = customerRec.getValue({fieldId: 'custentity_q3t_integration_key'});
log.debug('auth key', authKey);
log.debug('reqAuthKey', reqAuthKey);
if (authKey != reqAuthKey) {
log.error('Authentication key didn\'t match.');
response.write({
output: 'Invalid Request'
});
return;
}
var searchId = 'customsearch_se_pricefile_standard';
var searchObj = search.load({id: searchId, type: search.Type.PRICING});
searchObj.filters = searchObj.filters.concat([
search.createFilter({name: 'customer', operator: 'anyof', values: [customerId]})
]);
var searchResults = getResults(searchObj);
var content = results2CSV(searchResults);
response.write({output: content});
/*var pricingFile = file.create({
name: entityId + '_pricing_file.csv',
fileType: file.Type.CSV,
contents: content,
encoding: file.Encoding.UTF8
});
response.writeFile({
file: pricingFile
//isInline: true
});*/
}
//}
/*catch (e) {
log.error({title: 'Error', details: e.message || JSON.stringify(e) || 'No Meaningful message'});
response.write({
output: 'An error has occurred. Please contact the Administrator' +
'Error: ' + e.message
});
}*/
}
function getResults(searchObj) {
var runSearch = searchObj.run();
var results = [];
var count = 0;
var pageSize = 1000;
var start = 0;
do {
var subresults = runSearch.getRange({
start: start,
end: start + pageSize
});
results = results.concat(subresults);
count = subresults.length;
start += pageSize;
} while (count == pageSize);
log.debug('Results fetched', results.length);
return results;
}
function results2CSV(searchResults) {
log.debug('results2CSV');
var csv = [];
var cols = searchResults[0].columns || [];
var headerLine = [];
for (var j = 0; j < cols.length; j++) {
var col = cols[j];
var key = col.label || col.name;
headerLine.push(key);
}
var valueLines = [];
for (var i = 0; i < searchResults.length; i++) {
try {
var lineValue = [];
var searchResult = searchResults[i];
for (var j = 0; j < cols.length; j++) {
try {
var col = cols[j];
var val = searchResult.getText(col) || searchResult.getValue(col) || '';
lineValue.push(val);
}
catch (e) {
log.error('Error::Column loop', e);
}
}
valueLines.push(lineValue.join(','));
}
catch (e) {
log.error('For loop', e);
}
}
csv.push(headerLine.join(','));
csv.push(valueLines.join('\n'));
log.debug('csv', csv);
return csv.join('\n');
}
return {onRequest};
});
battk
01/27/2022, 9:40 AMbattk
01/27/2022, 9:41 AMNickSuite
01/27/2022, 9:41 AMbattk
01/27/2022, 9:41 AMNickSuite
01/27/2022, 9:41 AMbattk
01/27/2022, 9:42 AMNickSuite
01/27/2022, 9:42 AMNickSuite
01/27/2022, 9:42 AMbattk
01/27/2022, 9:42 AMNickSuite
01/27/2022, 9:43 AMNickSuite
01/27/2022, 9:43 AMNickSuite
01/27/2022, 9:43 AMbattk
01/27/2022, 9:47 AMbattk
01/27/2022, 9:47 AMbattk
01/27/2022, 9:48 AMNickSuite
01/27/2022, 9:48 AMbattk
01/27/2022, 9:49 AMNickSuite
01/27/2022, 9:54 AM