跳至内容

EDI 项目复盘

项目背景

由于公司主要业务在欧洲,客户需要使用 EDI 技术进行交易
目前的处理方式:客户提供了 WebEDI 界面,可以接收和上传 EDI 数据

第一次接触 EDI ,请参看 EDI 学习笔记

问题

客户提供了一个 WebEDI系统,这个系统是他们的 EDI 技术服务商开发的,并且没有和我们的 ERP 进行对接。
该系统是一个比较简单的 web 界面,并且操作起来不太友好,需要我们人工定期检查 ,在检查之后还需要手工录入数据到 Odoo ERP 系统,单据状态更新后需要重新录入到 WebEDI 中,需要同时维护 WebEDI 和 Odoo ERP 的数据,效率极低,且容易出错。

​目标

  1. 客户可以通过 EDI 技术,直接使用 EDI 实现下单、获取发货和发票信息
  2. 我们可以通过 EDI 系统,直接获取订单数据,订单有进展后直接通过 EDI 通知客户

​项目架构图

主要需求点

  1. 客户发送 EDI 数据报文到我们服务器
    1. 确定 EDI 数据报文格式、规范
    2. 确定可以接收 EDI 数据报文的通信服务器
  2. 在服务器上接收并解析报文
    1. 自动解析报文并映射到 ERP(确定映射规则)
    2. 确定映射规范和特殊情况的处理应对方法
  3. 确定 EDI 订单的整体流程
    1. 和 ERP 系统原有流程结合
    2. 梳理其中的特殊情况,确定特殊情况的处理方式
  4. 生成并发送 EDI 报文
    1. 开票及发货生成EDI报文
    2. 通过通信服务器(AS2)发送给指定的客户(需要确定报文生成规范)
  5. 异常情况处理
    1. 收集异常情况,沟通确定处理方案
    2. 邮件通知
    3. 系统日志
    4. 定期检查
    5. 其他...
  6. 系统监控

项目里程碑

  1. EDI 对接方案评估
    1. 熟悉 EDI 规范
    2. 分析客户文档
    3. 确定报文标准+通信协议及通信服务器
    4. 多轮需求沟通
      1. 推进各方协商​达成共识
      2. 确定并输出需求文档
  2. EDI 解析服务器搭建
  3. AS2 通信服务器搭建
  4. Odoo ERP 相关功能模块开发
  5. QA测试(EDI、AS2、Odoo)
  6. 培训(文档整理 + 用户培训) 
  7. 用户测试
  8. 发布上线
  9. 持续监控、支持 + 收集反馈、闭环

复盘

  1. 关于服务器选型
    1. 最初选用 openas2,后来发现了基于 django的 as2 服务器django-pyas2
    2. openas2 是基于 java 开发,没有可视化界面,部署和调试相对复杂
    3. 切换为 django-pyas2 后,提升了开发效率
    4. 反思:服务器选型时,应投入更多时间,全面了解相关项目。本次选型过急,影响了项目进展
  2. 关于时间评估
    1. 由于初次接触 EDI,低估了项目难度和时间
    2. 导致计划紧凑,缩减了部分必要的时间(如选型、评估)
    3. 后续根据情况进行了重新评估 + 持续调整,逐渐把握了节奏
    4. 反思:在评估项目的难度和时间时,应该预留处理紧急情况的时间(特别是第一次接触的项目类型),同时需要持续优化,根据情况适当进行合理的调整

总结

  1. 评估项目时,需要列出可能涉及的技术,划分好各个部分(如:技术准备、了解通信协议、可用的现成工具等),每个部分需要预留足够时间,做充分准备
  2. 随着项目发展,会出现各种新的问题,需要逐渐优化计划,同时需要提前考虑,尽量预防不必要的问题出现,或提前准备应对方案,及时申请资源解决问题