GitHub Copilot 用于 SAP ABAP 在 VS Code 中:本地部署团队设置指南

开发环境从SE38和SE80到Eclipse ADT,从经典ABAP到ABAP OO,再到现在的RAP。但没有什么比AI辅助编码更快地改变了开发者的日常体验。

当我们团队开始讨论用于ABAP开发的AI工具时,第一个想到的名字是SAP Joule。它看起来很有前景,深度训练了SAP代码,集成进Eclipse ADT,并且专为ABAP设计。但当我深入了解可用性细节时,遇到了瓶颈:Joule for Developers不支持本地部署的S/4HANA系统。我们的环境是本地部署,这不会一夜之间改变。

于是我开始探索还有哪些其他资源。我看了Amazon Q Developer,它拥有强大的ABAP功能和令人印象深刻的ABAP加速器MCP服务器。但它需要搭建AWS基础设施。然后我查看了GitHub Copilot,发现我们组织已经根据GitHub企业协议获得了Copilot Business许可证。阻力最小的路径很明确。

我是在周五下午搭建的。到了周一早上,我已经开始在真正的开发工作中使用它。我变得高效的速度让我很惊讶。说实话,我原本以为会有更长的积累时间。

最让我惊讶的是

我最初在Eclipse ADT和VS Code中设置了Copilot,期望体验大致相同。我错了。Eclipse插件提供了扎实的代码补全和实用的聊天面板,但带代理模式的VS Code完全是另一个层次。第一次用自然语言描述多步任务,看到代理自主规划方法、创建文件并反复修正错误时,我知道这将改变我的团队工作方式。

有一个特别的时刻:我用代理模式指向一份当前团队没人写过的遗留报告。几分钟内,它分析了整个程序,生成了功能描述,标记了两个嵌套SELECT的性能问题,并建议用JOIN重构代码。这一次操作如果开发者手动完成,可能需要半天时间。

我看到的另一个真正价值的领域是单元测试生成。说实话,ABAP 单元测试通常是项目时间表中第一个被删减的内容。使用 Copilot 的 /tests 命令,你可以在几秒钟内生成一个稳固的测试支架。虽然不完美,你仍然需要复习和调整,但它消除了最大的障碍------从零开始编写测试类时的空白页问题。

本地ABAP团队的AI环境

如果你使用的是本地部署的SAP系统,目前的情况如下:

|----------------|-----------|----------------------|---------------------------|
| 解决方案 | 现场部署? | IDE 支持 | 关键考虑 |
| 萨普焦耳 | 不 | 蚀 ADT | 仅限云端(BTP / S/4HANA Cloud) |
| 亚马逊Q开发者 | 是的 | Eclipse,VS Code,BAS | 需要AWS生态系统 |
| GitHub Copilot | 是的 | Eclipse ADT, VS Code | 广泛的模型选择,成熟的代理模式 |

我选择了GitHub Copilot,因为我们已经有许可证了。情况因人而异,如果你的组织使用AWS,Amazon Q Developer绝对值得评估。重要的是,本地的ABAP团队不再被排除在AI辅助开发之外。

Eclipse vs. VS Code ------我发现了什么

对于AI驱动的开发任务,带有副驾驶代理模式的VS Code属于另一个层次。

**Eclipse ADT + 副驾驶:**代码补全功能不错,聊天界面很方便,而且每次发布都不断提升基本的代理支持。对于日常的ABAP工作来说,这是一个有意义的进步。

**VS 代码 + 副驾驶:**Eclipse拥有的所有功能,以及全自动代理模式,支持多步规划、终端集成,并通过ABAP FS扩展实现直接SAP系统感知。这里是我现在做复杂开发工作的地方。

安装步骤

这是我遵循的具体设置。整个过程大约花了我30到45分钟,之后我立刻就开始高效了。

步骤1: 安装Visual Studio Code代码

code.visualstudio.com 下载并安装最新版本的VS Code。我建议购买最新的稳定版------旧版本可能不支持所有Copilot功能。

步骤2: 安装ABAP远程文件系统扩展

这是让VS Code与你的SAP系统通信的扩展。没有它,Copilot 就没有 ABAP 上下文------有了它,AI 可以看到你的实际系统对象。

  • 打开 VS Code,并导航到扩展(Ctrl+Shift+X)
  • 搜索并安装 ABAP 远程文件系统
  • 点击扩展设置来配置
  • 点击Abapfs:远程访问以添加您的SAP系统

添加SAP系统连接详情。我在这里配置了我们的DEV和SBX系统。如果你只是刚开始测试设置,使用占位符值。

