INSIGHT 03 · 集成实践

EPLAN 与 PLM/ERP 集成怎么做

接口的技术难点不在代码,在口径

最后更新:2026-11-11 · 阅读约 12 分钟

接口项目失败的典型场景:程序能跑,日志正常,但采购拿到的 BOM 还是不能下单。技术上“通了”,业务上“没用”。

原因几乎总是同一个:接口把设计端的数据原样搬了过去,而设计端的口径本来就不统一。接口是放大器,不是过滤器——上游有什么问题,下游会被完整继承,而且更难发现。

这篇文章讲工程做法:数据流怎么设计、字段映射怎么写、主数据怎么治、异常怎么处理、升级怎么适配。

一、先判断:这个需求该不该开发

三类需求值得开发:

  • 高频且规则稳定:一年上千次,每次步骤一致
  • 人工易错:字段多、需转换、靠人核对容易漏
  • 系统间必须实时或准实时:人工中转会成为瓶颈

三类不该开发:

  • 一次性任务:只做一次的数据整理,写脚本的成本高于人工
  • 配置能解决:编号规则、图框字段、报表列,多数能在项目设置里完成
  • 流程未定型:流程还在变,写死的代码每次都要改

一个实用判断:把需求写成一句话,问“这个动作一年发生多少次、规则会不会变”。次数少或规则不稳,先别开发。

二、接口的三种形态

表 1 三种接口形态与适用条件
形态工作方式优点限制
中间表双方约定数据库表结构,定时读写解耦、易排查、对系统侵入小实时性差,需要数据库权限
API 直连调用对方提供的接口实时、规范、可控依赖对方接口能力与稳定性
文件交换导出约定格式文件,对方导入实现简单、跨系统兼容好时效差,易出现版本混乱

形态选择不取决于偏好,取决于三个约束:两边系统的能力、IT 的权限策略、业务对时效的要求。

制造业里最常见的是“中间表 + 定时任务”:设计端定时把变更写入中间表,ERP 定时读取。它的好处是出问题时能直接看表里的数据,排查成本低。

三、数据流设计:四个必须定清的问题

问题一:谁是主数据源

物料编码以谁为准?设计库还是 ERP?必须二选一,不允许双写。

双写的后果是:同一物料在两个系统里各有一个版本,谁也不知道哪个是对的。等到采购发现型号不一致,追溯成本极高。

通常建议以 ERP 为物料主数据的唯一源,设计库从 ERP 同步;设计端只负责“选用”,不负责“创建”。但有些企业设计端先行(新产品先出图,物料后建档),这时需要一套“临时码转正”的流程。

问题二:单向还是双向

  • 单向:设计 → ERP(BOM、需求),或 ERP → 设计(物料、价格)
  • 双向:两边都能改,需要冲突解决机制

双向的复杂度远高于单向,因为要处理“同一字段两边都改了”的情况。除非业务确实需要,否则优先单向。

问题三:全量还是增量

全量简单但慢,增量快但需要可靠的变更识别。

增量同步的关键是“变更标记”:设计端要能识别哪些数据是新的或改过的。如果软件本身不提供变更日志,通常需要在接口层做快照比对——这会增加复杂度,也可能漏掉“改了又改回去”的情况。

问题四:失败怎么办

接口一定会失败:网络断了、对方系统在维护、数据不合规。失败后的处理必须事先约定:

  • 重试几次、间隔多久
  • 重试仍失败时,进人工队列还是丢弃
  • 人工处理完怎么重新入队
  • 失败记录保留多久

没有失败处理方案的接口,第一次出问题就会变成“停线等 IT”。

四、字段映射:把口径写在纸上

字段映射表是接口项目的核心文档。它不是一个技术附件,而是双方对“数据是什么”的共识。

表 2 字段映射表的写法
设计侧字段目标字段必填转换规则异常处理
部件号物料编码是去空格、统一大写空值阻断并记录
制造商供应商是按对照表转换未匹配进待处理队列
型号规格型号是原样传递,去尾部空格超长截断需告警
数量需求量是按 BOM 层级汇总小数位统一两位
单位计量单位是按对照表转换未匹配阻断
项目号项目/订单号否原样传递空值允许
位置装配位置否按位置码映射未匹配记录

