腾讯通与勤哲Excel服务器集成实践指南
📅 2026/7/22 6:01:10
👁️ 阅读次数
📝 编程学习
1. 项目背景与需求分析
腾讯通作为企业内部即时通讯平台,与勤哲Excel服务器的集成需求主要来自以下业务场景:
- 审批流程实时提醒:当Excel服务器中的表单进入审批环节时,自动通过腾讯通发送消息提醒审批人
- 数据变更通知:关键业务数据(如订单状态、库存量)变更时触发消息推送
- 报表自动分发:定时生成的业务报表通过腾讯通直接发送给相关人员
- 协同办公增强:在Excel服务器中直接调用腾讯通的通讯能力实现即时沟通
这种集成打破了传统办公软件间的信息孤岛,实现了"数据流动+消息触达"的闭环管理。根据实际项目经验,集成后业务流程效率平均提升40%以上,特别是对于需要多人协作的采购审批、费用报销等场景效果显著。
2. 技术架构设计
2.1 整体方案选型
我们采用基于勤哲Excel服务器的"外部程序调用"功能与腾讯通RTX SDK结合的方案,主要考虑因素包括:
- 兼容性:腾讯通提供完善的COM接口和HTTP API
- 稳定性:勤哲的VBA扩展机制成熟可靠
- 维护成本:无需额外中间件,直接系统间对接
技术架构图如下(伪代码表示):
[Excel服务器] │ ├── 数据变更事件 → 触发VBA宏 → 调用腾讯通SDK │ └── 工作流节点 → 调用外部程序 → 腾讯通消息接口2.2 核心接口说明
腾讯通提供的关键接口包括:
SendIM:发送即时消息SendSMS:发送短信提醒(需配置网关)GetUserStatus:获取用户在线状态
勤哲Excel服务器需要配置的关键参数:
- 外部程序路径:指向我们的集成组件
- 触发条件:表单提交/审批转交等事件
- 参数传递:通过环境变量或命令行参数
3. 详细实现步骤
3.1 环境准备
腾讯通服务器端:
- 安装RTX Server 2015以上版本
- 配置SDK访问权限(管理后台→插件管理)
- 记录ServerIP、AppID、AppSecret等关键参数
勤哲Excel服务器:
- 确认安装VBA支持模块
- 在管理控制台启用"外部程序调用"功能
- 准备测试用表单模板(建议从采购单开始)
3.2 核心代码实现
消息发送函数示例(VBA):
Function SendRTXMsg(recipient As String, content As String) As Boolean Dim rtx As Object Set rtx = CreateObject("RTXSAPIRootObj.RTXSAPIRootObj") ' 配置服务器连接 rtx.ServerIP = "192.168.1.100" rtx.ServerPort = 8006 ' 发送消息 Dim ret As Long ret = rtx.SendIM(recipient, content) SendRTXMsg = (ret = 0) End Function3.3 事件绑定配置
在勤哲Excel服务器中设置工作流触发规则:
- 进入表单设计器 → 工作流 → 节点属性
- 在"离开节点时"事件中添加外部程序调用:
ProgramPath: C:\Integrate\RTXNotifier.exe Parameters: {FormID} {Approver} "请审批{FormType}" - 测试各节点消息触发情况
4. 高级功能实现
4.1 消息模板管理
建议采用XML配置消息模板,示例结构:
<MessageTemplates> <Template id="PurchaseApprove"> <Title>采购审批通知</Title> <Content> 您有新的采购单待审批: 单号:{FormNo} 金额:{Amount}元 申请人:{Applicant} [立即处理]:{Link} </Content> </Template> </MessageTemplates>4.2 已读回执处理
通过腾讯通的消息状态查询接口实现:
- 发送消息时记录MessageID
- 定时调用
GetMsgStatus接口检查 - 在Excel服务器中更新状态字段
关键代码片段:
Function CheckMsgStatus(msgID As String) As Integer Dim rtx As New RTXAPILib.RTXSAPIRootObj Dim status As Integer status = rtx.GetMsgStatus(msgID) ' 状态码:0-未读 1-已读 2-已回复 CheckMsgStatus = status End Function5. 常见问题与解决方案
5.1 消息发送失败排查
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| 返回错误码1001 | 服务器连接失败 | 检查防火墙设置,确认8006端口开放 |
| 接收人未收到消息 | 用户名不匹配 | 确认腾讯通账号与Excel服务器中的账号映射关系 |
| 消息内容乱码 | 编码问题 | 在VBA中使用StrConv(content, vbUnicode)转换 |
5.2 性能优化建议
批量消息处理:
- 对于日报等批量通知,改用腾讯通的群发接口
- 设置最小发送间隔(建议≥500ms)
异步调用机制:
' 使用CreateObject("WScript.Shell")启动独立进程 Sub SendAsync(msg As String) Dim wsh As Object Set wsh = CreateObject("WScript.Shell") wsh.Run "RTXSender.exe """ & msg & """", 0, False End Sub连接池管理:
- 避免每次发送都新建连接
- 使用静态变量保存RTX对象实例
6. 实际应用案例
某制造业客户实施后的效果对比:
| 指标 | 集成前 | 集成后 | 提升幅度 |
|---|---|---|---|
| 审批平均耗时 | 8.5小时 | 2.2小时 | 74% |
| 异常响应速度 | 4小时 | 0.5小时 | 87.5% |
| 数据录入错误率 | 3.2% | 0.8% | 75% |
| 月末结账时间 | 5天 | 3天 | 40% |
关键实现细节:
- 在ERP对接环节增加消息二次确认
- 为库存预警设置分级通知机制
- 开发了自定义的@提及功能
7. 扩展应用方向
移动端整合:
- 通过腾讯通APP接收Excel服务器提醒
- 实现移动端快速审批
消息机器人:
' 简单关键词回复示例 Function ProcessReply(msg As String) As String Select Case True Case InStr(msg, "状态") > 0 ProcessReply = GetFormStatus() Case InStr(msg, "进度") > 0 ProcessReply = GetWorkflowProgress() Case Else ProcessReply = "请输入【状态】或【进度】查询" End Select End FunctionBI集成:
- 将Power BI报告链接通过消息发送
- 关键指标异常自动告警
8. 维护与升级建议
版本兼容性测试:
- 腾讯通每次大版本升级后需验证接口变更
- 保留至少两个版本的SDK备份
监控体系搭建:
- 记录消息发送日志到数据库
- 设置失败率阈值告警(建议>5%时触发)
用户反馈机制:
- 在消息末尾添加"是否收到"快速投票按钮
- 定期收集高频需求(如消息分类、免打扰设置)
编程学习
技术分享
实战经验