mcpField
B
btp-abap-environment

btp-abap-environment

github.com/likweitanCloud & DevOps7282 installsUpdated 2w ago
Repository

About btp-abap-environment

btp-abap-environment is a guidance skill for setting up and developing in SAP BTP ABAP Environment. It covers provisioning, ADT connectivity, software components, communication, access management, and initial RAP-based app scaffolding.

Key features

  1. 01Set up an ABAP Environment instance
  2. 02Connect ADT to the BTP ABAP system
  3. 03Manage software components and packages
  4. 04Configure inbound and outbound communication
  5. 05Set up IAM roles and catalogs
  6. 06Scaffold a RAP-based Fiori app

Use cases

  1. 01Onboarding developers to a BTP ABAP system
  2. 02Configuring integrations with external systems
  3. 03Starting a RAP-based Fiori application

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/likweitan/abap-skills --skill btp-abap-environment

After installing, type/btp-abap-environmentin Claude Code to confirm it loaded.

Bundled filesreferences/setup-scripts.md

Details

From the project README

SAP BTP ABAP Environment

Guide for setting up and developing in the SAP BTP ABAP Environment (Steampunk).

Workflow

  1. 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
  2. Identify the phase:

    • Initial provisioning and setup
    • Developer onboarding
    • Integration configuration
    • Application development
  3. Guide implementation step by step

Setup Overview

Prerequisites
RequirementDescription
SAP BTP AccountGlobal account with entitlements for ABAP Environment
SubaccountCloud Foundry-enabled subaccount
ADTEclipse with ABAP Development Tools installed
UserPlatform user with Space Developer role
Entitlementsabap/standard or abap/saas_oem service plan
Service Instance Creation
  1. Navigate to BTP Cockpit → Subaccount → Cloud Foundry → Spaces
  2. Create service instance:
    • Service: ABAP Environment
    • Plan: standard
    • Instance name: e.g., my-abap-instance
  3. Provide parameters (JSON):
{
  "admin_email": "[email protected]",
  "description": "Development ABAP System",
  "is_development_allowed": true,
  "sapsystemname": "DEV",
  "size_of_runtime": 1,
  "size_of_persistence": 4
}
  1. Create a service key for ADT connectivity
Connecting ADT to BTP ABAP
  1. In Eclipse/ADT: File → New → ABAP Cloud Project
  2. Select SAP BTP ABAP Environment
  3. Enter the service key (JSON) or service instance URL
  4. Authenticate via browser (SAP Identity Authentication)
  5. 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

ComponentDescription
ZLOCALLocal development — not transportable (like $TMP)
CustomTransportable components — managed via gCTS or Manage Software Components app
Creating a Software Component
  1. Open the Manage Software Components Fiori app
  2. Click Create (or use the + button)
  3. Enter:
    • Name: Z_MY_COMPONENT
    • Description: e.g., "My Custom Component"
    • Type: Development
  4. Clone the component to make it available in ADT
  5. 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
ArtifactPurpose
Communication ScenarioTemplate defining inbound/outbound services and auth methods
Communication SystemRepresents the external system (host, port, credentials)
Communication ArrangementBinds scenario + system + user, activating the integration
Communication UserTechnical 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):

PropertyValue
Scenario IDZ_MY_COMM_SCENARIO
Scenario TypeManaged by Customer
Inbound ServicesList of inbound OData services
Outbound ServicesList of outbound HTTP services
Allowed Auth MethodsBasic, 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)
  1. Create an OData service (RAP-based)
  2. Add the service binding to a communication scenario as inbound service
  3. Create communication arrangement in Fiori app:
    • Select scenario
    • Create or assign communication system
    • Create communication user (for Basic auth) or configure OAuth
  4. External systems can now call the service

Identity and Access Management

Business Roles and Catalogs
IAM App → Business Catalog → Business Role → Business User
  1. Create IAM App in ADT (for your service binding)
  2. Create Business Catalog containing the IAM App
  3. Create Business Role in Fiori including the catalog
  4. 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:

  1. Create database table
  2. Create CDS root view entity on the table
  3. Create CDS projection view (consumption view)
  4. Create behavior definition (managed, with draft)
  5. Create behavior implementation class
  6. Create service definition exposing projection
  7. Create service binding (OData V4 - UI)
  8. Publish and Preview in Fiori Elements

Useful Fiori Apps

AppPurpose
Manage Software ComponentsCreate, clone, pull software components
Communication ArrangementsConfigure inbound/outbound integrations
Communication SystemsRegister external systems
Maintain Business RolesCreate and assign roles
Application JobsSchedule and monitor background jobs
Custom Business ConfigurationsMaintain 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

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

Comments

Markdown supported