把在线文档接进业务系统:集成前要定的 7 件事
很多集成项目是从一句需求开始的:「在我们的合同系统里,能直接打开 Word 并在线编辑。」
这句话听起来只是嵌一个编辑器,真正做起来却会牵出七个问题:用户是谁、权限听谁的、文件存在哪、保存失败怎么办、谁通知谁、出了事怎么查、服务挂了怎么降级。
这篇按集成顺序,把七件事逐条拆开。它不替代开发文档,但可以帮项目在写第一行代码前,先把责任划清。
一|先纠正一个预期:嵌入的不是「一个编辑器」
在线文档能力通常分三层:前端嵌入层、后端接口层、回调与事件层。
- 前端层负责把预览、编辑、协作界面放进业务页面;
- 后端层负责文件、身份、权限、转换和存储;
- 回调层负责把「谁打开了、谁改了、谁下载了」告诉业务系统。
只做第一层,能演示;三层都打通,才能上线。集成工作量的大头通常在第二层和第三层。
二|集成前必须定的七件事
- 身份映射:业务系统的账号、租户、组织、岗位,如何对应到文档侧用户?离职、调岗、兼岗怎么同步?是实时接口还是定时同步?
- 权限归属:业务权限(谁能看这张单据)和文档权限(谁能看这个文件)由谁计算?冲突时以谁为准?权限服务不可用时,默认放行还是默认拒绝?
- 文件与存储:文件元数据、内容、版本分别存在哪?是业务系统先存再传给文档服务,还是文档服务直接接管?备份、归档和生命周期谁负责?
- 编辑器嵌入:打开、保存、关闭、断网、超时分别是什么表现?保存失败时,用户看到的是错误提示还是「已保存」的假象?
- 回调与事件:哪些事件必须通知业务系统?通知失败如何重试?重复通知如何幂等?事件顺序错乱时以谁为准?
- 审计与追溯:谁在什么时候看了、改了、下载了什么?能否按业务单据、按用户、按时间追溯?日志保留多久?
- 异常与降级:文档服务不可用时,业务系统是只读、排队、还是明确提示?降级期间产生的修改如何补偿?
这七件事里,最容易在联调阶段爆掉的是第 4 和第 7 项:保存失败没有提示,用户以为存上了;服务超时没有降级,整个业务页面卡死。
三|一张联调清单,把责任写清楚
| 环节 | 输入 | 输出 | 通常的责任方 |
|---|---|---|---|
| 身份打通 | 账号、组织、租户、登录态 | 可识别的文档侧用户与组织 | 业务系统提供身份,文档侧完成映射 |
| 权限联动 | 业务权限规则、文件元数据 | 打开/编辑/下载的判定结果 | 双方共同定义,业务系统通常持有规则 |
| 文件接入 | 文件来源、格式、大小、版本 | 可预览、可编辑、可转换的文件 | 业务系统负责来源,文档侧负责处理 |
| 事件回流 | 打开、保存、评论、下载等动作 | 业务系统可消费的事件 | 文档侧发出,业务系统消费与补偿 |
清单的作用不是分工好看,而是出问题时能快速定位:是身份没对上、权限没下发,还是事件没收到。
四|验收时,不要只看「能打开」
建议至少准备五类用例:
- 一份复杂版式的真实文件,验证预览和打印;
- 两个用户同时编辑同一段,验证冲突处理;
- 一个没有权限的用户,验证拦截和提示;
- 一次断网或超时,验证保存失败提示和重试;
- 一次服务重启,验证会话、文件和事件是否恢复。
这五类用例都能过,才说明集成是「能用」,而不只是「能演示」。
五|结语:集成项目的成本在边界,不在编辑器
编辑器本身是标准能力,真正决定项目周期的是边界:身份怎么映射、权限听谁的、事件怎么补偿。把这三件事写进方案和验收,后面会省掉大量联调时间。
在企业文档中验证
需要在自己的环境中验证时,可先了解私有化部署方案,再确定试用范围与验收要求。
参考资料
相关文章