【问题标题】:SuiteScript 1.0 - nlobjSearchFilter contains invalid search criteria: Searching custom recordSuiteScript 1.0 - nlobjSearchFilter 包含无效的搜索条件:搜索自定义记录
【发布时间】:2018-08-03 09:42:32
【问题描述】:

我对 SuiteScript 还很陌生,但我正在编写一个脚本来向客户催款收件人列表中的所有联系人发送电子邮件 - 所以是自定义记录。

我收到以下错误 - nlobjSearchFilter 包含无效的搜索条件:customrecord_3805_dunning_recipient.custrecord_3805_dunning_recipient_cust。

var filters = new Array();
        filters[0] = new nlobjSearchFilter('company', null, 'is', customer);
        filters[1] = new nlobjSearchFilter('email', null, 'isnot', '');
        filters[2] = new nlobjSearchFilter('isinactive', null, 'is', 'F');
        filters[3] = new nlobjSearchFilter('customrecord_3805_dunning_recipient.custrecord_3805_dunning_recipient_cust', null, 'is', customer);

    var columns = new Array();
        columns[0] = new nlobjSearchColumn('company');
        columns[1] = new nlobjSearchColumn('email');
        columns[2] = new nlobjSearchColumn('internalid')

    var searchresults = nlapiSearchRecord('contact', null, filters, columns);

使用自定义记录作为过滤器时有什么需要注意的吗?谢谢

【问题讨论】:

    标签: javascript netsuite suitescript


    【解决方案1】:

    第二个参数是连接表。第一个是列。

    修复你的最后一个过滤器。

    【讨论】:

    • 啊,非常感谢。我将代码更改为以下内容,并且可以正常工作。过滤器[3] = new nlobjSearchFilter('custrecord_3805_dunning_recipient_cust', 'custrecord_3805_dunning_recipient_cont', 'is', customer);
    【解决方案2】:

    请参阅下面的 SuiteAnswers 摘录,了解nlobjSearchFilter() 构造函数的使用。

    nlobjSearchFilter(name, join, operator, value1, value2)

    搜索过滤器对象的构造函数

    参数

    • name {string} - 搜索字段的内部 ID。例如,如果您的过滤标准之一是可用数量,您将 将name的值设置为quantityavailable,即搜索 可用数量的字段 ID。

    • join {string} - 如果您正在执行连接搜索,则用于 name 参数中指定的搜索字段的连接 ID。加入标识 是显示搜索字段的记录类型的内部 ID。

    • operator {string} - 用于此搜索字段的搜索运算符。有关可能的运算符值的详细信息,请参阅搜索 运算符。

    注意如果您的搜索过滤器使用 contains 搜索运算符并且您的 搜索超时,请改用 haskeywords 运算符。

    • value1 {字符串 |日期 |字符串[] | int} - 过滤器值 - 或 - 特殊日期字段 值 - 或 - 选择/多选字段的值数组 - 或 - 一个 整数值

    • 值2 {字符串 | date} - 二级过滤器值 - 或 - 特殊日期 between/within 样式运算符的字段值 * lastbusinessweek。 值不区分大小写。有关可能的更多信息 日期过滤器值,请参阅搜索日期过滤器。

    应用这些原则,您的filter[3] 设置应该是:

    filters[3] = new nlobjSearchFilter('custrecord_3805_dunning_recipient_cust', 'customrecord_3805_dunning_recipient', 'anyof', customer);
    

    注意运算符'anyof' - 这是必需的,因为在使用“列表/记录”数据类型时,唯一有效的运算符是'anyof''noneof'。 (我假设您使用列表/记录字段类型来选择催款收件人自定义记录中的相关客户。)

    请检查您的其他过滤器以获取正确的运算符。有关搜索运算符的更多信息,请访问SuiteAnswers ID 10565

    【讨论】:

      【解决方案3】:

      正如我们通常在过滤器中所做的那样,

      第一个参数是-字段名(id)

      如果我们想从另一条记录中添加此过滤器,我们需要将其用作第二个参数。

      第二个参数是-join_fieldname (join_record_id)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-09-29
        • 2021-10-03
        • 1970-01-01
        • 2013-08-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多