Connecting an SAP System #

ABAPer communicates with SAP systems through ADT (ABAP Development Tools) REST services — the same protocol that Eclipse ADT uses. No SAP GUI or RFC connection is required on your machine.

How It Works #

The editor connects to your SAP system over HTTPS using the ICF service path /sap/bc/adt. Every operation — retrieving source code, saving, activating, running syntax checks — is an HTTP request to the ADT REST API.

ABAPer Editor (Browser)
    └── HTTPS ──▶ SAP System (ICF: /sap/bc/adt)
                     ├── Object retrieval
                     ├── Object creation / update
                     ├── Search
                     ├── Syntax check
                     ├── Activation
                     ├── Code formatting
                     ├── Code completion
                     └── Unit tests

Prerequisites on the SAP System #

1. ADT Services Must Be Active #

In transaction SICF, the following service path must be active:

/default_host/sap/bc/adt

If the service node is inactive (displayed in gray), right-click it and select Activate Service. Activate the entire subtree.

2. User Authorization #

Your SAP user needs the following authorization objects:

Authorization ObjectFieldValue
S_ADT_RESADT_URI*
S_DEVELOPDEVCLASSYour development packages
S_DEVELOPOBJTYPERequired object types (PROG, CLAS, INTF, FUNC, TABL, etc.)
S_DEVELOPACTVT01, 02, 03 (Create, Change, Display)

For read-only access, ACTVT = 03 (Display) is sufficient.

Adding a System #

  1. In the left sidebar, open the Explorer panel (folder icon)
  2. Click the system selector dropdown at the top
  3. Click Add System
  4. Fill in the fields:
FieldRequiredDescriptionExample
Display NameYesLabel shown in the selectorDEV
SAP Host URLYesFull URL with protocol and porthttps://sap-dev.company.com:44300
ClientYesSAP client number100
UsernameYesSAP logon userDEVELOPER
PasswordYesSAP logon password
  1. Click Test Connection — a success or failure message appears
  2. Click Save

The system appears in the dropdown and is selected automatically. A green indicator confirms the connection is active.

Switching Between Systems #

Use the system selector dropdown in the Explorer panel to switch between configured SAP systems (e.g., DEV, QAS, PRD).

When you switch:

  • The connection status updates (polling checks every 15 seconds)
  • Favorite packages are maintained per system
  • Open editor tabs remain, but operations target the newly selected system

Connection Status #

The status bar at the bottom of the editor shows the current state:

IndicatorMeaning
Green dot + “Connected”Active connection to SAP
Orange dot + “Connecting…”Connection attempt in progress
Red dot + “Error”Connection failed
Gray dot + “Offline”No system selected or disabled

Connection Settings #

Open via SAP menu > Connection Settings:

SettingDescriptionDefault
Backend URLABAPer API gateway URL (pre-configured for hosted version)
Offline LintingEnable abaplint in-browser lintingEnabled
Activate on SaveAuto-activate after Ctrl+SDisabled

How Credentials Are Handled #

  • Stored in your browser’s localStorage (key: abaper-systems)
  • Sent as HTTP headers per request: X-SAP-Host, X-SAP-Client, X-SAP-User, X-SAP-Password
  • Each request is independent — the backend resolves credentials per-request
  • Credentials persist across browser sessions but are not synced between devices

Common Connection Issues #

“Connection failed” When Testing #

  1. Verify the host URL includes protocol and port (e.g., https://sap-dev:44300)
  2. Confirm ADT services are active in SICF: /sap/bc/adt
  3. Check network access — VPN may be required
  4. Verify the user is not locked (check SU01)

“Authentication failed” (HTTP 401) #

  • User may be locked — check SU01
  • Password may have expired — reset via SAP GUI
  • Verify username is correct

“Service Not Found” (HTTP 404) #

ADT services are not activated. In SICF, activate the path /sap/bc/adt and its entire subtree.

“Lock Conflict” When Saving #

Another session has the object locked. Close the object in the other tool (Eclipse ADT, SE80) or wait for the lock to expire. Check active locks in transaction SM12.