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 已保存搜索 - 使用分组时显示总计/计算百分比

使用 NetSuite 高级 PDF 和保存的搜索编写 Freemarker 脚本

NetSuite 保存的搜索公式

Netsuite 将搜索保存到 Suitelet 子列表

NetSuite 保存的搜索计算两个相关记录之间的日期差异

报告中的 Netsuite 字段为空白,并保存了转移单的搜索