Netsuite 事务已保存搜索:项目加入?
Posted
技术标签:
【中文标题】Netsuite 事务已保存搜索:项目加入?【英文标题】:Netsuite Transaction Saved Search: Item Join? 【发布时间】:2017-04-03 21:54:55 【问题描述】:我正在尝试获取与采购订单关联的所有项目。我已经在 UI 中创建了保存的搜索,但我需要传递 PO 的内部 ID 来获取正确的项目列表。我尝试在 suitescript 中执行此操作,但找不到正确的 Item 连接表?查看记录浏览器,我找不到项目。这不可能吗?
var poItemSearch = search.create(
type: 'transaction',
filters : [
search.createFilter(
name : 'type',
operator : search.Operator.IS,
values : 'Purchase Order'
),
search.createFilter(
name : 'internalid',
operator : search.Operator.ANYOF,
values : poID
),
search.createFilter(
name : 'item',
join : 'item',
operator : search.Operator.IS,
values : 'Inventory Item'
)
],
columns: [
search.createColumn(name : 'item')
//search.createColumn(name : 'email', join : 'custrecord_sdr_prod_pref_customer'),
//search.createColumn(name : 'subsidiary', join: 'custrecord_sdr_prod_pref_customer'),
//search.createColumn(name : 'custrecord_sdr_prod_pref_item'),
//search.createColumn(name : 'custrecord_sdr_prod_pref_qty'),
//search.createColumn(name : 'quantityavailable', join: 'custrecord_sdr_prod_pref_item')
]
);
我收到一条错误消息,指出项目不是连接选项。我只是使用了错误的名字吗?
否则,如何将过滤器添加到现有的已保存搜索?我可以通过这种方式来过滤我在采购订单内部 ID 上的搜索结果。
【问题讨论】:
【参考方案1】:item
应该是 join
的正确名称,但我认为它不是过滤器的 name
的正确名称。您似乎正在尝试过滤 itemtype
,但我不确定是 "Inventory Item"
还是 "inventoryitem"
。
令人费解的是,item
并未在记录浏览器中列为联接。例如,在控制台中运行时效果很好:
require(["N/search"], function (search)
var purchaseorderSearchObj = search.create(
type: "purchaseorder",
filters: [
["type","anyof","PurchOrd"]
],
columns: [
search.createColumn(
name: "itemid",
join: "item"
)
]
);
purchaseorderSearchObj.run().each(function(result)
console.log(result.getValue("name":"itemid","join":"item"));
return true;
);
);
顺便说一句,我通过在 UI 中创建保存的搜索来生成此代码,然后使用此 Chrome 插件将其导出为代码:https://chrome.google.com/webstore/detail/netsuite-search-export/gglbgdfbkaelbjpjkiepdmfaihdokglp?hl=en 这是一个非常有用的工具。
【讨论】:
不错!感谢您让我知道 chrome 扩展。我想知道是否有任何方法可以导出保存的搜索设置。我很感激!以上是关于Netsuite 事务已保存搜索:项目加入?的主要内容,如果未能解决你的问题,请参考以下文章
NetSuite 已保存搜索 - 使用分组时显示总计/计算百分比