跳转至

信息函数

方法清单

函数名 参数 说明
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}`);
    }
})();