步骤3: 安装适用于VS Code的SAP Web IDE适配器

该扩展支持VS Code内的SAP专用开发工作流。虽然是小的新增功能,但丰富了SAP开发的体验。

  • 从扩展市场安装SAP Web IDE适配器

步骤4: 安装SAP Joule Studio Code 扩展

虽然 Joule 无法支持本地 ABAP,但我还是安装了 Joule Studio Code Editor 扩展------如果你也处理 BTP 环境,它很有用,而且不会影响 Copilot。

  • 从 Extensions 市场安装 SAP Joule(Joule Studio 代码编辑器)

步骤5: 安装GitHub Copilot扩展

这是主赛事。安装GitHub Copilot扩展,并用你公司的GitHub账户登录。

  • 从 VS Code 扩展市场安装 GitHub Copilot
  • 使用您的公司GitHub账户登录,并确保启用了Copilot

根据我的经验,给你一个建议:如果你的公司用 GitHub 的单点登录,确保通过弹出的浏览器窗口完成认证。我一开始没注意到这一点,花了 10 分钟想为什么 Copilot 不激活。

步骤6: 在SAP系统上激活ADT服务

这就是SAP Basis步骤。确保 ADT 服务在交易 SICF 中处于激活状态。如果您的Basis团队还没有为Eclipse ADT启用此功能,您需要申请。

步骤7: 连接SAP系统

现在将VS Code连接到你的SAP系统。这是一切汇聚的时刻。

  • 打开命令面板(Ctrl+Shift+P)
  • 运行:ABAP FS:连接到ABAP系统
  • 选择连接的SAP系统

Step 8: Verify SAP System Connection

Once connected, you should see your SAP system's object tree in the Explorer pane. When I first saw our $TMP package, Core Data Services, and Source Code Library appear in VS Code, it felt like two worlds merging.

  • Confirm the connected SAP system appears under ABAP Remote Filesystem
  • You should now be able to browse SAP objects remotely

Step 9: Verify GitHub Copilot and Model Availability

Finally, confirm that Copilot is active and check which AI models your organization has approved. In our case, we have access to Claude Haiku, Claude Opus, Claude Sonnet, and GPT models. I primarily use Claude Haiku for quick tasks and Claude Sonnet for complex agent work.

  • Confirm that GitHub Copilot is active in the editor
  • Verify that your company-approved AI models are available

Quick Start: Using Copilot for ABAP in VS Code

Once installed, open the Copilot Chat panel (Ctrl+Alt+I) and choose your mode. Here's how I use each one in practice:

Ask Mode --- My Go-To for Quick Answers

I use this multiple times a day. Instead of searching SAP Help or opening a browser, I just ask Copilot directly in the IDE. It's especially useful for BAPIs and function modules I don't work with regularly.

"Explain how BAPI_USER_GET_DETAIL works"

"Best practices for exception handling in ABAP OO?"

编辑模式------针对目标重构

当我已经打开了现有代码并需要具体修改时,我会选择代码,按Ctrl+I,描述我需要的内容。这对现代化旧代码模式尤为有用。

"重构为使用新对象而非创建对象"

"优化它,使用JOIN而不是嵌套的SELECTs。"

特工模式------魔法发生的地方

这是改变我工作流程的功能。我描述一个复杂的任务,让客服自己摸索方法。它规划、生成、审查自己的输出并迭代。并非所有结果第一次尝试就完美,但它给出的起点通常有70%到80%。

"创建一个带有单元测试用于BP数验证的ABAP类ZCL_BP_VALIDATOR"

"分析程序ZSALES_ORDER_REPORT------生成文档并标记性能问题"

"为保险理赔创建完整的RAP申请,包含CDS视图、行为定义和服务约束"

我每天都用的斩击命令

以下是我把聊天面板里的快捷方式,已经融入了我的日常:

  • /explain --- 我在不熟悉的遗留代码上经常用这个
  • /fix --- 当我遇到语法错误时,我一时发现不了,这很有帮助
  • /tests --- 我最喜欢的 --- 能在几秒钟内生成单元测试支架
  • /doc --- 生成方法和类的内联文档

创建和搜索自定义对象

我没想到的是直接用 VS Code 创建对象竟然这么流。输入">"命令来列出选项,然后选择ABAP创建对象。

  • 选择要创建的对象类型
  • 输入对象名称
  • 介绍是描述
  • 输入包裹和运输编号即可节省

要搜索现有对象,请使用ABAP搜索对象命令。筛选选项在寻找特定对象类型时非常有用。

自定义说明------这将是游戏规则的改变者

