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 这是一个非常有用的工具左右。