ARTICLE · 1300257
让 AI 直接读 SAP:内网接口打通的 3 个坑
账在 SAP 里,人在系统外
一句话定调:ERP 管账,AI 管事,两边一通,人才算真正用上了系统。
我们推 AI 落地,第一个拦路虎不是模型,是数据够不着。想让 AI 看看上个月的应收逾期,得先让财务从 SAP 导一张 Excel 粘给 AI;想比两个工艺路线的成本,又得从 CKM3 截图。数据滞后一两天,手工搬还容易错。一句话:AI 被关在 ERP 门外。
这篇不聊概念,直接讲我们怎么造一座桥,让 AI 能自己问 SAP——以及哪些坑会咬人。
01 为什么不让 AI 直接连 SAP
新手第一个冲动是"给 AI 一个 SAP 账号让它自己查"。先泼冷水——
- 权限收不住
:SAP 账号能改能删,AI 一旦越权就是事故; - 审计留不下
:谁什么时间查了什么客户,合规要可追溯; - 脱敏做不到
:价格、客户名这些字段,AI 不该原样拿走。
正确做法是在中间架一层只读网关:AI 只调网关暴露的"工具",网关去查 SAP、做完权限/日志/脱敏再回结果。权限、审计、脱敏全部收敛到网关这一层,SAP 本身一个账号都不用给 AI。对客户意味着:这不是"接个接口"的小事,是把企业核心数据开放给 AI 的治理动作,必须先有边界。
02 桥怎么搭:三层 MCP 网关
核心是一个跑在内网的 MCP(模型上下文协议)网关,对外暴露标准工具接口,对内存到 SAP / OA / 数据库。分三层:
关键点:MCP Server 是唯一碰 SAP 的进程,用固定技术账号、只跑白名单函数。AI 永远不直接碰 SAP。对客户意味着什么:我们用 Python + 官方 mcp 库,约 2–3 个工作日搭出可用骨架;它不是一次性项目,而是后续每个数字员工(应收、销售、成本)都能复用的"数据底座"。
03 三步握手:MCP 不是 POST 就能用
MCP 走标准握手,不能直接 POST tools/call。脱敏后的真实调用顺序(网关在内网,token 配在配置里不进代码):
① POST /mcp initialize → 从响应头取 mcp-session-id
② POST /mcp notifications/initialized(该次回体为空,确认握手)
③ 之后每次 tools/call 都带 mcp-session-id 头
少一步,网关直接回 Bad Request: Missing session ID——这是新手第一个坑。对客户意味着什么:握手是 MCP 的"进门规矩",跳过它任何调用都失败;这也解释了为什么别自己写裸 HTTP 调 SAP,标准化网关省的就是这类雷。
04 三个真正踩过的坑
这些坑不写进文章,工程师至少要耗半天:
- 响应是 SSE 流
:网关返回 data: {...}流式格式,要正则剥掉前缀再json.loads,否则解析失败、图表静默空白。 - 字段会"静默丢失"
:批量查多个料号时,某关键字段(如项目编号 POSKI)可能整列不返回——不报错、不提示。必须改逐个单查。这类坑最容易误判成"数据不存在"。 - 价格字段被管控
:采购信息记录里的单价是区间字符串(如"1500–1502 元"),精确值不外露。要算真实均价,得从 BI 库另行导出,AI 侧不能臆测。
对客户意味着什么:这三个坑背后是同一件事——数据治理与权限边界。网关不是"通了就行",它逼你把字段含义、权限分级、脱敏规则先想清楚。
05 打通之后,能干什么
一句话:以前是"人导表喂 AI",现在是"AI 自己问系统"。财务、销售、计划的人,都能用自然语言查实时数据。
06 给 CIO 的一笔账
可复制资产:SAP 接 AI 接入检查清单
照着这 7 项跑一遍,基本不会歪:
是否坚持只读网关,SAP 不向 AI 开放任何写/删账号; 网关是否白名单限定可调用函数,禁用任意 SQL; 握手是否走完整 initialize → notifications/initialized → 带 session-id 调用;响应是否按 SSE 解析(剥 data:前缀再 json);批量查询是否验证字段完整性(警惕静默丢列,必要时单查); 敏感字段(价格/客户)是否在网关层脱敏或泛化; 是否保留调用日志用于审计与复盘。
金句:制造业 AI 落地,七分在通数据,三分在调模型。先把 ERP 的门打开,大模型才有用武之地。
如果你们也在推进制造业 AI / 数字员工,欢迎加我微信 guszhang01 一起聊 AI 落地。我在公众号记录我落地的案例。














































































