Netsuite交易保存搜索:项目加入?

时间:2017-04-03 21:54:56

标签: netsuite suitescript

我正在尝试获取与采购订单相关的所有商品。我已在UI中创建了已保存的搜索,但我需要传递PO的内部ID以获取正确的项目列表。我尝试在suitecript中执行此操作,但我找不到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 个答案:

答案 0 :(得分:3)

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;
    });
});

BTW我通过在用户界面中创建了一个已保存的搜索来生成此代码,然后使用此Chrome插件将其导出到代码:https://chrome.google.com/webstore/detail/netsuite-search-export/gglbgdfbkaelbjpjkiepdmfaihdokglp?hl=en这是一个非常有用的工具。