🧭 Applied SAP BTP CAPM – Cloud Application Programming Model
Goal: Master full-stack cloud application development on SAP BTP with CAP — from CDS modeling and service design through business logic, HANA persistence, security, Fiori UIs and deployment — via practical, industry-based use cases.Duration: 80 Hours (40 sessions × 2 hrs/day)Structure: Kanban – Planned → In Progress → CompletedDelivery Style: 60% Hands-on Labs, 30% Application Projects, 10% Concept Reviews
🗂️ Mentoring/Coaching Schema
Status | Session | Focus Area | Objective | Deliverable / Output | Tags |
🔵 Planned | 1. Orientation: The BTP Landscape | Foundations | Understand SAP BTP services, account model, environments & runtime options | Access BTP trial; annotated BTP service capability map | #foundation #orientation |
🔵 | 2. BTP Architecture & Runtimes | Foundations | Compare Cloud Foundry, Kyma & ABAP environments; where CAP fits | Runtime selection decision matrix for app scenarios | #foundation #architecture |
🔵 | 3. CAP Philosophy & Project Anatomy | CAPM Fundamentals | Understand CAP design principles, golden path & project structure (db/srv/app) | Initialized CAP project with documented folder anatomy | #cap #fundamentals |
🔵 | 4. CDS Language Essentials | CAPM Fundamentals | Learn CDS syntax: entities, types, aspects & namespaces | First domain model with reusable aspects | #cap #cds |
🔵 | 5. Defining Services | CAPM Fundamentals | Expose entities via service definitions & projections | Service layer exposing filtered projections of the domain | #cap #services |
🔵 | 6. Running & Testing CAP Apps (Mini-Project 1) | CAPM Fundamentals | Run with cds watch, seed CSV data, test OData endpoints | Working bookshop-style app with sample data & REST tests | #cap #hands-on #project |
🔵 | 7. Business Application Studio Setup | Development Environment | Configure BAS dev spaces, extensions & productivity tooling | Personalized BAS dev space with CAP tooling verified | #devenv #bas |
🟡 In Progress | 8. Node.js & Java Runtime Options | Development Environment | Compare CAP Node.js vs Java runtimes; local tooling, VS Code & CLI workflows | Same service scaffolded in both runtimes with comparison notes | #devenv #runtime |
🔵 | 9. Data Modeling Foundations | CDS Modeling | Model entities with keys, managed aspects & common types | Normalized domain model for an order-management app | #cds #modeling |
🔵 | 10. Associations & Compositions | CDS Modeling | Master to-one/to-many associations, compositions & deep documents | Header-item model with composition-based deep inserts | #cds #associations |
🔵 | 11. Annotations I: Semantics & UI | CDS Modeling | Apply common annotations: @title, @readonly, @mandatory, UI facets | Annotated model driving generated metadata | #cds #annotations |
🔵 | 12. Annotations II: Localization & Temporal Data | CDS Modeling | Implement localized texts, currencies, temporal aspects & virtual elements | Multi-language product catalogue with i18n bundles | #cds #localization |
🔵 | 13. Model Refactoring Lab | CDS Modeling | Refactor a flat legacy schema into a clean CDS domain model | Refactored model with aspects, associations & annotations | #cds #hands-on |
🔵 | 14. OData Service Deep-Dive | Service Layer | Understand generated OData V4 services: query options, $expand, draft basics | Query cookbook exercising the generated service | #services #odata |
🔵 | 15. Actions & Functions | Service Layer | Define bound/unbound actions & functions with typed parameters | Order-submit action and stock-check function implemented | #services #actions |
🔵 | 16. Service Composition & Restrictions | Service Layer | Split services by audience; apply @readonly/@insertonly restrictions | Admin vs customer service split with restricted projections | #services #design |
🔵 | 17. Consuming External Services | Service Layer | Import external OData APIs; use remote services with destinations | CAP app consuming a mocked S/4HANA business partner API | #services #external |
🔵 | 18. Event Handlers I: CRUD Lifecycle | Business Logic | Implement before/on/after handlers for CRUD events | Handler suite enforcing business rules on create/update | #logic #handlers |
🔵 | 19. Event Handlers II: Custom & Async Events | Business Logic | Emit and subscribe to custom events; understand messaging concepts | Event-driven stock-update flow with emitted domain events | #logic #events |
🔵 | 20. Validations & Error Handling | Business Logic | Implement input validations, req.error/req.reject & i18n messages | Validation layer with localized, structured error responses | #logic #validation |
🔵 | 21. Business Logic Lab (Mini-Project 2) | Business Logic | Combine handlers, validations & CQL queries into a cohesive rules layer | Discount & credit-limit engine with unit tests | #logic #project |
🔵 | 22. SQLite for Development | Persistence Layer | Use in-memory/file SQLite, deploy schema & manage test data | Local persistence setup with reproducible seed strategy | #persistence #sqlite |
🔵 | 23. SAP HANA Cloud Integration | Persistence Layer | Bind HANA Cloud, deploy HDI containers & understand generated artifacts | CAP schema deployed to HANA Cloud via HDI | #persistence #hana |
🔵 | 24. Native HANA Features & Performance | Persistence Layer | Use calculated elements, indexes & database-level tuning considerations | Performance comparison: SQLite dev vs HANA runtime | #persistence #performance |
🔵 | 25. XSUAA & Authentication | Security & Authorization | Configure xs-security.json, XSUAA service instances & JWT flow | Authenticated CAP app with XSUAA binding | #security #xsuaa |
🔵 | 26. Roles & Restrictions | Security & Authorization | Apply @requires/@restrict, roles, scopes & instance-based auth | Role-based access model: admin, clerk, auditor | #security #authorization |
🔵 | 27. Security Testing & Mock Users | Security & Authorization | Test authorizations with mocked users; approuter & role collections | Security test suite + configured approuter | #security #testing |
🔵 | 28. Fiori Elements Fundamentals | Fiori Integration | Generate List Report/Object Page apps from annotated services | Fiori Elements app scaffolded over the CAP service | #fiori #elements |
🔵 | 29. UI Annotations Deep-Dive | Fiori Integration | Craft UI.LineItem, FieldGroups, facets, value helps & criticality | Polished Fiori UI driven entirely by annotations | #fiori #annotations |
🔵 | 30. Draft Handling & Custom Extensions | Fiori Integration | Enable draft-enabled editing; extend Fiori Elements with custom fragments | Draft-enabled transactional app with a custom action button | #fiori #draft |
🔵 | 31. Cloud Foundry Deployment & MTA | Deployment | Build mta.yaml, deploy to CF & bind services (HANA, XSUAA, destinations) | Deployed multi-target application on Cloud Foundry | #deployment #mta |
🔵 | 32. CI/CD Pipelines | Deployment | Set up SAP CI/CD service / GitHub Actions with automated tests & deploy stages | Green pipeline: commit → test → build → deploy | #deployment #cicd |
🔵 | 33. Operations: Logging & Scaling | Deployment | Use application logs, health checks & scaling on CF; troubleshooting workflow | Operations runbook with log-based diagnosis exercise | #deployment #operations |
🔵 | 34. Side-by-Side Extensibility Concepts | Extensibility | Understand clean-core extension patterns & S/4HANA event consumption | Extension architecture blueprint for an S/4HANA scenario | #extensibility #clean-core |
🔵 | 35. Building an Extension App | Extensibility | Consume S/4HANA APIs/events from a CAP side-by-side extension | Extension app reacting to business partner events | #extensibility #hands-on |
🟡 | 36. Capstone Kick-off | Capstone Project | Define full-stack CAP application scope, data model & architecture | Project charter + ERD + solution architecture diagram | #capstone |
🟡 | 37. Capstone Build I: Model & Services | Capstone Project | Implement CDS models, services, actions & business logic | Working backend with test coverage | #capstone |
🟡 | 38. Capstone Build II: UI & Security | Capstone Project | Add Fiori Elements UI, drafts, XSUAA roles & approuter | Secured full-stack application end-to-end | #capstone |
🟡 | 39. Capstone Deployment & Review | QA | Deploy via CI/CD to Cloud Foundry; peer review & performance checks | Production-style deployment + peer validation report | #capstone |
🟢 Completed | 40. Capstone Presentation | Showcase | Present the full-stack CAP application & lessons learned | Live demo + reflection summary | #presentation |
🧱 Board Columns (Kanban)
Create a Board View in Notion from this table with these columns:
- 📝 Planned – upcoming or scheduled sessions
- ⚙️ In Progress – current learning module
- ✅ Completed – finished sessions with notes or evidence
You can drag cards between these statuses as you deliver/learn.
🧰 Optional Properties for Each Card
Add these properties to each Notion page/card for richer management:
Property | Type | Example |
Duration | Number | 2 hrs |
Level | Select | Beginner / Intermediate / Advanced |
Resource Link | URL | |
Lab File | File | CDS models, CSV seed data, mta.yaml samples |
Evaluation | Number (1–5) | 4 |
Instructor Notes | Text | Key takeaways or challenges |
Industry Focus | Multi-select | Retail, Manufacturing, Finance, Logistics, HR Tech |
🧠 Bonus Automation Ideas (for Notion + Pabbly or Zapier)
You could integrate:
- ✅ Automatic Status Updates after each session checklist
- 📬 Daily Reminder ("Today's CAP topic: Associations & Compositions")
- 📊 Progress Dashboard (completion % by student or module)
📑 Master Syllabus – SAP BTP CAPM (Cloud Application Programming Model)
Sr. No | Topic Name | Sub-Topics | Duration (Hours) |
1 | SAP BTP Overview | Services, Architecture, Runtime Options | 4 |
2 | CAPM Fundamentals | CDS, Services, Entities | 8 |
3 | Development Environment | BAS Setup, Node.js, Java Runtime | 4 |
4 | CDS Modeling | Data Models, Associations, Annotations | 10 |
5 | Service Layer | OData Services, Actions, Functions | 8 |
6 | Business Logic | Event Handlers, Validations | 8 |
7 | Persistence Layer | HANA Integration, SQLite | 6 |
8 | Security & Authorization | XSUAA, Roles, Authentication | 6 |
9 | Fiori Integration | Fiori Elements, UI Annotations | 6 |
10 | Deployment | Cloud Foundry, CI/CD Pipelines | 6 |
11 | Extensibility | Side-by-Side Extensions | 4 |
12 | Capstone Project | Full Stack CAP Application | 10 |
Total | 80 hrs |
SAP BTP CAPM 80-Hour Learning Curriculum
40-Day Program (2 Hours Per Day)
Day | Module | Topic | Learning Objectives | Case Study Focus | Hours |
1 | SAP BTP Overview | BTP Landscape & Services | Understand BTP services, global account/subaccount model and commercial models | A logistics firm evaluating BTP for its custom app portfolio | 2 |
2 | SAP BTP Overview | Architecture & Runtime Options | Compare Cloud Foundry, Kyma and ABAP environments; position CAP in the stack | Runtime selection workshop for three application archetypes | 2 |
3 | CAPM Fundamentals | CAP Philosophy & Project Anatomy | Understand CAP design principles, the golden path and db/srv/app structure | Bootstrapping a new order-management product from scratch | 2 |
4 | CAPM Fundamentals | CDS Language Essentials | Write CDS entities, types, aspects and namespaces | Modelling shared aspects across a multi-team codebase | 2 |
5 | CAPM Fundamentals | Defining Services | Expose entities via service definitions and projections | Public vs internal API surface for a partner portal | 2 |
6 | CAPM Fundamentals | Running & Testing CAP Apps (Mini-Project 1) | Run with cds watch, seed CSV data and test OData endpoints | Bookshop-style app delivered with REST test evidence | 2 |
7 | Development Environment | Business Application Studio Setup | Configure BAS dev spaces, extensions and productivity tooling | Standardized dev-space template for a project team | 2 |
8 | Development Environment | Node.js & Java Runtime Options | Compare CAP Node.js vs Java runtimes and local CLI workflows | Runtime decision for a Java-heavy enterprise dev team | 2 |
9 | CDS Modeling | Data Modeling Foundations | Model entities with keys, managed aspects and common reuse types | Normalized domain model for order management | 2 |
10 | CDS Modeling | Associations & Compositions | Master to-one/to-many associations, compositions and deep documents | Sales order header-item structure with deep inserts | 2 |
11 | CDS Modeling | Annotations I: Semantics & UI | Apply @title, @readonly, @mandatory and UI facet annotations | Metadata-driven admin console with zero custom UI code | 2 |
12 | CDS Modeling | Annotations II: Localization & Temporal Data | Implement localized texts, currencies, temporal aspects and virtual elements | Multi-language, multi-currency product catalogue | 2 |
13 | CDS Modeling | Model Refactoring Lab | Refactor a flat legacy schema into a clean CDS domain model | Migrating a spreadsheet-era data structure to CDS | 2 |
14 | Service Layer | OData Service Deep-Dive | Exercise generated OData V4 services: query options, $expand, drafts | Building a query cookbook for frontend developers | 2 |
15 | Service Layer | Actions & Functions | Define bound/unbound actions and functions with typed parameters | Order submission action with stock-availability function | 2 |
16 | Service Layer | Service Composition & Restrictions | Split services by audience and apply projection-level restrictions | Separate admin, clerk and customer-facing service layers | 2 |
17 | Service Layer | Consuming External Services | Import external OData APIs and use remote services via destinations | Enriching orders with S/4HANA business partner data | 2 |
18 | Business Logic | Event Handlers I: CRUD Lifecycle | Implement before/on/after handlers for CRUD events | Enforcing pricing rules at order creation | 2 |
19 | Business Logic | Event Handlers II: Custom & Async Events | Emit and subscribe to custom events; messaging concepts | Stock-level events triggering replenishment workflows | 2 |
20 | Business Logic | Validations & Error Handling | Implement input validations with req.error/req.reject and i18n messages | Localized validation messages for a global user base | 2 |
21 | Business Logic | Business Logic Lab (Mini-Project 2) | Combine handlers, validations and CQL queries into a cohesive rules layer | Discount and credit-limit engine with unit test suite | 2 |
22 | Persistence Layer | SQLite for Development | Use in-memory/file SQLite, deploy schema and manage test data | Reproducible local dev setup for a distributed team | 2 |
23 | Persistence Layer | SAP HANA Cloud Integration | Bind HANA Cloud, deploy HDI containers and inspect generated artifacts | Promoting the dev schema to a shared HANA Cloud instance | 2 |
24 | Persistence Layer | Native HANA Features & Performance | Use calculated elements, indexes and database-level tuning | Optimizing a slow analytical query on order history | 2 |
25 | Security & Authorization | XSUAA & Authentication | Configure xs-security.json, XSUAA instances and the JWT flow | Securing a customer-facing app with platform identity | 2 |
26 | Security & Authorization | Roles & Restrictions | Apply @requires/@restrict with roles, scopes and instance-based auth | Admin/clerk/auditor role model with row-level restrictions | 2 |
27 | Security & Authorization | Security Testing & Mock Users | Test authorizations with mocked users; configure approuter and role collections | Authorization regression suite for release gates | 2 |
28 | Fiori Integration | Fiori Elements Fundamentals | Generate List Report/Object Page apps from annotated services | Order-monitoring app generated over the CAP service | 2 |
29 | Fiori Integration | UI Annotations Deep-Dive | Craft UI.LineItem, FieldGroups, facets, value helps and criticality | Executive-grade UI with traffic-light criticality indicators | 2 |
30 | Fiori Integration | Draft Handling & Custom Extensions | Enable draft-based editing and extend Fiori Elements with fragments | Draft-enabled order editing with a custom approval button | 2 |
31 | Deployment | Cloud Foundry Deployment & MTA | Build mta.yaml, deploy to CF and bind HANA/XSUAA/destination services | First production-style MTA deployment | 2 |
32 | Deployment | CI/CD Pipelines | Set up SAP CI/CD service or GitHub Actions with test and deploy stages | Commit-to-deploy pipeline with automated quality gates | 2 |
33 | Deployment | Operations: Logging & Scaling | Use application logs, health checks and scaling; structured troubleshooting | Diagnosing a production incident from log streams | 2 |
34 | Extensibility | Side-by-Side Extensibility Concepts | Understand clean-core extension patterns and S/4HANA event consumption | Extension strategy keeping the S/4HANA core clean | 2 |
35 | Extensibility | Building an Extension App | Consume S/4HANA APIs and events from a CAP side-by-side extension | Supplier-scoring extension reacting to BP change events | 2 |
36 | Capstone Project | Capstone Kick-off | Define full-stack CAP application scope, data model and architecture | Project charter + ERD for the "AuroraSupply" vendor portal | 2 |
37 | Capstone Project | Capstone Build I: Model & Services | Implement CDS models, services, actions and business logic | Working backend with automated test coverage | 2 |
38 | Capstone Project | Capstone Build II: UI & Security | Add Fiori Elements UI, drafts, XSUAA roles and approuter | Secured full-stack application end-to-end | 2 |
39 | Capstone Project | Capstone Deployment & Review | Deploy via CI/CD to Cloud Foundry; peer review and performance checks | Production-style deployment with peer validation report | 2 |
40 | Capstone Project | Capstone Presentation | Present the full-stack CAP application, demo the flow and capture lessons learned | Live demo + reflection summary + next-steps roadmap | 2 |
📊 Learning Path Summary
Week 1 (Days 1-6): Foundations – BTP landscape, runtimes, CAP philosophy and first working app (Mini-Project 1)
Week 2 (Days 7-13): Environment & Modeling – BAS setup, Node.js/Java runtimes and deep CDS modeling with annotations
Week 3 (Days 14-17): Service Layer – OData V4, actions, functions, service composition and external service consumption
Week 4 (Days 18-24): Logic & Persistence – Event handlers, validations (Mini-Project 2), SQLite and HANA Cloud integration
Week 5 (Days 25-30): Security & UI – XSUAA, roles, security testing, Fiori Elements and UI annotations
Week 6 (Days 31-35): Deployment & Extensibility – MTA, CI/CD, operations and side-by-side extension patterns
Weeks 7-8 (Days 36-40): Capstone – Full-stack CAP application from charter to live demo
🎯 Key Differentiators
- Full-Stack Coverage: Every layer from CDS model to Fiori UI, security and CI/CD in one continuous build
- Hands-On Practice: Every session includes labs on a live BTP trial/free-tier account
- Clean-Core Alignment: Extensibility sessions grounded in SAP's side-by-side extension strategy
- Engineering Discipline: Unit testing, pipelines, logging and operations treated as first-class topics
- Progressive Complexity: Builds from a bookshop starter to a production-style vendor portal capstone
📚 Recommended Resources
- CAP Documentation (capire): The canonical CAP reference at cap.cloud.sap
- SAP Learning Hub / learning.sap.com: BTP and CAP learning journeys and certification prep
- SAP Developer Tutorials: Guided missions for CAP, HANA Cloud and Fiori Elements
- SAP Community: CAP-focused blogs, sample repositories and expert Q&A
- BTP Free Tier / Trial: Hands-on environment for developing and deploying all exercises
🎓 Assessment & Outcomes
After completing this 80-hour CAP-focused curriculum, learners will:
- Design domain models in CDS with associations, compositions, annotations and localization
- Build and secure OData V4 services with actions, functions and role-based authorization
- Implement robust business logic with event handlers, validations and custom events
- Persist to SQLite in development and SAP HANA Cloud in production via HDI
- Deliver annotated Fiori Elements UIs with draft handling and custom extensions
- Deploy multi-target applications to Cloud Foundry through automated CI/CD pipelines
- Build clean-core side-by-side extensions for S/4HANA
- Be prepared for SAP BTP extension developer certification paths and Big4 Consulting Grade Simulation Assessment using SAP Activate