Already 1 ½ years ago, I published a blog post on Business Configuration for SAP Cloud Platform ABAP Environment (Business Configuration for SAP Cloud Platform ABAP Environment | SAP Blogs). In this blog post, I want to revisit the topic of business configuration in the SAP BTP ABAP Environment and start with a new series of blog posts that describe the current state of the topic.
First, let us look at the question what makes business configuration different from other apps that you create as part of your solution?
BC maintenance apps are less often used, and they are usually very simple in comparison the apps for master or transactional data. On the other hand, application often have come with a higher number of BC maintenance apps compared to the apps for master and transactional data. This calls for a highly standardized maintenance UI, a standardized authorization management, etc. BC maintenance apps also share some standard pattern, for example the maintenance of language-dependent texts or standardized authorization handling.
Business Configuration content is normally not directly maintained in a production environment, but it is created in a content development environment and transported/deployed to the test and production environment. Here different transport/deployment patterns are used depending on the use case.
In this blog post I deal with the first point and describe the current state of the topic. In a upcoming next blog post, I will share details on point no 2, the transport and deployment of BC content.
Two Programming Models for Business Configuration Apps
The ABAP platform provides two programming models for business configuration apps:
SAPGUI-based BC apps (SM30 runtime, SM54 design time)
Fiori/RAP-based BC apps
Customers and partners in SAP BTP ABAP Environment can implement Fiori/RAP-based apps only. SAPGUI/WebGUI is not supported. For this purpose, SAP published a tutorial that describes in detail how to develop a Fiori/RAP-based BC maintenance apps. We will come back to this tutorial in a moment.
Generic BC File Upload/Download
In addition, the ABAP platform provides capabilities for generic file upload/download. File upload comes in handy for data that are maintained only once or very seldom and the investment for a dedicated UI app is not required. The generic file upload app supports the file format that can be downloaded from SAP ERP or SAP S/4HANA systems, which supports an easy migration of data from SAP on-premise systems. You can read more about the generic file upload/download in the documentation (https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/c8ca7bec802a4ebcbd9444a9b18...). You also can find the instruction on how to enable your custom tables for generic upload/download.
The tutorial describes how to develop a BC maintenance apps as a Fiori/RAP app. In principle it is a “normal” RAP app (for RAP apps in general, see the RAP tutorials linked at the end of this blog post). It consists of CDS views, behavior definitions (BDEFs) and implementation for the business object layer and the projection layer). But it has some BC- specific features. Some special features are:
Generic UI: As mentioned in the introduction, BC maintenance UI should be highly standardized: Therefore, a Fiori Elements-based UI will be sufficient in most cases. For this purpose, SAP provides a generic UI that can be used instead of creating an own Fiori project. The generic UI is part of the ABAP platform and can be used by just registering your RAP object (i.e. the OData service of your RAP object). For details see the documentation (https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/76384d8e68e646d6ae5ce897741...)
Table delivery types: The ABAP provides a classification of table, which includes the so-called delivery class. While application tables are classified as “A”, configuration tables are classified as “C”, which indicated that the content in these tables can be transported between tenants (also a prerequisite for the generic upload app that I mentioned before). System configuration tables are classified a “S” and are client-independent. You can switch on table logging in the technical settings of the table so that changes are generically tracked. We will come to delivery types and client behavior for tables in the second blog post.
Text handling: BC maintenance apps typically allow maintenance of language-dependent texts. A recommendation on how to handle this is provided in the tutorial
Authorization handling: You can use a common authorization object (S_TABU_NAM) for your BC maintenance apps that makes it easier to define the roles for business configuration users.
Deletion: Deletion of business configuration can be a problem if the content is already used by business applications. The tutorial provides guidance to implement a “logical deletion” that prevents that new business documents can use an outdated configuration, but keeps the configuration still in the system (e.g. for auditing purpose)
Multi-edit/multi-create: Business configuration data are often entered as lists of entries. Entering and saving them one by one can be a time-consuming process. The tutorial provides guidance to enable the app for edit/creation of multiple entries in one transaction. This capability was added in 2108.
Transport handling: As mentioned in the introduction, business configuration content is normally not directly maintained in a production environment, but it is created in a content development environment and transported/deployed to the test and production environment. The transport handling is also part of the tutorial. I will dig deeper into this topic in my next blog post
The Fiori apps for generic BC file upload, the Fiori UI for generic BC maintenance and the Fiori UI for change logging are contained in the Configuration Expert – Business Process Configuration (BPC_EXPERT) role template that is delivered by SAP. (Important note: When creating a role based on this template in the Maintain Business Role UI, do not forget to set “Write, Read, Value Help” to “Unrestricted”. The default is “No access” when you create the role from the template.)
Generating a Business Configuration Apps
To create a RAP application, several objects must be created. The creation can be simplified using the generator option in the ABAP development tools (ADT). This generator generates a full RAP-based BC maintenance application based on the input about the base tables etc. Check the tutorial Create a SAP Fiori based Table Maintenance app with SAP BTP, ABAP Environment for further details.
In the next blog post, I will share details on the transport and deployment of BC content.