我对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);
使用自定义记录作为过滤器时,我需要注意什么吗?谢谢
答案 0 :(得分:1)
第二个参数是联接表。第一个是列。
修复您的最后一个过滤器。
答案 1 :(得分:1)
有关使用nlobjSearchFilter()
构造函数的信息,请参见以下SuiteAnswers摘录。
nlobjSearchFilter(名称,联接,运算符,值1,值2)
搜索过滤器对象的构造函数
参数
name {string}-搜索字段的内部ID。例如,如果您的过滤条件之一是“可用数量”,则您将 将名称的值设置为“数量可用”,即搜索 可用数量的字段ID。
join {string}-如果要执行联合搜索,则name参数中指定的用于搜索字段的联合ID。联接ID 是搜索字段显示在其中的记录类型的内部ID。
operator {string}-用于此搜索字段的搜索运算符。有关可能的运算符值的更多信息,请参见搜索。 运算符。
请注意,如果您的搜索过滤器使用包含搜索运算符,而您的 搜索超时,请改用 haskeywords 运算符。
value1 {字符串 |日期|字符串[] | int}-过滤器值-或者-特殊日期字段 value-或-select / multiselect字段的值数组-or- An 整数值
value2 {string |日期}-辅助过滤器值-或-特殊日期 样式运算符之间/之内的字段值* lastbusinessweek。 值不区分大小写。有关可能的更多信息 日期过滤器值,请参阅搜索日期过滤器。
应用这些原则,您的filter[3]
设置应为:
filters[3] = new nlobjSearchFilter('custrecord_3805_dunning_recipient_cust', 'customrecord_3805_dunning_recipient', 'anyof', customer);
请注意运算符'anyof'
-这是必需的,因为使用“列表/记录”数据类型时,唯一有效的运算符是'anyof'
和'noneof'
。 (我假设您正在使用“列表/记录”字段类型来选择“催款收件人”自定义记录中的相关客户。)
还要检查其他过滤器是否有正确的运算符。有关搜索运算符的更多信息,请访问SuiteAnswers ID 10565
答案 2 :(得分:0)
就像我们通常在过滤器中所做的一样,
第一个参数是-字段名(id)
如果要从其他记录中添加此过滤器,则需要将其用作第二个参数。
第二个参数是-join_fieldname(join_record_id)