9.8 KiB
9.8 KiB
ABAP Environment Reference
Complete guidance for SAP BTP ABAP environment development and administration.
Source: https://github.com/SAP-docs/sap-btp-cloud-platform/tree/main/docs/10-concepts
Table of Contents
- ABAP Environment Overview
- Service Plans and Metering
- System Creation
- Development Tools
- Programming Model
- Communication Management
- Lifecycle Management
- Integration
ABAP Environment Overview
The ABAP environment enables cloud ABAP development on SAP BTP.
Key Features
- Latest ABAP platform cloud release
- SAP HANA database (1:1 per system)
- ABAP RESTful Application Programming Model (RAP)
- Core Data Services (CDS)
- SAP Fiori integration
- Released objects approach for APIs
Use Cases
| Use Case | Description |
|---|---|
| Extensions | Extend S/4HANA Cloud, SuccessFactors |
| New Apps | Build cloud-native ABAP applications |
| Transformation | Move existing ABAP to cloud |
| Side-by-Side | Complement SAP solutions |
Architecture
ABAP System Instance
├── ABAP Runtime (Memory: ABAP Compute Units)
├── SAP HANA Database (Storage: HANA Compute Units)
├── Fiori Launchpad
└── Web Access (ADT, Launchpad)
Service Plans and Metering
Service Plans
| Plan | Use Case | Requirements |
|---|---|---|
| free | Proof of concept | Auto-stops nightly, no SLA |
| standard | Dev/Test/Prod | Min 2 HANA CU + 1 ABAP CU |
| saas_oem | Multitenancy SaaS | Min 2 HANA CU + 1 ABAP CU |
Compute Units
ABAP Compute Unit (ACU):
- Configures runtime memory
- Measured in 16 GB blocks
- Volatile memory for application execution
- Billed hourly
HANA Compute Unit (HCU):
- Configures persistent storage
- Measured in 16 GB blocks
- Retains data after restart
- Billed hourly
Entitlement Requirements
For standard plan, assign all three:
abapservice withstandardplanabap_compute_unitwith quantityhana_compute_unitwith quantity
Minimum Configuration
| Component | Minimum |
|---|---|
| HANA Compute Units | 2 |
| ABAP Compute Units | 1 |
| Total Memory | 48 GB (32 HANA + 16 ABAP) |
Free Plan Limitations
- Auto-stops every night
- Manual restart via Landscape Portal
- Community support only
- No SLA
- Limited resources
System Creation
Prerequisites
- Subaccount with Cloud Foundry enabled
- ABAP environment entitlements assigned
- Space created
Create via BTP Cockpit
- Navigate to Subaccount > Cloud Foundry > Spaces
- Open target space
- Click SAP HANA Cloud or Service Marketplace
- Find ABAP environment
- Create instance with parameters:
{
"admin_email": "admin@example.com",
"description": "Development System",
"is_development_allowed": true,
"sapsystemname": "DEV",
"size_of_runtime": 1,
"size_of_persistence": 4
}
Create via CF CLI
cf create-service abap standard my-abap-system -c '{
"admin_email": "admin@example.com",
"description": "Development System",
"is_development_allowed": true,
"sapsystemname": "DEV",
"size_of_runtime": 1,
"size_of_persistence": 4
}'
System Parameters
| Parameter | Description |
|---|---|
admin_email |
Initial admin user email |
sapsystemname |
3-char system ID |
is_development_allowed |
Enable dev features |
size_of_runtime |
ABAP Compute Units |
size_of_persistence |
HANA Compute Units |
Development Tools
ABAP Development Tools (ADT)
Eclipse-based IDE for ABAP development:
- Install Eclipse (latest supported version)
- Install ADT plugin from SAP update site
- Connect to ABAP system
ADT Update Site: https://tools.hana.ondemand.com/latest
ADT Features
- ABAP Editor with code completion
- CDS Editor
- Debugger
- Unit Test Runner
- Transport Management
- Git Integration (abapGit)
Connecting ADT
- File > New > ABAP Cloud Project
- Select SAP BTP, ABAP Environment
- Enter service key or use browser login
- Select system and log in
Service Key for ADT
cf create-service-key my-abap-system my-key
cf service-key my-abap-system my-key
Web Access
| Component | URL Pattern |
|---|---|
| Fiori Launchpad | [https://<system>.abap.<region>.hana.ondemand.com/](https://.abap..hana.ondemand.com/`) |
| SAP GUI for HTML | Via Fiori Launchpad |
| ADT | Via Eclipse with service key |
Programming Model
ABAP RESTful Application Programming Model (RAP)
Modern ABAP development approach:
CDS Data Model → Behavior Definition → Service Definition → Service Binding
CDS Data Model
@AccessControl.authorizationCheck: #CHECK
define root view entity ZI_Product
as select from zproduct
{
key product_id as ProductId,
product_name as ProductName,
@Semantics.amount.currencyCode: 'Currency'
price as Price,
currency as Currency
}
Behavior Definition
managed implementation in class zbp_i_product unique;
strict ( 2 );
define behavior for ZI_Product alias Product
persistent table zproduct
lock master
authorization master ( instance )
{
create;
update;
delete;
field ( readonly ) ProductId;
field ( mandatory ) ProductName;
validation validateProduct on save { create; update; }
determination setDefaults on modify { create; }
}
Service Definition
@EndUserText.label: 'Product Service'
define service ZUI_PRODUCT {
expose ZI_Product as Product;
}
Service Binding
Create via ADT:
- Right-click service definition
- New > Service Binding
- Select binding type (OData V2/V4, UI)
- Activate and publish
Communication Management
Communication Scenarios
Predefined integration patterns:
| Type | Description |
|---|---|
| Inbound | External calls to ABAP |
| Outbound | ABAP calls external systems |
Communication Arrangement
Communication Scenario → Communication System → Communication User
Creating Outbound Communication
- Create Communication System (target system details)
- Create Outbound Communication User (credentials)
- Create Communication Arrangement (link scenario + system)
HTTP Destination
DATA(lo_destination) = cl_http_destination_provider=>create_by_comm_arrangement(
comm_scenario = 'Z_MY_SCENARIO'
service_id = 'Z_MY_SERVICE'
).
DATA(lo_client) = cl_web_http_client_manager=>create_by_http_destination( lo_destination ).
DATA(lo_response) = lo_client->execute( if_web_http_client=>get ).
Lifecycle Management
Software Components
Git-based source code management:
Software Component (Git repo)
├── Package 1
│ ├── Classes
│ ├── CDS Views
│ └── Services
└── Package 2
Transport Management
| Transport Type | Use |
|---|---|
| Workbench | Development objects |
| Customizing | Configuration |
Release and Import
- Release transport request in source system
- Export via gCTS or Cloud Transport Management
- Import to target system
Landscape Configuration
Development → Test → Production
↓ ↓ ↓
Clone Import Import
Integration
Integrated SAP BTP Services
| Service | Integration |
|---|---|
| SAP Destination Service | Connectivity |
| SAP Build Work Zone | Launchpad |
| SAP Build Process Automation | Workflows |
| SAP Forms by Adobe | PDF forms |
| SAP Cloud Identity Services | Authentication |
Fiori Elements
Automatic UI generation from CDS annotations:
@UI.headerInfo: {
typeName: 'Product',
typeNamePlural: 'Products',
title: { type: #STANDARD, value: 'ProductName' }
}
@UI.lineItem: [{ position: 10, label: 'Product ID' }]
@UI.identification: [{ position: 10 }]
ProductId,
Regions
Available Regions
| Region | Provider | Technical Name |
|---|---|---|
| EU (Frankfurt) | AWS | eu10 |
| US East | AWS | us10 |
| Japan (Tokyo) | AWS | jp10 |
| Australia (Sydney) | AWS | ap10 |
| Singapore | AWS | ap11 |
| EU (Netherlands) | Azure | eu20 |
| US West | Azure | us20 |
| Japan (Tokyo) | Azure | jp20 |
Related Documentation
- ABAP Environment: https://github.com/SAP-docs/sap-btp-cloud-platform/blob/main/docs/10-concepts/abap-environment-11d6265.md
- Service Plans: https://github.com/SAP-docs/sap-btp-cloud-platform/blob/main/docs/10-concepts/service-plans-and-metering-for-sap-btp-abap-environment-b7f5a93.md
- Getting Started: https://github.com/SAP-docs/sap-btp-cloud-platform/blob/main/docs/20-getting-started/getting-started-in-the-abap-environment-2ffdd24.md
- SAP Help Portal: https://help.sap.com/docs/btp/sap-business-technology-platform/abap-environment