首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SuiteScript2.0从用户事件中调用Suitelet不工作

SuiteScript2.0从用户事件中调用Suitelet不工作
EN

Stack Overflow用户
提问于 2019-10-03 21:57:14
回答 1查看 2.1K关注 0票数 1

,我想发生什么,

我希望能够从传递记录id的用户事件中调用Suitelet。

当前发生的事情

不是抛出"INSUFFICIENT_PERMISSION“错误,就是没有抛出错误,但是没有调用手提箱。

The Details

嘿,所有的人,我试着从一个用户活动中打电话给一个行李箱。我们使用一些数据创建了一个记录,在用户事件中创建该记录时,我希望创建一个客户和销售订单。我还需要这些记录的用户事件来触发。我知道一个用户事件不能触发另一个用户事件,所以我已经写了一个行李箱来调用,这将进行处理。我试着用下面的代码打电话给行李箱。

代码语言:javascript
复制
var scheme = 'https://';
var host = url.resolveDomain({
    hostType: url.HostType.APPLICATION
});
var suitletURL = url.resolveScript({
    scriptId : 'customscript_pws_sl_data',
    deploymentId : 'customdeploy_pws_sl_data'
});
var parameters = {
    dataid : scriptContext.newRecord.id,
};
log.debug("URL", scheme + host + suitletURL);
var response = https.post({
    url  : scheme + host + suitletURL + "&dataid=" + scriptContext.newRecord.id,
    body : parameters
});

使用此代码,不会引发错误,但也不会触发Suitelet。我知道这一点,因为一旦我的行李箱触发,我就会记录“跑”。

代码语言:javascript
复制
log.debug("Running");
var user = runtime.getCurrentUser();
var script = runtime.getCurrentScript();

// Get parameters
var params = context.request.parameters;
log.debug("Context", JSON.stringify(context.request));
log.debug("Params", JSON.stringify(params));

现在,我正在记录用户事件正在使用的URL,如果我将其复制并粘贴到浏览器中,将运行suitelet。所以我知道URL是正确的。

我试过什么

我尝试过添加

代码语言:javascript
复制
returnExternalUrl: true

参数的https调用。使用这个调用Suitelet,但是我可以错误地声明

代码语言:javascript
复制
"type":"error.SuiteScriptError","name":"INSUFFICIENT_PERMISSION","message":"Permission Violation: You need the 'Lists -> Items' permission to access this page. Please contact your account administrator.","stack":["createError(N/error)","getOrderLines(/SuiteScripts/PWS Additional Modules/Additional Modules/Ecommerce Data/pws_lib_ecommerce.js:972)","processData(/SuiteScripts/PWS Additional Modules/Additional Modules/Ecommerce Data/pws_lib_ecommerce.js:109)","onRequest(/SuiteScripts/PWS Additional Modules/Additional Modules/Ecommerce Data/pws_sl_ecommdata.js:40)"],"cause":{"type":"internal error","code":"INSUFFICIENT_PERMISSION","details":"Permission Violation: You need the 'Lists -> Items' permission to access this page. Please contact your account administrator.","userEvent":null,"stackTrace":["createError(N/error)","getOrderLines(/SuiteScripts/PWS Additional Modules/Additional Modules/Ecommerce Data/pws_lib_ecommerce.js:972)","processData(/SuiteScripts/PWS Additional Modules/Additional Modules/Ecommerce Data/pws_lib_ecommerce.js:109)","onRequest(/SuiteScripts/PWS Additional Modules/Additional Modules/Ecommerce Data/pws_sl_ecommdata.js:40)"],"notifyOff":false},"id":"","notifyOff":false,"userFacing":false}

套件部署设置为“无登录可用:真”和“所有角色:真”

更新

代码语言:javascript
复制
I am getting You must login before accessing this page.

我正在登录并从一个UserEvent调用它

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-04 00:21:04

将User事件和Suitelet都设置为在Administrator模式下运行,并使用"returnExternalUrl: true“设置解决了这个问题:)

代码语言:javascript
复制
var suitletURL = url.resolveScript({
    scriptId          : 'customscript_pws_sl_data',
    deploymentId      : 'customdeploy_pws_sl_data',
    returnExternalUrl : true
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58227399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档