Suitescript2.0保存的搜索如何引用另一张表

问题描述 投票:0回答:2

我正在尝试从另一种类型获得价值。我主要保存的搜索类型为“交易”,而我有一个自定义记录类型为“入站运输”。当我尝试进行“事务保存”搜索时,看不到“入库”字段。但是显然,这两种类型的值都相同,即“ 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
2个回答
0
投票

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

您可以在自定义记录或交易中设置该自定义字段。在这两种情况下,联接值都将是列表/记录定制字段的脚本ID。


0
投票

NetSuite中有一个名为SuiteQL的新功能,它是基于SQL-92的NS查询语言。您可以执行“保存的搜索”中无法执行的联接。目前,SuiteQL可使用N /查询模块使用,并且仍处于REST Web服务的beta中。

下面是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;
});
© www.soinside.com 2019 - 2024. All rights reserved.