Application Development with SAP Business Technology Platform
Create customized cloud applications! Master the basics of SAP Business Technology Platform (SAP BTP) and its development environments. Then get step-by-step instructions for developing your frontend and backend using Java, Node.js, Python, or ABAP and tools like SAP Business Application Studio, SAP Joule for Developers, and more. With detailed code examples throughout, this book is your complete guide to building cloud applications on SAP BTP!
- Build and deploy cloud applications on SAP BTP using Java, Node.js, Python, and ABAP
- Work with SAP Business Application Studio, SAP Cloud Application Programming Model, SAP Joule for Developers, SAP Build, and more
- Manage, monitor, and secure your applications
You'll learn about:
- Environments, Programming Models, and Tools:
Work with SAP BTP’s development environments, including the ABAP environment, Cloud Foundry, and the Kyma runtime. Use SAP Cloud Application Programming Model to simplify cloud development and set up your main tool: SAP Business Application Studio.
- Application Development:
Develop the backend of your applications using Java, Node.js, Python, and ABAP. For the frontend, explore SAPUI5 and SAP Fiori. Understand how tools like SAP Build Apps, Jupyter Notebook, and Joule can enhance the development process.
- Operations and Support:
Secure and monitor your applications and implement DevOps best practices. Explore the use of additional services like SAP Workflow Management, SAP Build Work Zone, SAP Build Process Automation, and SAP Business Data Cloud.
Key Highlights:
- Frontend and backend cloud development
- SAP Business Application Studio
- SAP Cloud Application Programming Model
- Java, Node.js, Python, ABAP
- SAP Fiori
- SAP Build Apps
- DevOps
- Security
- Monitoring
- SAP Build Work Zone
- Joule
- SAP Business Data Cloud
View Full Table of Contents
- Foreword by Dr. Tom Janoshalmi
- Preface
- PART I Getting Started
- 1 Introduction to SAP Business Technology Platform
- 1.1 Transformation Flywheel
- 1.2 Cloud Platforms
- 1.3 Pillars of SAP Business Technology Platform
- 1.3.1 Agent and Application Development
- 1.3.2 Integration
- 1.3.3 Artificial Intelligence and Data Foundation
- 1.3.4 Deployment Models
- 1.4 SAP Business AI Platform
- 1.5 Summary
- 2 Development Environment
- 2.1 Introduction
- 2.1.1 SAP Business Technology Platform Architecture
- 2.1.2 Development Environments
- 2.2 SAP BTP, Cloud Foundry Environment
- 2.2.1 Characteristics of Cloud Foundry
- 2.2.2 How SAP Business Technology Platform Has Adopted Cloud Foundry
- 2.2.3 Cloud Foundry Services Offered by SAP Business Technology Platform
- 2.2.4 SAP Joule for Developers
- 2.3 SAP BTP ABAP Environment
- 2.3.1 Multitenancy in SAP BTP ABAP Environment
- 2.3.2 Key Cloud-Specific Features
- 2.3.3 SAP Joule for Developers
- 2.4 SAP BTP, Kyma Runtime
- 2.4.1 Overview
- 2.4.2 Creating Services
- 2.4.3 Creating Functions
- 2.5 Deployment Based on Development Environment
- 2.5.1 Deployment on SAP BTP, Neo Environment
- 2.5.2 Deployment on SAP BTP, Cloud Foundry Environment
- 2.5.3 Deployment on SAP BTP, Kyma Runtime
- 2.5.4 Deployment on SAP BTP ABAP Environment
- 2.6 Use Cases Based on Development Environment
- 2.6.1 Application Development Use Cases Supported by SAP BTP, Neo Environment
- 2.6.2 Application Development Use Cases Supported by SAP BTP, Cloud Foundry Environment
- 2.6.3 Application Development Use Cases Supported by SAP BTP ABAP Environment
- 2.6.4 Application Development Use Cases Supported by SAP BTP, Kyma Runtime
- 2.7 Estimating the Cost of SAP BTP Projects
- 2.8 Summary
- PART II Backend and Frontend Cloud Application Development
- 3 Designing Cloud Applications for SAP
- 3.1 Cloud-Native Applications
- 3.1.1 What Are Cloud-Native Applications?
- 3.1.2 Microservice Architectures
- 3.1.3 Container Architectures
- 3.2 Clean Core for SAP BTP
- 3.2.1 Concept
- 3.2.2 Mechanism
- 3.2.3 Benefits
- 3.3 Microservices
- 3.3.1 What Are Microservices?
- 3.3.2 How Does SAP Business Technology Platform Enable Microservices?
- 3.3.3 Finding the Right Microservice
- 3.3.4 Consuming Microservices
- 3.3.5 Microservices in SAP BTP, Kyma Runtime
- 3.4 Integrating Cloud-Native Applications
- 3.4.1 Introduction to SAP Integration Suite
- 3.4.2 SAP Data Intelligence
- 3.4.3 SAP Business Accelerator Hub
- 3.4.4 Migrating SAP Process Integration or SAP Process Orchestration Content to SAP Integration Suite
- 3.4.5 Scenario-Based Recommendations for Integration Tools
- 3.5 Summary
- 4 SAP Business Application Studio
- 4.1 Capabilities
- 4.2 Setting Up SAP Business Application Studio
- 4.2.1 Plans
- 4.2.2 Setup Instructions
- 4.2.3 Types of Dev Spaces
- 4.2.4 Creating Dev Spaces in SAP Business Application Studio
- 4.2.5 Workspaces Inside Dev Spaces
- 4.3 Developing Your First Cloud Application Using SAP Business Application Studio
- 4.3.1 Creating a Project Using the Wizard
- 4.3.2 Creating a Project Using the Terminal
- 4.3.3 Creating a Project in a Local Workspace by Cloning a Repository
- 4.3.4 Creating a Project by Importing a Project
- 4.4 Leveraging SAP Build Code and Joule
- 4.4.1 What Is SAP Build Code?
- 4.4.2 Set Up SAP Build Code on SAP BTP
- 4.4.3 Create a Project Using SAP Build Code
- 4.5 Migrating Projects from SAP Web IDE to SAP Business Application Studio
- 4.6 Summary
- 5 SAP HANA Cloud
- 5.1 Features of SAP HANA Cloud
- 5.2 Medallion Data Architecture
- 5.3 SAP HANA Cloud Central
- 5.4 SAP HANA Cloud Knowledge Graph Engine
- 5.4.1 Knowledge Graphs
- 5.4.2 Features and Capabilities of SAP HANA Cloud Knowledge Graph Engine
- 5.5 SAP HANA Cloud Vector Engine
- 5.5.1 Journey from Unstructured Data to Vectors
- 5.5.2 Benefits and Use Cases of SAP HANA Cloud Vector Engine
- 5.6 Summary
- 6 SAP Cloud Application Programming Model
- 6.1 Overview of SAP Cloud Application Programming Model
- 6.2 Project Setup
- 6.3 Understanding Domain Modeling
- 6.4 Using the Default SQLite Database
- 6.5 Using the SAP HANA Cloud Database
- 6.6 Generating SAP Fiori User Interfaces
- 6.7 Deploying Applications to SAP BTP, Cloud Foundry Environment
- 6.8 Consuming External Services
- 6.9 Additional Topics
- 6.9.1 Localization of SAP Fiori Apps
- 6.9.2 Authentication and Authorization
- 6.9.3 Annotations
- 6.9.4 SAP Cloud Application Programming Model LLM Plugin
- 6.10 Summary
- 7 Developing Node.js Applications
- 7.1 Creating a Project Using SAP Business Application Studio
- 7.2 Connecting to SAP BTP, Cloud Foundry Environment
- 7.3 Installing Node.js Modules
- 7.4 Creating Core Data Services Resources for Our Sample Project
- 7.4.1 Creating Files for Domain Models
- 7.4.2 Creating Files for Service Definitions
- 7.4.3 Creating Data Files
- 7.5 Creating SAP HANA Cloud Artifacts
- 7.5.1 Binding Resources to the HDI Container Service
- 7.5.2 Deploying Artifacts in SAP Business Application Studio
- 7.5.3 Viewing Database Artifacts Using SAP HANA Database Explorer
- 7.6 Deploying Applications to SAP BTP, Cloud Foundry
- 7.7 Generating Artifacts Using Joule
- 7.8 Summary
- 8 Developing Java Applications
- 8.1 Creating a Project from a Template
- 8.2 Creating a Java Application
- 8.3 Creating a Service Instance and Binding It to an Application
- 8.3.1 Creating an SAP HANA Deployment Infrastructure Container Service Instance
- 8.3.2 Deploying Artifacts in a Backend Database in SAP Business Application Studio
- 8.3.3 Viewing Database Artifacts Using the SAP HANA Database Explorer
- 8.4 Creating Core Data Services Domain Models and Services Based on SAP HANA Artifacts
- 8.4.1 Creating a Calculation View
- 8.4.2 Creating a Domain Model Based on a Calculation View
- 8.4.3 Creating a Service Definition
- 8.5 Deploying Applications to SAP BTP, Cloud Foundry
- 8.6 Summary
- 9 Developing ABAP Applications
- 9.1 SAP BTP ABAP Environment Architecture and Overview
- 9.2 Provisioning an SAP BTP ABAP Environment Trial
- 9.3 ABAP Development Tools for Eclipse
- 9.3.1 Installation and Setup
- 9.3.2 SAP Joule for Developers
- 9.3.3 ABAP AI Capabilities
- 9.4 ABAP RESTful Application Programming Model
- 9.4.1 Data Modeling and Behavior
- 9.4.2 Business Service Provisioning
- 9.4.3 Service Consumption
- 9.5 Developing a List Report App
- 9.5.1 Business Requirements
- 9.5.2 Creating an ABAP Package and Database Table
- 9.5.3 Building an ABAP RESTful Application Programming Model Application
- 9.6 Managed Versus Unmanaged Transactional Apps
- 9.7 Developing a Managed App
- 9.8 Adding Draft Capabilities to Managed Apps
- 9.9 Developing an Unmanaged App
- 9.10 Developing a Web API
- 9.11 Transport Management
- 9.12 Summary
- 10 Developing Python Application Using SAP Business Application Studio
- 10.1 Python Overview and Libraries
- 10.2 Jupyter Notebook
- 10.3 Creating a Python Application
- 10.3.1 Setup
- 10.3.2 Create a Project
- 10.3.3 Install Python Extension
- 10.3.4 Install Flask Library
- 10.3.5 Deployment
- 10.4 Summary
- 11 Developing Applications in SAP Business Technology Platform, Kyma Runtime
- 11.1 SAP BTP, Kyma Runtime
- 11.2 Use Cases
- 11.3 Building with Kyma
- 11.3.1 Prerequisite Configuration
- 11.3.2 Configuring SAP BTP, Kyma Runtime, and Service Deployment
- 11.3.3 Creating Pairing and Application Programming Interface Rules
- 11.4 Summary
- 12 Developing SAP Fiori Applications
- 12.1 Overview and Architecture
- 12.2 SAP Fiori Tools in SAP Business Application Studio
- 12.3 Freestyle SAP Fiori versus SAP Fiori Elements
- 12.4 Developing Complex Freestyle SAP Fiori Applications
- 12.4.1 Developing List-Detail Applications
- 12.4.2 Basic Files in SAPUI5 Applications
- 12.5 Developing Complex SAP Fiori Elements Applications
- 12.5.1 Determining Floorplans
- 12.5.2 Determining Data Sources and Other Details
- 12.5.3 Guided Development
- 12.6 Deploying an Application
- 12.7 Extending Freestyle Applications
- 12.8 Extending SAP Fiori Elements Applications
- 12.9 Summary
- PART III Operating Applications
- 13 DevOps Implementation
- 13.1 DevOps Fundamentals
- 13.1.1 Core Tenets of DevOps
- 13.1.2 DevOps Inner Circles
- 13.1.3 Continuous Integration/Continuous Delivery
- 13.2 Implementing Tooling for DevOps
- 13.2.1 Continuous Everything
- 13.2.2 Requirements Management
- 13.2.3 Collaborative Development Tools
- 13.2.4 Deployment Options in the Cloud
- 13.2.5 Quality Assurance
- 13.2.6 Monitoring and Feedback
- 13.2.7 Continuous Delivery Options in SAP BTP
- 13.3 Best Practices for DevOps in SAP
- 13.4 DevOps Tooling Integration for SAP and Hybrid Landscapes
- 13.5 Summary
- 14 Security
- 14.1 SAP BTP Authentication Options
- 14.1.1 Identity Authentication
- 14.1.2 Solution Overview for User Authentication via the SAP BTP User Store
- 14.1.3 Solution Overview for User Authentication Using a Corporate User Store
- 14.1.4 Solution Overview for User Authentication Using Your Own Identity Provider
- 14.2 SAP BTP Single Sign-On
- 14.2.1 Application-to-Application Single Sign-On
- 14.2.2 Assertion SSO
- 14.2.3 Principal Propagation
- 14.3 Access Management on SAP BTP
- 14.3.1 Key Concepts in User Authentication in SAP BTP
- 14.3.2 User Account and Authentication Service
- 14.3.3 Web Access
- 14.4 Authorizations for Applications on SAP BTP, Cloud Foundry Environment
- 14.4.1 Access Control
- 14.4.2 Security Artifacts for Authorizations
- 14.4.3 Authorization Enforcement
- 14.4.4 Scopes, Role Templates, and Attributes
- 14.5 Web Security for Applications in SAP BTP
- 14.5.1 Protection Against Cross-Origin Resource Sharing
- 14.5.2 Protecting Against Cross-Site Request Forgery
- 14.5.3 Protecting Against Click-Jacking Attempts
- 14.5.4 Protecting Against Cross-Site Scripting
- 14.5.5 Setting Up Timeouts for Application User Sessions
- 14.5.6 Securing Node.js Applications
- 14.5.7 Securing Your Java Applications
- 14.6 Joule Security
- 14.7 Summary
- 15 Application Monitoring
- 15.1 Monitoring Java Applications
- 15.2 Monitoring Database Systems
- 15.3 Monitoring Cloud Foundry Applications
- 15.3.1 Activating Application Log
- 15.3.2 Visualizing Application Log
- 15.4 Monitoring APIs
- 15.4.1 REST APIs for Java Applications
- 15.4.2 REST APIs for Database Systems and SAP HANA Extended Application Services
- 15.5 Monitoring Applications with Notifications
- 15.6 SAP Automation Pilot
- 15.6.1 Concepts
- 15.6.2 How SAP Automation Pilot Works
- 15.7 Summary
- PART IV Supporting Tools and Services
- 16 SAP Workflow Management
- 16.1 Overview
- 16.1.1 Key Capabilities
- 16.1.2 Limitations and Considerations
- 16.1.3 Process Model
- 16.1.4 User Interfaces
- 16.1.5 Configuring Workflow Steps
- 16.1.6 Triggering the Workflow
- 16.1.7 Configuring the Rules
- 16.1.8 Process Visibility
- 16.2 Integrations
- 16.2.1 Integration Specific to Workflow Steps
- 16.2.2 Integrating Intelligent Services
- 16.3 Model Architecture for Workflow on SAP Business Technology Platform
- 16.4 Workflow Package
- 16.5 Workflow Monitoring
- 16.6 Summary
- 17 SAP Build Work Zone
- 17.1 Introduction to SAP Build Work Zone
- 17.2 Key Concepts
- 17.3 SAP Build Work Zone Editor
- 17.3.1 Spaces, Pages, Cards, Widgets, and Content Packages
- 17.3.2 Users, Roles, and Permissions
- 17.3.3 Content Integration
- 17.4 Summary
- 18 SAP Build Process Automation
- 18.1 Basics of SAP Build Process Automation Design
- 18.1.1 Tenant Setup for SAP Build Lobby
- 18.1.2 Projects
- 18.1.3 Agents
- 18.1.4 Recorder
- 18.1.5 Packages
- 18.1.6 Deployment
- 18.2 Orchestrating Automation Processes
- 18.3 Attended and Scheduled Bots
- 18.4 Imbuing Intelligence in Bots
- 18.5 Integration
- 18.6 Summary
- 19 Joule
- 19.1 Introduction to Joule
- 19.2 Capabilities
- 19.3 Key Process and Components
- 19.4 Joule Extensions and Agents
- 19.5 Summary
- 20 SAP Business Data Cloud
- 20.1 Architecture
- 20.2 Capabilities
- 20.3 SAP Business Data Cloud Cockpit
- 20.4 Data Products
- 20.5 Intelligent Applications
- 20.6 SAP Databricks
- 20.7 Use Cases
- 20.7.1 Modernizing SAP Business Warehouse with SAP Business Data Cloud
- 20.7.2 Supporting SAP Business AI
- 20.8 Summary
- 21 Conclusion and Roadmap
- 21.1 The Autonomous Enterprise
- 21.2 Cloud Platforms
- 21.3 Digital Innovation
- 21.4 SAP BTP Roadmap
- 21.5 Summary
- The Authors
- Index