SuiteScript 1.0 - nlobjSearchFilter 包含无效的搜索条件:搜索自定义记录

SuiteScript 1.0 - nlobjSearchFilter contains invalid search criteria: Searching custom record

我是 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);

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

第二个参数是加入的table。第一个是专栏。

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

请参阅下面摘自 SuiteAnswers 的关于 nlobjSearchFilter() 构造函数的使用的摘录。

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

Constructor for a search filter object

Parameters

  • name {string} - The internal ID of the search field. For example, if one of your filtering criterion is Quantity Available, you will set the value of name to quantityavailable, which is the search field ID for Quantity Available.

  • join {string} - If you are executing a joined search, the join id used for the search field specified in the name parameter. The join id is the internal ID of the record type the search field appears on.

  • operator {string} - The search operator used for this search field. For more information about possible operator values, see Search Operators.

Note If your search filter uses the contains search operator and your search times out, use the haskeywords operator instead.

  • value1 {string | date | string[] | int} - A filter value -or- A special date field value -or- Array of values for select/multiselect fields -or- An integer value

  • value2 {string | date} - A secondary filter value -or- special date field value for between/within style operators * lastbusinessweek. Values are not case sensitive. For more information about possible date filter values, see Search Date Filters.

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

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

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

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

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

第一个参数是 - fieldname (id)

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

第二个参数是 - join_fieldname (join_record_id)