NetSuite搜索重复的电子邮件地址

NetSuite搜索重复的电子邮件地址,netsuite,Netsuite,从我前面的所有问题可以看出,我正在尝试学习一些NetSuite Suitescript,以真正利用NetSuite。话虽如此,我已经到了可以搜索最大员工人数的地方,然后采取相应的行动。现在我想做的是搜索一个电子邮件地址,看看给定的地址是否重复。如果电子邮件地址中已有员工记录,则基本上确保工作流不会创建新员工记录 到目前为止,我有以下几点 function checkDuplicate(givenEmail){ var filters = new nlobjSearchFilter('em

从我前面的所有问题可以看出,我正在尝试学习一些NetSuite Suitescript,以真正利用NetSuite。话虽如此,我已经到了可以搜索最大员工人数的地方,然后采取相应的行动。现在我想做的是搜索一个电子邮件地址,看看给定的地址是否重复。如果电子邮件地址中已有员工记录,则基本上确保工作流不会创建新员工记录

到目前为止,我有以下几点

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。啊,我的错误-我想我们正在寻找已经重复的电子邮件。如果我们只是想阻止,你的功能就完成了。