OCA EDI模块评测
概述
OCA有专门的EDI仓库,包含不少模块,能用吗?本文分析一下16.0分支的代码,给想用这些EDI模块的用户提供一些参考。
对接流程
如果选择的EDI系统已经对接了Odoo,那就不需要我们在Odoo这一侧增加什么模块了。本文假设所选择的EDI系统并没有对接Odoo,它可以收发EDI报文、转换、向第三方系统转发。
所以,我们需要在Odoo中安装几个模块来解析转发过来的edifact/xml/pdf文件,创建销售订单。
解析EDI报文
OCA的EDI仓库中有很多模块,但更新的内容大多数都不是功能性的,所以想直接用就太难了,只能作为参考。
我们得先定一个小目标:解析edi报文(DELJIT),创建销售单。目标模块:
- base_edifact
- sale_order_import_edifact
至于解析DELFOR,OCA的模块没有处理,建议自己写一个小模块,解析成每周的计划即可,销售订单只用来处理DELJIT。
base_edifact
该模块包含生成和解析EDIFACT/D96A文件的方法。
该模块依赖pydifact库。Pydifact是一个为读写EDIFACT文件提供全面支持为目标的库。该库是从一个PHP库“翻译”过来的。2020年4月发布第一个版本,2024年2月发布了最新的0.1.7版本。
该模块需要partner_identification_gln模块来存储GLN标识。支持GLN(全球位置编码)和GCP(全球公司前置码)。
该模板是基础模块,要看到效果,需要sale_order_import_edifact。
sale_order_import_edifact
该模块用于将edi报文创建为销售订单。
该模块依赖sale_order_import,它提供了一个向导,用于导入xml、pdf两种类型的文件。sale_order_import_edifact模块增加了edi类型。
WARNING
第一个坑来了,xml类型的文件并没有支持! 起初我以为是16.0版本还没有迁移过来,往前翻了翻版本,发现也没有。 照作者的想法,后续应该是出sale_order_import_xml类似的模块来实现。
安装模块之后,点击销售-订单-导入RFQ或订单,弹出窗口里选择文件类型为EDIFACT,从base_edifact模块tests目录中选择一个测试文件,点击解析,导入。