Suitescript 搜索从 var 更改为函数

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

我很乐意在 Suitescript 中将搜索作为变量进行编程。我正在尝试转换为具有“推送”功能的函数 - 但我的 javascript 失败了..

这里是原始代码:

   var invoiceSearchObj = search.create({
   type: "invoice",
   filters:
   [
      ["item.type","anyof","Kit"], 
      "AND", 
      ["trandate","within","01/01/2023"], 
      "AND", 
      ["type","anyof","CustInvc"], 
      "AND", 
      ["item.custitemitemoriginal","is","T"], 
      "AND", 
      ["status","anyof","CustInvc:B"]
   ],
   columns:
   [
      search.createColumn({
         name: "tranid",
         summary: "MAX",
         sort: search.Sort.ASC
      }),
      search.createColumn({
         name: "formulatext",
         summary: "MAX",
         formula: "{item.memberitem}"
      }),
      search.createColumn({
         name: "internalid",
         join: "createdFrom",
         summary: "MAX"
      })
   ]
});

这是我的功能:

function invoiceSearchObj() {
    
    /* {N/search.Filter} */
        var filters = [];
        
        /* {N/search.Column} */
        var columns = [];
    
    filterParams = 
      [
        {name: 'item.type', operator: search.Operator.ANYOF, values: 'Kit/Package'}, 
        {name: 'trandate', operator: search.Operator.WITHIN, values: '01/01/2023'},         
        {name: 'item.custitemitemoriginal', operator: search.Operator.IS, values: 'T'}, 
        {name: 'status', operator: search.Operator.ANYOF, values: 'CustInvc:B'}
        ];
   
   /* Add each filter to the search */
        filterParams.forEach(function(params){
            filters.push(search.createFilter(params));
        });
        
    columns.push(search.createColumn({name: 'tranid', summary: search.Summary.MAX, sort: search.Sort.ASC}));    
    columns.push(search.createColumn({name: 'formulatext', summary: search.Summary.MAX, formula: '{item.memberitem}'}));        
    columns.push(search.createColumn({name: 'internalid', join: 'createdFrom', summary: search.Summary.MAX}));  
      
 
   
   return search.create({type: search.Type.INVOICE, filters: filters, columns: columns});
    }

我收到以 item.type 开头的错误(尝试过 Kit 和 Kit/Package)——不确定这是我的编码还是我正在使用的变量。 提前致谢!

javascript netsuite suitescript2.0
1个回答
0
投票

在为过滤器连接另一个记录时,您应该使用连接属性。

filterParams =
  [
    { name: 'type', join: 'item', operator: search.Operator.ANYOF, values: 'Kit/Package' },
    { name: 'trandate', operator: search.Operator.WITHIN, values: '01/01/2023' },
    { name: 'custitemitemoriginal', join: 'item', operator: search.Operator.IS, values: 'T' },
    { name: 'status', operator: search.Operator.ANYOF, values: 'CustInvc:B' }
  ];
© www.soinside.com 2019 - 2024. All rights reserved.