Thursday, 22 November 2012

Business Analyst

Business Analyst
Business Analyst (BA) is a place or role in an organization that carries out tasks of business analysis.

Business Analyst Tasks

Typical tasks include:

  • Requirements of the stakeholders determine
  • Manage Requirements
  • Communicate requirements
  • Reusable requirements identify
  • Prepare requirements for approval
  • Manage changes in requirements
  • The actual condition of the company to determine
  • Existing problems / opportunities describe
  • Defining Goals
  • Existing capacity and potential skills gaps analysis
  • Solutions design
  • Outline possible solutions as improvements
  • Define the extent of solution
  • Create a business case
  • Prioritize requirements
  • Specify requirements
  • Requirements model
  • Requirements (check the quality of the content) verify
  • Requirements (check for compliance with the goals) validate
  • Proposed solutions or used to check whether they cover the needs identified

Specific tasks of the business analysts for business processes can be: work flow diagrams and business process models to develop, analyze business process analysis, requirements and demand, improve business processes and increase the efficiency of the test system model, describing interface for software development, implementing new processes, ensure quality, with faculty and staff communicate and educate these

Access Requirements

A study of fields such as economics, computer science or industrial engineering may be necessary but may be a business analysis certificate (see certificate).


The International Institute of Business Analysis offers two certifications for Business Analyst: Certification of Competency in Business Analysis (CCBA) and Certified Business Analysis Professional (CBAP).

Tuesday, 20 November 2012

SAP BusinessObjects Analysis

SAP BusinessObjects Analysis
SAP BusinessObjects Analysis is a Business Intelligence OLAP client of SAP AG. The tool is provided here in two versions. The MS Excel Tools enhanced edition of MS-Excel to OLAP analysis capabilities. In addition, a Web Edition is provided with which you can work platform independent.

Target Audience

Typical target group coming business analysts and "information consumers" into consideration. Business analysts create workbooks and perform multidimensional OLAP analysis. Information consumers consider this, but can also carry a few changes. Particular internal accounting (controlling) so can a BI infrastructure to easily use. For decision-makers and managers, the software is unsuitable. Here are typical products like Business Objects Crystal Reports and Xcelsius appropriate.


Following the acquisition of Business Objects by SAP AG, the original BusinessObjects Voyager client with SAP BEx Analyzer, united in the project "Pioneer". From Pioneer ultimately SAP BusinessObjects Analysis has emerged. The development of the BEx Analyzer was been discontinued. SAP BusinessObjects Analysis now provides its replacement represents

Operation and scope

The process of analysis begins with the design of a workbook. In MS Excel Edition of Analysis, there is the design area on the right side of the screen. This can dimensions or fact tables added to the workbook and as a cross table to be created. After that the table created by analyzing various functions provided. Analysis provides this functionality such as Conditional Formatting, hierarchies and filter options for disposal.


Albert Schweigert: Business Intelligence with SAP BusinessObjects Analysis. An introduction to the functional content, the possibilities and limitations.

Business Objects

Business Objects
Business Objects is a software company based in San Jose and Paris and a leading provider of business intelligence (BI) solutions.

Business Objects has more than 39,000 customers in over 80 countries. The company is listed on the NASDAQ and the Euro Euronext Paris. In German-speaking Business Objects offices in Munich, Frankfurt / Main, Dusseldorf, Zurich, Nyon (Switzerland) and Vienna (Austria).

Its business areas include the development of corporate information infrastructures and the development of business intelligence (BI) solutions for reporting, query and analysis, performance management, enterprise information management, financial planning and budgeting, visualization and for use industry-and function-specific analysis and management solutions.

SAP on 7 October 2007 indicated that they want to take over Business Objects for a total of more than EUR 4.8 billion. The European Commission has approved the proposed corporate takeover of the EC Merger Regulation on 27 November 2007 approved. Since 1 July 2008, the Business Objects Germany GmbH is legally incorporated into the SAP Germany AG & Co. KG.

Products and Solutions

BusinessObjects XI Release 4 provides a business intelligence Business Objects platform. The solution includes products for data integration, reporting, query and analysis, financial planning, budgeting and consolidation, enterprise information management, visualization, and performance management and provides users with an enterprise-wide information platform.

The plan is to integrate the Business Objects tools as a front end for SAP NetWeaver Business Intelligence. This is with the current version of Xcelsius 2008 already implemented.

According to a study SAP BusinessObjects occupied in 2009 1st place at the business intelligence software sales in Germany with 110 million euros in sales.

