私はレコードタイプとインデックスに基づいてレコードを取得しようとします。Netsuite API応答に長時間かける
要求: { "RECORDTYPE": "顧客"、 "gu_action": "GET_ALL"、 "サイズ":1000、 "インデックス":0}
その作品罰金。しかしApiはすべてのapi呼び出しのために応答に4-5のminituesを取っている。どのようにこの時間を減らすためにどのようなアイデア?
私のRestletコード:
GET_ALLアクションがget_Allrecords関数を呼び出します:get_Allrecords
バックGET_ALLレコードの
/********************** Get All records of Record type *******************************/
function get_Allrecords(datain) {
var all_IDs = getAllIDs(datain);
var len = all_IDs.length;
var result = new Array();
var results = new Array();
var fields = datain.fields;
for (var i = 0; i < len; i++) {
var required_result = {};
try {
result[i] = **nlapiLoadRecord(all_IDs[i].getRecordType(), all_IDs[i].id);**
if(fields != undefined && fields.length > 0) {
for(var j = 0; j<fields.length; j++){
req = fields[j];
if(result[i].getFieldValue(req) != undefined){
required_result[req] = result[i].getFieldValue(req);
}
if(req == "recordtype"){
required_result[req] = all_IDs[i].getRecordType();
}
}
} else {
required_result =result[i];
}
} catch (ex) {
if (ex.code == "INSUFFICIENT_PERMISSION") {
}
} //try.... catch... ends
results.push(required_result);
} //for ends
return results;
}
/コール/
function getAllIDs(datain) {
var MAX_SIZE = typeof(datain.size) == 'undefined' ? 200 : datain.size;
var INDEX = 0;
if (typeof(datain.index) !== 'undefined') {
INDEX = datain.index * MAX_SIZE;
MAX_SIZE += INDEX;
}
/*** Define search filters ***/
var NS_filters = new Array();
var columns = new Array();
columns[0] = new nlobjSearchColumn('lastmodifieddate').setSort(1);
var search = **nlapiCreateSearch(datain.recordtype, NS_filters, columns)**
var results = search.runSearch();
var records = results.getResults(INDEX, MAX_SIZE);
return records;
}
ありがとう@erictgrubaugh – Saravanakumar