Netsuite 事务保存的搜索:项目加入?
Netsuite Transaction Saved Search: Item Join?
我正在尝试获取与采购订单关联的所有项目。我已经在 UI 中创建了保存的搜索,但我需要传递 PO 的内部 ID 才能获得正确的项目列表。我尝试在 suitescript 中执行此操作,但找不到 Item 的正确连接 table?查看记录浏览器,找不到项目。这不可能吗?
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'})
]
});
我收到一条错误消息,指出 Item 不是联接的选项。我只是用错了名字吗?
否则,如何向现有的已保存搜索添加过滤器?我可以通过这种方式来过滤采购订单内部 ID 上的搜索结果。
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 这是一个非常有用的工具左右。
我正在尝试获取与采购订单关联的所有项目。我已经在 UI 中创建了保存的搜索,但我需要传递 PO 的内部 ID 才能获得正确的项目列表。我尝试在 suitescript 中执行此操作,但找不到 Item 的正确连接 table?查看记录浏览器,找不到项目。这不可能吗?
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'})
]
});
我收到一条错误消息,指出 Item 不是联接的选项。我只是用错了名字吗?
否则,如何向现有的已保存搜索添加过滤器?我可以通过这种方式来过滤采购订单内部 ID 上的搜索结果。
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 这是一个非常有用的工具左右。