如何使用 GET 方法访问 RESTlet SuiteScript 参数
How to access RESTlet SuiteScript parameters using GET method
我被困在一个可能有很多新 SuiteScript 黑客 会遇到的问题上。
如 official doc of SuiteScript 页所写。 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 应该只有 return 文本,顺便说一句。)
幸运的是,我自己找到了解决办法。在下面查看我的回答。
在此代码段中(与上面相同)...
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 语句,因为当我尝试 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.
}
希望这会对某人有所帮助。
我被困在一个可能有很多新 SuiteScript 黑客 会遇到的问题上。
如 official doc of SuiteScript 页所写。 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 应该只有 return 文本,顺便说一句。)
幸运的是,我自己找到了解决办法。在下面查看我的回答。
在此代码段中(与上面相同)...
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 语句,因为当我尝试 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.
}
希望这会对某人有所帮助。