| name | btp-cloud-transport-management |
| description | SAP Cloud Transport Management (CTM) — transport landscape nodes, content export/import between BTP subaccounts, import queue management, gCTS for ABAP Cloud, Content Agent automation. Use when configuring cloud transports or troubleshooting CTM import failures. |
| trigger | ["user needs to move content between BTP subaccounts or environments","user configures transport nodes or import queues in CTM","user troubleshoots failed CTM imports or stuck queues","user sets up gCTS for ABAP Cloud or Content Agent for automated exports"] |
SAP BTP Cloud Transport Management (CTM)
Prerequisites
- BTP Global Account with entitlement for Transport Management Service (plan:
standard)
- At least two subaccounts configured (e.g., DEV → TST → PRD)
- For on-premise CTS+: SAP Solution Manager 7.2 FP03+ or CTS+ with WebDisp
- For gCTS: ABAP Cloud environment (Steampunk / Embedded Steampunk) with Git access
cf CLI logged in to target subaccounts
1. Enable CTM Service
cf create-service cts standard ctm-dev
cf create-service cts standard ctm-tst
2. Configure Transport Landscape
DEV Subaccount ──export──▶ CTM Node (DEV)
│
import queue
│
▼
TST Subaccount ◀──import── CTM Node (TST)
│
import queue
│
▼
PRD Subaccount ◀──import── CTM Node (PRD)
Via BTP Cockpit → Transport Management → Landscape:
- Add DEV node (type: Content Source)
- Add TST node (type: Content Target, parent: DEV)
- Add PRD node (type: Content Target, parent: TST)
3. Export Content from Source
Enable Content Agent to auto-export on subscription changes:
- BTP Cockpit → Content Agent → Configuration
- Set source = DEV subaccount, target = CTM import queue
4. Import to Target Node
Manual import: Import Queue → select transport → Import
5. gCTS for ABAP Cloud
ABAP Cloud DEV ──▶ gCTS ──▶ Git Repository ──▶ gCTS ──▶ TST ──▶ PRD
6. Schedule Automated Transports
Via BTP Cockpit → Transport Management → Schedules:
- Create schedule for DEV → TST (e.g., nightly at 02:00)
- PRD import requires manual approval gate
Pitfalls
Failed import blocks entire queue
- Cause: Import queue is sequential — one failure stops all subsequent transports for that node
- Solution: Either fix the failing transport or select it → Skip. Resolved items process next cycle (5 min).
Content not appearing in target subaccount
- Cause: Content was not explicitly exported from source before transport
- Solution: Manually trigger export from DEV node, or verify Content Agent is enabled and subscribed
gCTS sync fails with Git authentication error
- Cause: Git credentials expired or repository URL changed
- Solution: Update credentials in SCTS_TRANSPORT → Repository Settings, verify SSH key or PAT has write access
Import takes longer than expected
- Cause: Queue processes every 5 minutes; large transports are sequential, not parallel
- Solution: Wait for next cycle or trigger manual import. For urgency, use Import Now button
Cloud Connector destinations not transported
- Cause: Cloud Connector configs are environment-specific, not included in CTM transport
- Solution: Manually configure Cloud Connector on target subaccount. Only destination definitions inside BTP are transported.
Verification
cf services | grep cts
CTM_GUID=$(cf service ctm-dev --guid)
cf curl "/v3/service_instances/$CTM_GUID/parameters"
Confirm in BTP Cockpit: