This post will discuss the development approach you should follow for an SAP Business Technology Platform (SAP BTP)–based development, including the essential steps involved.
SAP BTP is the primary platform to build extension applications for your core line of business (LoB) solutions (SaaS or on-premise), integrate intersystem processes, and develop innovative net new use cases. As far as the core development process is concerned, a bulk of development is done for extension use cases. So, we’ll focus on the development approach in the context of extension use cases, although a similar approach is applicable for net new applications as well.
In the following sections, we’ll also discuss the dependencies on these steps and how different SAP BTP services help developers build a solution following this development approach. On a broad scale, for extension application development in SAP BTP, you need to follow five steps, as shown in the figure below:
Next, we’ll discuss each of the steps in detail.
In this step, you connect the SAP BTP system with other backend LoB solutions such as SAP S/4HANA or SAP SuccessFactors. SAP Extension Suite provides an easy way to connect these backend systems to SAP BTP subaccounts. You can go to your SAP BTP subaccount, then navigate to System Landscape > Systems, and click the Register System button, as shown in callout (1) in the figure below. In this example, we’re registering an SAP S/4HANA Cloud system, but you can adopt other SAP cloud systems as well. You can generate the integration token to be used in the corresponding cloud LoB solution to seamlessly register the SAP BTP system, as shown in callout (2), by using the Maintain Extension on SAP BTP app on SAP S/4HANA Cloud. This way, you can connect your SAP BTP system to SAP cloud backend systems almost like Bluetooth pairing.
In addition, you need to know the APIs, events, and integration contents for integrating these backend systems to SAP BTP. APIs and events are the real backbone of the extension framework that enables LoB processes to be extended on SAP BTP as a side-by-side extension. For this, you use SAP API Business Hub as the centralized portal to access all the content for whitelisted APIs, events, and so on. The figure below shows SAP API Business Hub, which can be accessed via https://api.sap.com/.
SAP API Business Hub not only arranges all the whitelisted APIs and their documentations but also allows you to test the APIs much like a Swagger file of an API. In addition, you can connect to a test system and run the end-to-end flow. For particular APIs, this provides code snippet samples to show how the APIs should be used. You can switch between the classic view and the advanced view of the user experience (UX). The advanced view has a cleaner, more organized presentation, but you can get the sample code snippet in the classic view, as shown here.
SAP Event Mesh is the full-scale event bus offering. We discussed in the previous section how SAP Event Mesh supports interoperable CloudEvents to react on business events. SAP LoB solutions adhere to this principle and provide support to realize an event-driven architecture. SAP API Business Hub is the one-stop shop to find the relevant whitelisted events that can be integrated in the extension process.
Once you’ve set up connectivity, you’re now ready to build apps in SAP BTP. SAP BTP provides a host of services to support developers in building applications. A range of low code/no code (LC/NC) and pro-code tools are provided. The LC/NC tools are extremely helpful for power business users to develop business functionality in SAP BTP without going deep into technical details.
Below shows the two LC/NC platforms that you can leverage for SAP BTP development. On the top, Mendix is shown, which is a popular LC/NC platform. In addition, SAP has its own LC/NC platform for citizen developers—SAP Build Apps (formerly known as SAP AppGyver)—which is shown on the bottom.
SAP BTP also provides pro-code tools for the advanced development option. Although LC/NC platforms are popular, it’s often not possible in a practical setting to realize the full scope of requirements on such platforms, and you may need to develop custom code on a deeper technical level. SAP Business Application Studio, as shown in the figure below, comes in handy in many SAP BTP-based developments such as SAP Cloud Application Programming Model, SAP Fiori elements, SAPUI5 development, mobile development kit (MDK), SAP HANA-based development, SAP Workflow Management, and many more.
This editor also provides “what you see is what you get” (WYSIWYG) editors to visually model UX and core data services (CDS)-based data models. SAP Business Application Studio also comes with configurable plug-ins that you can customize based on your need to configure your dev space, provides powerful command-line functionality via console, and can be integrated with code repositories such as GitHub. SAP Business Application Studio provides full-scale support to develop the solution, test the solution locally, and deploy to SAP BTP.
SAP Business Application Studio is the cloud development environment. However, in certain scenarios, developers might want to have local development environments. In such cases, Microsoft’s Visual Studio Code can be used. For ABAP development, SAP recommends using Apache Eclipse with the ABAP Development Tools (ADT) extension.
SAP BTP supports a variety of programming models where you can develop the core application. If the requirement suits more to the open-source technologies, then you can adapt SAP Cloud Application Programming Model, which supports languages such as Java and Node.js. On the other hand, if you want to leverage existing expertise in ABAP, you can adopt the ABAP RESTful application programming model. SAP Cloud Application Programming Model and ABAP RESTful application programming model provide an open yet opinionated framework to develop stateless cloud applications. SAP Cloud Application Programming Model is opinionated in the sense that it abstracts low-level coding and gives higher-level APIs to let developers concentrate on business applications and also provides out-of-the box support for SAP Best Practices such as SAP HANA and SAP Fiori. Yet SAP Cloud Application Programming Model is open as it’s based on open-source technology and lets you leverage open standards and frameworks to handle things in your own way.
In addition, other open-source programming models such as Spring Boot can be realized. Plus, cloud-native development can be done in the SAP BTP, Kyma runtime following microservice principles.
Once the core applications are built, you need to provide channels through which these apps can be accessed. Following are the key channels:
- Web: Core applications can be built on a full stack covering the domain model developed using CDS; the REST-based service layer is built using Java, Node.js (SAP Cloud Application Programming Model), or ABAP (ABAP RESTful application programming model); and the UX layer is built either via annotation-based SAP Fiori elements or via custom SAPUI5 code. Additionally, a MDK web framework can be used to develop a web frontend.
- Mobile: Core services can be built on SAP Cloud Application Programming Model, ABAP RESTful application programming model, and so on, with the service endpoints configured through a mobile proxy solution such as SAP Mobile Services. The frontend of the mobile solution can be done using a metadata-based development framework such as MDK in SAP, or, if you need more customized native features, then you can leverage SAP BTP SDK for iOS and SAP BTP SDK for Android for mobile native development in the Apple and Android platforms, respectively. Alternatively, you can use SAP Build Apps as a LC/NC platform to develop the mobile frontend.
- Conversational AI: In certain cases, you may want to have a conversational AI to interact with the users. However, these chatbots need to interact with core systems using the services built on SAP BTP, for example, SAP Conversational AI.
- Robotic process automation (RPA): RPA bots can be used to execute repetitive tasks. Even for these tasks, you may need to interact with the core system in certain cases. Here you need the similar loosely coupled architecture with services built into SAP BTP (specifically, SAP Intelligent Robotic Process Automation [SAP Intelligent RPA]) that help interact with the core backend systems.
SAP BTP gives you plenty of choices in deployment platforms for your apps. For the web frontend, there are two flavors:
- SAP BTP launchpad: This adheres to the SAP Fiori launchpad design. Typically, the SAP Fiori launchpad is focused on the UX for internal audience line employees, stakeholders, managers, and so on.
- SAP Work Zone: This is for a more external-facing portal solution that not only has a jazzy, intuitive UX but also provides a platform for collaboration by integrating with other collaborative platforms such as SAP Jam or Microsoft Teams.
In a development cycle, you’ll first go for the core development and then configure your apps so that you can launch them via SAP BTP launchpad or SAP Work Zone via SAP Fiori tiles or user interface (UI) cards.
At its core, SAP BTP provides you with a choice of runtimes to deploy the apps in diverse technology platforms. You can either develop microservices in the SAP BTP, Cloud Foundry environment using open-source technologies (Java, Node.js, Python, etc.) or using the SAP BTP, ABAP environment for deploying ABAP-based developments, or you can choose to use cloud-native microservices and deploy them in the SAP BTP, Kyma runtime. Additionally, if your functionality can be met on an FaaS model, then you can choose the serverless runtime as well.
Below highlights which type of applications are best suited to which type of runtime.
SAP BTP provides various tools to operate applications on the platform. First, you can use the SAP BTP cockpit to do almost all the administrative tasks such as user management, role management, deploying and running applications, maintaining connectivity and security, and so on. The SAP BTP cockpit provides an effective UX to end users to operate your cloud applications seamlessly.
In addition, the SAP BTP, Cloud Foundry runtime and the SAP BTP, Kyma runtime provide CLI support, which is very powerful and comes in handy to automate administrative jobs. For example, when you operate production-scale DevOps, you may have set a pipeline for automated testing and deployments. For such capabilities, you can use the CLI commands to write the deployment scripts.
Editor’s note: This post has been adapted from a section of the book SAP Business Technology Platform: An Introduction by Smitha Banda, Shibaji Chandra, and Chun Aun Gooi.