1 Introduction
2 What is Integration Gateway?
3 End-to-End Scenario Overview
4 Prerequisites
5 Scenario Setup
5.1 Data Sources
5.2 Preparing the Apache Derby Database
5.3 Setting up Eclipse with the SAP Mobile Platform Tools
5.4 Creating the OData Model
5.5 Assigning Data Sources to Entity Sets
5.5.1 ODC (SAP Gateway) Data Source
5.5.2 JDBC Data Source
5.5.3 JPA Data Source
5.5.4 SOAP Data Source
5.5.5 Defining the Response Mapping for the SOAP web service
5.6 Generating and deploying the service on the SMP server
6 Setting up SAP Mobile Platform 3.0
6.1 Security Profile
6.2 Adding the HTTPS certificate to the SMP key store
6.2.1 Retrieving the certificate from the SAP Gateway Service Consumption System (ES1)
6.2.2 Adding the HTTPS certificate to the SMP key store using Portecle
6.3 Destinations
6.3.1 OData Channel (ODC) Data Source
6.3.2 Java Persistency API (JPA) Data Source
6.3.3 Java Data Base Connector (JDBC) Data Source
7 Configuring the Services in SMP
7.1 Registering the ZGWSAMPLE_SRV service
7.2 Assigning Destinations to Entity Sets
8 Testing the service
8.1 Setting up Advanced REST Client in Google Chrome
8.2 Retrieving information from your service
8.3 Retrieving the CSRF-Token
8.4 Creating a Sales Order Header
9 Troubleshooting
9.1 Proxy Issues
9.1.1 SMP system wide proxy used for the SOAP destination
9.1.2 Proxy Settings for ODC destination
10 Further Information
Note (October 21, 2014): I updated the blog to reflect changes in the Eclipse modeling environment. You now need to use the SAP Mobile Platform tools instead of the Gateway Productivity Accelerator (GWPA).
On May 15th, 2014 the SAP Mobile Platform 3.0 became generally available to the public. While it contains many great features, I would like to show you in this blog how it is possible to leverage the Integration Gateway component inside the Mobile Platform.
First, I would like to point you to some resources available to explain what Integration Gateway can do: Integration Gateway is a technology component that provides design-time tools and the associated run-time for modeling, composing and provisioning OData services. These can be based on one or more APIs from various SAP and non-SAP data sources.
The data sources supported as of today are SOAP (Simple Object Access Protocol), JPA (Java Persistence API) and JDBC (Java Database Connectivity) to access non-SAP data sources as well as OData Channel (ODC) for accessing OData services provisioned via SAP Gateway.
For a brief overview, you might want to have a look at this Youtube video.
For this blog we are relying on the Enterprise Procurement Model (EPM) which has been a part of NetWeaver starting with release NW 7.02. It is an application intended to be used for demonstration and testing purposes. The business scenario at the core of EPM is that of a web shop run by a retail company called ITelO, a fictitious company that buys and sells computers & accessories.
In this demo scenario a customer will log on with an HTML5 app to purchase some goods from the ITelO store. The app consumes a service published by the Integration Gateway. The underlying data for the service stem from SOAP, JPA, JDBC and ODC data sources demonstrating the integration and mash-up capabilities of Integration Gateway in SMP3.
For recreating this scenario you will need administrative access to an (developer) installation of SAP Mobile Platform 3.0 SP03 (In the rest of this blog I will refer to it as SMP3). If you have the authorizations, you can download the SMP3 installation files from the SAP Software Download Center.
Furthermore you need to register to access the SAP Gateway Service Consumption System.
As mentioned before, we are going to use SOAP, JPA, JDBC and ODC data sources for this tutorial. The SOAP and ODC services will be provided by us. Your developer installation of SMP3 comes with an Apache Derby database. We are going to create a new table in this database which will serve as our JDBC data source. Furthermore, the SMP3 comes preinstalled with a Java Persistency API version of the EPM model. The products stored in this model will serve as our JPA data source.