我尝试向所有具有工程师角色的用户发送电子邮件, 我想找到一个功能,可以根据所有用户的角色为他们发送电子邮件, 或任何按其角色返回我所有用户的功能, 套件脚本包括这些功能之一吗?
答案 0 :(得分:1)
搜索具有特定角色的所有员工,然后遍历他们以发送电子邮件。这是一个调度脚本和一个自定义模块的示例。
emailUtils.js
/**
* @NAPIVersion 2.0
* @NModuleScope Public
*/
define(['N/email', 'N/search'], function(email, search) {
function sendEmailToRole(emailObject, roleId) {
var employeeIds = getEmployeesByRole(roleId);
employeeIds.forEach(function(employeeId) {
emailObject.recipients = employeeId;
email.send(emailObject)
});
}
function getEmployeesByRole(roleId) {
var results = search.create({
type: 'employee',
filters: [
['isinactive', 'is', 'F'],
'and', ['role', 'anyof', roleId]
]
}).run().getRange({ start: 0, end: 1000 });
return (results || []).map(function(result) {
return result.id;
})
}
return {
sendEmailToRole: sendEmailToRole
};
});
emailSchedule.js
/**
* @NAPIVersion 2.0
* @NModuleScope Public
* @NScriptType ScheduledScript
*/
define(['./emailUtils'], function(emailUtils) {
function execute() {
var ADMINISTRATOR = 3;
var email = {
author: 1073,
subject: 'SUBJ: This is a test email',
body: 'This is the body of the test email',
};
emailUtils.sendEmailToRole(email, ADMINISTRATOR);
}
return {
execute: execute
}
});
答案 1 :(得分:1)
我建议的方法是对具有此角色的雇员进行新的保存搜索(以及您希望满足的任何其他条件),然后使用该保存搜索定义动态实体组(Lists > Relationships > Groups > New
)。然后,您可以将该组设置为电子邮件的收件人。
答案 2 :(得分:0)
您应该保存对角色为工程师的员工的搜索。然后,您可以使用sendEmail功能向其中的每个人发送电子邮件