netsuite - Netsuite - 出现错误:无法评估脚本:执行定义回调时所有 SuiteScript API 模块都不可用
问题描述
我有以下脚本,我正在尝试上传,但收到无法评估脚本:执行您的定义回调时,所有 SuiteScript API 模块都不可用 - 错误。
不知道我做错了什么,因为我基本上遵循 api 中的示例。
注意:这是在沙盒中完成的。
/**
* @NApiVersion 2.x
* @NScriptType Suitelet
* @NModuleScope SameAccount
*/
define(['N/email'],
/**
* @param {email} email
*/
function(email){
function sendEmail() {
var senderId = 34972;
var recipientEmail = 'email@example.com';
email.send({
author: senderId,
recipients: recipientEmail,
subject: 'Test Sample Email Module',
body: 'Thisis a test',
});
}
sendEmail();
});
解决方案
如果您在 2.0 中编写 Suitelet 脚本,则需要使用回调函数的 RETURN。在您的情况下,它将如下所示:
return {
onRequest : sendEmail
};
我还想问一下 - 您是否有任何理由尝试通过 SUITELET 触发电子邮件发送?假设您想通过 Suitelet 的“脚本部署”页面上生成的 URL 触发电子邮件,您应该考虑包含 ServerResponse 调用以在您的浏览器上写入电子邮件已成功发送。这将如下所示:
context.response.write('Email now sent');
最后 - 我还看到您在“email.send”对象的末尾错误地使用了逗号。删除逗号,如下所示:
email.send({
author: senderId,
recipients: recipientEmail,
subject: 'Test Sample Email Module',
body: 'Thisis a test', <---- REMOVE COMMA!
});
希望这可以帮助。
推荐阅读
- gradle - gradle 中的自定义配置
- python - 在 Python 中使用带有 R 语法的 statsmodels.api 进行逻辑回归
- azure - Azure 应用程序网关中的失败请求列表
- pentaho - 如何使用 Pentaho 数据集成 (PDI) 将 Sqlite 数据传输到 Mysql?
- android - 使用谷歌浏览器远程调试我的安卓设备没有显示浏览器检查
- flutter - 如何从飞镖文件中调用graphQl“查询”
- ios - 如何将 imageView 作为源传递给 QuickLook 预览
- php - 未捕获的类型错误:ajax jquery 中的非法调用
- deep-learning - 如何选择用于我的模型的预训练权重?
- android - 像 Messenger 应用中一样的 Android 图库照片选择器