The New Direction in SAP Programming
In the past few years, SAP has started to shift its focus from on-prem to Cloud solutions, bringing new opportunities and benefits for their customers.
Written by Bogdan Neag (SAP Solution Developer) and Stefan Hodoroaba (SAP Solution Associate Developer), in the June 2023 issue of Today Software Magazine. Read the article in Romanian here.
In recent years, SAP has made a major shift in the way it delivers its software solutions by shifting from on-premises to Cloud solutions. Traditionally, SAP solutions have been delivered to customers by installing the software on their servers and managing them in-house. However, with the rise in popularity of the Cloud, SAP developers saw the opportunity to develop Cloud-based solutions as well.
The move to Cloud solutions has many benefits, primarily for SAP customers: Cloud technologies are much easier to manage, as they eliminate the need to own and operate an on-premises server.
They also offer greater freedom for growth, are more flexible, and can adapt to changing customer needs more easily.
Another benefit is the security they offer, as they are managed by specialists with extensive experience (AWS, Azure); these providers are constantly investing in security and optimising their solutions to ensure a high data protection.
SAP's Cloud Direction
There is a tendency across all IT domains to move to Web applications and Cloud technologies. This is because of the possibility for information to be centralised and the application to be available on any device.
The system we can mention is S/4 HANA, a state-of-the-art software solution that provides an integrated platform for managing business processes, finance, sales, procurement, manufacturing, logistics, and more. It is available in both on-premises and Cloud versions, offering flexible deployment options for different needs and requirements.
Considering this trend, we list some new solutions available in the Cloud could: SAP Ariba, SuccessFactors, SAP Build, SAP Leonardo, SAP Analytics Cloud, and SAP Fieldglass; in addition to these, we will take a detailed look at some typical technologies for the SAP Cloud world:
SAP Fiori Elements is a collection of templates and tools that help develop Web applications quickly and easily. This toolset is designed to reduce the time and effort required to develop applications and improve user experience. Using SAP Fiori, developers can create relevant, intuitive, and feature-rich web applications. Unlike other web development frameworks, which involve a lot of code and configuration, SAP Fiori Elements offers a simpler and faster approach, with most of the repetitive and difficult-to-write code generated automatically.
Cloud Integration (part of IPaaS Integration Suite) is a modern and up-to-date solution for Cloud process integration. This solution was developed by SAP to help customers integrate different applications and business systems simply and efficiently. CPI offers several advantages over the traditional SAP Process Integration/Process Orchestration solution, including a Cloud-based solution, which means no on-premises installation and configuration is required. This reduces the cost and effort required needed to maintain and update the infrastructure. CPI is designed to be more flexible and easier to scale than the traditional PI/PO solution.
Project Piper is an open-source solution that deals with application lifecycle management in the SAP Cloud. As a project developed by the SAP community, it is designed to help developers build, test and deploy applications efficiently in the Cloud and on-premises. Some advantages would be:
Cloud Services and SAP
Integration of applications without the need for manual code writing or other custom interfaces;
The ability to process large volumes of data and perform real-time analytics, enabling faster decision-making.
SAP Cloud services are included in SAP BTP (Business Technology Platform). This platform is a fully integrated solution that includes a wide range of services, tools, and technologies that can be used to build and run custom applications in the Cloud without the need for the underlying infrastructure. The platform offers a variety of services including data analytics, security, mobility, and more.
These services include:
ABAP in Cloud is a scalable and secure platform for developing and running SAP applications in the Cloud. The platform provides all the core functionality of ABAP but is adapted for the Cloud environment. This makes it possible to create custom SAP applications without requiring on-premises infrastructure.
SAP Integration Suite is an advanced integration platform that helps companies build integration scenarios and coordinate various systems and applications to facilitate the transfer of data and information in real time. It offers a wide range of predefined processes relevant to different scenarios encountered in today's market (Business to Business, Business to Government, etc.). These processes can be tailored to customer’s needs as the platform supports many external applications. APIs are one of the core strengths of the Integration Suite, enabling the possibility to create, publish and manage APIs easily.
HANA Cloud is a Cloud-integrated in-memory database from SAP that helps organisations manage and analyse data in real-time, eliminating the need for a physical server. This solution provides a scalable and secure database to store, process and visualise data traffic.
Fiori Launchpad (SAP Build Work Zone) is an intuitive SAP application management platform. It allows users to access business applications and services quickly and easily. The platform is based on collections and groups of applications that are available in one place. A modern interface allows users to personalise their experience and quickly access the necessary information and functionalities.
SAP Cloud Application Development
SAP's new direction encourages several types of applications to be created by developers.
Among the most widely used are Fiori applications and applications built using the SAPUI5 framework.
There are also integration solutions to communicate between different platforms and the SAP system using the integration suite provided in the SAP Business Technology Platform (SAP BTP). Depending on the needs that arise, SAP offers a variety of solutions and services via Cloud platforms.
Web applications follow the REST architecture. There are two main components to an application: the client and the server.
The client side is created using the SAP Business Application Studio (SAP BAS) development environment, and the server side can be any system that exposes APIs for data access. Communication between server and client is done using OData requests (V2 or V4).
The server side can also be represented by an SAP on-premise system, and by using a Cloud Connector it can link to the Cloud and enable resource access. The Connector is installed on the client machine, and a so-called destination is created in SAP BTP, which will contain technical information about the system it connects to. Having made this connection one can move on to the application development phase.
Fiori or SAPUI5 applications can be built using the Visual Studio Code development environment, but it requires further configuration to bring in all the necessary extensions.
The most widely used development environment is SAP Business Application Studio. Using this environment, the developer already has access to all the necessary tools to start a new project.
As far as this article is concerned, it shows how an application is developed using the SAPUI5 framework and how it is transported from the development environment to production.
Every SAPUI5 application contains the controller directory where the .js files exist. Each file contains 4 basic functions, namely onInit(), onAfterRendering(), onBeforeRenedering() and onExit().
View directory with the .xml file extension.
There is also the CSS directory containing .css file extensions. Another important directory is localService, the metadata.xml file is here, and it includes the structure and existing elements of the service being used in the application.
Once the application is developed, it is always kept in Git, for code version control. Each developer has a branch of their own where their part is kept, with the intent of merging the branches at the end, resulting in the final product.
The developed application is to be transported further to SAP BTP. To do this, a mta.yaml file is created for this project. This file contains technical information about the project, right-click on it and select the build option.
Once this step is completed, a file with the .mtar extension will be generated. Just like before, right-click and select the deploy option where the destination is the Cloud Foundry.
At the end of the process, all the resources related to the project will be found in SAP BTP under Instances and Subscriptions. The executable for the project is also stored in the HTML5 Application Repository, from where it can be run.
In order to make the project accessible to multiple users, it must be deployed to the Launchpad service (SAP Build Work Zone).
This service can be seen as a container in which several applications that have been developed can be found. Bringing the application to this stage is to synchronize the HTML5 repository with the Launchpad service. After that, depending on the role, each user will be able to access the application(s).
Challenges for SAP Partners
With the appearance of new directions new challenges also arise. It is well known that since its beginning, SAP technology has provided robust solutions for every industry that has used it. Moving to Cloud technologies comes with challenges for both developers and SAP customers.
New concepts are also added, including REST architecture, Continuous Integration/Continuous Delivery (CI/CD), the use of Git, and learning the services provided by SAP.
Thus, the learning and technical development process is expanding in many areas and needs to keep pace with the rapid changes that are occurring in the industry.
It is worth noting that an ABAP developer specialises in certain modules. As there is a long list of them, learning all of them is unlikely. Likewise, with the new direction, the developer will specialise in those services they consider closer to their aspirations.
Moving in a new direction may bring some reluctance or a sense of uncertainty on the part of customers - this is where technical consultancy skills need to be developed to make it clear that new solutions are at least as good as the established ones.
SAP technology constantly evolves and will continue to bring more stable and scalable solutions to meet one’s needs fully. At the same time, it also provides clear pathways to use the new processes and services.
Some solutions come as a complement to what the classic ABAP system used to offer, while others come as a novelty to fill in the gaps.
SAP is already making quick steps towards Low-Code and No-Code solutions, two examples we can mention here are AppGyver and SAP Build.
There are also solutions using Blockchain such as SAP Leonardo and dedicated billing solutions such as SAP Ariba and many others.
Customers will become increasingly interested in applying new concepts in their projects, as the industry evolves.
SAP offers a wide range of high-level services and solutions that support critical industries and beyond. The level of customer reluctance towards Cloud solutions has started to decrease significantly and SAP continues to put resources into its development.
Regardless of the chosen framework (React, Angular, Svelte, etc.), a UI5 library of Web components will be compatible.
This will allow the use of technologies encouraged by SAP Fiori to simplify the development process; it will also eliminate the need to create UI elements from scratch, thus reducing development time.
SAPUI5 and SAP Fiori technologies have proven their power and versatility to create Web, Mobile, or Desktop applications. Implementing projects using these technologies brings a multitude of benefits to end users, including increased productivity and a modern, enhanced user experience.
As for developers, they have the opportunity to expand into more areas and learn new concepts and services - this adds to their value and keeps them up to date with industry standards.