【问题标题】:Suitescript2.0 Saved Search how to reference another tableSuitescript2.0 Saved Search如何引用另一个表
【发布时间】:2020-05-06 00:27:29
【问题描述】:

我正在尝试从另一种类型中获取价值。 我保存的主要搜索类型是“交易”,我有一个自定义记录类型是“入站”。 当我尝试进行交易保存搜索时,我看不到“入站”字段。但显然,这两种类型都具有相同的值,即“PO”。我知道这些字段名称不同,但值相同。 这是我想在“事务”类型中显示“externaldocumentnumber”的东西,它具有与“入站”类型相同的 PO。

var po = 'tranid'
var mySearch = search.create({
                type: "transaction",
                columns: [
                    search.createColumn({
                        name: 'externaldocumentnumber', //Container#
                        join: 'inboundshipment'
                    }),
                search.createColumn({
                    name: 'purchaseorder', //PO
                    join: 'inboundshipment'
                }),
                ],
                filters: [
                    search.createFilter(
                        {
                            name: 'purchaseorder', //PO
                            join: 'inboundshipment',
                        operator: search.Operator.ANYOF,
                        values: po
                            }
                        ),
                    search.createFilter(
                        {
                            name: po //PO
                            operator: search.Operator.NONEOF,
                            values: ['@NONE@']
                        }
                  ),
                ]
            });

【问题讨论】:

    标签: netsuite suitescript suitescript2.0 saved-searches


    【解决方案1】:

    NetSuite 中有一个新特性叫做 SuiteQL,它是基于 SQL-92 的 NS 查询语言。您可以执行保存的搜索中不可能的连接。目前 SuiteQL 可使用 N/query 模块使用,并且在 REST Web 服务中仍处于测试阶段。

    以下是 SuiteQL 的示例用法:

    var suiteQL = "SELECT * FROM transactions t WHERE id IN (SELECT id FROM transactions WHERE id = t.id UNION SELECT -1 FROM transactions)"
    var resultIterator = query.runSuiteQLPaged({
        query: suiteQL,
        pageSize: 10
    }).iterator()
    resultIterator.each(function(page) {
        var pageIterator = page.value.data.iterator();
        pageIterator.each(function(row) {
            log.debug('ID: ' + row.value.getValue(0) + ', Context: ' + row.value.getValue(1));
            return true;
        });
    
        return true;
    });
    

    【讨论】:

      【解决方案2】:

      Netsuite 不对值执行 SQL 样式连接。 Netsuite 使用 N/search 进行的唯一连接类型是当一种记录类型通过列表/记录或多选类型字段与另一种记录类型相关时。

      您可以在您的自定义记录或交易中设置该自定义字段。在任何一种情况下,连接值都是列表/记录自定义字段的脚本 ID。

      【讨论】:

      • 哦...好吧,我添加了一个记录类型的交易,把值放进去。但这需要的时间太长了。这是获取没有来自其他类型的引用的值的唯一方法吗?
      猜你喜欢
      • 2022-12-28
      • 1970-01-01
      • 2016-11-06
      • 2021-05-01
      • 1970-01-01
      • 2010-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多