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 Object | Field | Value |
|---|---|---|
| S_ADT_RES | ADT_URI | * |
| S_DEVELOP | DEVCLASS | Your development packages |
| S_DEVELOP | OBJTYPE | Required object types (PROG, CLAS, INTF, FUNC, TABL, etc.) |
| S_DEVELOP | ACTVT | 01, 02, 03 (Create, Change, Display) |
For read-only access, ACTVT = 03 (Display) is sufficient.
Adding a System #
- In the left sidebar, open the Explorer panel (folder icon)
- Click the system selector dropdown at the top
- Click Add System
- Fill in the fields:
| Field | Required | Description | Example |
|---|---|---|---|
| Display Name | Yes | Label shown in the selector | DEV |
| SAP Host URL | Yes | Full URL with protocol and port | https://sap-dev.company.com:44300 |
| Client | Yes | SAP client number | 100 |
| Username | Yes | SAP logon user | DEVELOPER |
| Password | Yes | SAP logon password |
- Click Test Connection — a success or failure message appears
- 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:
| Indicator | Meaning |
|---|---|
| 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:
| Setting | Description | Default |
|---|---|---|
| Backend URL | ABAPer API gateway URL (pre-configured for hosted version) | — |
| Offline Linting | Enable abaplint in-browser linting | Enabled |
| Activate on Save | Auto-activate after Ctrl+S | Disabled |
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 #
- Verify the host URL includes protocol and port (e.g.,
https://sap-dev:44300) - Confirm ADT services are active in SICF:
/sap/bc/adt - Check network access — VPN may be required
- 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.