首页 > 解决方案 > 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();
});

标签: netsuitesuitescript2.0

解决方案


如果您在 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!
});

希望这可以帮助。


推荐阅读