我创建了一个UE脚本,该脚本添加一个按钮并加载到CS脚本中。单击按钮时,CS脚本依次调用SL脚本。
我部署了要作为管理员角色执行的suitelet脚本,每个角色也是受众的一部分。
我的CS脚本:
https.post.promise({
url: "https://"+domain+".app.netsuite.com/app/site/hosting/scriptlet.nl?script=687&deploy=1",
body: params
})
.then(function (response){
log.debug({title: 'Response',details: response});
console.log('response', response);
})
我得到的结果是HTML,告诉我必须登录才能访问该页面。然而,当我实际获取URL并将其粘贴到浏览器中时,它确实可以工作。有人知道为什么会这样吗?
发布于 2021-11-10 21:13:10
我对https.post.promise
方法了解不多,但我也曾经遇到过这个错误。
这里我的建议是在你的ClinetScript中使用url.resolveScript
方法,它显然会调用你的Suitelet脚本。
window.onbeforeunload = null;
var suiteletURL = url.resolveScript({
scriptId: 'SUITELET SCRIPT ID HERE',
deploymentId: 'SUITELET DEPLOYMENT ID HERE',
params: {
//If any
}
});
window.open(suiteletURL, '_self', false);
如果在下面的评论中有任何问题,请让我知道。
发布于 2021-11-17 02:50:30
问题似乎在于Netsuite生成了一个总是需要身份验证的外部URL。下面的代码解决了我的问题:
var suitletURL = url.resolveScript({
scriptId: 'scriptid',
deploymentId: 'deploymentid',
returnExternalUrl: false
});
https://stackoverflow.com/questions/69911779
复制相似问题