我正在尝试将手机号码和/或电子邮件号码与客户文件相匹配。我创建了一个为我这样做的功能。当我将搜索过滤器添加到搜索中时,我会抛出一个UNEXPECTED_ERROR。
function getCustomerByMobilePhoneAndOrEmail(mobile, email)
{
var filterEmail = search.createFilter({
name : 'email',
operator : search.Operator.ANYOF,
values : [ email ]
});
/*var filterMobile = search.createFilter({
name : 'formulanumeric',
operator : search.Operator.EQUALTO,
values : ["1"],
formula : "CASE WHEN {mobilephone} LIKE '"+mobile+"' THEN 1 ELSE 0 END",
});*/
var crit = search.create({
type: search.Type.CUSTOMER,
filters: [filterEmail]
});
log.debug({
title: "Criteria",
details: JSON.stringify(crit)
});
var results = getAllResults(crit);
log.debug({
title: "Results",
details: JSON.stringify(results)
});
}
注意:我现在已经注释掉了移动设备,因为我正试图让电子邮件首先运行。
我已经检查了这个与我执行的其他脚本搜索,我不明白为什么这个会抛出错误。
经过测试,我得到了同样的意外错误。然后看到该搜索运算符:电子邮件地址字段类型不支持ANYOF。
将运算符更改为search.Operator.IS并且工作正常。
检查SuiteAnswers:SuiteScript 1.0搜索运算符(ID:10565),查看每种字段类型支持的运算符表。