NetSuite脚本触发Workflow报missing : after property id语法错误
NetSuite脚本触发工作流语法报错排查
你遇到的Syntax error: missing : after property id报错以及脚本结构问题共3处:
- 直接报错原因:return块里的
{workflowTask}是ES6对象属性简写语法,你声明的脚本版本是@NApiVersion 2.0,该版本仅支持ES5语法,对象属性必须显式声明键名: 值格式,简写写法会被解析器判定为属性后缺失冒号,直接抛出语法错误。 - 结构错误1:你标注的脚本类型是
UserEventScript(用户事件脚本),这类脚本的返回值必须是系统识别的事件入口函数(支持beforeLoad/beforeSubmit/afterSubmit三类触发点),直接返回自定义对象不符合UE脚本的规范,语法修正后也无法正常触发执行。 - 结构错误2:SuiteScript 2.x自定义模块顶层需要用
define声明依赖,不要直接用require写全局逻辑。
修正后最简可运行版本
/** * @NApiVersion 2.0 * @NScriptType UserEventScript */ define(['N/task'], function(task) { function afterSubmit(context) { var workflowTask = task.create({ taskType: task.TaskType.WORKFLOW_TRIGGER }); workflowTask.recordType = 'customer'; workflowTask.recordId = 107; // 生产环境建议从context.newRecord.id取当前操作记录ID,不要硬编码 workflowTask.workflowId = 3; var taskId = workflowTask.submit(); log.debug('工作流触发任务提交成功', taskId); } return { afterSubmit: afterSubmit }; });
补充说明:如果你的NetSuite账号支持SuiteScript 2.1版本,可以把脚本头的
@NApiVersion改成2.1,即可正常使用ES6+语法(包括对象属性简写、const/let声明等),2.0版本无ES6语法支持。
内容的提问来源于stack exchange,提问作者TheIronKing
相关产品推荐
相关产品推荐

