archwall 把架构画全Every architecture, drawn in full

ABAP Development Tools:一套客户端代码,接 Eclipse 也接 VS CodeABAP Development Tools: one client codebase for Eclipse and VS Code

idesapabaplanguage-serverclient-serverrest

ADT overview: 1 the IDEs: Eclipse runs the ADT plug-ins with their UI, VS Code from 2026 runs an ADT extension that edits files; 2 the shared client layer with no UI: REST API wrappers, debugger and test runner, ATC and tracing, support for old releases, 2.9 million lines, run directly by Eclipse and reached by VS Code over LSP through the ADT Language Server; 3 over RFC or HTTP to the ABAP server: one ADT REST API since 7.3 EHP1 SP04, ABAP objects stored there, editor UI models written in ABAP; 4 two renderers on the client, form-based and source-based, draw every new object type, so a new IDE needs 2 editors, not 88

ADT 是在 SAP GUI 之外写 ABAP 的工具。以前只有 Eclipse,2026 年起也有 VS Code,客户端没重写。

IDE 管界面。下面的客户端层没有界面:封装 ADT REST API,带调试器、测试运行、ATC、跟踪。它经 RFC 或 HTTP 连 ABAP 服务器,7.3 EHP1 SP04 起都是同一套 API。

难在哪。用户想要 VS Code。可每个新 IDE 都要一套 290 万行的客户端层,光 SAP BTP ABAP 环境就有 88 个编辑器。

Why it was hard: 1 users want more IDEs: surveys in 2023 and 2025 put VS Code first, others asked for JetBrains, Neovim and Zed, official ABAP tools covered only SAP GUI and Eclipse; 2 problem one, the client layer: talks to the ABAP server and wraps the REST APIs, debugger, test runner, ATC, tracing, 2.9 million lines with no UI, needed by every new IDE; 3 problem two, the editors: 88 for ABAP on SAP BTP in 2025, against 1 for CAP (CDS) and class, interface and enum for Java; 4 the two fixes: reuse the client layer as a language server, and server-driven editors with two renderers
难点:每个新 IDE 都要 290 万行客户端代码和 88 个编辑器

办法一:复用客户端。2018 年试过用 TypeScript 重写,因要维护两套代码而放弃。VS Code 的 Java 扩展把 Eclipse 的 Java 工具包成语言服务器,SAP 照做:VS Code 用 LSP 连 ADT Language Server,即去掉界面的 Eclipse 插件。SAP 估计能复用 60%。

Fix 1: 1 in 2018 SAP tried a TypeScript language server: rebuild the client from scratch and keep two codebases, it worked but not for the long run, dropped; 2 the idea came from the VS Code Java extension, which wraps Eclipse JDT, so Eclipse runs inside VS Code; 3 SAP did the same: the VS Code ADT extension talks LSP to the ADT Language Server, the Eclipse plug-ins without their UI, which talks RFC or HTTP to ABAP servers from 7.3 EHP1 SP04; 4 what it buys: one codebase for Eclipse and VS Code, planned support for the same server releases as Eclipse, 60% potential reuse of 2.9 million lines; still to do: move each tool to LSP and build its UI in VS Code
办法一:像 VS Code 的 Java 扩展那样,把 Eclipse 插件包成语言服务器

办法二:编辑器由服务器描述。以前一个编辑器要客户端写 Java 界面、服务器写 ABAP。2020 年从号码范围对象开始,新对象类型都由服务器用 ABAP 描述,客户端用表单类或源码类渲染器画。新 IDE 只要两个编辑器,不是 88 个。

Fix 2: before 2020 every object type had its own editor, a Java UI on the client over the object type on the server, 88 on BTP ABAP alone, which doesn't scale; today all new object types are server-driven, the first was number range objects, and the client needs just two renderers, form-based and source-based, so a new IDE needs 2 editors
办法二:新对象类型由服务器描述界面,客户端只要两个渲染器

文件。VS Code 里按文件编辑,因为 AI 工具最擅长文件。对象还在服务器上,靠虚拟工作区接入,有些 AI 工具还不支持。

Files in VS Code: 1 every object type is edited as a file in the ABAP file formats, because VS Code is built for files and AI tools work best on files; 2 the files live in a virtual file system SAP built with the virtual workspace technology; 3 the ABAP objects stay on the server; 4 AI extensions for VS Code work on the files and Joule for developers is planned, though not every AI tool supports the virtual workspace yet
在 VS Code 里按文件编辑,对象还在服务器上

第一版。主攻 ABAP Cloud 的 RAP UI 服务,约 12 种以上对象类型。不打算做 Dynpro。别的工作还得用 Eclipse,VS Code 逐版追上。

