SAP AI 第4节 GUI操作和AI代码选择SAP AI 自动化工具选型GUI 操作与代码开发的两条通道背景一、GUI 交互选 sapgui.mcp1.1 工具原理走 SAP GUI Scripting API直接操控真实界面1.2 sap_run_script把复杂操作交给一段脚本1.3 安全机制预览、确认点、策略1.4 内置 Agent 导航知识1.5 工具能力概览1.6 安装与配置二、CC 问答式开发选 abap-adt-mcp2.1 工具原理走 ADT REST API操作 ABAP 仓库对象2.2 工具架构173 个工具16 个工具集2.3 安全护栏服务器端强制策略2.4 安装与配置三、两条通道对比与分工四、我的操作记录4.1 环境准备4.2 安装与配置 sapgui.mcp4.3 安装与配置 abap-adt-mcp4.4 双通道实测4.5 踩坑与总结五、总结工欲善其事必先利其器好的工作选择当然是我们开发的利器。现在到处是AI开发SAP的AI智能体目前主要朝两大方向发展一个是模拟前台操作的类似于录屏的工具操作GUI现在SAP也出了很多这种操作类的智能体工具比如录项目、录预算前台取数等一个是面向研发类的SAP通过 HTTP 请求与 SAP 应用服务器的/sap/bc/adt服务通信操作对象是ABAP 仓库对象——程序、类、CDS 视图、传输请求等可以实现AI问答式研发。现在安装这些工具非常简单了直接打开CC输入要安装你想要的插件从头到尾帮你下载好安装好智能的一批强烈建议ABAP开发人员速速深入研究哦。SAP AI 自动化工具选型GUI 操作与代码开发的两条通道背景最近在折腾 SAP AI 自动化目标很明确业务操作用自然语言驱动 SAP GUI跑事务码、做配置、查数据、建项目。代码开发用 AI 辅助写 ABAP、建 CDS 视图、激活对象、管传输。试了一圈之后我最终定了两个工具对应两条完全不同的通道通道工具适用场景GUI 交互Hochfrequenz/sapgui.mcp跑事务码、SPRO 配置、查报表、建项目CC 问答开发abap-adt-mcpCC 内置命令行在 Claude Code 窗口里问答式开发 ABAP下面分别说明工具原理、选择理由和安装方法。一、GUI 交互选sapgui.mcp1.1 工具原理走 SAP GUI Scripting API直接操控真实界面sapgui.mcp的核心机制是SAP GUI Scripting APICOM 接口。它不依赖截图识别或模拟鼠标坐标而是通过 COM 接口直接读取和操作 SAP GUI 的界面元素——字段、按钮、表格、树控件等。这意味着AI 能看到屏幕上有什么通过sap_get_screen_elements工具AI 可以获取当前屏幕上所有可编辑字段的 ID、类型、当前值而不是靠猜。操作是确定性的写入某个字段时直接通过元素 ID 定位不受分辨率、主题、窗口位置的影响。不依赖图像识别SPRO 树、ALV 表格等复杂界面不会出现“点错位置”的问题。这个工具支持SAP GUI 桌面版Windows和 SAP Web GUI浏览器两种后端。桌面版通过 COM 驱动 SAP GUI for WindowsWeb 版通过浏览器自动化驱动 SAP Web GUI。团队里有人用 Windows、有人用 macOS 时可以用不同的后端跑。1.2sap_run_script把复杂操作交给一段脚本sapgui.mcp提供sap_run_script能力允许 AI 生成并执行一整段 Python 脚本。比如“读取 ALV 表格前 50 行数据”这个任务不用sap_run_scriptAI 需要反复调用工具——读第一行、读第二行……中间穿插几十次 MCP 往返token 消耗大速度慢。用sap_run_scriptAI 直接生成一段循环脚本一次性读完 50 行并返回结果。你只需要描述需求AI 自动生成脚本。脚本在安全沙箱中运行通过 SAP GUI COM API 执行。1.3 安全机制预览、确认点、策略sapgui.mcp内置了几层安全控制预览sap_preview在写入字段或保存之前AI 可以调用sap_preview返回当前屏幕的截图以及即将写入的值的摘要。用户确认后再执行。确认点sap_set_confirmation_points可以按操作类别设置确认点——比如“所有字段写入前需要确认”“保存操作前需要确认”。即使 AI 生成了写操作也需要用户批准才能执行。策略配置可以设置策略配置限制 AI 可用的事务码范围或在生产环境启用只读模式。1.4 内置 Agent 导航知识sapgui.mcp在初始化时会把MCP Instructions注入到 AI 客户端的系统提示中。这些指令覆盖了屏幕发现工作流先sap_get_screen_elements不要猜元素 ID弹窗处理检测到弹窗时先读弹窗内容再决定动作表格分页ALV 表格翻页的正确方式SPRO 树导航避免在 SPRO 中双击树节点——那会打开文档而不是执行配置活动此外还提供了一个docs://sap-gui-guide资源AI 可以按需读取更详细的导航指南。1.5 工具能力概览sapgui.mcp暴露59 个 MCP 工具按类别划分类别数量覆盖内容Connection Policy7连接 SAP、附加到已打开会话、检查会话、断开连接、设置策略、设置确认点Navigation3执行事务码、发送按键、检查当前屏幕Fields UI13读写字段、按钮、标签页、下拉框、文本编辑、焦点Tables Grids17ALV 表格、TableControl、行选择、列信息、单元格操作Popup / Toolbar / Shell4弹窗检查与处理、工具栏发现、Shell 内容Trees10读取、搜索、展开、选择、点击 SAP 树控件Discovery2屏幕元素发现、截图Preview1展示当前屏幕 即将写入的值Workflow Guidance1返回已知多步工作流的步骤指南Transaction Guidance1返回支持的事务的通用指南1.6 安装与配置sapgui.mcp提供独立可执行文件无需 Docker 或 Python。从 GitHub Releases 下载对应平台的二进制文件Windows (x64)sapgui_mcp_windows_version.exemacOS (Apple Silicon)sapgui_mcp_macos_arm64_version凭证文件放在systems.json中所有 Hochfrequenz 的 SAP MCP 服务器包括sapgui.mcp和aibap.mcp共享同一个文件不需要为每个工具重复输入凭证。在 Claude Code 中将 MCP 服务器配置写入项目根目录的.mcp.json即可。密码中的特殊字符如果 SAP 密码包含或\需要在 JSON 中转义——变成\\变成\\。未转义的特殊字符会导致 JSON 解析失败MCP 服务器无法启动。二、CC 问答式开发选abap-adt-mcp2.1 工具原理走 ADT REST API操作 ABAP 仓库对象abap-adt-mcp的核心机制是ABAP Development Tools (ADT) 的 REST API——和 Eclipse ADT 底层用的是同一套 HTTP 服务。它不做 GUI 操作而是直接通过 HTTP 请求与 SAP 应用服务器的/sap/bc/adt服务通信操作对象是ABAP 仓库对象——程序、类、CDS 视图、传输请求等。这意味着不需要 SAP GUI只要有网络能访问 ADT REST 端点就能操作 ABAP 对象。可以在纯 Claude Code 环境中工作不需要开 Eclipse。完整的读写能力搜索对象、读取源码、编辑源码、创建传输、激活对象、运行 ABAP Unit 和 ATC、读取 short dump、查询表。多系统支持一个服务器可以同时连接多个 SAP 系统——DEV、QAS、PRD 都可以在systems.json中配置。2.2 工具架构173 个工具16 个工具集abap-adt-mcp2.0.1 版本暴露173 个 MCP 工具分布在16 个工具集中。这些工具按处理器组Handler Group组织处理器组覆盖内容ReadOnlyHandlersGroup只读操作读取程序、类、表等HighLevelHandlersGroup高层操作创建、更新LowLevelHandlersGroup底层 ADT 操作SystemHandlersGroup系统操作列出未激活对象等SearchHandlersGroup搜索操作where-used、quick-fix对于开发场景write_source工具会自动完成一个完整的写入流程读取当前源码 → 冲突检查 → 语法检查 → 锁定对象 → 写入 → 解锁用 try/finally 保证锁一定释放。2.3 安全护栏服务器端强制策略abap-adt-mcp支持按目标系统配置安全策略且策略由服务器本身强制执行不依赖 AI 客户端的审批。在systems.json中可以为每个系统配置{DEV:{url:https://myXXXXXX.s4hana.cloud.sap,client:100,authType:basic,user:YOUR_USER,password:YOUR_PASSWORD,policy:{readOnly:false,allowedPackages:[Z*,Y*],deniedTables:[USR02,PA*]}}}readOnly: true整个系统只读任何写操作被服务器拒绝。allowedPackages只允许操作 Z 包和 Y 包中的对象。deniedTables禁止查询敏感表如用户表USR02、HR 表PA*。即使 AI 生成了越权请求服务器也会在到达 SAP 之前拦截。2.4 安装与配置前置条件Node.js 22.12 或更高版本2.0.0 版本已放弃 Node 18/20。SAP 系统的/sap/bc/adt服务已在事务码SICF中激活用户拥有 ADT 开发授权。在 Claude Code 中注册在 CC 对话窗口中输入claude mcpaddabap-adt-mcp-eSAP_SYSTEMS_FILE$HOME/.abap-adt-mcp/systems.json -- npx-yabap-adt-mcp这会在 CC 中注册 MCP 服务器通过npx自动拉取最新版本。创建systems.json在~/.abap-adt-mcp/目录下创建配置文件。支持多个系统每个系统可以有不同的 URL、客户端、认证方式和安全策略。认证方式支持Basic Auth、SSO浏览器登录、OAuth适配 On-Premise 和 S/4HANA Cloud。在 S/4HANA Cloud Public Edition 中用户需要拥有SAP_BR_DEVELOPER业务角色如果能用 Eclipse ADT这个服务器也能用。三、两条通道对比与分工维度sapgui.mcpabap-adt-mcp操作对象SAP GUI 界面元素ABAP 仓库对象通信路径SAP GUI Scripting API / COMADT REST APIHTTP操作界面Claude Code 聊天窗口纯 Claude Code 窗口是否需要 SAP GUI是桌面版或 Web 版否是否需要 Eclipse否否工具数量59 个173 个安全护栏预览 确认点 策略服务器端强制策略适用场景事务码、SPRO、报表、建项目写 ABAP、建 CDS、激活对象、管传输一句话GUI 的事交给sapgui.mcp代码的事交给abap-adt-mcp。两条通道各司其职。一个值得注意的配合方式sapgui.mcp的官方文档提到它可以与aibap.mcp同样走 ADT REST配合形成“双 Agent 协作”模式——一个 Agent 通过 ADT REST 写 ABAP 代码另一个 Agent 驱动sapgui.mcp在真实的 SAP UI 中测试生成的代码截图并报告失败。abap-adt-mcp同样走 ADT REST所以理论上可以扮演“写代码”的那个 Agent 角色。四、我的操作记录以下章节留空后续补充具体截图和命令。4.1 环境准备SAP 系统版本SAP GUI 版本Claude Code 版本Node.js 版本截图占位环境信息4.2 安装与配置sapgui.mcp安装方式独立可执行文件 / Python 源码systems.json配置MCP 注册.mcp.json连接测试截图占位sapgui.mcp 配置与连接成功4.3 安装与配置abap-adt-mcp确认/sap/bc/adt服务状态CC 中执行claude mcp addsystems.json配置工具调用验证listSystems、sap_search截图占位CC 安装命令与配置4.4 双通道实测GUI 自动化实测事务码执行、SPRO 导航就是用脚本调用GUI但是吧调的速度好快有时候看不明白就过去了总之吧前台操作的智能化还得找应用场景哦。就是个录屏或者操作精灵。ADT 自动化实测创建 CDS 视图、激活对象、传输管理比如自动创建项目预算服务确定好字段就自动创建了。自己只需要说清除需求以及建在哪些包里遵循什么规范等就可以4.5 踩坑与总结坑 1如sapgui.mcp密码特殊字符转义坑 2如abap-adt-mcpNode 版本要求坑 3如ADT 服务未激活五、总结如果你也在做 SAP AI 自动化我的建议是GUI 交互选sapgui.mcp——走 Scripting API不靠截图坐标支持桌面和 Web 双后端内置预览和确认点。代码开发选abap-adt-mcp——走 ADT REST173 个工具覆盖完整开发链服务器端强制安全策略一行命令安装。不要指望一个工具通吃GUI 和 ADT 是两条通道互补才是正解。安全第一先在 DEV / QAS 跑通生产环境用readOnly或allowedPackages严格限制。工具是手段交付价值才是目的。后续我会把实际操作记录补充到上面预留的章节里欢迎关注。