ABAP is a proprietary programming language, the software company SAP, which was developed for the programming of commercial applications in the SAP environment and is similar in its basic structure of the COBOL programming language.
Originally, the acronym for "General report preparation processor", since this language only customer-specific evaluations were programmed, but no database changes could be made. During further development of the language the acronym now stands for "Advanced Business Application Programming." The language set is not defined and fixed in the past has repeatedly extended, for example, the object-oriented language commands in ABAP Objects.
Since 1990, all based on SAP-R/3-Module ABAP, which was taken over from the previous SAP R / 2. Since the introduction of SAP NetWeaver, SAP ABAP offers a workflow and programming environment for Java, and accordingly an ABAP-based and Java-based application server (see SAP NetWeaver Application Server).
ABAP is a 4GL language that is specifically designed for bulk data processing in commercial applications, and offers the following advantages compared with elementary languages in which those functions are located in libraries:
- Open SQL as the language integrated database access
- In the ABAP runtime environment integrated performance optimization of database access via the SAP buffering
- Internal tables for dynamic storage and processing of tabular data in the mass memory
- Integrated into the ABAP runtime environment concept of online transaction processing (OLTP), where many users simultaneously access to the central database
- Language in the integrated interface to other programming environments via Remote Function Call
- Language in the integrated interface to XML.
The integration of such features in the language is essentially beneficial for static verifiability and the execution speed of programs. In turn, it also contains much more ABAP language elements than other languages.
ABAP supports on subroutines and function modules based, procedural and release 6.10 one based on classes and interfaces, object-oriented programming model. Both models are interoperable.
SAP operates in the development of ABAP, the principle of backward compatibility. If an ABAP statement is replaced by a newer (eg performant) statement, it loses the old statement is not valid or function. As the old instructions in addition to the new instructions continue to exist, the result is a very extensive language support. Ancient language elements should not be used anymore, but the use is entirely possible. Only when using ABAP OO (ABAP objects), some old parts no longer be used.
The advantage is that the recent developments and customer adjustments remain functional and their behavior does not change. Developments need not be revised. The disadvantage is that developers often resort to more old components, although newer and more effective (performant) language components are present. For newcomers language, this means that both the old and the new parts components have to be learned. In addition, this increases the complexity and scope of the language.
Old and new components can be combined, so in object code (program code) can also be used procedural elements, so did the use of object-oriented elements in procedural coding possible. The systematic combination of new and old parts, the power of language can be increased.
The ABAP programming is supported by a development environment that is designed to enable large projects with multiple (hundreds) developers. Here, at any time must have a running system to be guaranteed. To the changed objects are recorded in so-called transportation orders, which are exported to the file system when released and can be imported into subsequent systems. This mechanism allows the development of programs of their productive use in isolation.
The development environment for ABAP programming language is also developed in ABAP Workbench. In the ABAP Workbench (access via the so-called Object Navigator, transaction SE80), however, other objects such as BSP (Business Server Pages with HTML content) are processed.
The special feature is the so-called "forward navigation." Thus, a double click on a table name directly to the definition of the database table in the ABAP Dictionary, while double-clicking directly on a method name into this method.
The ABAP Workbench is adjusted over time to meet the requirements of modern software development. Since the previous release, for example, syntax highlighting is supported.
ABAP Objects refers to the object-oriented extensions to the programming language ABAP. It implements all the elements of object-oriented programming (OOP) with the exception of multiple inheritances and method overloading. Interfaces and optional parameters are supported. With special RTTI classes also reflexive programming is possible, even from the version 6.40 (limited) the dynamic creation of new types.
ABAP Objects from SAP Release 4.6 is available and since then continuously improved and supplemented eg by Object Services. The object-oriented language elements are essential for the development of advanced user interfaces with controls and for the implementation of web applications and XML services in ABAP. Large parts of the ABAP Workbench itself are implemented in object-oriented ABAP Objects.
ABAP Objects restricts the language range of "classic" ABAP in some respects. For example, an internal table with a header in the context of ABAP Objects is no longer allowed.
As of SAP NetWeaver 7.0 is available with WebDynpro for ABAP to develop the possibility web applications in ABAP. Web Dynpro ABAP based on the Web Dynpro technology. SAP originally wanted to make this technology available for the Java programming language (from NetWeaver 6.40) are available. Based on customer requests (missing java expertise in ABAP developers or missing SAP expertise in Java developers) decided to integrate this technology into SAP ABAP.