SAP BTP ABAP Environment
Guide for setting up and developing in the SAP BTP ABAP Environment (Steampunk).
Workflow
-
Determine the user's goal:
- Setting up a new ABAP Environment instance
- Connecting ADT to the BTP ABAP system
- Configuring communication arrangements for integrations
- Creating a first ABAP Cloud project
- Managing software components and packages
- Setting up outbound/inbound connectivity
-
Identify the phase:
- Initial provisioning and setup
- Developer onboarding
- Integration configuration
- Application development
-
Guide implementation step by step
Setup Overview
Prerequisites
| Requirement | Description |
|---|---|
| SAP BTP Account | Global account with entitlements for ABAP Environment |
| Subaccount | Cloud Foundry-enabled subaccount |
| ADT | Eclipse with ABAP Development Tools installed |
| User | Platform user with Space Developer role |
| Entitlements | abap/standard or abap/saas_oem service plan |
Service Instance Creation
- Navigate to BTP Cockpit → Subaccount → Cloud Foundry → Spaces
- Create service instance:
- Service: ABAP Environment
- Plan: standard
- Instance name: e.g.,
my-abap-instance
- Provide parameters (JSON):
json{ "admin_email": "admin@example.com", "description": "Development ABAP System", "is_development_allowed": true, "sapsystemname": "DEV", "size_of_runtime": 1, "size_of_persistence": 4 }
- Create a service key for ADT connectivity
Connecting ADT to BTP ABAP
- In Eclipse/ADT: File → New → ABAP Cloud Project
- Select SAP BTP ABAP Environment
- Enter the service key (JSON) or service instance URL
- Authenticate via browser (SAP Identity Authentication)
- Project is created — start developing
System Architecture
SAP BTP Subaccount └── Cloud Foundry Space └── ABAP Environment Service Instance ├── ABAP System (development/production) ├── Software Components (ZLOCAL, custom) ├── Communication Arrangements (integrations) └── Business Services (OData, RFC)
Software Components
| Component | Description |
|---|---|
ZLOCAL | Local development — not transportable (like $TMP) |
| Custom | Transportable components — managed via gCTS or Manage Software Components app |
Creating a Software Component
- Open the Manage Software Components Fiori app
- Click Create (or use the
+button) - Enter:
- Name:
Z_MY_COMPONENT - Description: e.g., "My Custom Component"
- Type: Development
- Name:
- Clone the component to make it available in ADT
- Create packages within the component
Package Structure
Z_MY_COMPONENT (Software Component) └── Z_MY_APP (Structure Package) ├── Z_MY_APP_MODEL (Sub-package: CDS views, database tables) ├── Z_MY_APP_BIZ (Sub-package: business logic, RAP BOs) └── Z_MY_APP_SRV (Sub-package: service definitions, bindings)
Communication Management
Concepts
| Artifact | Purpose |
|---|---|
| Communication Scenario | Template defining inbound/outbound services and auth methods |
| Communication System | Represents the external system (host, port, credentials) |
| Communication Arrangement | Binds scenario + system + user, activating the integration |
| Communication User | Technical user for inbound communication |
Creating a Communication Scenario
abap"Defined via ADT: New → Other → Communication Scenario "Name: Z_MY_COMM_SCENARIO
Communication scenario definition (in ADT):
| Property | Value |
|---|---|
| Scenario ID | Z_MY_COMM_SCENARIO |
| Scenario Type | Managed by Customer |
| Inbound Services | List of inbound OData services |
| Outbound Services | List of outbound HTTP services |
| Allowed Auth Methods | Basic, OAuth 2.0, x.509 |
Outbound Communication (Calling External Services)
abap"Get HTTP destination from communication arrangement DATA(lo_dest) = cl_http_destination_provider=>create_by_comm_arrangement( comm_scenario = 'Z_MY_COMM_SCENARIO' service_id = 'Z_MY_OUTBOUND_SERVICE' ). "Create HTTP client DATA(lo_client) = cl_web_http_client_manager=>create_by_http_destination( lo_dest ). "Execute request DATA(lo_request) = lo_client->get_http_request( ). lo_request->set_uri_path( '/api/resource' ). lo_request->set_header_field( i_name = 'Content-Type' i_value = 'application/json' ). DATA(lo_response) = lo_client->execute( if_web_http_client=>get ). DATA(lv_status) = lo_response->get_status( ). DATA(lv_body) = lo_response->get_text( ). lo_client->close( ).
Inbound Communication (Exposing Services)
- Create an OData service (RAP-based)
- Add the service binding to a communication scenario as inbound service
- Create communication arrangement in Fiori app:
- Select scenario
- Create or assign communication system
- Create communication user (for Basic auth) or configure OAuth
- External systems can now call the service
Identity and Access Management
Business Roles and Catalogs
IAM App → Business Catalog → Business Role → Business User
- Create IAM App in ADT (for your service binding)
- Create Business Catalog containing the IAM App
- Create Business Role in Fiori including the catalog
- Assign Business Role to users
Creating an IAM App
ADT: New → Other → IAM App Name: Z_MY_APP_IAM Service Binding: Z_MY_SERVICE_BINDING
First Project Scaffolding
Quick steps to create a minimal RAP-based Fiori app:
- Create database table
- Create CDS root view entity on the table
- Create CDS projection view (consumption view)
- Create behavior definition (managed, with draft)
- Create behavior implementation class
- Create service definition exposing projection
- Create service binding (OData V4 - UI)
- Publish and Preview in Fiori Elements
Useful Fiori Apps
| App | Purpose |
|---|---|
| Manage Software Components | Create, clone, pull software components |
| Communication Arrangements | Configure inbound/outbound integrations |
| Communication Systems | Register external systems |
| Maintain Business Roles | Create and assign roles |
| Application Jobs | Schedule and monitor background jobs |
| Custom Business Configurations | Maintain configuration tables |
Output Format
When helping with BTP ABAP Environment topics, structure responses as:
markdown## BTP ABAP Environment Guidance ### Phase - [Setup / Development / Integration / Deployment] ### Steps [Step-by-step instructions] ### Configuration [Relevant settings or code]
References
- SAP BTP ABAP Environment: https://help.sap.com/docs/btp/sap-business-technology-platform/abap-environment
- Communication Management: https://help.sap.com/docs/btp/sap-business-technology-platform/communication-management
- Getting Started Tutorial: https://developers.sap.com/group.abap-env-get-started.html
Related Skills
- abap-cloud: Use for ABAP Cloud development concepts and restrictions
- authorization-iam: Use for setting up IAM apps and business roles
- rap: Use for building RAP business objects in BTP ABAP Environment
- abapgit: Use for version control in BTP ABAP Environment

