SuiteScript 1.0:如何在工作流动作脚本中获取工作流字段值?
获取NetSuite工作流字段(Event记录引用)的SuiteScript 1.0方案
当然有可行方案!在SuiteScript 1.0的工作流动作脚本中,你可以通过执行上下文对象轻松拿到存储Event记录的工作流字段值,下面是详细的实现方案:
核心逻辑
工作流运行时会把字段值传递到脚本的执行上下文里,我们可以用nlapiGetContext()方法获取这个上下文,再从中提取目标字段的数据。如果字段存的是Event的内部ID,还能进一步加载完整的Event记录来获取详细信息。
具体步骤
- 先确认你在工作流里定义的那个字段的ID(注意是工作流字段ID,一般以
custworkflow_开头,不是Event记录本身的字段ID) - 在脚本里通过
nlapiGetContext().getSetting('WORKFLOW', '你的工作流字段ID')获取字段值 - 如果需要Event记录的详细数据,用
nlapiLoadRecord('event', eventId)加载对应记录
代码示例
function onAction() { // 1. 从工作流上下文获取存储的Event记录ID var eventInternalId = nlapiGetContext().getSetting('WORKFLOW', 'custworkflow_my_selected_event'); if (eventInternalId) { // 2. 加载Event记录(可选,按需获取详细数据) var eventRec = nlapiLoadRecord('event', eventInternalId); // 3. 提取Event的具体字段,比如标题、开始时间 var eventTitle = eventRec.getFieldValue('title'); var eventStart = eventRec.getFieldValue('startdate'); // 这里可以加入你的业务逻辑,比如打印日志或执行后续操作 nlapiLogExecution('DEBUG', '获取到的Event信息', `标题:${eventTitle},开始时间:${eventStart}`); } else { nlapiLogExecution('WARNING', '数据缺失', '工作流字段中未选择Event记录'); } }
注意要点
- 务必确保工作流字段ID拼写正确,写错的话会拿不到值
- 如果工作流字段是列表/记录类型,默认返回的是记录的内部ID;要是想直接拿到显示值(比如Event的标题),可以加第三个参数
true:nlapiGetContext().getSetting('WORKFLOW', 'custworkflow_my_selected_event', true) - 脚本部署时要配置足够的权限,确保能加载Event记录
内容的提问来源于stack exchange,提问作者Ba.Lal
相关产品推荐
相关产品推荐