First VS Code release: 1 the aim is every ABAP Cloud developer flow, Dynpro and Web Dynpro are not planned; 2 the first release, for early adopters, targets RAP UI services: build one from scratch, around 12+ object types, develop, test, debug, class and interface editors included; 3 many other tasks still switch to ADT for Eclipse; 4 each client release moves more tools to LSP, the plan is the same server releases as Eclipse down to 7.3 EHP1 SP04, and Eclipse took 16 years to reach today's scope
第一版只做 RAP UI 服务,之后一版一版追上 Eclipse
Timeline: 1 the rework: 2018 a TypeScript language server tried and dropped; 2018 BTP ABAP with Eclipse only, editors don't scale; 2020 number range objects, the first server-driven type, and every new type since; 2 toward VS Code: 2023 and 2025 surveys put VS Code first; 2025 SAP announces work on ADT for VS Code; 2026 the planned release, made possible by six years of rework
从 2018 年到 2026 年

ADT is SAP's toolset for writing ABAP outside SAP GUI. Until now that meant Eclipse. From 2026 it comes to VS Code too, and SAP didn't write the client twice.

The IDE shows the UI. Under it, a client layer with no UI wraps the ADT REST APIs and holds the debugger, test runner, ATC and tracing. It reaches the ABAP server over RFC or HTTP, one API for every release from 7.3 EHP1 SP04.

Why it was hard. Users kept asking for VS Code. But each new IDE needed its own client layer, 2.9 million lines, and 88 editors in the SAP BTP ABAP environment alone.

Why it was hard: 1 users want more IDEs: surveys in 2023 and 2025 put VS Code first, others asked for JetBrains, Neovim and Zed, official ABAP tools covered only SAP GUI and Eclipse; 2 problem one, the client layer: talks to the ABAP server and wraps the REST APIs, debugger, test runner, ATC, tracing, 2.9 million lines with no UI, needed by every new IDE; 3 problem two, the editors: 88 for ABAP on SAP BTP in 2025, against 1 for CAP (CDS) and class, interface and enum for Java; 4 the two fixes: reuse the client layer as a language server, and server-driven editors with two renderers
The problem: each new IDE needed 2.9 million lines of client code and 88 editors

Fix 1: reuse the client. In 2018 SAP tried a new language server in TypeScript and dropped it: two codebases to maintain. The VS Code Java extension wraps Eclipse's Java tools in a language server. SAP did the same: VS Code talks LSP to the ADT Language Server, the Eclipse plug-ins without their UI. SAP puts the possible reuse at 60%.

Fix 1: 1 in 2018 SAP tried a TypeScript language server: rebuild the client from scratch and keep two codebases, it worked but not for the long run, dropped; 2 the idea came from the VS Code Java extension, which wraps Eclipse JDT, so Eclipse runs inside VS Code; 3 SAP did the same: the VS Code ADT extension talks LSP to the ADT Language Server, the Eclipse plug-ins without their UI, which talks RFC or HTTP to ABAP servers from 7.3 EHP1 SP04; 4 what it buys: one codebase for Eclipse and VS Code, planned support for the same server releases as Eclipse, 60% potential reuse of 2.9 million lines; still to do: move each tool to LSP and build its UI in VS Code
Fix 1: wrap the Eclipse plug-ins in a language server, as the VS Code Java extension does

Fix 2: server-driven editors. An editor used to need a Java UI on the client and ABAP on the server. Since 2020, starting with number range objects, every new object type is described in ABAP on the server. The client draws it with a form-based or source-based renderer. A new IDE needs two editors, not 88.

Fix 2: before 2020 every object type had its own editor, a Java UI on the client over the object type on the server, 88 on BTP ABAP alone, which doesn't scale; today all new object types are server-driven, the first was number range objects, and the client needs just two renderers, form-based and source-based, so a new IDE needs 2 editors
Fix 2: the server describes new object types; the client needs two renderers

Files. In VS Code you edit objects as files, since AI tools work best on files. The objects stay on the server, behind a virtual workspace that not every AI tool supports yet.

Files in VS Code: 1 every object type is edited as a file in the ABAP file formats, because VS Code is built for files and AI tools work best on files; 2 the files live in a virtual file system SAP built with the virtual workspace technology; 3 the ABAP objects stay on the server; 4 AI extensions for VS Code work on the files and Joule for developers is planned, though not every AI tool supports the virtual workspace yet
Edit files in VS Code; the objects stay on the server

First release. It targets RAP UI services in ABAP Cloud: around 12+ object types. Dynpro isn't planned. Other work still needs Eclipse, and VS Code catches up release by release.

First VS Code release: 1 the aim is every ABAP Cloud developer flow, Dynpro and Web Dynpro are not planned; 2 the first release, for early adopters, targets RAP UI services: build one from scratch, around 12+ object types, develop, test, debug, class and interface editors included; 3 many other tasks still switch to ADT for Eclipse; 4 each client release moves more tools to LSP, the plan is the same server releases as Eclipse down to 7.3 EHP1 SP04, and Eclipse took 16 years to reach today's scope
The first release covers RAP UI services; later releases catch up with Eclipse
Timeline: 1 the rework: 2018 a TypeScript language server tried and dropped; 2018 BTP ABAP with Eclipse only, editors don't scale; 2020 number range objects, the first server-driven type, and every new type since; 2 toward VS Code: 2023 and 2025 surveys put VS Code first; 2025 SAP announces work on ADT for VS Code; 2026 the planned release, made possible by six years of rework
From 2018 to 2026

来源Source: community.sap.com

← 全部架构← All architectures