首页 > 解决方案 > SuiteScript 2.0 搜索过滤器抛出 UNEXPECTED _ERROR

问题描述

我正在尝试将手机号码和/或电子邮件号码与客户文件相匹配。我已经创建了一个函数来为我做这件事。当我将过滤器添加到搜索中时,会抛出 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)
    });
}

注意:我现在已经注释掉了手机,因为我正试图让电子邮件首先工作。

我已经根据我执行的其他脚本搜索对此进行了检查,但我不明白为什么这个会引发错误。

标签: netsuitesuitescript2.0

解决方案


经过测试,我得到了同样的意外错误。然后看到搜索运算符:电子邮件地址字段类型不支持 ANYOF。

将运算符更改为 search.Operator.IS 并且它起作用了。

检查 SuiteAnswers: SuiteScript 1.0 Search Operators (ID: 10565) 以获取每种字段类型支持的运算符表。


推荐阅读