信息函数¶
方法清单¶
| 函数名 | 参数 | 说明 |
|---|---|---|
| sendMessage(senderid, receiverid, title, content) | senderid:发送用户 Idreceiverid:接收用户Id title:主题 content:内容 | 发送站内短信 |
| sendMessageByDept(departmentid, title, content) | departmentid:接收用户部门Id title:主题 content:内容 | 根据部门发送站内短信 |
| sendMessageByRole(roleid, domainid, title, content) | roleid:接收用户角色Id domainid:企业域Id title:主题 content:内容 | 根据角色发送站内短信 |
| sendSMS(docid,title,content,receiver,isReply,isMass) | docid: 文档Id号 title: 标题 content: 发送内容 receiver: 接收者电话列表,有多个接收者,使用","做分隔符 isReply: true|false,是否需要收到回复 isMass: true|false,标识是否为群发,即是否有多位接收者 | 发送手机短信 |
| sendSMS4Task(title, content, receiver,isReply,isMass,applicationId,domainId) | title:标题 content:发送内容 receiver:接收者电话列表,有多个接收者,使用","做分隔符; isReply:true|false,是否需要收到回复; isMass:true|false,标识是否为群发,即是否有多位接收者; applicationId:应用id; domainId:企业域id; | 发送手机短信 |
方法示例¶
1.sendMessage(senderid, receiverid, title, content)
作用:实现sendMessage(senderid, receiverid, title,content)函数的应用,发送站内短信给指定用户
脚本示例:
// 表单操作按钮动作执行脚本:以指定用户给指定用户发送站内短信
(() => {
const sender = getItemValueAsString("发送者用户编号") || "";
const receiver = getItemValueAsString("接收者用户编号") || "";
const title = getItemValueAsString("主题") || "";
const content = getItemValueAsString("内容") || "";
const requiredFields = [sender, receiver, title];
if (requiredFields.every(field => field.trim().length > 0)) {
MESSAGE.sendMessage(sender, receiver, title, content);
} else {
println("站内短信发送失败:发送者用户编号、接收者用户编号、主题不能为空!");
}
})();
2.sendMessageByDept(departmentid, title, content)
作用:实现sendMessageByDept(departmentid,title,content)函数的应用,根据部门ID发送站内短信给指定部门下所有用户
脚本示例:
// 表单操作按钮动作执行脚本:给指定部门下的所有用户发送站内短信
(() => {
const departmentId = getItemValueAsString("部门编号") || ""; // 驼峰命名更规范
const title = getItemValueAsString("主题") || "";
const content = getItemValueAsString("内容") || "";
if (departmentId.trim().length > 0 && title.trim().length > 0) {
MESSAGE.sendMessageByDept(departmentId, title, content);
} else {
println("站内短信发送失败:部门编号和主题不能为空!");
}
})();
3.sendMessageByRole(roleid, domainid, title, content)
作用:实现sendMessageByRole(roleid, domainid, title, content)函数的应用,根据角色ID发送站内短信给指定角色下的所有用户
脚本示例:
// 表单操作按钮动作执行脚本:给指定角色下的所有用户发送站内短信
(() => {
const roleId = getItemValueAsString("角色编号") || "";
const domainId = getItemValueAsString("企业域编号") || "";
const title = getItemValueAsString("主题") || "";
const content = getItemValueAsString("内容") || "";
const requiredFields = [roleId, domainId, title];
if (requiredFields.every(field => field.trim().length > 0)) {
sendMessageByRole(roleId, domainId, title, content);
} else {
println("站内短信发送失败:角色编号、企业域编号、主题不能为空!");
}
})();
4.sendSMS(docid,title,content,receiver,isReply,isMass)
作用:实现sendSMS(docid,title,content,receiver,isReply,isMass)函数的应用,给指定的用户发送手机短信
脚本示例:
// 表单操作按钮动作执行脚本:给指定用户发送手机短信(支持群发/回复回执)
(() => {
const doc = getCurrentDocument();
if (!doc) {
println("短信发送失败:未获取到当前文档对象!");
return;
}
const docId = doc.getId();
const title = getItemValueAsString("标题") || "无标题";
const content = getItemValueAsString("内容") || "";
const receiverIds = getItemValueAsString("接收者") || ""; // 分号分隔的用户ID
const userIds = splitText(receiverIds, ";") || []; // 空值兜底为数组
const phoneList = [];
userIds.forEach(userId => {
if (!userId || userId.trim().length === 0) return;
const user = getUserById(userId);
println(`user--------> ${user}`);
if (user && user.getTelephone()) {
const phone = user.getTelephone().trim();
// 过滤空手机号,避免无效逗号
if (phone) phoneList.push(phone);
}
});
const telephone = phoneList.join(",");
println(`电话: ${telephone}-------------`);
if (telephone.length === 0) {
println("短信发送失败:未获取到有效接收者手机号!");
return;
}
const isMass = getItemValueAsString("是否群发") || "否";
const isReply = getItemValueAsString("是否收到回复") || "否";
const isMassBool = isMass === "是";
const isReplyBool = isReply === "是";
sendSMS(docId, title, content, telephone, isMassBool, isReplyBool);
})();
5.sendSMS4Task(title, content, receiver,isReply,isMass,applicationId,domainId)
作用:实现sendSMS4Task(title, content, receiver,isReply,isMass,applicationId,domainId)函数的应用,给指定的用户发送手机短信
脚本示例:
// 表单操作按钮动作执行脚本:给指定用户发送手机短信(基于SMSManager实现)
(() => {
const getReceiverPhones = (userIdsStr) => {
const userIds = splitText(userIdsStr || "", ";") || [];
const phoneList = [];
userIds.forEach(userId => {
if (!userId || userId.trim() === "") return;
const user = getUserById(userId);
println(`user--------> ${user}`);
if (user && user.getTelephone && user.getTelephone()?.trim()) {
phoneList.push(user.getTelephone().trim());
}
});
return phoneList.join(",");
};
const title = getItemValueAsString("标题") || "无标题";
const content = getItemValueAsString("内容") || "";
const receiverUserIds = getItemValueAsString("接收者") || ""; // 分号分隔的用户ID
// 调试日志
println(`datas------> ${receiverUserIds}`);
const userIdsArr = splitText(receiverUserIds, ";");
println(`usersid---------> ${userIdsArr}---------------`);
const receiverPhones = getReceiverPhones(receiverUserIds);
println(`电话: ${receiverPhones}-------------`);
if (!receiverPhones) {
println("短信发送失败:未获取到有效接收者手机号!");
return;
}
const isMass = getItemValueAsString("是否群发") || "否";
const isReply = getItemValueAsString("是否收到回复") || "否";
// 简化逻辑:ES6 三元运算符,区分两个参数(原代码重复赋值rtn)
const isMassBool = isMass === "是";
const isReplyBool = isReply === "是";
try {
// 创建WebUser对象并配置企业域/应用
const webUser = new Packages.cn.myapps.base.web.WebUser();
println(`user: ${webUser}`);
webUser.setDomainid(getDomainid());
webUser.setDefaultApplication(getApplication());
// 获取短信发送器并执行发送
const smsSender = $MESSAGE.getSMSManager().getSender(webUser);
println(`sender: ${smsSender}`);
if (smsSender && smsSender.send) {
// 发送参数:空发送人 + 标题 + 内容 + 接收手机号 + 群发标识 + 回复回执标识
smsSender.send("", title, content, receiverPhones, isMassBool, isReplyBool);
println("短信发送请求已提交!");
} else {
println("短信发送失败:未获取到有效的SMS发送器!");
}
} catch (e) {
// 异常捕获,避免脚本崩溃
println(`短信发送异常:${e.message || e}`);
}
})();