有用的提示
- 在这里,你可以找到日期文件的可用搜索过滤器值列表:
https ://system.netsuite.com/app/help/helpcenter.nl ? fid = section_N3010842.html
这些你可以在以下表达式中使用:
['trandate', 'notbefore', 'daysAgo17']
-
以下是搜索运算符:
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 -
以下是搜索摘要类型: https :
//system.netsuite.com/app/help/helpcenter.nl?fid = section_N3010474.html -
你只能在选择类型字段(列表/记录)上使用 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']
]
});
- 仍然没有信心?寻找作弊? :)
在 Netsuite UI 中创建一个已保存的搜索,获取搜索 ID(例如:customsearch1234)和 log.debug 过滤器表达式:
var s = search.load('customsearch1234');
log.debug('filterExpression', JSON.stringify(s.filterExpression));