Monday, 19 November 2012

Multiple Inheritance

In object-oriented programming is multiple inheritance, when a derived class inherits directly from more than one base class. A sequential, multi-heirs will not however referred to as multiple inheritance.

Multiple Inheritance
An application example is the modeling of an amphibious vehicle that is both the attributes of a land vehicle which also inherits from watercraft. Thus have both an amphibious vehicle wheels numbers and a draft.

Few programming languages ​​offer the possibility of multiple-class inheritance, for example, C + +, CLOS, Eiffel, Perl and Python. As an objection to multiple-class inheritance is often referred to, that they can make the design unnecessarily complicated and opaque. It can therefore be ambiguity in the context of the Diamond problem. In some programming languages​​, such as Oberon and its further development, was therefore deliberately left out the possibility of multiple implementation inheritance, which can be compensated by the use of dual class.

However, multiple interface inheritance is straightforward. In Java, Object Pascal (Delphi), C # and VB.NET, a class can inherit any number of interfaces. Thus committed this class to provide the interface methods available and thus makes something similar to the is-a relationship, the ratio is as-relationship-forth.

With simple class inheritance and multiple interface inheritance, most requirements for a software design can be realized, without the disadvantages of full multiple inheritance to have to accept.

Saturday, 17 November 2012

Interface (Object Orientation)

An interface (English interface) is used in object-oriented programming agreeing common signatures of methods that can be implemented in different classes. The interface shall state to which methods are available and must be present.

Technical Details

An interface specifies which methods are available and must be present. In addition to these syntactic definition is known as a contract should always be defined over which the meaning is defined (in terms of preconditions and post conditions) of different methods - i.e., their semantics. The contract is usually defined only informally in the documentation or an external specification of the interface, but is also formal specification languages ​​such as OCL is available. Some programming languages ​​such as Eiffel can also directly syntactic ways of establishing a contract.
Interface (Object Orientation)

Interfaces represent a guarantee with respect to the existing methods in a class. They indicate that all objects that have this interface can be treated equally.

In some programming languages ​​that do not support multiple inheritance (such as Java), interfaces can be used to define compatibility between classes that do not inherit from each other: the interface relationships are not bound by the strict class tree. This interface declarations are often explicitly marked as such (as with the interface keyword). As a replacement for multiple inheritance, interfaces are not, however, as they only define methods and their parameters and do not allow inheritance of functionality.


Other languages ​​(usually those that support multiple inheritance like C + +) but know the concept of interfaces, but treat them like ordinary classes. One then speaks of abstract classes. Sometimes their own language (called Interface Definition Language, IDL) used for the declaration of the interface - is mostly in the middleware systems such as CORBA or DCOM the case. Object-based languages ​​without strong typing usually know no interfaces.

Definition of constants

In some programming languages ​​like Java or PHP, it is possible to declare constants in an interface definition. All implementing classes are then these constants.

Classification of interfaces

Interfaces can be classified along two independent criteria: generality and usefulness. Regarding the general distinction between general and context-specific interfaces on the benefits between offering and enabling interfaces.
  • Common interfaces include the entire public interface of the callee. They are used to separate the used interface specification from its implementation.
  • Context-specific interfaces do not cover the entire public interface of a class, but only specific aspects of this class. They allow you to use objects of a class in particular roles. For example, a buffer can be used for reading or writing. For each of these access "issues" can be a separate interface exist.
  • Interfaces are offering, if the caller turns over the interface to the callee. This is the typical and most common case in the use of interfaces.
  • Enabling end interfaces are present if the callee reversed or even a third component is the real beneficiary of the interface. For example, an object (or its class) implements the interface Printable. Such an object can then be handed over to a printer for printing. Obviously provides the object, which meets the interface is not the service, but it only allows.

A special case is called marker interfaces that do not require any methods to be evaluated through Introspection mechanisms at runtime.

Naming Conventions

In some programming languages, it is customary to make interfaces by special prefixes or suffixes recognizable. So often an "I" prefix (for interface) or appends an "IF" and "Interface". This has no technical reasons but was chosen as a means to improve readability and thus maintainability. The above example would read IKonto interface Account, Account Interface or KontoIF.

  • Interfaces are the names recognizable as such.
  • Implementing classes can have a simpler name.


  • Interfaces should not be recognized as such in the name, because you as a user of other objects, only the interface (i.e. public methods) should keep in mind. [1]
  • Interfaces can be regarded as the essential element of programming. Therefore, it makes more sense to add to the names of the implementations with prefixes or suffixes.
  • Interfaces are particularly useful when there is more than one implementation, so that the implementing classes are already named with prefixes and suffixes.

