我陷入了一个问题,可能会有很多新的SuiteScript黑客会这么做。
如official doc of SuiteScript p上所述。 243,有这个JS用于使用GET方法检索记录。
// Get a standard NetSuite record
function getRecord(datain) {
return nlapiLoadRecord(datain.recordtype, datain.id); // e.g recordtype="customer", id="769"
}
// http://rest.na1.netsuite.com/app/site/hosting/restlet.nl?script=22&deploy=1&recordtype=customer&id=769
但是,当我在NetSuite上尝试 EXACT 片段时,
datain.recordtype
是未定义的。 (并且return应该只返回文本,BTW。)幸运的是,我自己找到了解决方案。在下面检查我的答案。
最佳答案
在此代码段中(与上面相同)...
function getRecord(datain) {
return nlapiLoadRecord(datain.recordtype, datain.id); // e.g recordtype="customer", id="769"
}
// http://rest.na1.netsuite.com/app/site/hosting/restlet.nl?script=22&deploy=1&recordtype=customer&id=769
—SuiteScript并非将
datain
填充为对象或JSON,而是将其填充为字符串(出于我仍然忽略的原因)。您要做的只是之前解析它,然后使用点表示法访问JSON。
function getRecord(datain) {
var data = JSON.parse(datain); // <- this
return "This record is a " + data.recordtype + " and the ID is " + data.id;
}
// http://rest.na1.netsuite.com/app/site/hosting/restlet.nl?script=22&deploy=1&recordtype=customer&id=769
我更改了解决方案中的return语句,因为当我尝试返回不是文本的内容时,SuiteScript给我错误。要么
正如egrubaugh360所说,在查询脚本(调用SuiteScript脚本的脚本)上将
Content-Type
指定为application/json
。因此,如果您像我这样处理Node.js,它会给出类似的信息:
var options = {
headers: {
'Authorization': "<insert your NLAuth Authentification method here>",
"Content-Type" : "application/json" // <- this
}
}
https.request(options, function(results) {
// do something with results.
}
希望这会帮助某人。关于javascript - 如何使用GET方法访问RESTlet SuiteScript参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30388530/