Hybrid Landscape (S/4 HANA and Cloud application)-Fundamentals from Technical Point of view
With the adaptation of the Cloud in the enterprise system landscape, the trendy model is Hybrid Landscape. I recently got an opportunity to work in such a system landscape where S/4 HANA was On-premise, but also the third-party Cloud application the part of the system landscape. It was a brownfield implementation in S/4 HANA. Throughout the journey from the connection setup to the various developments and testing, I came across certain concepts, designs, fundamentals and tools, which were quite exciting. Hence, I decided to share my experience in the forum. This topic is from the SAP point of view and, in this case, S/4 HANA On-premise and a Third-Party Cloud application (SaaS) for travel expenses- a scenario for a hybrid landscape.
But why is the business moving toward a Hybrid Landscape?
Besides SAP’s solutions, there are solutions from other providers which use different technologies and deployment models. As a result, there is often a mixed level of deployment models, and we call this a Hybrid Landscape.
The essential characteristic of a hybrid solution landscape is the combination of Cloud and On-premise components in one landscape. However, the business processes run over both components. Hybrid Landscapes are the consequences of SAP’s product strategy and an intermediate state of customers’ digital transformation journey to the intelligent enterprise suite.
Let’s look at the hybrid system architecture (S/4 HANA and Cloud).
First thing first.
- Fundamentals of Cloud application:
- Data Storage: data in the cloud are stored in server space, but for technical purposes, they are stored in clusters. Clusters are pools of virtualized resources. A snippet as below:
- Cloud applications expose APIs for use by the other systems (e.g. SAP S/4 HANA)
- The internal jobs running in the cloud application push the objects to a specific folder called a bucket. A bucket is a container of objects, and it is specific to the project. In my project, S3 Bucket was the source for external systems to consume the data via API.
- The connection between S/4 HANA and Cloud can be established in the following ways: 1. Using CPI (Cloud Platform Integration) 2. RFC HTTP-G 3. Using SICF tcode 4. HCI (HANA Cloud Integration)
- Cloud Service Model:
- Infrastructure as a service (IaaS)
- Software as a service (SaaS)
- Platform as a service (PaaS)
IaaS: Cloud provides virtualized servers or “instances”. Programmatically using REST-based API, resources can be requested from the instances. Under this, the components are on rent for the companies, such as servers, networks, storage, operating systems etc.
PaaS: To reduce the management of several aspects of the Cloud, only the platform is subscribed. The burden is lowered by avoiding operating system maintenance, patch management, middleware management, load balancing etc. Users access PaaS from a web browser.
Example: Microsoft Azure web apps and AWS Elastic beanstalk
SaaS: This is the most familiar and popular now. SaaS is a way of delivering applications over the internet. Under this service, only the software is subscribed. The consumer has very little control over the configuration of the software services.
Examples: Facebook, Gmail etc
2. API Management:
API adaptation is one of the practices used in the hybrid system landscape for SbS- Side by Side extensions.
- API Documentation: Before jumping into the development, the first thing is to check the API documentation. Without API documentation, it is not possible to use the API functions. API documentation describes the API key ID, parameters to be passed as key and the sample of the output data structure in JSON format. The developer should ask for the API documentation from the Cloud team.
- REST API: REST API is also known as RESTful API. It is an application programming interface based on REST architecture which allows for interaction with RESTful webservices. REST is not a protocol; instead, it is a set of certain guidelines and principles forming an architectural style. REST stands for representational state transfer. OData 2.0 is a REST API which is commonly used for integration. Similarly, many APIs are exposed by Cloud applications which are typically REST API.
- RFC HTTP-G
The easiest way to connect SAP system to Cloud application is through RFC HTTP-G type.
Under this, Host, Port and the API path prefix are configured to access the end point from Cloud application.
The SAP standard class for this purpose is: cl_http_client=>create_by_destination
- CPI: Cloud Platform Integration
CPI is the modern approach to connecting Cloud. It is a middleware for integration for SAP on-premise and Cloud.
- HCI: HANA Cloud Integration: It is another way to connect S/4 HANA on promise and SAP Based on Cloud
- SICF: Mainly, SAP Analytics Cloud are used for connection in SICF tcode.
For this, it is needed to activate https://<bw_host_url>:<port>/sap/bw/analysis/
4. Transformation Rules
Transformation Rules are required to create using XSLT/XSLT_TOOL transactions because the interaction between SAP On-premise and the Cloud application can happen only in specific data formats. The XML or JSON data format is mainly used for data consumption by the Cloud application. On SAP On-premise, the deep structures are created, which are later transformed into JSONXml and JSON format. Afterwards, the data is triggered to the Cloud application.
Here are the basic steps of transformation:
- Internal data to XML
- XML to JSONxml
- JSONxml to JSON
Sometimes it is required to transform data to Binary and SAP has provided the function module: SCMS_XSTRING_TO_BINARY: XML to Binary
Postman is mainly used for testing APIs. It is a complete API development platform supporting every stage of API life cycle. If somebody is working in Hybrid system landscape, POSTMAN is a must-know tool for various reasons: Testing API, Troubleshooting, Analysis etc.
The basic steps are as follows:
- First, Create a workspace
- Enter the URL of API path and select the appropriate method
- Refer the API documentation and pass the parameters accordingly.
x-api-key and Content-Type is mandatory. But details can be found in the API documentation. Params and Headers are the essential sections to be filled.
If API needs further security checks, then the Authorization section needs to be taken care of where CSRF token id/basic authentication is required.
Press Send and get the response in the JSON format as below.:
- What is cURL?
5. Delta Load and implementing HASH Value
The replication of data from On-premise system happens as full load in the beginning to the Cloud but afterwards, only the delta should be triggered. To handle the delta load, HASH concept must be implemented.
- Make sure that HASH field is part of the custom table which is referred as triggering of data with Last Submission date
- Programmatically use the following function modules to implement the HASH value generation which internally compares the previous sent data with the current data.
6. Guiding principles for development in Hybrid Landscape
- User Centric Design
- Design for Reuse
- API First Design
- Clean and Modern Code: ABAP OO with factory and Façade design patterns
- Flexible Extensions Side-by-Side
Hybrid Landscape is the solution for many enterprises, and to work in such a landscape, there are a few fundamentals that must-know from the technical and architectural point of view. My experience covered primarily integrating and using APIs to fulfil the business requirements between S/4 HANA FI and third-party cloud applications for expense management. I hope the information shared could add some knowledge to the developers joining the Hybrid Landscape.