Friday, 16 November 2012

RTTI (Runtime Type Information)

RTTI is the abbreviation for runtime type information ("type information at run-time"), a term used in software development and is part of various programming languages​​.

RTTI allows the runtime to determine the type of an object. Thus, a program during its execution to determine which concrete class an object belongs to which a particular reference shows. Without this mechanism, "knew" the program at this point is that a copy of any class is referenced, which is derived from the base class. With this mechanism, it "knows" what class belongs the referenced object.

While RTTI is a very simple mechanism, which typically provides only the name of the concrete class, there are more modern programming languages ​​in the mechanism of reflection, and it also allows for information about other properties of a class at runtime to determine, for example, the names signatures of its methods.


So be example a reference to a copy of the base class "business partner" given by the two concrete subclasses "customer" and "supplier" are defined. With type information at run time, the program can find out whether a particular business partner is a customer or a supplier.

Features of RTTI:-

  • In Java, the type information is provided at run-time by using the "getClass" which is a reference to a so-called class object back that knows including the name of the concrete class.
  • Object Pascal is one of the is operator is available. You can also query Class Info, Class Type and Class name of an object.

Wednesday, 14 November 2012

Object-Oriented Programming

Object-Oriented Programming
Object-oriented programming (OOP) is a system based on the concept of object-oriented programming paradigm. The basic idea is to encapsulate data and functions that can be applied to these data, together as closely as possible in a known object and to the outside, so that methods of foreign objects can not manipulate these data inadvertently.

Definition of Object-Oriented Programming

The definition of what is Object-Oriented Programming and the core makes up varies, and is also subject to change.

Alan Kay, the inventor of Smalltalk and the term "object oriented", defined it in the context of Smalltalk as follows:

First Everything is an object, 2nd Objects communicate by sending and receiving messages (in terms of objects), 3 Objects have their own memory (in terms of objects), 4 Every object is an instance of a class (which must be an object), 5 The class holds the shared behavior for its instances (in the form of objects in a program list), 6 To eval a program list, control is passed to the first object and the remainder is treated as its message

"1 Everything is an object, 2nd Objects communicate by sending and receiving messages (which consist of objects), third Objects have (structured as objects) to their own memory, 4 Each object is an instance of a class (which must be an object), 5 The class includes the conduct of all its instances (in the form of objects in a program list), 6 To run a program list, the execution control is given to the first object and the remaining treated as the message "

    - Alan Kay: The Early History of Smalltalk (1993)

But later Alan Kay expressed his dissatisfaction with his chosen term object orientation, this would have come to the real core issue, in his view, the messaging, short In 2003 Alan Kay gave the following definition of object-oriented programming:

    "OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things."

    "OOP to me means only messaging, local maintaining, protecting and concealing the process state and latest possible binding of all things."

    - Alan Kay: (answer to a query, 2003)

The ISO / IEC 2382-15 standard of 1999 defines the term object-oriented, however, as follows:

    "Pertaining to a technique or a programming language that supports objects, classes, and inheritance."

    "This refers to a technique or programming language that supports objects, classes and inheritance."

    - ISO / IEC 2382-15

The ISO definition is now generally regarded as too simplistic, as well as classless object-oriented languages ​​exist and also the inheritance now less importance is attached than in the 1990s.


Compared with other programming methods used object-oriented programming new and different terms.

The individual components that make up an object-oriented program consists during its execution are called objects. The objects are there usually designed on the basis of the following paradigms:


    Each object in the system can be used as an abstract model of an actor can be seen, the handle orders, change report his condition and can communicate with the other objects in the system without having to disclose to how these skills are implemented (see abstract data type (ADT )). Such abstractions are either classes (in the class-based object orientation) or prototypes (in the prototype-based programming).


The data structure of an object is defined by the attributes (including properties) of its class definition. The behavior of the object is determined by the methods of the class. Classes can inherit from other classes (inheritance). It inherits the class data structure (attributes) and the methods of the inheriting class (base class).


Objects are created by cloning existing objects and other objects can be used as prototypes, and thus make their own methods available for reuse, the new objects need to define the differences from their prototype. Changes to the prototype are dynamically effective even at its derived objects.


