如何在SuiteScript中获取指定交易记录的系统备注?搜索遇错求助
获取指定交易记录的系统备注(SuiteScript)
你之前的错误原因是:搜索SYSTEM_NOTE时,仅用record字段传记录ID无法让NetSuite识别对应的记录类型,需要结合记录类型一起过滤,或者使用recordtype+recordid的组合过滤器。
以下是两种可行的实现方式:
方式一:组合记录类型与ID到record字段
直接在record字段的值中拼接记录类型和ID,格式为[记录类型]:[记录ID],操作符使用IS即可:
// 替换为你的交易类型(如salesorder、invoice)和记录ID var targetRecord = 'salesorder:2252668'; var systemNoteSearch = search.create({ type: search.Type.SYSTEM_NOTE, filters: [{ name: 'record', operator: search.Operator.IS, values: targetRecord }], columns: ['note', 'date', 'author'] // 根据需求选择需要的字段 }); // 执行搜索并处理结果 var noteResults = systemNoteSearch.run().getRange({start: 0, end: 1000}); noteResults.forEach(function(result) { var noteContent = result.getValue('note'); var noteDate = result.getValue('date'); // 这里添加你的业务逻辑 });
方式二:分开使用recordtype和recordid过滤器
这种方式更清晰,适合动态获取当前记录类型和ID的场景(比如交易表单上的按钮脚本):
// 如果是在客户端脚本中,可直接获取当前交易的类型和ID var currentRec = currentRecord.get(); var recType = currentRec.type; var recId = currentRec.id; var systemNoteSearch = search.create({ type: search.Type.SYSTEM_NOTE, filters: [ ['recordtype', search.Operator.IS, recType], 'AND', ['recordid', search.Operator.IS, recId] ], columns: ['note'] }); // 执行搜索 var results = systemNoteSearch.run().getRange({start: 0, end: 1000}); // 遍历结果提取系统备注 results.forEach(function(res) { console.log('系统备注:' + res.getValue('note')); });
内容的提问来源于stack exchange,提问作者edamazzio
相关产品推荐
相关产品推荐