写映射表时,四个坑最常见:

坑一:只写正常值,不写异常。 空值、重复、超长、特殊字符,这些才是工作量的主要来源。一张 30 个字段的映射表,异常规则可能占一半篇幅。

坑二:单位不统一。 设计端用“个”,ERP 用“PC”;设计端用“米”,ERP 用“M”。不统一,数量全错。

坑三:一对多没处理。 一个设计部件对应多个可选物料(替代料),映射表必须说明取哪个、按什么规则。

坑四:字段含义靠猜。 “位置”在设计端指安装位置,在 ERP 里可能指库位。名字一样,含义不同,必须在表里写清定义与示例值。

五、主数据治理:接口之前必须做的事

如果设计库里的部件属性缺失三成,接口会把这三成缺失同步到 ERP,然后采购开始打电话。返工的范围比不做接口更大。

治理的最小动作:

  1. 定必填字段:制造商、型号、描述、单位、物料组,缺一不可入库
  2. 查重:按“制造商 + 型号”做唯一性校验,合并重复条目
  3. 补全:能确认的补,不能确认的进待处理队列,不猜
  4. 抽检:随机 20 条,核对图纸—库—ERP 三方一致

这四步做完,接口的成功率会大幅提升。跳过这四步,接口项目会在联调阶段反复返工。

六、异常处理:四种场景的约定

表 3 异常场景与处理策略
场景处理策略是否阻断
必填字段为空记录并进入待处理队列,通知责任人阻断该条
物料编码重复按“制造商+型号”合并,保留最新阻断并告警
字段超长按目标系统限制截断,保留原文到备注告警不阻断
接口超时指数退避重试三次,仍失败转人工阻断该批
数据格式非法拒绝该条,记录原始报文阻断该条

原则是:能定位的单条问题阻断单条,不能定位的批次问题阻断批次。 最怕的是“静默跳过”——数据没同步,但没人知道。

七、升级适配:让接口活得久一点

接口的寿命通常比软件版本短。EPLAN 或 SWE 升级后,依赖的 API 可能变化,程序需要回归测试。

降低风险的四条做法:

  • 只用官方公开 API,不碰内部结构与未公开接口
  • 程序内置版本判断,不同版本走不同分支
  • 接口层与业务层分离,升级时只改接口层
  • 交付升级适配说明:依赖了哪些 API、哪些功能需要回归测试

升级前留回滚方案:先在测试环境升级,跑一遍关键链路(打开项目、导出 BOM、生成报表、打印),再动生产环境。

如果插件是几年前的第三方开发的、没有源码也没有文档,升级前先做“可维护性评估”。评估结论通常是“重写比适配便宜”,早接受比晚接受好。

八、验收:一条链路,逐列比对

接口验收不要看演示,看数据。

  • 选一个真实项目,从设计端导出,到目标系统接收
  • 逐行逐列比对,差异必须能逐条解释
  • 检查异常场景:故意造一条空值、一条重号、一条超长,看处理是否符合约定
  • 检查日志:能否定位到“哪条数据、什么原因、处理结果”

验收通过的标志是:采购拿到同步后的 BOM,不需要打电话确认就能下单。

九、三个反模式

反模式一:先写代码,后定口径。 开发过程中不断发现“这个字段是什么意思”,代码反复改。正确顺序是先把映射表定稿。

反模式二:一次做全量集成。 所有系统、所有字段一次打通,需求在过程中膨胀。正确做法是先做一条最有价值的链路,闭环后再扩展。

反模式三:接口做完就没人管。 没有监控、没有失败告警、没有责任人。接口失效两周后才发现,数据已经断档。

常见问题

Q20EPLAN 二次开发到底能做什么?哪些需求其实不需要开发?

值得开发的三类需求:

  • 系统接口:与 PLM/ERP 交换物料、BOM、项目数据,人工搬运频繁且易错
  • 批量处理:几十上百个项目要统一改图框、改属性、导数据,手工做不现实
  • 特制输出:报表格式特殊,软件自带配置改不出来,且格式长期稳定

不建议开发的三类需求:

  • 一次性任务:只做一次的数据整理,写脚本的成本高于人工
  • 本可以用配置解决:编号规则、图框字段、报表列,多数能在项目设置与模板里完成,开发反而增加维护负担
  • 流程尚未定型:流程还在变,先把代码写死,后面每次调整都要改程序

