SAP Gateway and OData
Calling all SAP developers and admins! If your SAP and non-SAP apps rely on OData, you need this definitive guide to SAP Gateway. Perform your SAP Gateway deployment, including installation and configuration. Follow step-by-step instructions to create OData services in the backend, either with traditional coding or new SAP S/4HANA programming models. Use those services to develop various types of applications: SAPUI5, mobile, social media, and more. This book is your gateway to the world of OData!
- Get SAP Gateway up and running in your system
- Generate and develop OData services with step-by-step instructions
- Use SAP Gateway and OData services with SAP Business Application Studio, SAPUI5, SAP S/4HANA, and more
You'll learn about:
- Installation and Setup:
Get started with SAP Gateway! Begin with the basics: What are OData services? What are your integration options? Then deploy the solution and fine-tune key configuration settings.
- Service Creation:
Create OData services, step by step! Whether you’re developing services in the backend or using CDS-based technologies such as the ABAP RESTful application programming model, you’ll find the instructions you need.
- Application Development:
Build apps that consume OData! Develop SAPUI5-based apps using SAP Business Application Studio, mobile apps using SAP Mobile Development Kit, and more.
Key Highlights:
- Installation and deployment
- Configuration and integration
- Service development and generation
- Application development
- Extensibility
- Lifecycle management
- Security
- ABAP programming model for SAP Fiori
- ABAP RESTful application programming model
- SAP Business Application Studio
- SAP Business Technology Platform
View Full Table of Contents
- Foreword by Jürgen Müller
- Introduction
- Acknowledgments
- PART I: Getting Started
- 1 Introduction to SAP Gateway
- 1.1 Modern Business Applications
- 1.1.1 User Interfaces
- 1.1.2 Infrastructures
- 1.2 SAP Gateway for Modern Business Applications
- 1.3 SAP Gateway in SAP S/4HANA
- 1.4 Installation and Deployment
- 1.4.1 Installation
- 1.4.2 Deployment
- 1.5 SAP Gateway and Related Products
- 1.5.1 SAP Business Technology Platform
- 1.5.2 SAP Integration Suite
- 1.5.3 SAP Extensibility
- 1.5.4 SAP Process Orchestration
- 1.5.5 SAP HANA
- 1.5.6 SAP Business Warehouse and SAP BW/4HANA
- 1.5.7 SAP BTP, ABAP Environment
- 1.5.8 SAP Fiori
- 1.5.9 SAP API Management
- 1.6 Summary
- 2 Introduction to OData
- 2.1 OData and REST
- 2.1.1 What Is REST?
- 2.1.2 What Is OData?
- 2.2 Structure of an OData Service
- 2.2.1 Service Document
- 2.2.2 Service Metadata Document
- 2.3 OData Operations
- 2.3.1 Create
- 2.3.2 Read
- 2.3.3 Update
- 2.3.4 Delete
- 2.4 OData Query Options
- 2.4.1 Filtering and Projecting ($filter and $select)
- 2.4.2 Sorting ($orderby)
- 2.4.3 Client-Side Paging ($top, $skip, and $inlinecount)
- 2.4.4 Counting ($count)
- 2.4.5 Inlining ($expand)
- 2.4.6 Formatting ($format)
- 2.5 OData in SAP Solutions
- 2.5.1 SAP Fiori
- 2.5.2 SAP Build
- 2.5.3 SAP Analytics Cloud
- 2.5.4 SAP Mobile Start
- 2.5.5 SAP Solution Manager
- 2.5.6 SAP S/4HANA
- 2.5.7 SAP Business Technology Platform
- 2.5.8 SAP SuccessFactors Solutions
- 2.6 SAP Gateway OData Features
- 2.7 What’s Different with OData 4.0?
- 2.7.1 JavaScript Object Notation Format
- 2.7.2 Powerful Query Language
- 2.7.3 Cross-Service Navigation
- 2.7.4 Actions and Functions
- 2.7.5 Vocabularies and Annotations
- 2.8 Summary
- 3 Architecture and Integration
- 3.1 Gateway Principles
- 3.2 SAP Gateway Architecture
- 3.2.1 Consumer Tier
- 3.2.2 SAP Gateway Tier
- 3.2.3 SAP Backend Tier
- 3.2.4 Add-On Structure Evolution
- 3.3 Integration with Other Technologies
- 3.3.1 Remote Function Call
- 3.3.2 Business Object Repository
- 3.3.3 Service Provider Interface
- 3.3.4 SAP BW InfoCubes
- 3.3.5 Multidimensional Expressions
- 3.3.6 SAP BW Easy Queries and OData Queries
- 3.3.7 Generic Interaction Layer APIs
- 3.3.8 SAP Business Process Management
- 3.3.9 SAP Business Workflow
- 3.4 ABAP Programming Model for SAP Fiori
- 3.4.1 Architecture and Technology
- 3.4.2 SAPUI5 and SAP Fiori Elements
- 3.4.3 SAP Gateway and the ABAP Programming Model for SAP Fiori
- 3.4.4 SAP HANA
- 3.5 ABAP RESTful Application Programming Model
- 3.5.1 Architecture and Technology
- 3.5.2 CDS Data Modeling and Behavior Definition
- 3.5.3 Business Service Exposure
- 3.5.4 Service Consumption
- 3.6 Summary
- 4 Deployment Options, Installation, and Configuration
- 4.1 Introduction to SAP Gateway Deployment
- 4.1.1 Hub Deployment with Development in the SAP Backend System
- 4.1.2 Hub Deployment with Development on the Hub
- 4.1.3 Embedded Deployment
- 4.1.4 Mixed Deployment Options
- 4.1.5 Deployment Options for SAP Fiori and SAP S/4HANA
- 4.1.6 Comparison of Deployment Options
- 4.2 Preparing for Installation and Configuration
- 4.3 Quick Start Guide
- 4.3.1 Step 1: Deploy the SAP Gateway Add-Ons for Older SAP NetWeaver Versions
- 4.3.2 Step 2: Activate SAP Gateway
- 4.3.3 Step 3: Create an SAP System Alias
- 4.3.4 Step 4: Create an SAP Gateway Alias
- 4.3.5 Step 5: Activate the OPU Node
- 4.3.6 Step 6: Test Your Settings
- 4.4 Installation and Configuration in Detail
- 4.4.1 Installing the SAP Gateway Add-Ons
- 4.4.2 Basic Configuration Settings
- 4.4.3 OData Channel Configuration
- 4.4.4 Business Enablement Provisioning Configuration
- 4.4.5 Smoke Testing
- 4.5 Summary
- PART II: Service Creation
- 5 Introduction to OData Service Creation
- 5.1 Methods for Creating an OData Service
- 5.2 Service Creation Process Overview
- 5.3 SAP Gateway Toolset
- 5.3.1 Service Builder
- 5.3.2 Supporting Tools during the Service Creation Process
- 5.3.3 ABAP Development Tools and CDS Views
- 5.4 Steps in the Service Creation Process
- 5.4.1 Data Model Definition in the Service Builder
- 5.4.2 Service Registration in the SAP Backend System
- 5.4.3 Service Implementation
- 5.4.4 Service Maintenance
- 5.4.5 Service Generation via Redefinition
- 5.4.6 Service Generation via Referenced Data Sources
- 5.4.7 Service Generation via OData.publish:true
- 5.4.8 Service Generation for Analytical Queries
- 5.5 OData Channel Development Paradigm
- 5.5.1 Model Provider Class
- 5.5.2 Data Provider Class and Data Provider Extension Class
- 5.5.3 Technical Considerations
- 5.6 Summary
- 6 Service Development
- 6.1 Data Model Definition
- 6.1.1 Creating a Project
- 6.1.2 Creating a Data Model
- 6.2 Service Registration
- 6.3 Service Stub Generation
- 6.4 Service Maintenance
- 6.5 Incremental Service Implementation and Model Enhancement
- 6.5.1 Feed (GET_ENTITYSET)
- 6.5.2 Single Read (GET_ENTITY)
- 6.5.3 Query Options
- 6.5.4 Navigation Properties
- 6.5.5 Create, Update, and Delete Methods
- 6.5.6 Function Imports
- 6.5.7 Media Resources
- 6.5.8 Expand/Self-Expand
- 6.5.9 Deep Insert
- 6.5.10 Batch
- 6.5.11 Adding UI Annotations
- 6.6 Summary
- 7 Service Generation
- 7.1 Generation via RFC/BOR Interface
- 7.1.1 Data Model Definition
- 7.1.2 Service Registration: Stub Creation
- 7.1.3 Service Maintenance
- 7.1.4 Service Implementation: SalesOrderHeaderSet
- 7.1.5 Service Implementation: SalesOrderLineItemSet
- 7.2 Generation via Search Help
- 7.3 Generation via Redefinition
- 7.3.1 Redefinition Options
- 7.3.2 Redefine Service Provider Interface Service
- 7.3.3 Activate Service
- 7.4 Generation via Analytical Queries
- 7.4.1 Analytical Queries with Query Property by OData
- 7.4.2 CDS View-Based Analytical Queries
- 7.5 Summary
- 8 ABAP Programming Model for SAP Fiori
- 8.1 Development of CDS Views
- 8.2 Modeled Data Sources
- 8.3 Referenced Data Sources
- 8.4 Adding Annotations to an OData Service
- 8.5 ABAP Programming Model for SAP Fiori with Classic APIs
- 8.6 ABAP Programming Model for SAP Fiori with BOPF
- 8.6.1 Defining the Business Object
- 8.6.2 Defining the Consumption View
- 8.6.3 Determinations, Validations, and Actions
- 8.6.4 Draft Support
- 8.7 Summary
- 9 ABAP RESTful Application Programming Model
- 9.1 Data Modeling
- 9.1.1 Database Tables
- 9.1.2 Data Definition
- 9.1.3 Customer Data
- 9.2 Business Service Exposure
- 9.2.1 CDS Projection Views
- 9.2.2 CDS Metadata Extensions
- 9.2.3 Service Definition
- 9.2.4 Service Binding
- 9.3 Service Consumption
- 9.4 Transactional Behavior
- 9.4.1 Managed
- 9.4.2 Managed with Unmanaged Save
- 9.4.3 Unmanaged
- 9.5 Generating an Application Using ABAP Development Tools
- 9.6 Entity Manipulation Language
- 9.6.1 EML Read
- 9.6.2 EML Modify
- 9.6.3 EML Commit Entities
- 9.7 Business Object Characteristics
- 9.7.1 Draft
- 9.7.2 Numbering
- 9.7.3 Permissions
- 9.8 Summary
- PART III: Application Development
- 10 SAPUI5 Application Development
- 10.1 Building Blocks of Web Application Development
- 10.2 Introduction to SAP Fiori and SAPUI5
- 10.2.1 SAP Fiori
- 10.2.2 SAPUI5
- 10.3 Creating an SAPUI5 Application
- 10.4 Summary
- 11 SAP Business Application Studio
- 11.1 Setting Up SAP Business Application Studio
- 11.2 Connecting to SAP Gateway
- 11.2.1 Setting Up the Connection
- 11.2.2 Creating an SAP Business Application Studio Dev Space
- 11.3 OData Sample Services
- 11.4 Developing SAP Fiori Applications
- 11.4.1 Creating a Basic SAP Fiori App
- 11.4.2 Changing the UI and Adding an OData Entity Set
- 11.5 Summary
- 12 Extensibility
- 12.1 Redefining and Extending SAP Gateway OData Services
- 12.1.1 Redefinition
- 12.1.2 Field Extensibility
- 12.1.3 Node Extensibility
- 12.1.4 Step-by-Step Guide
- 12.2 Extending OData Services in SAP S/4HANA
- 12.2.1 Extensibility Concepts for SAP S/4HANA
- 12.2.2 Key User Extensibility
- 12.2.3 In-App Developer/On-Stack Extensibility
- 12.2.4 Side-by-Side Extensibility
- 12.3 Extending SAP Fiori Applications Using SAPUI5 Flexibility
- 12.3.1 Key User Adaptation
- 12.3.2 Creating an Adaptation Project in SAP Business Application Studio
- 12.4 Summary
- 13 Mobile Application Development
- 13.1 Overview
- 13.2 Mobile Development Kits
- 13.2.1 Accessing SAP Mobile Services
- 13.2.2 Creating a Mobile App
- 13.2.3 Creating a Project in SAP Business Application Studio
- 13.2.4 Deploying the Application
- 13.2.5 Using the Application
- 13.3 Native Application Development
- 13.3.1 SAP BTP SDK for iOS
- 13.3.2 SAP BTP SDK for Android
- 13.4 Summary
- 14 Social Media Application Development
- 14.1 PHP
- 14.2 Facebook
- 14.3 X
- 14.4 Sina Weibo (êVòQî˜îé)
- 14.5 Summary
- 15 Enterprise Application Development
- 15.1 Microsoft Excel
- 15.1.1 Microsoft Power Pivot
- 15.1.2 Get OData Service
- 15.1.3 $format=xlsx
- 15.2 Microsoft SharePoint/Microsoft 365
- 15.3 Microsoft Visual C# Windows Desktop
- 15.4 Microsoft ASP.NET
- 15.5 Summary
- PARt IV: Administration
- 16 Lifecycle Management: Testing, Service Deployment, and Operations
- 16.1 Testing
- 16.1.1 Testing SAP Gateway Services
- 16.1.2 Testing a Client Application or Extension Application
- 16.1.3 Best Practices for Testing in SAP Gateway
- 16.2 Service Deployment
- 16.2.1 Transport of Repository Objects between SAP Backend Systems
- 16.2.2 Transport of Repository Objects and Customizing Entries between SAP Gateway Server Systems
- 16.2.3 Versioning
- 16.2.4 Activating and Maintaining Services
- 16.2.5 Service Deployment in OData 4.0
- 16.3 Operations
- 16.3.1 Periodic Cleanup Tasks
- 16.3.2 Monitoring Overview
- 16.4 DevOps and SAP Gateway Development
- 16.5 Summary
- 17 Security
- 17.1 Network and Communication Security
- 17.1.1 Transport Protection
- 17.1.2 Input Validation
- 17.2 User Management and Authorizations
- 17.3 Single Sign-On and Authentication Options
- 17.3.1 Basic Authentication
- 17.3.2 SAP Logon Tickets with SAP Enterprise Portal
- 17.3.3 X.509 Client Certificates
- 17.3.4 SAML 2.0 Browser SSO Protocol
- 17.3.5 OAuth
- 17.3.6 Kerberos: Integrated Windows Authentication
- 17.4 Recommended Authentication Options
- 17.4.1 SAP Fiori Applications
- 17.4.2 Desktop Application
- 17.4.3 Mobile Application (Direct Access)
- 17.4.4 Cloud-Based Scenario with SAP BTP
- 17.4.5 SAP Mobile Services
- 17.4.6 Web Server
- 17.4.7 Business-to-Consumer Scenario
- 17.4.8 Read Access Logging
- 17.5 Summary
- Appendices
- A Advanced Topics
- A.1 Configuring Notifications in SAP Gateway
- A.2 Event-Driven Architectures and SAP Gateway
- A.3 Using the Error Log
- A.4 Analyzing Performance and SAP Gateway Statistics
- A.5 Summary
- B The Authors
- Index