企业 协同办公

Odoo 企业版签署为什么能从 WhatsApp 一路回到已签文件:Sign、WhatsApp 与附件回流链路讲透

基于 whatsapp_sign、sign 与 documents_sign 源码,讲清签署请求的消息投递、拒签/完成通知与已签文件回流 Documents 的链路。

企业 协同办公
进阶 开发者 1 分钟阅读
0 评论 0 点赞 0 收藏 5 阅读

把签署请求发到 WhatsApp,看似只是多一个通知渠道;但 Odoo 企业版真正打通的是 whatsapp_signsigndocuments_sign 三段链:请求发送、状态事件回调、以及完成文件回流归档。

## 1. 发送渠道切到 WhatsApp 后,签署请求对象本身就会改行为

enterprise/whatsapp_sign/models/sign_request.pysend_channel 增加了 whatsapp 选项,并在创建前校验所需模板是否都已配置。也就是说,Sign 不是“先生成请求、再想办法通知”,而是从 request 对象层就知道自己要走 WhatsApp 渠道。

2. 真正发送给签署人的不是裸链接,而是带访问上下文的 sign.request.item

enterprise/whatsapp_sign/models/sign_request_item.py 会为每个 signer 计算 document_linkattachments_download_link 和受 sudo 保护的模板变量字段。这样 WhatsApp 模板里拿到的不是手写 URL,而是与具体 signer、request access token 绑定的安全链接。

3. 完成或拒签后,消息事件继续驱动归档对象

_send_completed_documents_message()_send_refused_message() 在 WhatsApp 渠道下会切换到 whatsapp.composer。同时 enterprise/documents_sign/models/sign_request.py 会在创建/完成时把 sign request 与 document folder、tag、reference_doc 绑定,并在 _sign() 后给 signer 与 requester 补 completed document 的 view access。于是消息状态和文件归档没有断层。

4. 这条链的企业价值,在于消息、签署和文档引用是同一条主线

很多实现只做到“WhatsApp 发个签署链接”,但做不到完成后文档自动回仓、权限自动补齐。Odoo 企业版这里的重点,是消息通知不会脱离 Sign request item,而 Sign request item 完成后又能回到 Documents 的 folder/tag/partner access 体系。

## 结论

所以,Odoo 企业版 Sign 走 WhatsApp 时,真正串起来的是 channel、request item 安全链接以及 completed document 归档,而不是单纯多发一条即时消息。

主要源码锚点:

- `enterprise/whatsapp_sign/models/sign_request.py`
  • enterprise/whatsapp_sign/models/sign_request_item.py
  • enterprise/documents_sign/models/sign_request.py
  • enterprise/documents_sign/models/sign_template.py

DISCUSSION

评论区

想参与讨论?先 登录 再发表评论。
还没有评论,你可以成为第一个留言的人。