gpt4 book ai didi

Netsuite API 响应时间较长

转载 作者:行者123 更新时间:2023-12-02 04:03:29 25 4
gpt4 key购买 nike

我尝试根据记录类型和索引获取记录。

请求: {"recordtype":"customer","gu_action":"get_all","size":1000,"index":0}

它的工作正常。但 Api 每次 api 调用都需要 4-5 分钟来响应。知道如何减少这个时间吗?

我的 ReSTLet 代码:

get_all 操作将调用 get_Allrecords 函数:

/********************** 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;
}

/get_All Records回调/

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;
}

最佳答案

get_Allrecords 中的 nlapiLoadRecord 调用是您的性能瓶颈。从数据库加载整个记录是 SuiteScript 中最昂贵的操作之一 - 特别是如果记录是事务 - 并且您在请求中加载 1000 条记录。

在 NetSuite 中加载较重的记录(即事务)可能需要几秒钟的时间,因此 1,000 条记录需要几分钟的时间也就不足为奇了。

您真的需要每条记录上的所有字段吗?您将从仅包含每条记录所需的列的单个搜索中获得更好的性能,而不是尝试加载每条完整记录。

如果您确实需要每条记录上的所有字段,则可能需要查看 SuiteTalk SOAP API;虽然它的性能通常比 RESTlet 慢得多,但在处理像这样的非常大的请求时,它的性能可以优于 RESTlet。

关于Netsuite API 响应时间较长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40764826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com