Authors
Updates
- 22.03.2016 Added information how to make objects that reside in $TMP transportable.
Introduction
In this document we want to describe how to handle the software changes of a project that encompasses the development of
- an OData service in SAP Gateway and
- the development of a Fiori like SAPUI5 based consumer application
that is deployed on the SAP Gateway server using the Quality Gate Management (QGM) which is part of SAP Solution Manager.
The scenario described is also applicable to projects where SAP Fiori applications and the underlying SAP Gateway service are extended and where the changes need to be transported through a typical 3-system landscape.
A big plus for both scenarios is that the complete life cycle management of a SAP Gateway service and the corresponding consuming SAP Fiori like application can be managed using the well known SAP Change and Transport System of an ABAP system.
The only problem however is that service development and consumer application development are usually carried out by different developers. In addition complexity is added by the fact that during the development process of an OData service repository objects and customizing data are created in the SAP Gateway Backend and SAP Gateway Server whereas the development artefacts of the SAP Fiori like application are only created on the SAP Gateway Server.
As a result 1 customizing request and 3 workbench requests in 2 system landscapes have to transported in synch between the SAP Gateway server and backend systems as shown in the following picture.
This is where the Quality Gate Management (QGM) comes to the rescue. QGM allows for the creation of so called changes which can contain one or more workbench and customizing requests in different systems. With the help of QGM the workbench and customizing requests that have been assigned to those changes can be transported in synch and the process can be controlled and monitored centrally from SAP Solution Manager.
Please note:
If the objects that you want to transport cannot be transported since you might have created them in the development class $TMP, please have a look at the following post. How to change dev class $TMP for the repository objects of an OData service?.
Demo Flow
Step 1 - Create a change
Step 2 - Create workbench requests and customizing request
Step 3 - Gateway Service Builder - OData Service Creation
Step 4 - Gateway Service Builder - OData Service Implementation
Step 5 - Gateway Backend - Service Registration
Step 6 - Maintain Service - Service Activation on SAP Gateway Server
Step 7 - Maintain Service - System Alias Customizing
Step 8 - SAPUI5 Application Development
Step 9 - Transport changes via QGM
Step 1 - Create a change
The QGM supports the creation of transport request in different systems that are organized through a change request that spans different systems (e.g Gateway Server and Gateway Backend).
Step 2 - Create workbench requests and customizing request
In a second step three workbench requests for
- the repository objects of the Gateway service
- the service implementation and
- the Fiori application
will be created.
In addition a customizing request is created for the customizing settings of the Gateway service as shown in the following screen shot.
Step 3 - Gateway Service Builder - OData Service Creation
When the OData service developer starts to create a new project in the Service Builder in the SAP Gateway backend system and assigns it to a development class the developer will be prompted to assign these changes to the transportable Workbench request (here:EH1K900309) that has been created using QGM before.
Step 4 - Gateway Service Builder - OData Service Implementation
The steps shown in the video are described in detail in the how-to-guide How to Develop a Gateway Service using Code based Implementation.
Step 5 - Gateway Backend - Service Registration
The service implementation ends with the generation of the runtime objects. In this step the repository objects such as ABAP classes are generated and the Gateway service and model are registered in the SAP backend system.
As a result the developer is prompted to provide a transportable workbench request. Here the same workbench request (here: EH1K900309) will be used that already contains the Service Builder project.
Step 6 - Maintain Service - Service Activation on SAP Gateway Server
In this step the developer activates the Gateway service on the Gateway Server (Hub). Here the developer is prompted to provide a workbench request (here: GW1K900063). Please note that this happens on the Gateway Server development system (here: GW1).
Step 7 - Maintain Service - System Alias Customizing
You now want to transport the customizing settings for the system alias(es) that are assigned to the Gateway Service. This can be done from within the customizing table maintance view.
The developer will be prompted now to provide a customizing request (here: GW1K900065) that has been created earlier.
Step 8 - SAPUI5 Application Development
The developer of the SAPUI5 app can now develop the app and publish it finally on the Gateway server which is also called the frontend server for Fiori like applications. The SAPUI5 developer can submit the app so that it is published in the SAPUI5 ABAP repository from within his Eclipse development environement. Here the developer will be prompted to provide a workbench request (here: GW1K900067).
Step 9 - Transport changes via QGM
Now QGM will be used to transport the three workbench requests and the customizing request in synch to the quality assurance system and finally to production.
The status of the transports can be monitored. If for example a request is missing this can be easily be monitored in QGM
Finally all requests have been transported to the production system.
Result - SAPUI5 App runs
Finally the SAPUI5 app runs and displays a list of products .
Appendix - List of repository objects being transported
SAP Gateway Server
The following objects have to be transported between the SAP Gateway server systems:
Object | Transport Type |
---|---|
Service | Repository Object |
Model | Repository Object |
ICF Node | Repository Object |
System Alias | Customizing |
Serivice Registation on the Hub | Customizing |
Objects to be transported between the SAP Gateway backend systems
Object | Transport Type |
---|---|
Service Builder Project | Repository Object |
Model Provider Class | Repository Object |
Model Provider Extension Class | Repository Object |
Data Provider Class | Repository Object |
Data Provider Extension Class | Repository Object |
Model object | Repository Object |
Service object | Repository Object |
Fiori like application
The repository objects of an Fiori like application are deployed on the so called Frontend Server which is the same as the SAP Gateway server
Object | Transport Type |
---|---|
ICF Service | Repository Object |
Info Object from MIME Repository | Repository Object |
BSP page | Repository Object |