在 ToB 企业的数字化转型会议上,老板们总是充满了天马行空的浪漫主义幻想。他们看着大厂的宣传片,转头就给 IT 总监下死命令:“咱们财务共享中心那套用了十年的 ERP 太慢了,下个月给我加个发票OCR功能,让员工拍照自动填单报销!”

很多不懂底层架构的外行,以为这就像给手机装个 App 一样简单,找个提供 OCR API 的厂商,买个授权,把接口往 ERP 里一连不就完事了吗?

咱们今天不谈那些飘在云端的“AI 赋能”废话。真正干过老旧系统改造(Legacy System Retrofit)的研发兄弟都知道,真实的工程毒打是什么:

那套跑在内网角落里的 Legacy ERP(可能是十几年前的老版本用友 NC、金蝶 K/3,或者是早就倒闭的二线厂商写的祖传系统),它根本不懂什么是现代的 RESTful API,也不认识 JSON 报文。它的接口是用古老的 SOAP/XML 写的,甚至根本就没有预留任何外部写入的接口。如果你敢让新来的程序员去动它的底层源代码,明天全公司的财务账套就可能全盘崩溃。

在坚如磐石(又脆如薄冰)的老旧底座上动土,是企业 IT 架构师的终极梦魇。今天,我们纯从一线工程落地的视角,硬核拆解:如何在绝对不触碰底层祖传代码的前提下,安全、平滑地将现代化的发票OCR能力,死死地嵌入OCR能力到你的 Legacy ERP 中。


一、 刺破“直接对接”的幻象:为什么老旧 ERP 拒绝 AI?

当你的团队拿到现代 OCR 厂商的接口文档时,里面写得清清楚楚:发一个 POST 请求,传一张 Base64 的发票图片,瞬间返回包含“发票代码、金额、税率”的结构化 JSON。

但当你试图把这套逻辑塞进 Legacy ERP 时,三座大山会立刻把你压垮:

  1. 通信协议的代差: 现代 OCR 引擎走的是 HTTPS 和轻量级 JSON。而你的老 ERP 可能是跑在 Windows Server 2008 上,只接受特定的 XML 报文,甚至要求通过古老的中间件(如 Tuxedo 或 WebLogic 早期版本)进行通信。
  2. 主数据(Master Data)的物理隔离: OCR 引擎认出了发票上的供应商名叫“北京某某科技有限公司”。但老 ERP 在录入凭证时,不认汉字,它只认数据库里对应的供应商编号(如 V-10086)。如果接口直接把汉字硬塞进数据库,ERP 核心逻辑会直接抛出外键约束异常(Foreign Key Constraint),导致大面积死锁。
  3. 二次开发的“天价敲诈”: 如果你想让老 ERP 原厂开放一个标准的新接口来接收 OCR 数据,对方可能会告诉你:“这套系统早就停更了,要做定制化接口,研发人天费 50 万起步。”

面对这种死局,硬刚是没用的。真正的架构师,玩的是“曲线救国”。

二、 破局架构一:BFF 适配器模式(防腐层架构)

老旧系统改造的第一条铁律:绝对不要让现代的 AI 引擎直接对话 Legacy ERP。

你必须在两者之间,架设一层“防腐层(Anti-Corruption Layer)”,或者叫 BFF(Backend for Frontend)中间件。这通常是一个轻量级的 Spring Boot 或 Node.js 微服务。

硬核流水线是这样运转的:

  1. 拦截与分发: 员工在前端(如企业微信或新开发的轻量级 Web 端)上传报销发票。前端将图片发给 BFF 中间件。
  2. 调用与清洗: BFF 中间件向私有化部署的或云端的发票OCR引擎发起调用,拿到极其标准的 JSON 结果。
  3. 主数据“撞库”映射: BFF 中间件拿着 OCR 提取出来的“供应商名称”、“物料明细”,去查询 ERP 的基础数据只读视图(Read-only View),将其模糊匹配并转换为老 ERP 认识的 Vendor_IDItem_Code
  4. 伪装与注入: 最后,BFF 中间件将清洗后的数据,组装成老 ERP 能够接受的古董格式(如生成一个特定的 XML 文件推送到指定的 FTP 目录下,让 ERP 的定时任务去抓取;或者封装成 SOAP 报文调用其老旧接口)。

在这个架构下,嵌入OCR能力对 Legacy ERP 来说是完全无感的。老系统根本不知道外面发生了什么,它只知道每天依然有符合它古板规矩的数据源源不断地送进来。

三、 破局架构二:RPA + OCR 的“外挂式”暴力美学

如果你面临的是最极端的情况:这套 Legacy ERP 彻底没有接口,连原厂的源代码都丢了,数据库也被加密锁死。这在很多国内传统的制造企业和大型国企的边缘系统中极其常见。

这时候,API 对接这条路彻底被堵死。唯一的解法是引入 RPA(机器人流程自动化)作为 OCR 的“手和脚”。

硬核流水线是这样运转的:

  1. 视觉提取: 当需要处理大批量发票时,发票OCR 引擎在后台作为“视网膜”,极其精准地将发票堆里的金额、税号、明细全部提取为结构化 Excel 或内存数据。
  2. 模拟键鼠: RPA 机器人被唤醒。它就像一个永远不知疲倦的“数字财务实习生”,自动打开那套极其难用的老 ERP 客户端桌面软件。
  3. 暴力填表: RPA 模拟人类的鼠标点击,点开“新增凭证”按钮,然后将 OCR 提取出来的数据,极其快速且准确地自动 Ctrl+C / Ctrl+V 填入老 ERP 的各个输入框中,最后点击“保存”。

这套“外挂架构”看似极其不优雅,但在真实的 ToB 交付现场,它却是老旧系统改造中最具 ROI(投资回报率)、落地最快、且绝对不会引发底层系统崩溃的杀手锏。

四、 避坑指南:必须死守的异常熔断机制

无论你采用 BFF 适配器还是 RPA 外挂,将现代 OCR 嵌入OCR能力到老系统中,最怕的就是“脏数据污染”。

老系统的容错能力极差。如果 发票OCR 因为发票极其模糊,把 1000 元认成了 10000 元,或者把大写金额和阿拉伯数字提取冲突了,一旦这种脏数据被强行注入 Legacy ERP,不仅会把总账搞乱,甚至会导致月底结账时系统崩溃死循环。

实施防雷动作:

在数据真正写入老 ERP 之前,必须在你的中间件或 RPA 逻辑中设立强校验熔断机制。 必须用代码验证: OCR 返回的“发票金额”与“税额”相加,是否绝对等于“价税合计”?各个字段的置信度(Confidence Score)是否大于 0.85? 一旦校验失败,立刻将这条数据拦截在 ERP 的大门之外,打入“待人工复核池”。宁可让财务人工补录这一张单据,也绝不让一行可能有错的数据流进那套脆弱的祖传系统里。

在 ToB 软件深水区,衡量一家厂商技术实力的标准,从来不是你会调多先进的大模型 API,而是你有没有能力在那些布满灰尘、代码极其恶劣的老旧物理机房里,把新老系统天衣无缝地缝合在一起。

抛弃重构底层 ERP 的不切实际幻想,用 BFF 防腐层屏蔽协议代差,用 RPA 暴力破局接口封锁。将抗干扰能力极强的 发票OCR 作为独立的数据清洗基建,稳稳地架设在老旧业务总线的外围。替企业把推倒重来的成本省下,把财务人员打字录入的苦活干掉,这才是老旧系统改造真正该有的工程底盘和硬核姿态。