Install
$ agentstack add skill-likweitan-abap-skills-btp-abap-environment ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
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):
{
"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
- 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
"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)
"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:
## 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
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: likweitan
- Source: likweitan/abap-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.