SAP ABAP Technology
Development using ABAP and JAVA
ABAP stands for Advanced Business Application Programming language. It is an interpreted programming language that runs in the SAP ABAP Runtime environment. ABAP is the the language for programming the SAP Application Server, part of its NetWeaver platform. for building business applications. It has evolved over the years to include Object Oriented language extensions as well.
ABAP runtime environment
All ABAP programs reside inside the SAP database. They are not stored in separate external files like Java or C++ programs. In the database all ABAP code exists in two forms: source code, which can be viewed and edited with the ABAP Workbench tools; and generated code, a binary representation somewhat comparable with JAVA bytecode. ABAP programs execute under the control of the runtime system, which is part of the SAP kernel. The runtime system is responsible for processing ABAP statements, controlling the flow logic of screens and responding to events (such as a user clicking on a screen button); in this respect it can be seen as a Virtual Machine comparable with the Java VM. A key component of the ABAP runtime system is the Database Interface, which turns database-independent ABAP statements (“Open SQL”) into statements understood by the underlying DBMS (“Native SQL”). The database interface handles all the communication with the relational database on behalf of ABAP programs; it also contains extra features such as buffering of tables and frequently accessed data in the local memory of the application server.
With the introduction of the Netweaver release, certain applications such as Portal technology were best run on a JAVA based solution, such as J2EE. SAP Netweaver also has a JAVA based runtime environment. This runtime environment runs JAVA based solutions that have been deployed to the SAP JAVA server.
SAP has balanced its SAP software to leverage the best of either language for supporting the various applications.
- SAP Applications are installed on two different database schemas, depending on the specific application and each are accessed by the respective runtime environment.
– one for the JAVA instance (JAVA Stack)
– one for the ABAP Instance (ABAP Stack)
- ABAP is used for all applications based on the ABAP stack.
– This includes all versions of SAP prior to SAP Netweaver, including the SAP Enterprise release.
– The ABAP Stack can still handle web based activities, however this is realized via ABAP based Web Applications such as ABAP WebDynpro or Business Server Pages for UI solutions, and ABAP web services for SOAP/XML based solutions.
- JAVA is used based on an integrated J2EE Engine that presents the foundation for fully web based technologies.
– Portal framework, Business Intelligence, IPC (Internet Pricing and Configuration) use the JAVA stack as its foundation, running a J2EE engine.
Note: Some applications, such as the process integration solution (PI or XI) requires both an ABAP and JAVA stack, as it uses the best of both from an integration point of view.SAP Development objects are part of the SAP Software repository. This repository consists of the following types of development objects:
- Data Dictionary Objects
- Domain Definitions
- Data Element Definitions
- Table/ View/ Structures
- All remaining Global Type Definitions
- Programs Objects
- Function Groups and Function Modules
- Web Dynpro controllers
- BSP Applications
- Web Applications
- XSLT transformations
- All remaining program related objects
There are several other repositories that contain various constructs and objects that are used by developers, such as the MIME repository containing multimedia objects.