When encapsulation is known in programming hiding implementation details. On the internal data structure can not be accessed directly, but only through defined interfaces. The internal state of other objects can not read or modify objects in unexpected ways or. An object has an interface, which is determined as to be on how to interact with the object. This prevents the circumvention of invariants of the program.


Ability of an identifier, depending on its use to accept different data types. Different objects can respond to the same message differently. If the assignment of a message to respond to the message only resolved at run time, this is called late binding.


Different objects communicate via a message-response mechanism, which leads to changes in the objects, and generates new messages calls. For the coupling is as an index of the degree of feedback.


Inheritance is simplified to a derived class, the methods and attributes of the base class also has, thus "inherits". Thus, the derived class accesses it. New types of objects can be determined on the basis of already existing object definitions. You can create new components are added or existing ones can be overlaid.


Object variables exist as long as the objects are present and "expire" not after processing a method.

Tuesday, 13 November 2012

OLTP (Online Transaction Processing)

Online Transaction Processing (OLTP):  OLTP (Online Transaction Processing) refers to a paradigm use of database systems and business applications, in which the processing of transactions directly and promptly, that takes place without significant time delay.

Counterpart is batch processing, in which collected all transactions and in - processed batch systems - often at night, free from online mode. The name comes from the 1960er/1970er-Jahren because the data (and often programs) were there before as punch cards and have been read and processed as a batch. With this designation also linked a role that the tasks (like the hole deck) only sequence can be performed while the OLTP many business operations take place simultaneously.

The technical focus is on the OLTP transaction security for parallel queries and updates, to minimize the response time to inquiries and at the highest possible throughput (number of transactions per unit of time). The efficiency of OLTP systems is dependent on the selection of appropriate hardware (database server, Netzwerkkommponenten as LAN and WAN) and software (database management system). By observing of transaction criteria (ACID) is to ensure that the consistency of the database (it can now also be more distributed) is maintained and data is never stored incomplete or inconsistent.

OLTP database systems typically store the transactions of a business process in the highest of detail that is required for the operational activities of the company. Based on the concept OLTP one encounters also known as online analytical processing (OLAP), which deals with the aggregation, processing and analysis of operational data for an extended period.


The classic application of OLTP is the computerized implementation of the business processes of companies that make up the operational day to day business is. This task is performed by, among other so-called ERP systems. Here as master data, such as personnel or inventory and transactions as purchases, sales, space booking, account transactions, etc. are handled. Today's businesses are largely dependent on the existence and accuracy of such information as it explains all resources such as personnel, finance, goods and / or services, together with the induced current changes in the business ready to-date. Therefore, such applications are considered mission critical.

Database systems have the task of ensuring all data so that at no or at worst can lead to minimal data loss and the data in it at any given time - be consistent - even after a partial loss. This requirement shall be tightened in application systems, which can also be implemented on distributed databases since the 1990s, the different servers and / or different - run places - even globally connected via WAN.

Other applications include content management, knowledge bases, web shops, directory services, etc.

Monday, 12 November 2012

SAP NetWeaver Application Server

(Redirected from SAP Web Application Server)

The SAP NetWeaver Application Server formerly SAP Web Application Server is part of SAP NetWeaver is the basis of most SAP products represents He divided (formerly SAP R/3-Basis) in an ABAP and a Java EE application server. Both parts (stacks) are both individually and collectively installed. In the case of an integrated installation (ABAP and Java, also known as double-stack) uses the Java stack, the user management of the ABAP stack. It also automatically communication links between the stacks are created. This is called Java connector, JCo abbreviated.

However, double-stack are (ABAP and JAVA with an SID) installations with a few exceptions (eg, SAP Solution Manager, SAP Process Integration). No longer supported by SAP provides current double-stack installations to a splitting tool with which you can separate those instances (eg for an upgrade).

SAP NetWeaver Application Server
The Application Server provides a runtime environment and middleware as for the corresponding ABAP or Java programming environment, which among other things takes over the access to the database and the operating system. So an ABAP or JAVA-/NetWeaver-Programm run independently of the database or operating system.

History of name
  • SAP BASIS (up to 4.6D)
  • SAP Web Application Server 6.20
  • SAP Web Application Server 6.30 (ABAP + J2EE, innovation: separate database schema for the J2EE instance), not delivered
  • SAP Web Application Server 6.40 (ABAP, JAVA)
  • SAP NetWeaver Application Server 7.00 (ABAP, JAVA)
  • SAP NetWeaver Application Server 7.10 (JAVA only in SAP Composition Environment)
  • SAP NetWeaver Application Server 7.20 (JAVA only in SAP Composition Environment)
  • SAP NetWeaver Application Server 7.30 (ABAP, JAVA)

