Netsuite Suitelet-有效会话



我是NS Suitelet脚本的新手。

我已经创建了一个外部和内部suitelet,然后两者都部署了。

对于外部suitelet(loginform.js):

  • 我使用https://rest.netsuite.com/rest/roles并从表单中输入用户名和密码
  • 我得到一个响应代码200,NS返回用户的凭证
  • 在帖子上,我使用nlapiRequestURL(url),其中url是内部suitelet的端点

对于内部suitelet(verify.js)

  • 一个简单函数{ var login = nlapiGetLogin(); }
  • 因此,如果登录名不为null,则用户已登录

因此,如果我登录到Netsuite并执行内部suitelet,我将获得有效的登录对象。

但是,如果外部suitelet调用内部suitelet,它将抛出权限访问错误。

我在这里错过了什么?我知道我可能没有"有效的会话"。

我看到这个"有效会话"在开发人员指南中提到了很多,但它没有解释如何创建或获得这个会话。

请帮助我创建或获取此有效的NS会话。

内部套件要求用户进行身份验证。在这种情况下,外部suitelet(Netsuite)正在调用内部suitelet(也称为Netsuit),由于外部suitelte从未进行过身份验证,因此不会加载。Suitelets的身份验证过程旨在供浏览器在web界面上运行并安装cookie时使用。

您需要将两个Suitelet设置为外部,以便它们可以相互调用,您可能需要添加一个身份验证标头来保护连接。

或者,我建议只使用一个内部suitelet,并让Netsuite通过将用户设置为客户来处理登录/身份验证,授予他们访问权限,并使suitelet部署可用于客户角色。您甚至可以通过将Suitelet设置为以管理员身份运行来绕过客户权限。如果您不希望每个客户都可以访问Suitelet,那么只需在客户记录上设置一个自定义字段,以指示用户是否可以访问它。

最新更新