NetSuite搜索重复的电子邮件地址
从我前面的所有问题可以看出,我正在尝试学习一些NetSuite Suitescript,以真正利用NetSuite。话虽如此,我已经到了可以搜索最大员工人数的地方,然后采取相应的行动。现在我想做的是搜索一个电子邮件地址,看看给定的地址是否重复。如果电子邮件地址中已有员工记录,则基本上确保工作流不会创建新员工记录 到目前为止,我有以下几点NetSuite搜索重复的电子邮件地址,netsuite,Netsuite,从我前面的所有问题可以看出,我正在尝试学习一些NetSuite Suitescript,以真正利用NetSuite。话虽如此,我已经到了可以搜索最大员工人数的地方,然后采取相应的行动。现在我想做的是搜索一个电子邮件地址,看看给定的地址是否重复。如果电子邮件地址中已有员工记录,则基本上确保工作流不会创建新员工记录 到目前为止,我有以下几点 function checkDuplicate(givenEmail){ var filters = new nlobjSearchFilter('em
function checkDuplicate(givenEmail){
var filters = new nlobjSearchFilter('email', null, givenEmail);
var colums = new nlobjSearchColumn('email');
var results = new nlobjSearchRecord('employee', null, filters, columns);
if(results[0].getValue('email') == null) return false;
else return true;
}
有更好/更简单的方法吗?我将对此进行测试。您的语法有点不正确。根据您的脚本,我建议应用以下修改:
function checkDuplicate(givenEmail){
var filters = new nlobjSearchFilter('email', null, 'is', givenEmail);
var results = new nlapiSearchRecord('employee', null, filters);
return (results != null);
}
因为您只是检查是否有任何匹配结果,所以不需要nlobjColumn
。此外,如果没有任何匹配项,nlapiSearchRecord
将返回空值
另外,您似乎对SuiteScript(至少在搜索API方面)仍有点粗糙,因此我建议您在NetSuite帮助中心中查找“使用SuiteScript搜索”。虽然这肯定更接近,但此功能并不会告诉您存在重复的电子邮件;它只告诉您电子邮件存在。为了检测重复项,我将稍微修改函数的返回值:
return(results&&(results.length>1))
这确保结果
不为null
(nlapiSearchRecord
在没有匹配结果时返回null
),然后检查是否有多条匹配记录。是,虽然这种情况是为了防止创建一个新的员工记录,如果一个员工已经存在相同的电子邮件-因此,只有当存在匹配时才返回true。啊,我的错误-我想我们正在寻找已经重复的电子邮件。如果我们只是想阻止,你的功能就完成了。