SAP Web Application Server for Java / SAP NetWeaver Application Server Java

The SAP Web Application Server Java and Web Application Server Java-based and supports the Java Reference Model (J2EE) (depending on the version of the Java JDK are now supplied directly from SAP, there come no more versions of SUN / Oracle or IBM used ):

SAP     version supported JAVA version
6.20     1.3
6.40     1.3
7.0       1.4 (SAP JVM 4.1)
7.1       5 (SAP JVM 5)
7.2       5 (SAP JVM 5)
7.30     6 (SAP JVM 6)

This also includes the Web Dynpro technology for creating web front-ends as well as the proprietary SAP Open SQL for Java. It allows developers to SQL statements, regardless of the SAP Web Application Server underlying database systems write (or the individual database schemas).

SAP also provides the SAP NetWeaver Developer Studio, an Eclipse-based development environment) and base for many Java-based applications of SAP (eg SAP NetWeaver Portal)

To manage development environments is the NetWeaver Development Infrastructure (NWDI), consisting of the components Design Time Repository (administration of the source code), Component Build Service (central Build Service) and Change Management Service (Transportation of developments within a so-called Development Tracks).

Furthermore, the System Landscape Directory, the technical system landscape is managed including through a software catalog.

SAP Web Application Server ABAP / SAP NetWeaver Application Server ABAP

The SAP WebApplication Server ABAP and NetWeaver Application Server ABAP are the application server (and thus flow and development environment) for SAP's ABAP programming language and the applications written in it. The server is a direct descendant of the SAP basis, in turn, the severed technical components (abstraction of the database system, operating system and network, development environment, transport, etc.) corresponds to the SAP R / 3 taken (to be exact, plus the cross-module functional components, which are in R / 3 are to be found). Therefore, it is the foundation for many SAP applications (such as SAP ERP, specifically the component SAP ECC) There is support for Web services, particularly through integration of ITS. Furthermore, there is support for Adobe Print Forms and Adobe Forms Offline.

Both servers use the Enqueue Server for centralized management of logical locks, during the execution of transactions, and the message server for the cluster administration and distribution of requests.

  • Transactions via the SAP GUI (only ABAP)
  • Profile files (ABAP and Java)
  • Database Administration (ABAP and Java), database system-dependent
  • Visual Administrator (Java, when you start the application server to Version 7.1)
  • Configtool (Java, even when stopped application server)
  • Netweaver Administrator (Java, administrator web interface since NW04 SPS12, instead of Visual Administrator from 7.2)
  • System Landscape Directory (including the care of interconnected systems, software components and namespaces)
  • JCo - for connecting Web Dynpro applications with SAP R / 3 systems
  • CMS (Java, means of transport landscape for developments)
  • SAP Solution Manager (separate system of administration)

Operation (web access)

Requests (requests) to the SAP Web Application Server can HTML-based pages that were created with the help of Web Dynpro, XML-based messages, Web services, or a number of other sources received.

SAP Application Server accepts the information from these requests and passes it to Java or ABAP-based applications that run within the server. These programs can then process the received data. Here, tools and components to be used to support special features such as workflow, archiving, etc. The application server queries and stores data using Open SQL. This enables the development of unique software that supports all major database vendors alike.


The SAP Web AS can run on a wide variety of platforms (combination of database system and operating system).


  • Oracle
  • DB2
  • MaxDB
  • MS SQL Server
  • Informix (only ABAP, support discontinued)
  • Sybase
  • HANA

Operating Systems:

  • The Unix-AIX, HP-UX, Linux (multiple CPU platforms), Solaris, and Tru64
  • Windows Server 2000 and its successor
  • IBM System i5, eServer i5, eServer iSeries
  • z / OS for IBM mainframe


The SAP Web AS is a key component in various SAP system types that are sold as part of all-inclusive packages to businesses. For individuals, these packages are not available. Some issues were (with names such as mini or mini WHAT Web AS) among others as book-addition (and thus at low cost) distributed. These can be used for certain purposes, but without the usual maintenance and support claims. An alternative to the ABAP book offerings is a free registration in SDN (SAP Developer Network). In the download section you can find free SAP development environments from the ABAP stack to the Java standalone environment for testing. These environments are valid for six weeks and can be renewed.

Sunday, 11 November 2012


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.

Backward Compatibility

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.

ABAP Workbench

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

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.

Web Dynpro

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.