我正在尝试根据条件加载我的自定义模块。
CustomModule.js
define([], function(){
export {
run: function(){ log.debug('run in CustomModule' }
};
}
这是我的用户事件脚本
userevent.js
define(['N/record'], function(record){
...
var moduleName = record.getValue('custom_module_name'); // will return CustomModule.js
require([moduleName], function(customModule){
customModule.run();
});
});
但是我收到以下错误
{
type: "error.SuiteScriptModuleLoaderError",
name: "INCORRECT_SUITESCRIPT_CONFIGURATION",
message: "Incorrect SuiteScript configuration for module: CustomModule.js",
}
[当我使用define(['CustomModule.js'), function(customModule){...})
之类的预加载时正在工作,但这可能不适合我们的情况。
有任何建议吗?
因此,调用自定义模块的方式将是(下面的示例代码段:)>
CustomModule.js [文件柜中的代码]
define([], function() { // You can have multiple functions function testFunction() { log.debug("Run in CustomModule"); return 123; } return { // Return all your functions here testFunction: testFunction }; });
您在其他脚本中调用自定义模块函数的方式将是:
示例用户事件脚本:
编写库脚本(自定义模块)时,请将客户端支持的模块放在不同的脚本中,将服务器端的支持模块放在不同的脚本中。这是因为,如果将具有仅服务器端脚本支持的模块的库脚本(例如N /任务模块)合并到客户端脚本中,则会抛出错误,指出该模块不支持该模块。 scrpt。/** * @NApiVersion 2.x * @NScriptType UserEventScript * @NModuleScope SameAccount */ define(['./CustomModule.js'], function(customModule) { ..... function sampleFunction(customerId, recId, invNumberCounter) { var storeNumber = customModule.testFunction(); // value of 'storeNumber' will be 123 } ..... });
其他重要说明:
希望这会有所帮助。