SuiteScript 2.0中如何从采购订单获取供应商名称列?
搞定NetSuite采购订单搜索:添加供应商名称列
嘿,作为NetSuite新手遇到这种小障碍太正常了!我来帮你把供应商名称加到采购订单的物料搜索里,分两种常用场景给你说明:
一、用保存的搜索(Saved Search)操作
这是最直观的方式,不用写代码:
- 先打开你现有的采购订单保存搜索,或者新建一个:
Setup > Reporting > Saved Searches > New,选择Purchase Order类型 - 切换到Results标签页,点击
Add Field - 在字段选择器里,左边先选
Purchase Order(主记录,别选Line Items子记录哦!),然后找到Vendor相关的字段——直接搜“Vendor Name”就能找到,或者选Entity Name并关联到Vendor - 添加后调整列的顺序和显示标签,保存搜索就搞定了!
为啥之前可能失败?大概率是你选了物料行(Line Items)的字段,但供应商是采购订单主记录的属性,必须从主记录里选才行~
二、用SuiteScript脚本实现
如果你的搜索是用脚本写的,只需要在columns里加上关联供应商的字段就行,给你个完整示例:
// 创建包含物料信息和供应商名称的采购订单搜索 var poSearch = search.create({ type: search.Type.PURCHASE_ORDER, columns: [ // 物料行核心字段 search.createColumn({name: 'item', label: '物料'}), search.createColumn({name: 'itemid', label: '物料ID'}), search.createColumn({name: 'description', label: '物料描述'}), // 关联主记录的供应商名称 search.createColumn({name: 'entityid', join: 'vendor', label: '供应商名称'}), // 可选:加上采购订单编号方便溯源 search.createColumn({name: 'tranid', label: '采购订单编号'}) ], filters: [ // 示例过滤条件:只搜已批准的采购订单 search.createFilter({name: 'status', operator: search.Operator.ANYOF, values: 'Purchase Order:Approved'}) ] }); // 执行搜索并打印结果 poSearch.run().each(function(result){ var itemName = result.getText({name: 'item'}); var itemId = result.getValue({name: 'itemid'}); var itemDesc = result.getValue({name: 'description'}); var vendorName = result.getValue({name: 'entityid', join: 'vendor'}); var poNumber = result.getValue({name: 'tranid'}); log.debug('采购订单物料信息', { '采购订单号': poNumber, '供应商': vendorName, '物料名称': itemName, '物料ID': itemId, '物料描述': itemDesc }); return true; // 继续遍历下一条结果 });
这里关键是用join: 'vendor'关联到采购订单的供应商实体,然后取entityid就是供应商的名称啦。
内容的提问来源于stack exchange,提问作者tmurphree




