Netsuite 在SuiteScript 2.0中包括自定义模块

Netsuite 在SuiteScript 2.0中包括自定义模块,netsuite,suitescript,Netsuite,Suitescript,我尝试在SS2.0索引脚本中引用自定义用户模块,如下所示: /** *@NApiVersion 2.x *@NScriptType Restlet */ 定义([ “N/record”、“N/error”、“SuiteScripts/MyFolder/src/My_Controller”、“N/crypto”, 这在沙箱中运行良好。但是,当我们部署到生产环境(bundle push)时,调用RESTlet方法时会出现以下错误: 您没有加载此模块的权限 SuiteScripts/MyFolde

我尝试在SS2.0索引脚本中引用自定义用户模块,如下所示:


/**
*@NApiVersion 2.x
*@NScriptType Restlet
*/
定义([
“N/record”、“N/error”、“SuiteScripts/MyFolder/src/My_Controller”、“N/crypto”,

这在沙箱中运行良好。但是,当我们部署到生产环境(bundle push)时,调用RESTlet方法时会出现以下错误:

您没有加载此模块的权限 SuiteScripts/MyFolder/src/My_Controller.js,它的@NModuleScope为 SameAccount限制其对自定义对象的可用性 在帐户1234566中创建

我们所做的只是:

  • 使用我们的索引文件创建RESTlet(SS2.0不允许您定义库)
  • 部署/捆绑RESTlet
  • 使用Eclipse将自定义用户模块(My_Controller.js)手动上载到机柜中的生产帐户(CTRL+U)
  • 使用Postman在RESTlet(生产中)上调用方法

  • 有人知道我们做错了什么吗?谢谢你

    你是对的,你错过了“@NModuleSc​o​P​e公众”,见


    您可以将参数设置为Public、TargetAccount或SameAccount中的任何一个。这允许您控制其他脚本可以加载您的模块。如果您使用Public,任何捆绑包都可以运行该脚本。如果您想避免这种情况,可以将其留给SameAccount,并确保My_controller.js与Reslet位于同一捆绑包中。

    看起来像可能缺少“@NModuleSc​o​P​e Public“annotation”可以吗?否则,如果您捆绑推送自定义模块文件,我认为应该使用相对路径。这已经完成(@NModuleSc)​o​P​e(公众)但是NetSuite仍然忽略了我的NModuleScope。真令人沮丧,它一直说它设置为SameAccount@ColdstarSameAccount是默认设置,因此出于某种原因,您没有选择NModuleScope。JSDOC注释必须以非常特定的方式表示,因此请确保其格式正确。如果您理解了,请自由提交你自己的问题答案,因为你比我更适合测试。