基于业务中的 EDI 对接需求,需要实现 EDI 系统并和 Odoo ERP 系统进行对接。
本文记录实现方案和经验
项目背景详情可参考 EDI 项目复盘
主要需求点
- 客户发送 EDI 数据报文到我们服务器
- 在服务器上接收并解析报文
- 确定 EDI 订单的整体流程
- 生成并发送 EDI 报文
- 异常情况处理
- 系统监控
架构图

基于业务需求,我们需要实现 EDI报文处理,EDI通信传输,对接 ERP 系统,主要涉及了以下技术
Odoo ERP (对接、业务流程管理)
Nginx (反向代理、SSL)
Nginx (反向代理、SSL)
AS2 服务器
由于客户使用的是 AS2 通信协议,所以我们需要先实现一台 AS2 服务器,这样才能正常收发数据
我们使用 django-pyAS2 实现(单击链接可以查看官方文档)
可以根据官方文档教程安装环境并启动项目
该项目是基于 django 的,所以使用方式和 django 基本一致
部署和配置也可参考 AS2 服务器部署
建议在该文档了解如何成功收发消息后,再继续阅读本文档,以便更好理解实现 EDI 的方案
该项目是基于 django 的,所以使用方式和 django 基本一致
部署和配置也可参考 AS2 服务器部署
建议在该文档了解如何成功收发消息后,再继续阅读本文档,以便更好理解实现 EDI 的方案
EDI 系统
为了能快速处理 客户当前的数据报文,同时考虑后续新的报文格式及扩展
我们选用了bots-edi 系统 作为 EDI 系统,用来处理 EDI 报文数据
EDI 系统的部署和开发可参考EDI - 服务器部署及开发
总结
- 实现了 AS2 服务器和 EDI 系统后,接下来在 ODOO 中根据需要进行模块开发即可
- AS2 服务器负责通信,数据收发的实现
- EDI 系统负责 EDI 文件的处理,解析与生成,同时完成与 ODOO ERP 系统的对接和交互
- ODOO 负责业务流程处理
- 同时,我们可以通过 Nginx 配置反向代理和 SSL