gpt4 book ai didi

netsuite - 尝试 NetSuite 的 ReSTLet 接口(interface)时出错 : datain is null

转载 作者:行者123 更新时间:2023-12-02 10:10:49 24 4
gpt4 key购买 nike

我是第一次尝试 ReSTLet,但在返回任何数据时遇到问题。

我已经构建了一个基本的 ReSTLet 并将其部署在 NetSuite 中。代码如下:

function getRESTlet(dataIn) {   
return nlapiLoadRecord(dataIn.recordtype, dataIn.id); // e.g recordtype="customer", id="769"
}

使用 Chrome 的 REST 控制台应用程序,我设置了以下内容:

Request URI: https://rest.netsuite.com/app/site/hosting/restlet.nl?script=123&deploy=1&recordtype=customer&id=2409
Request Headers: NLAuth nlauth_account=123456,nlauth_email=email@emailaddy.com,nlauth_signature=password

将其作为 GET 操作运行,我返回以下错误:

error code: JS_EXCEPTION
error message:type

随后是以下电子邮件:

Date & Time: 8/19/2013 2:48 pm
Execution Time: 0.06s
Script Usage: 0
Script: getRecord
Type: RESTlet
Function: getRESTlet
Error: SSS_MISSING_REQD_ARGUMENT
type
Stack Trace: getRESTlet(getCustomer.js:14)
restletwrapper(null$lib:3)

客户记录存在,RestLet 代码来自 NetSuite 帮助系统,并且当脚本失败时我收到错误电子邮件,因此我知道部署 URL 是正确的。

关于我做错了什么有什么想法吗?

--编辑--

将我的函数签名更改为 function getRESTlet(type,dataIn) 可以解决类型错误,尽管现在我得到:

error code: UNEXPECTED_ERROR
error message:TypeError: Cannot read property "recordtype" from undefined (getCustomer.js#14)

我还从请求 URI 中删除了 customerid,并将它们列在请求有效负载中> REST 控制台部分。

--编辑2--

向函数添加 nlapiLogExecution('DEBUG', 'JSON.stringify(datain) is:', JSON.stringify(datain)); 会为日志条目返回空白。看来 datain 为空......

最佳答案

我遇到了类似的问题,在将请求 header 内容类型设置为 application/json 后解决了该问题。

默认的内容类型是text/plain,它将字符串化的JSON对象传递给函数并期望返回一个字符串。

如果将内容类型设置为 application/json 或 application/xml,“datain”参数将作为 JavaScript 对象传入。

来自 NetSuite 文档:

If users specify a content type other than JSON or TEXT, a 415 error is returned with the following message:

Invalid content type. You can only use application/json, application/xml or text/plain with RESTlets.

If users provide data in a format different from specified type, the following error is returned with one of the following messages:

Error code = INVALID_RETURN_DATA_FORMAT Error message = Invalid data format. You should return TEXT. Error message = Invalid data format. You should return a JavaScript object.

关于netsuite - 尝试 NetSuite 的 ReSTLet 接口(interface)时出错 : datain is null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18321065/

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