如果你只设置了基础安装之外的额外功能,就这样。自定义指令告诉 Copilot 你的团队如何编写代码------你的命名规范、你偏好的模式、你的性能规则。没有这些,Copilot会给你通用的ABAP。有了他们,它会给你看起来像是你团队写的代码。

在每个连接的系统下方创建一个名为.github/copilot-instructions.md的文件。你用通俗易懂的英语定义规则,副驾驶会自动执行所有建议。

我为我们团队制定的指令是:

  • 采用现代 ABAP 语法(7.55+)------新代码中无遗留模式
  • 我们的命名惯例(ZCL_*、ZIF_*、ZCX_**前缀)
  • 性能安全的数据访问模式(CDS优先,无SELECT *)
  • 针对我们业务背景的领域专属知识
  • 在每个系统下,添加一个文件夹".github"和一个文件"copilot-instructions.md"
  • 你可以集中部署,也可以用GitHub管理员探索全局部署选项
  • 以下是我为我们团队制作的说明文件示例

个人观察:部署自定义指令后,我注意到Copilot的ABAP建议质量显著提升。它不再建议创建对象,而是开始使用新。它停止生成 SELECT * 并开始使用显式字段列表。这些单独看都是小问题,但在开发团队中,它们会持续带来更好的代码。

我的团队日常使用方式

以下是GitHub Copilot成为我们常规工作流程一部分的五种方式:

  • 直接**开发的代理模式------**直接将ABAP代码写入SAP系统。这是节省最多时间的用例,尤其是在生成像数据声明、ALV设置和标准SELECT模式这样的模板时。
  • **文档生成------**指向 Copilot 的遗留代码,并获得清晰易读的文档。对于一个维护了15+年自定义ABAP的团队来说,仅这一点就足以证明了这项设置工作的合理性。
  • **代码审查------**使用 Copilot 在同行评审前审查代码质量、性能模式和最佳实践。它捕捉了人类在深陷逻辑时忽略的东西。
  • **单元测试生成------**创建带有 /tests 的 ABAP 单元测试支架。我们从几乎没有新代码的测试覆盖,到每个新方法至少都有基础的测试类。
  • **代码现代化------**将旧的ABAP重构为现代语法和面向对象模式。这在S/4HANA准备工作中尤为有用。

诚实的局限------我用惨痛的教训学到了什么

我想坦诚说明Copilot在ABAP中有哪些不足之处,因为我认为设定现实的期望很重要:

  • AI模型并未针对ABAP进行微调。与Python或JavaScript等语言相比,ABAP在GitHub上的训练数据要少得多。Copilot 有时会建议一些几乎不完全正确的语法,尤其是针对 SAP 专用的 API 和 BAPI。
  • 模块特定的业务逻辑仍然需要人类专业知识。Copilot 不了解贵公司的定制表、具体流程或监管要求。自定义说明有帮助,但它们不能替代领域知识。
  • 激活前一定要查看生成的代码。我发现过表键定义错误和权威检查缺失的细微问题。AI能帮你做到70%到80%的目标;最后20%到30%才是你的经验所在。
  • 这是一个开发者生产力工具,而非企业转型平台。它补充了组织用于大规模迁移和转换项目的专用工具。

总结

如今,AI辅助的ABAP开发已在本地运行。GitHub Copilot 在 VS Code 中,尤其是代理模式,确实改变了我的工作方式和团队处理开发任务的方式。整个安装过程只需一个下午,生产力提升从第一天起就开始。

如果你的组织有GitHub Copilot许可证和本地SAP环境,我建议你试试这个设置。

我很想听听社区中其他正在探索 AI 工具用于 ABAP 开发的经验。你觉得什么方法有效?你遇到过哪些挑战?让我们继续对话。

相关推荐
VIV-6 小时前
Pycharm项目上传到Github
ide·pycharm·github
xG8XPvV5d6 小时前
GitHub Actions自动化部署全攻略
运维·自动化·github
ChampaignWolf8 小时前
GitHub 发布全新 Copilot 独立应用,正面硬刚 Claude Code 与 Codex
github·copilot
Dream25129 小时前
Copilot CLI 安装及命令()
copilot
冴羽yayujs10 小时前
GitHub 热门项目-日榜(2026-05-19)
前端·javascript·github
梦梦代码精11 小时前
LikeShop开源多端商城系统:半年使用记录
git·uni-app·github
小猴小猴1 天前
GitHub本周热门项目(2026-05-18)
github
_大学牲1 天前
从零实现自己的agent第五期:子代理实现
github·agent·ai编程
夜雪闻竹1 天前
Codex CLI / Trae / Copilot 数据源接入
gpt·copilot·ai-native