Suitescript 保存的搜索返回重复值

Suitescript saved search returning duplicate values

我有一个包含子列表的记录,该子列表的每个项目都是一个包含另一个子列表的记录。我想要的是,对于每个 itemA 获取每个 itemA 子列表的所有子列表。像这样

Bill of Lading
  ->FulfillmentA
      ->Item123
      ->Item124
      ->Item125
  ->FulfillmentB
      ->Item224
      ->Item226
      ->Item227

我创建了一个已保存的搜索,但搜索 returns 重复值,以及空值,我阅读了有关主线的信息,所以我使用了它,但是当我这样做时,一些记录丢失了。

主线错误

new nlobjSearchFilter('mainline', null, 'is', 'F')

Screenshot 1

有主线 True

new nlobjSearchFilter('mainline', null, 'is', 'T')

Screenshot 2

完整代码如下:

    var lines= record.getLineItemCount('recmachcustrecord_id_billoflading');
    var afulfill = []; 

    for(var i = 1; i <= lines; i++){
        afulfill.push(record.getLineItemValue('recmachcustrecord_id_billoflading', 'custrecord_fulfillment', i));
    }

    if(afulfill != null && afulfill.length>0){
        var filters = [ 
            new nlobjSearchFilter('internalid', null, 'anyof', afulfill), 
            new nlobjSearchFilter('mainline', null, 'is', 'T'),

            ];
        var columns = [new nlobjSearchColumn('item')];
        var searchresult = nlapiSearchRecord('itemfulfillment', null, filters, columns);
    }

    for(var i = 0; i < searchresult.length; i++){
        var search = searchresult[ i ];
        htmlCode += "<p>" + JSON.stringify(search) + "</p>";
    }

当我只想要交易的 item 行时,我通常使用以下过滤器构建搜索:

  • Main Line is false
  • COGS Line is false
  • Shipping Line is false
  • Tax Line is false

如您所见,交易结果中显示的子列表远不止商品子列表,因此您需要过滤掉其他子列表(税金、运费、COGS)。您还可以添加 Item is not empty 之类的过滤器,以查看这对您的结果有何影响。