WorkBuddy 接入 SAP 的方法全景:从实时数据到源码编辑的完整路径(附SKILL安装方式)
前言:接入的本质
WorkBuddy 接入 SAP,本质上只有一句话:
SAP 暴露的「接口层」× WorkBuddy 的「接入载体」= 一条可用的集成路径。
- SAP 一侧能卖出来的接口就那么几类:OData(Gateway)、GUI Scripting、ADT(ABAP 开发工具 REST)、RFC/BAPI、HANA SQL、IDoc/ALE、SOAP、事件总线。
- WorkBuddy 一侧能吃的载体也就几类:MCP 服务器(stdio/远程)、平台型连接器(Connector)、纯 CLI/脚本、以及"只产出知识不连数据"的离线技能。
把这两张清单做笛卡尔积,再按"本机能不能零依赖落地"筛选,就得到了下面这 12 条路径。它们不是互斥的,而是按场景互补——生产查数据走 GUI,开发改源码走 ADT,跨系统同步走中间件。
一、MCP 服务器
方案 1:OData / SAP Gateway MCP —— 读业务数据的主力
- SAP 接口:OData V2(Gateway
/IWFND/MAINT_SERVICE激活的服务),含标准 API(API_SALES_ORDER_SRV、API_BUSINESS_PARTNER)、自定义 SEGW 服务、CDS 发布服务(C_*_CDS)。 - WorkBuddy 载体:自研 MCP 服务器(零依赖脚本 + stdio 通信)。
- 能力:
ping/list_services/query/read_table/read_program/run_program/ 各类实体查询。 - 适用:读任意已激活 OData 实体、读 DDIC 表、跑 Z 程序取输出。
- 前置:Basis 在 Gateway 激活对应服务;账号有
S_SERVICE授权;连接信息外置到可编辑配置文件。 - 风险:服务未激活→403;自签证书需在内网场景关闭 SSL 校验。
方案 2:SAP GUI Scripting MCP —— 生产系统的兜底通道
- SAP 接口:SAP GUI Scripting Engine(Windows COM,
GetActiveObject("SAPGUI"))。 - WorkBuddy 载体:MCP 服务器(脚本做协议,子进程调 COM,零依赖)。
- 能力:
sap_run_transaction/sap_set_text/sap_press/sap_read_grid/sap_screenshot/sap_status。 - 前置(三者缺一不可):服务器
RZ11设sapgui/user_scripting=TRUE;GUI 勾选"启用脚本编写";必须有一个已登录的 SAP GUI 会话。 - 适用:生产系统查数据、绕 SAML SSO、跑事务、读 ALV——等同于"替你手动操作 GUI"。
- 风险:
RPC 服务器不可用= 会话未登录或进程需重启;每次调用动态接管活动会话比"常驻进程"更稳。
方案 3:ADT REST API MCP —— 源码级编辑
- SAP 接口:
/sap/bc/adt(ABAP Development Tools REST,NetWeaver 7.40+)。 - WorkBuddy 载体:社区 Go 二进制 MCP(如
aibap.mcp,零依赖、跨平台)。 - 能力:
ping/search_objects/get_source/syntax_check/activate_object/where_used/run_unit_tests/ 锁与传输请求管理等(约 40–50 个工具,按组启用)。 - 适用:开发/质量系统上的 ABAP 源码搜索、读取、编辑、语法检查、激活、查使用位置、跑单元测试。注意 ADT 按 SAP 政策不读业务数据。
- 前置:
SICF激活/sap/bc/adt(探测/sap/bc/adt/discovery?sap-client=<CLIENT>:200=可用、401=待认证、403=未激活、000=网络不可达);账号有S_DEVELOP;凭据走独立的 JSON 文件。 - 风险:生产系统常因 SAML SSO + Web Dispatcher 拦截 ADT →生产只走 GUI,ADT 仅用于开发/质量系统。
方案 4:RFC / BAPI 直连(pyrfc + NWRFC SDK)
- SAP 接口:RFC/BAPI(远程函数模块),经 NWRFC SDK。
- WorkBuddy 载体:Python
pyrfc(封装成脚本或 MCP)或 Nodenode-rfc。 - 适用:直接调
BAPI_*/ 自定义 RFC,写操作与复杂逻辑,ECC/On-Prem 首选。 - 前置:NWRFC SDK 运行库 + 网络可达网关服务(
sapgwXX)+ 账号S_RFC授权。 - 阻塞点:SDK 是 SAP 原生库+头文件,仅 SAP SMP 的 S-user 可下载(非公开),且安装依赖 VC++ 运行库与本地权限;RFC 协议无纯脚本实现。
- 替代路径:让 Basis 把要调的 FM/BAPI 封成一个 OData 操作(扩展自定义 SEGW 服务),即可复用方案 1 的 OData MCP 调用,完全绕开原生 SDK。
方案 5:HANA SQL 直连(数据库层)
- SAP 接口:HANA SQL(JDBC/ODBC/
hdbsql),仅 S/4HANA on HANA。 - WorkBuddy 载体:
hdbsqlCLI 或脚本客户端,可包成 MCP 做只读查询。 - 适用:海量表 JOIN、实时分析、绕开 OData 行数/性能限制。
- 前置:HANA 数据库用户(非应用层账号)、租户/端口、密钥管理。
- 风险:直连数据库绕过 SAP 业务校验与权限,仅建议只读分析,严禁写表。
三、架构级 / 间接集成(适合系统对接)
方案 6:IDoc / ALE 中间件(PI/PO、CPI)
- SAP 接口:IDoc(tRFC)经
SM59RFC 目的地 /WE20伙伴配置;中肩 PI/PO 或 BTP CPI。 - WorkBuddy 载体:不直接消费 IDoc,而是调用中肩暴露的 REST/Webhook,或监听集成流。
- 适用:异步、批量、跨系统主数据/单据同步。
方案 7:SOAP Web Service(SOA Manager)
- SAP 接口:
/sap/bc/srt经 SOA Manager 发布的企业服务(WS-RM)。 - WorkBuddy 载体:
curl/脚本带 WS-Security 头调 SOAP,可包 MCP。 - 适用:与既有 SOAP 消费者对接、需要事务性/可靠传输的场景。
方案 8:事件驱动(Event Mesh / 变更指针 / Webhook)
- SAP 接口:Enterprise Event Enablement(RAP 事件)、变更指针(
BD50)、IDoc/ALE 出站。 - WorkBuddy 载体:事件 → 事件总线/Webhook → WorkBuddy 自动化(Automation)触发。
- 适用:单据创建/状态变更后主动推送,而非轮询。
四、轻量 / 辅助接入
方案 9:平台型 SAP 连接器(Connector 框架)
- WorkBuddy 载体:UI 配置型 Connector(低代码,无需写 MCP)。
- 适用:若平台提供或自行封装一个 SAP 连接器类型,可在面板点选配置、免代码。可作为把方案 1/2 包成产品的方向。
方案 10:纯 CLI / 脚本(一次性、调试用)
- 做法:
curl直调 OData(-u user:pass+?sap-client=);命令行拉起 GUI 事务;COM 脚本读 ALV。 - 适用:临时查询、排错、作为 MCP 的底层验证手段。非结构化、难复用,适合验证而非长期集成。
方案 11:Fiori / 浏览器自动化(GUI 替代)
- 做法:以浏览器自动化方式操作 Fiori Launchpad / 应用。
- 适用:无 GUI Scripting 权限、或目标已是 Fiori 应用的场景(稳定性弱于原生 GUI 脚本)。
方案 12:离线技能(仅知识,不连数据)
- 载体:ABAP 编写、源码逻辑梳理、模块运维咨询、集成方案设计等技能。
- 适用:写 ABAP、梳理逻辑、模块咨询、不产生实时数据连接——是前面所有实时通道的"大脑"。
五、横向对比与选型
| 方案 | 实时数据 | 能写操作 | 依赖复杂度 | 典型用途 |
|---|---|---|---|---|
| 1 OData MCP | ✅ | ⚠️(需自建服务) | 低 | 读业务数据/表/跑 Z 程序 |
| 2 GUI MCP | ✅ | ✅(等同手动) | 低 | 生产查数据、绕 SSO、跑事务 |
| 3 ADT MCP | — | ✅(源码) | 中 | 开发系统编辑 ABAP 源码 |
| 4 RFC/BAPI | ✅ | ✅ | 高(SDK) | 直连 BAPI、复杂写操作 |
| 5 HANA SQL | ✅ | ❌(建议只读) | 中 | 海量分析 |
| 6/7/8 中肩/事件 | ✅ | ✅ | 高 | 跨系统同步/主动推送 |
| 9 连接器 | ✅ | 视封装 | 低 | 低代码配置 |
| 10 CLI | ✅ | 视命令 | 极低 | 临时验证 |
| 12 离线技能 | ❌ | ❌ | 无 | 知识/方案 |
一句话选型:
- 日常读业务数据/表/跑 Z 程序 →方案 1(OData MCP)
- 生产系统查数据、绕 SAML SSO、跑事务 →方案 2(GUI MCP)
- 改 ABAP 源码 →方案 3(ADT,开发/质量系统)
- 要稳定写操作且 OData 不便 →方案 4(RFC/BAPI,需补 NWRFC 环境)
- 海量分析 →方案 5(HANA SQL,只读)
- 跨系统自动同步/主动推送 →方案 6/8(中肩 + 事件)
六、可靠性红线(踩坑必读)
- OData 必须先由 Basis 在
/IWFND/MAINT_SERVICE激活;403=未激活、401=待认证。 - 生产系统 SAML SSO 会拦截 ADT 与 OAuth→ 只能走 GUI(方案 2);ADT 仅限开发/质量系统。
- 凭据管理:连接信息应外置到可编辑文件,勿硬编码、勿提交仓库;内网才关闭 SSL 校验,上公网务必开启。
- 环境零依赖优先:优先选择无原生库依赖的脚本/二进制方案,规避本地权限与运行库安装问题。
- 直连数据库(HANA SQL)绕过业务校验→ 仅只读分析,严禁写表。
已在skillhub发布,将提示词发送给你的 AI 安装该 skills:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_7eb18f69/sap-capability-hub-justin。
结语
WorkBuddy 接入 SAP 没有"唯一正确解",只有"按场景选对通道"。把 OData 当读数据的主动脉、GUI 当生产的兜底、ADT 当开发的手术刀、RFC/中间件当系统对接的骨架,再让离线技能做决策大脑——一套覆盖"看数据、跑事务、改源码、做集成"的完整能力就立起来了。
真正难的从来不是某一条路径本身,而是认清每条路径的前置条件与边界,并在对的系统、对的账号、对的权限下使用它。希望这份全景能帮你少走弯路。