有用的提示

  1. 在这里,你可以找到日期文件的可用搜索过滤器值列表:
    https ://system.netsuite.com/app/help/helpcenter.nl fid = section_N3010842.html
    这些你可以在以下表达式中使用:
['trandate', 'notbefore', 'daysAgo17']
  1. 以下是搜索运算符:
    https//system.netsuite.com/app/help/helpcenter.nl fid = section_N3005172.html
    当然你可以使用 serach.Operator 枚举: https//system.netsuite.com/app
    /help/helpcenter.nl?fid=section_4345782273.html

  2. 以下是搜索摘要类型: https
    //system.netsuite.com/app/help/helpcenter.nl?fid = section_N3010474.html

  3. 你只能在选择类型字段(列表/记录)上使用 ANYOF 运算符。如果要对自由文本字段(如名称,电子邮件等)使用它,唯一的方法是使用 OR 运算符创建嵌套的 Filter 表达式:

[ ['email', 'startswith', 'user1@abcd.com'],
  'or', ['email', 'startswith', 'user2@abcd.com'], 
  'or', ['email', 'startswith', 'user3@abcd.com'], 
  'or', ['email', 'startswith', 'user4@abcd.com'] 
]

或者你可以写小脚本,而不是你这样做:

function stringFieldAnyOf(fieldId, listOfValues) {    
    var result = [];
    if (listOfValues.length > 0) {
        for (var i = 0; i < listOfValues.length; i++) {
            result.push([fieldId, 'startswith', listOfValues[i]]);
            result.push('or');
        }
        result.pop(); // remove the last 'or'
    }
    return result;
}

// usage: (two more filters added just to illustrate how to combine with other filters)
var custSearch = search.create({
  type: record.Type.CUSTOMER,
  columns: searchColumn,
  filters: [
            ['companyname', 'startswith', 'A'], 
            'and', stringFieldAnyOf('email', ['user1@abcd.com', 'user2@abcd.com']),
            'and', ['companyname', 'contains', 'b']
           ]

});
  1. 仍然没有信心?寻找作弊? :)
    在 Netsuite UI 中创建一个已保存的搜索,获取搜索 ID(例如:customsearch1234)和 log.debug 过滤器表达式:
    var s = search.load('customsearch1234');
    
    log.debug('filterExpression', JSON.stringify(s.filterExpression));