通过Workflow Action Script更新物料记录子列表值遇错求助
解决NetSuite工作流脚本设置多地点库存再订货点报错问题
报错核心原因:启用多地点库存后,再订货点数据存储在
inventorylocation子列表中。若触发时机选“保存时”,此时子列表可能未初始化对应地点行,直接赋值就会触发无效操作报错;另外若误用了错误的fieldId,也会导致操作失败。多地点场景下再订货点的正确子列表fieldId是reorderpoint。触发时机调整:放弃“保存时”触发,改用**创建时/编辑时的前提交(Before Submit)**时机,确保在记录正式保存前完成子列表行的赋值操作。
正确脚本示例:
function setReorderPointDefaults(context) { var rec = context.currentRecord; var locLineCount = rec.getLineCount({sublistId: 'inventorylocation'}); // 遍历已有地点行设置默认再订货点 for (var i = 0; i < locLineCount; i++) { rec.setSublistValue({ sublistId: 'inventorylocation', fieldId: 'reorderpoint', line: i, value: 10 // 替换为你需要的默认数值 }); } // 若需新增特定地点行并设置再订货点(按需启用) // rec.selectNewLine({sublistId: 'inventorylocation'}); // rec.setCurrentSublistValue({ // sublistId: 'inventorylocation', // fieldId: 'location', // value: YOUR_LOCATION_ID // 替换为目标地点的内部ID // }); // rec.setCurrentSublistValue({ // sublistId: 'inventorylocation', // fieldId: 'reorderpoint', // value: 10 // }); // rec.commitLine({sublistId: 'inventorylocation'}); }
- 验证fieldId的方法:在NetSuite后台进入「自定义字段」列表,搜索“再订货点”查看其fieldId;或通过浏览器开发者工具 inspect 页面上的再订货点输入框,确认元素ID中的字段标识。
内容的提问来源于stack exchange,提问作者InformDev
相关产品推荐
相关产品推荐

