Since after the publication of our previous articles on SAP-related technologies, readers have suggested that a short introduction into the SAP environment would be very welcome, we have decided to take the advice and start a series of articles that will provide some insights into the SAP world.
Consequently, in this article we start off by analyzing several aspects of the SAP products and technologies, answering questions such as: Who or what is SAP? What solutions does SAP provide? What is different about SAP technologies and what does software development in the SAP environment imply?
SAP is the leading provider for enterprise business software, with more than 230000 clients and a portfolio that covers a wide range of products, from typical ERP solutions such as Financial/Accounting, HR, and Customer Relationship Management to very specific ones, often referred to as "Focused Business Solutions".
An interesting matter is to identify the reasons for which such a large number of enterprise clients choose SAP. The reasons may vary, but what is often stated is that the best promoter of any business solution is represented in fact by the portfolio of clients and their success stories. In other words, implementing a software solution that manages to streamline the business processes of a company represents an indication of that software"s quality, and it is most often a criterion that determines the competition to go for the same solution.
This statement is also valid when talking about SAP solutions, especially since SAP"s portfolio is composed of solutions developed not for one particular customer, but for an entire branch. In SAP terminology (but not only) such products are called "standard" solutions.
Furthermore, implementing a well-known business solution within an enterprise, as opposed to developing a new one "from scratch", can also have a positive impact on that company"s image, and can influence in certain cases even the rating received by the company through an audit.
Given SAP"s approach of developing solutions not for individual customers but rather for an entire industry, in what follows we will analyze the challenges encountered while implementing such standard solutions, and illustrate how the SAP technical platform contributes to solving these issues.
With regard to the functionalities it provides, any standard software solution must be designed to support all typical business processes of a specific branch, while simultaneously leaving aside any details that are only specific to certain customers.
Thus the functional specification phase of standard software involves collecting information from multiple clients of the industry, with the aim of defining the product at a sufficiently high level of abstraction, such that the product will be usable for any customer within that particular branch.
As a consequence the functional specification phase of the product is more than ever an activity of critical importance during the development of a standard software solution, which requires in-depth domain knowledge, and which can ultimately be the decisive factor in determining the subsequent success or failure of the product
Given the fact that a standard solution cannot be specified up to the last detail so that it can be delivered in a fully functional state to the client, the lifecycle of any SAP product will always consist of two distinct phases: (1) developing the standard software and (2) adjusting the standard solution according to the customer"s exact requirements (the latter is usually referred to as "implementing" the standard solution at the client ).
From a software development point of view, the two phases represent independent software projects (standard and customer development projects), with the skill-set required from an ABAP developer also varying rather significantly depending on the type of project that he is involved in.
From a technical point of view, any standard software must be designed with enhanceability in mind, providing customers with the technical means to extend the standard processes where needed and to specify those details that where too specific to be included in the standard solution.
In order to meet the requirements for flexibility and extensibility, the technical platform which the new product is being built upon must come to the developer"s aid, providing mechanisms that will enable the development of a product for an entire industry rather than for a single client. This fact is particularly true in the case of SAP solutions, for which the underlying technical platform and the development environment have been created with these goals in mind, to begin with.
In what follows we will briefly present a few of the SAP-specific mechanisms, illustrating how they aid the developer in dealing with flexibility and extensibility requirements of the standard SAP solutions.
As already mentioned, when a standard solution is being developed, often situations will arise when a specific business process cannot be fully specified within the standard solution, either because certain aspects are unknown at that moment, or because they differ from one client to the other and there is no standard solution for that particular situation. Thus the need arises for a mechanism through which the client has the possibility to extend the standard system behavior with his own specific business functionality.
An example for such a mechanism provided by the SAP technical platform is the so called "Business Add-In". A Business Add-In (or BadI) basically represents a user exit with a predefined interface that is integrated in the flow of the standard solution. By using BadIs the client has the possibility to define his own implementation in order to extend the standard behavior of the system. Even more so he can specify the conditions (usually called filters) for an implementation to be executed.
Thus a client has the opportunity to extend a standard product with his own business logic, logic that will be integrated and executed at a predefined moment within the standard process.
The utilization of the Business Add-in concept implies two distinct steps:
While the concept itself can be implemented effortlessly using other technologies as well, what is special about Business-Add-ins is that the ABAP programming language comes with a specific instruction set for making use of BadIs in ABAP applications, and the SAP development environment provides tools that ease the task of managing Business Add-Ins: defining the BadI interface and filters, adding new implementations, a.s.o
GET BADI lr_badi
FILTERS
iv_entity = lv_filter_value.
CALL BADI lr_badi->do_checks
EXPORTING
is_key = ls_key
iv_lob_cd = lv_lob_cd
CHANGING
ct_msgtab = lt_msgtab
Example of a Business Add-In call. The BadI implementation will be dynamically determined at runtime, depending on the filter value lv_filter_value
Beside Business Add-Ins, the SAP platform also offers a series of other mechanisms (Program Exits, Screen Exits, Menu Exits, Business Transaction Events), which are all aimed at enabling the development of flexible SAP solutions that can be easily adapted depending on the specific requirements of each individual customer.
In SAP terminology "Customizing" refers to the activity of tailoring the standard product for a specific customer by adjusting the system parameters delivered with the product. Customizing is a mandatory step in the implementation phase of any standard SAP solution.
The customizing task includes a wide variety of activities of varying degrees of complexity:
The SAP client concept permits the splitting of a SAP system into a series of logical subunits, each of these subunits being called a "client".
When multiple subunits of an organization need to use the same SAP solution, the existence of this concept allows the reuse of the same hardware infrastructure, thus reducing costs for installing, configuring and maintaining the SAP solution.
Among clients, a separation is possible both at the level of information stored in the system, as well as with regard to the customization of the SAP solution. What this means is that multiple subunits of an enterprise can use the same SAP solution, installed on a single physical system, but functioning differently for each client, since the customization is specific for each one of them. Coming back to our VAT configuration example, a multinational company with branches in several countries can use a single SAP system, assigning the branches in different countries to different clients of the system. The VAT value can then be configured for each particular country differently on each client.
All these aspects together with other SAP specific mechanisms and tools greatly ease the developer"s job when emphasis in software development is placed especially on flexibility and the possibility to extend the software solution that is being developed.
In our next articles we will elaborate on this topic by addressing other aspects of the SAP software development process, with emphasis especially on the difference with regard to other programming languages and technologies.