腾讯通与勤哲Excel服务器集成实践指南

📅 2026/7/22 6:01:10 👁️ 阅读次数 📝 编程学习
腾讯通与勤哲Excel服务器集成实践指南

1. 项目背景与需求分析

腾讯通作为企业内部即时通讯平台,与勤哲Excel服务器的集成需求主要来自以下业务场景:

  1. 审批流程实时提醒:当Excel服务器中的表单进入审批环节时,自动通过腾讯通发送消息提醒审批人
  2. 数据变更通知:关键业务数据(如订单状态、库存量)变更时触发消息推送
  3. 报表自动分发:定时生成的业务报表通过腾讯通直接发送给相关人员
  4. 协同办公增强:在Excel服务器中直接调用腾讯通的通讯能力实现即时沟通

这种集成打破了传统办公软件间的信息孤岛,实现了"数据流动+消息触达"的闭环管理。根据实际项目经验,集成后业务流程效率平均提升40%以上,特别是对于需要多人协作的采购审批、费用报销等场景效果显著。

2. 技术架构设计

2.1 整体方案选型

我们采用基于勤哲Excel服务器的"外部程序调用"功能与腾讯通RTX SDK结合的方案,主要考虑因素包括:

  • 兼容性:腾讯通提供完善的COM接口和HTTP API
  • 稳定性:勤哲的VBA扩展机制成熟可靠
  • 维护成本:无需额外中间件,直接系统间对接

技术架构图如下(伪代码表示):

[Excel服务器] │ ├── 数据变更事件 → 触发VBA宏 → 调用腾讯通SDK │ └── 工作流节点 → 调用外部程序 → 腾讯通消息接口

2.2 核心接口说明

腾讯通提供的关键接口包括:

  1. SendIM:发送即时消息
  2. SendSMS:发送短信提醒(需配置网关)
  3. GetUserStatus:获取用户在线状态

勤哲Excel服务器需要配置的关键参数:

  • 外部程序路径:指向我们的集成组件
  • 触发条件:表单提交/审批转交等事件
  • 参数传递:通过环境变量或命令行参数

3. 详细实现步骤

3.1 环境准备

  1. 腾讯通服务器端

    • 安装RTX Server 2015以上版本
    • 配置SDK访问权限(管理后台→插件管理)
    • 记录ServerIP、AppID、AppSecret等关键参数
  2. 勤哲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 Function

3.3 事件绑定配置

在勤哲Excel服务器中设置工作流触发规则:

  1. 进入表单设计器 → 工作流 → 节点属性
  2. 在"离开节点时"事件中添加外部程序调用:
    ProgramPath: C:\Integrate\RTXNotifier.exe Parameters: {FormID} {Approver} "请审批{FormType}"
  3. 测试各节点消息触发情况

4. 高级功能实现

4.1 消息模板管理

建议采用XML配置消息模板,示例结构:

<MessageTemplates> <Template id="PurchaseApprove"> <Title>采购审批通知</Title> <Content> 您有新的采购单待审批: 单号:{FormNo} 金额:{Amount}元 申请人:{Applicant} [立即处理]:{Link} </Content> </Template> </MessageTemplates>

4.2 已读回执处理

通过腾讯通的消息状态查询接口实现:

  1. 发送消息时记录MessageID
  2. 定时调用GetMsgStatus接口检查
  3. 在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 Function

5. 常见问题与解决方案

5.1 消息发送失败排查

现象可能原因解决方案
返回错误码1001服务器连接失败检查防火墙设置,确认8006端口开放
接收人未收到消息用户名不匹配确认腾讯通账号与Excel服务器中的账号映射关系
消息内容乱码编码问题在VBA中使用StrConv(content, vbUnicode)转换

5.2 性能优化建议

  1. 批量消息处理

    • 对于日报等批量通知,改用腾讯通的群发接口
    • 设置最小发送间隔(建议≥500ms)
  2. 异步调用机制

    ' 使用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
  3. 连接池管理

    • 避免每次发送都新建连接
    • 使用静态变量保存RTX对象实例

6. 实际应用案例

某制造业客户实施后的效果对比:

指标集成前集成后提升幅度
审批平均耗时8.5小时2.2小时74%
异常响应速度4小时0.5小时87.5%
数据录入错误率3.2%0.8%75%
月末结账时间5天3天40%

关键实现细节:

  1. 在ERP对接环节增加消息二次确认
  2. 为库存预警设置分级通知机制
  3. 开发了自定义的@提及功能

7. 扩展应用方向

  1. 移动端整合

    • 通过腾讯通APP接收Excel服务器提醒
    • 实现移动端快速审批
  2. 消息机器人

    ' 简单关键词回复示例 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 Function
  3. BI集成

    • 将Power BI报告链接通过消息发送
    • 关键指标异常自动告警

8. 维护与升级建议

  1. 版本兼容性测试

    • 腾讯通每次大版本升级后需验证接口变更
    • 保留至少两个版本的SDK备份
  2. 监控体系搭建

    • 记录消息发送日志到数据库
    • 设置失败率阈值告警(建议>5%时触发)
  3. 用户反馈机制

    • 在消息末尾添加"是否收到"快速投票按钮
    • 定期收集高频需求(如消息分类、免打扰设置)