在SuiteScript中如何阻止N/search返回带父项ID前缀的子项itemid
NetSuite Search模块获取带父项的物料ItemID正确格式方案
方法1:分别查询父项与子项ID自行拼接
在搜索列中同时包含子项自身的itemid和父项的itemid(通过join关联父记录),之后手动拼接成网页显示的换行格式:
require([ 'N/search', ], function (search) { const searchIns = search.create({ type: 'serializedassemblyitem', filters: ['internalid', 'is', '123123'], columns: [ 'itemid', search.createColumn({ name: 'itemid', join: 'parent' }) ], }); const results = searchIns.run(); results.each((r) => { const parentId = r.getValue({name: 'itemid', join: 'parent'}); const childId = r.getValue('itemid'); const formattedId = `${parentId}\n${childId}`; console.log(formattedId); return true; }); });
方法2:使用公式字段直接生成目标格式
利用NetSuite的公式文本字段,通过公式语法拼接父项与子项ID并插入换行符(CHAR(10)对应换行):
require([ 'N/search', ], function (search) { const searchIns = search.create({ type: 'serializedassemblyitem', filters: ['internalid', 'is', '123123'], columns: [ search.createColumn({ name: 'formulatext', formula: '{parent.itemid} || CHAR(10) || {itemid}' }) ], }); const results = searchIns.run(); results.each((r) => { console.log(r.getValue({name: 'formulatext'})); return true; }); });
方法3:尝试用getText替代getValue
部分场景下,getText会返回与网页端一致的显示格式(包含换行),可替换getValue测试:
require([ 'N/search', ], function (search) { const searchIns = search.create({ type: 'serializedassemblyitem', filters: ['internalid', 'is', '123123'], columns: ['itemid'], }); const results = searchIns.run(); results.each((r) => { console.log(r.getText('itemid')); return true; }); });
内容的提问来源于stack exchange,提问作者d.k
相关产品推荐
相关产品推荐

