Suitescript2.0 SuiteScript 2.0 search.createFilter的公式不起作用

Suitescript2.0 SuiteScript 2.0 search.createFilter的公式不起作用,suitescript2.0,Suitescript2.0,我试图根据给定的电子邮件和手机筛选客户。这些客户必须在这两方面都匹配。我的搜索是 function getCustomerByCriteria(data) { var search = data.modules.search; var filters = data.filters; var crit = search.create({ type: search.Type.CUSTOMER, filters:filters });

我试图根据给定的电子邮件和手机筛选客户。这些客户必须在这两方面都匹配。我的搜索是

function getCustomerByCriteria(data)
{
    var search = data.modules.search;
    var filters = data.filters;

    var crit = search.create({
        type: search.Type.CUSTOMER,
        filters:filters
    });

    /*var crit = search.load({
        id: 'customsearch1112'
    });*/
    log.debug({
        title: "Data Criteria",
        details: JSON.stringify(crit)
    });

    var results = crit.run().getRange({
        start : 0,
        end : 1000
    });

    return results;
}

var customerList = customerService.getCustomerByCriteria({
        filters : [
            search.createFilter({
                name : 'email',
                operator : search.Operator.IS,
                values : email,
                isor: false
            }),
            search.createFilter({
                name : 'formulanumeric',
                operator : search.Operator.IS,
                values : [1],
                formula : "CASE WHEN {mobilephone} ='"+mobile+"' THEN 1 ELSE 0 END",
            })
        ],
        modules : {
            search : search
        }
    });

目前,它会过滤提供给定电子邮件地址的所有客户,但不会基于手机进行过滤。我不明白为什么第一个过滤器上的isor为false,所以这应该是一个和一组过滤器。

使用
formulanumeric
作为搜索过滤器,您的搜索运算符应该是
equalto
(search.operator.equalto),因为您的返回值将是数字,您可以将
formulatext
与搜索过滤器一起使用
is
(search.Operator.is)

请进一步阅读检查