Suitescript保存搜索返回重复值

时间:2016-12-28 18:02:30

标签: javascript netsuite

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

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

我创建了一个已保存的搜索,但搜索返回重复的值,还有空的,我读到主线,所以我使用了它,但是当_I这样做时,一些记录丢失了。

主线为假

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

1 个答案:

答案 0 :(得分:4)

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

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

正如您所看到的,在交易结果中显示的子列表远远多于项目子列表,因此您需要过滤掉其他(税,运费,COGS)。您还可以添加类似Item is not empty的过滤器,以了解它对结果的影响。