From the course: ABAP for SAP Users

What is ABAP?

- [Instructor] First, let's clarify what ABAP is about. ABAP is the acronym for Advanced Business Application Programming. So if you want to learn ABAP, you will be programming advanced business applications, like SAP did. SAP developed its system, the most successful business application, in ABAP. ABAP is the programming language of SAP. You can automate business processes with ABAP. You can create new, extend, or modify existing SAP transactions. You can do anything with ABAP in SAP, since this is the engine behind SAP. But what can we build with ABAP? What exactly does anything mean? To answer this question, we need to understand SAP's architecture. SAP calls its functional architecture as Application Hierarchy. SAP as a whole system is written in ABAP. But it would be impossible to modify it and add new functionality if the system wasn't built in smaller units. If we talk about SAP, we refer to main business processes like Sales and Distribution, Financial Accounting Controlling, and so on. These are referred to as SAP modules and each module is written with ABAP. Each SAP module has a strict focus on a well-defined business process, like the Sales and Distribution. The module itself is quite complex. That's why SAP further splits a module into functional subareas. There is a subarea for the Master Data, Sales, Billing, and for many more. Even a subarea is still too big to manage, so SAP divides it further, as needed. The next level is called the development package. For example, Sales has many packages. One of the most used package is the VA package, where you can find the developments related to sales documents like sales orders. The development package contains all the transactions and programs that achieve the functional goal of the package. So, at the end of this structure, you will find programs, all of them developed in ABAP. You cannot write any programs or add transactions without assigning them to a development package. Just a side note, if a development package grows to a larger size, SAP splits the packages into sub-packages. This hierarchy is as deep as the complexity requires it. What is amazing is that all these components are built with ABAP. The typical result of ABAP code is a program that executes a business process or displays a report. The program is placed somewhere in the application hierarchy. The set of programs build up a package and a module. To understand what we can achieve with an ABAP program, let's discuss how a typical program runs. You, as an SAP user, enter a transaction code, like va03, for displaying the sales orders. The transaction code is not a program. It is only a shortcut to a program. But when you press Enter, the ABAP program for display sales orders starts and you can see a selection screen. On this screen, you can type your order number and continue. The program retrieves your selection and goes to the database. It reads the necessary information for the order from the sales order related tables in the database. Once the database sends the data, the program starts to work with it. It might calculate summary of all use or prepare data for the next string. When the calculation and preparation is ready, a new screen appears, filled with the data from the result of the database read and calculation. The program is still running. It listens to you, to the user interaction. If you click on a tab, press Enter, or push a button, another part of the program starts working to answer your action. For example, if you modify the data and press the save button, a validation might start, whether you enter a consistent data or not. Or the sales order might recalculate the pricing if you change the quantities. As a final step, if every validation went fine, SAP writes the modified data to the database to keep your data safe. If you use SAP daily, you have actually gone through this process many times. Let's look at the details behind each of the previous main steps, to clarify several ABAP concepts. The first one is the transaction. A transaction is a shortcut to another program. You can imagine it as a link in the browser. You can use transactions to navigate among programs. You don't need to learn long program names. The transaction codes make the navigation easier. The transaction doesn't know how to process a business transaction. The underlying ABAP program does that. The program has source code written in ABAP, which has many lines of statements that define what SAP should do during the business transaction. So, all the processing logic is done by the program. The simplest processing logic that a program should do is to display the specific layout of a screen. The screen that is displayed in SAP is part of the program and it defines the layout of the different elements, like the input boxes and buttons. A program can manage several screens, like in our example here, the selection screen and the detail screen for the sales order. We call the database part of SAP, the Data Dictionary. The Data Dictionary is the common term for different database objects like tables, views, or database field types. You might have already heard that SAP can run on different database systems, like Oracle or SQL Server. The different database vendors have different processes to create tables, read, and write table entries. The Data Dictionary builds a unique view and handles the different dialects of the database vendors. You don't need to learn different processes to create a table. Data Dictionary will manage it for you. A program like this sales order display is very complex and long. The developers have a tool with which you can divide a complex program into smaller and easy-to-digest chunks. These parts are called sub-routines. A program can contain many, well-defined sub-routines and you can name them. We can read a well-written ABAP program like normal, English sentences. Each sentence can be a reference to the sub-routine. So, sub-routine is a great tool for managing long and complex programs. They can communicate high-level concepts, like calculate pricing, reading sales order header data, and so on. Finally, let's talk about the GUI Status. You can define menus, icons, and actions for function keys with GUI Status. In different transactions, you can see different menus. This is because you can define menus within the GUI Status. If you click on an icon, the GUI Status will trigger a specific user event and the program can start processing your action, like saving the data to the database. Great, you have already learned many things about ABAP. We have discussed concepts for Transaction, Program, Screen, Data Dictionary, Subroutine, and GUI Status, which are each an important part of the development process. If someone asks you what you can do with ABAP, you can answer, create links to programs with transactions, manage a business process with a program, create a user interface with screens, define new tables with the data dictionary, divide a long program with subroutines, or define custom menus with the GUI Status. Now, it's time to see how these concepts work in practice. Join me to the next lesson, where we will take a look behind the scenes of SAP.

Contents