一个实用判断:把需求写成一句话,问“这个动作一年会发生多少次”。几十次以内,人工或半自动更划算;上千次且规则稳定,才值得开发。还有一条常被忽略:开发交付的不只是程序,还有接口文档、字段映射表、异常处理约定和升级预案。没有这些,程序半年后就是黑盒。

跨服务问题 · 更新 2026-11-11

Q21EPLAN 和 SAP、用友这类 ERP 对接,BOM 怎么才能打通?

BOM 打不通,八成不是接口技术问题,而是三处口径不一致:

  • 物料编码:设计库里的部件号与 ERP 物料号不是同一套,或同一物料两个号
  • 层级定义:图纸上的 BOM 是“功能结构”,ERP 要的是“装配结构”,层级关系对不上
  • 变更时点:设计变更后,什么时候同步、同步哪些字段、历史版本怎么处理,没有约定

落地顺序建议:1. 先做物料主数据治理:确定唯一编码源,是 ERP 主还是设计库主,二选一,不允许双写2. 再定字段映射表:设计侧字段、ERP 字段、是否必填、转换规则、异常值处理,逐列写清3. 然后定同步策略:全量还是增量、单向还是双向、失败重试与人工兜底4. 最后才是写接口与联调接口形态通常是中间表、API 或文件交换,选哪种取决于两边系统的能力与 IT 约束,不取决于偏好。验收要盯一件事:同一项目,从设计端导出的 BOM 与 ERP 接收后的 BOM,逐行逐列比对,差异为零。做不到这一步,接口只是“能跑”,不是“能用”。

跨服务问题 · 更新 2026-11-11

Q22二次开发的周期和费用怎么评估?会不会做起来没底?

评估一个二次开发项目,看四个变量:

  • 接口数量与方向:几个系统、单向还是双向、实时还是批量
  • 字段复杂度:映射字段多少、是否有取值转换、是否存在一对多
  • 异常分支:数据缺失、重复、超长、编码冲突时怎么处理,这部分常被低估,实际能占一半工作量
  • 环境约束:能否拿到测试环境、是否有权限限制、联调窗口是否可控

合理的推进方式是“先单点、后扩展”:选一条最有价值的链路(例如某类项目的 BOM 导出到 ERP),做成闭环并验收,再复制到其他链路。一上来做“全系统集成”,需求会在过程中不断膨胀。关于费用,我们不在网页上给数字,原因不是回避,而是区间没有意义:同样是“EPLAN 对接 ERP”,字段 10 个和 80 个、单向和双向、有无测试环境,工作量差数倍。正确做法是先出一页需求边界说明(做什么、不做什么、验收标准),再据此评估。合同里建议明确三件事:需求变更怎么计价、源码与文档是否交付、软件升级后接口适配是否包含。

跨服务问题 · 更新 2026-11-11

Q23二次开发会不会影响后续 EPLAN 升级?升级后插件还能用吗?

会影响,但风险可控,关键在于开发时依赖了什么:

  • 依赖官方公开 API:升级后通常只需适配少量签名变化,风险最低
  • 依赖内部数据结构或未公开接口:版本一变就可能失效,风险最高
  • 依赖文件格式直读直写:格式微调就会出错,需要版本兼容层

降低升级风险的四条做法:

  • 只用厂商公开的 API 与扩展点,不碰内部实现
  • 把版本判断写进程序,不同版本走不同分支,而不是假设只有一个版本
  • 接口层与业务层分离,升级时只改接口层
  • 交付时附一份“升级适配说明”:依赖了哪些 API、哪些地方需要回归测试

还有一件常被忽略的事:升级前要留回滚方案。测试环境先升,跑一遍关键链路(打开项目、导出 BOM、生成报表、打印),再动生产环境。如果插件是几年前由其他方开发的、没有源码也没有文档,升级前先做一次“可维护性评估”,比升级后救火便宜。

跨服务问题 · 更新 2026-11-11

有具体对接场景时,建议先准备三样东西:现状流程图、涉及的系统清单、一份真实的 BOM 样例。有了这三样,判断“该开发还是该配置”通常只需要一次沟通。