A Case Study: A Business Suite Customer’s First Side-by-Side Extension Using SAP BTP
In this case study, we explore a side-by-side extension of an SAP Business Suite system (using SAP Business Technology Platform) to support a business process related to a utility customer (referred to here as ABC Utilities). As this was the customer’s first Business Technology Platform (BTP) project, some unique challenges arose that we will also discuss here.
ABC Utilities has many customers returning meters (and other equipment) to them for various reasons. Among the most common are defective items or equipment that is eligible to be replaced with a newer model. Previously the team used an SAP GUI-based solution to mark the returns and effect the movement to target storage locations. However, this solution didn’t meet all of their defined requirements, leaving gaps between their processes and the available functionality.
ABC Utilities expected a huge volume in meter returns and wanted a solution that could speed up the return process. As their current process stood, two personas, existed, the “Storekeeper” and the “Admin.” Previously, the Admin persona would be required to prepare a spreadsheet (to be given to the Storekeeper) that included a list of all the meters and the actions that needed to be taken. The Storekeeper was then required to look up the meters as they were received and locate their associated actions. While this was a good place to start, the team required a more automated solution, that would allow Admins to manage a consolidated list of meters and required actions against each meter. A Storekeeper could then access the actions by scanning a barcode on each of the meters. Other required functionality included:
- Storekeepers would use an iOS mobile app to scan barcodes of incoming meters and find actions for each meter
- Mobile app to propose a target storage location (based on business rules) and allow the Storekeeper to change it
- Mobile app to trigger goods movement to a selected target storage location
- Mobile solution to support offline requirements for future solution releases
- Mobile solution to be scalable for additional warehouses in the future
- A UI5 app via the Launchpad service for Administrators to maintain recommended actions for each meter
- A user interface (UI) to update the business rules that determine the target storage location for a meter
A side-by-side extension of the SAP Business Suite using SAP BTP was proposed (instead of a custom on-premise solution), keeping in mind that the resulting solution would need to:
- Reduce the on-premise custom code footprint
- Act as a pilot project for future developments in SAP BTP
- Use the Mobile Development Kit (MDK) tool to develop an iOS app with Enterprise qualities (barcode scanner, offline feature)
The resulting solution can be described as follows:
- SAP MDK toolkit was used to create an enterprise–grade iOS app
- SAP Mobile Service was used to ensure future support for offline capabilities
- The developed iOS app was distributed to users via Microsoft Intune (the customer’s preferred mobile device management or MDM solution)
- The ConvergentIS Goods Movement App was installed on the SAP Business Suite as an Add-On Assembly Kit (AAK addon). This exposes an OData service to perform goods movement.
- SAP HANA Cloud was used to store the actions for each meter on SAP BTP
- Cloud Application Programming Model (CAP) was used as a server layer on BTP
- CAP layer above further consumed the OData service from the Business Suite to perform goods movement
- UI5 app was used as a frontend for the Admin persona, deployed on HTML5 repository, and exposed via the BTP Launchpad service
- SAP BTP Business Rule service was used to code business rules that determine the target storage location for a meter. Customer super users were given access to edit the business rules so that they can carry out those changes without the involvement of developers.
The below diagram explains the data flow for both the MDK app and the UI5 app (via Launchpad service)
We had the following objects that needed to be moved across landscapes (from Dev to QA to Prod).
- AAK Product from ConvergentIS to perform Goods Movement [on-premise]
- ABAP code (OData service enhancement to AAK product) to perform Goods Movement [on-premise]
- Launchpad Service content [cloud]
- Business Rule Content [cloud]
- CAP Application [cloud]
- UI5 Application [cloud]
- MDK Application [cloud]
Since we had both on-premise and cloud artifacts, we considered the following three options.
- Using Enhanced Change and Transport System (CTS+)
- Using SAP Cloud Transport Management Service (TMS)
- Manual movement
In the end, because the customer was already familiar with CTS, they chose CTS+ to begin moving items across landscapes. Unfortunately, the team was met with a few concerns.
- CTS+ only supports cloud artifacts that can be packaged as a Multi-Target Application (MTA). Out of five types of cloud objects that ABC Utilities had, only two of them could be packaged as MTA (CAP and UI5). The remaining three types had to be manually deployed.
- The customer’s Basis team found that the process of CTS+ configuration was complicated to configure and maintain.
Following this discovery, we started evaluating the TMS offering. TMS relies on content types implementing APIs specified by TMS. However, we found that only CAP and UI5 contents were supported at the time. Although SAP was in the process of increasing the coverage of other content types, the current effort of configuring TMS was not justified as the coverage would not meet the project requirements.
In the end, we decided to go ahead with manual deployment as we did not find enough return for the amount of effort required to configure either CTS+ or TMS. For future projects, our team decided it would be necessary to re-evaluate both of these tools along with their updated features.
The developers then created packages (MTA, Zip) for each content type and hosted them in a common space. ConvergentIS followed with documents for deploying each content type (that the customer’s Basis team would perform) to quality assurance (QA) and production (prod).
Learnings and Challenges
SSO and Identity Providers
As previously mentioned, this was ABC Utilities’ first SAP BTP project, which therefore involved configuring the customer’s Identity Provider with SAP Identity Authentication Service (IAS). The project assumed that this configuration step will be taken care of by the customer’s IT team, and it would be ready before the testing started for the project. However, the customer could not get this in time for the UAT and it resulted in delays. This delay in configuration resulted in lots of confusion for the business team in selecting the right identity provider to login.
The lesson learned through this experience was to be aware of additional efforts in configuring customer landscape IAS and SSO and ensure sufficient efforts are being dedicated to first-time projects on SAP BTP. Another approach could be to ensure that IAS and SSO configurations are in place before the development starts.
MFA for Platform Users
The customer was using feature set B of SAP BTP cloud management tools. One of the current limitations of this is that you cannot use a custom identity provider for platform users.
Presently, SAP does not provide Multi–Factor Authorization (MFA) for Platform users on SAP BTP. As per our customer’s security policies, MFA was indicated to be a mandatory requirement for all logins accessing the company’s resources. That said, SAP is scheduled to get MFA to BTP platform users by Q1 2022 (although this date is tentative).
In the meantime, to satisfy the customer’s requirements, risks were mitigated by limiting the roles each of the platform users had.
Loading Initial Configuration Data
In SAP Business Suite, configuration tables come with a ‘Table Maintenance Generator’ that makes it easy for users to maintain configuration data. However, in the HANA Cloud service, there are currently no equivalent tools for business users. Consequently, extra development is required to prepare the same user interfaces (UIs) for business users. Therefore, it is also important to include such efforts into the effort estimate. Since we did not foresee or plan for this effort, we provided developer access (and training) to super users to perform these changes directly in HANA Cloud and made the appropriate plans to provide these UIs in the next version.
Though ConvergentIS was responsible for developing the solution, the customer was responsible for handling the Basis and Security aspects. Again, since this was the customer’s first BTP project, there was a learning curve for the teams involved in the project, which resulted in additional time being required, a consideration not made in original project timelines.
Furthermore, following the development, knowledge transitioning to the customer’s team required additional time and effort as they were not as familiar with SAP BTP.
Communication and Coordination
Executing any successful project involves communication and coordination of multiple teams. However, executing a hybrid application involving SAP BTP and on-premise solutions adds an additional level to this requirement.
This can be attributed to the additional teams involved, including the:
- Enterprise mobility team (the team involved with taking care of the distribution of mobile apps)
- Enterprise security team (the team that ensures that security guidelines are being adhered to)
- Azure team (the team that works with identity provision)
For this reason, having the right communication, coordination, and resource allocations became key factors in such a project’s success.