| |
| |
Preface from SAP | |
| |
| |
Preface from SHS Informationssysteme AG | |
| |
| |
Foreword | |
| |
| |
| |
Introduction | |
| |
| |
| |
What is ABAP Objects? | |
| |
| |
| |
Target readership | |
| |
| |
| |
How to read this book | |
| |
| |
| |
How to use this book in practice | |
| |
| |
| |
Syntax conventions | |
| |
| |
| |
A Practical Introduction | |
| |
| |
| |
Introduction | |
| |
| |
| |
First steps with the ABAP Workbench | |
| |
| |
| |
Getting started with the ABAP Workbench | |
| |
| |
| |
Working with the Object Navigator | |
| |
| |
| |
The first program | |
| |
| |
| |
ABAP syntax | |
| |
| |
| |
General program structure | |
| |
| |
| |
Insert: a "Hello World!" program | |
| |
| |
| |
View of the first application program | |
| |
| |
| |
Copying programs | |
| |
| |
| |
Creating a screen | |
| |
| |
| |
Dialog modules in the ABAP program | |
| |
| |
| |
Working with the ABAP Debugger | |
| |
| |
| |
Creating a GUI status | |
| |
| |
| |
The data interface between the program and screen | |
| |
| |
| |
A classical main program | |
| |
| |
| |
Creating a class | |
| |
| |
| |
Working with objects | |
| |
| |
| |
Working with global classes | |
| |
| |
| |
Final steps | |
| |
| |
| |
Resources | |
| |
| |
| |
Final comments on the practical introduction | |
| |
| |
| |
Basics of ABAP Programming | |
| |
| |
| |
The environment of an ABAP program | |
| |
| |
| |
The architecture of an SAP System | |
| |
| |
| |
ABAP programs in the client-server architecture | |
| |
| |
| |
The SAP Basis System | |
| |
| |
| |
The ABAP runtime environment | |
| |
| |
| |
ABAP programs in the runtime environment | |
| |
| |
| |
ABAP program structure | |
| |
| |
| |
Processing blocks | |
| |
| |
| |
Program types | |
| |
| |
| |
Screens | |
| |
| |
| |
Program execution | |
| |
| |
| |
Calling programs internally | |
| |
| |
| |
Ending ABAP programs | |
| |
| |
| |
Memory organization of ABAP programs | |
| |
| |
| |
Basic ABAP Language Elements | |
| |
| |
| |
Introduction | |
| |
| |
| |
Data types and data objects | |
| |
| |
| |
Introduction to the ABAP type concept | |
| |
| |
| |
The ABAP type hierarchy | |
| |
| |
| |
Built-in elementary data types | |
| |
| |
| |
Data types and data objects local to the program | |
| |
| |
| |
Data types in the ABAP Dictionary | |
| |
| |
| |
Flat and deep data types | |
| |
| |
| |
Generic data types for typings | |
| |
| |
| |
Data objects in detail | |
| |
| |
| |
Operations and expressions | |
| |
| |
| |
Assigning values | |
| |
| |
| |
Type conversions | |
| |
| |
| |
Numeric operations | |
| |
| |
| |
Logical expressions | |
| |
| |
| |
Control structures | |
| |
| |
| |
Conditional branches | |
| |
| |
| |
Loops | |
| |
| |
| |
Processing character strings | |
| |
| |
| |
Operations with character strings | |
| |
| |
| |
Comparing character strings | |
| |
| |
| |
Addressing subfields | |
| |
| |
| |
Field symbols and data references | |
| |
| |
| |
Field symbols | |
| |
| |
| |
Data references | |
| |
| |
| |
Internal tables | |
| |
| |
| |
Defining internal tables | |
| |
| |
| |
Working with internal tables | |
| |
| |
| |
Internal tables with header rows | |
| |
| |
| |
Extract datasets | |
| |
| |
| |
Error handling in ABAP programs | |
| |
| |
| |
Statically identifiable errors | |
| |
| |
| |
Runtime errors | |
| |
| |
| |
The ABAP Programming Models | |
| |
| |
| |
Introduction | |
| |
| |
| |
The classical (procedural) programming model | |
| |
| |
| |
Modularization | |
| |
| |
| |
Excursion: source code modularization | |
| |
| |
| |
Visibility and lifetime of data | |
| |
| |
| |
The object-oriented programming model | |
| |
| |
| |
How do we define object-orientation? | |
| |
| |
| |
Classes | |
| |
| |
| |
Objects and object references | |
| |
| |
| |
More on defining and calling methods | |
| |
| |
| |
Summary and outlook | |
| |
| |
| |
Advanced Concepts of Object-Oriented Programming with ABAP Objects | |
| |
| |
| |
Introduction | |
| |
| |
| |
Inheritance | |
| |
| |
| |
Basic principles | |
| |
| |
| |
Syntax for subclasses | |
| |
| |
| |
Visibility sections and namespaces in inheritance | |
| |
| |
| |
Method redefinition | |
| |
| |
| |
Abstract classes and methods | |
| |
| |
| |
Final classes and methods | |
| |
| |
| |
Static components in inheritance | |
| |
| |
| |
Constructors in inheritance | |
| |
| |
| |
Object references in inheritance | |
| |
| |
| |
Polymorphism through inheritance | |
| |
| |
| |
Interfaces | |
| |
| |
| |
Basic principles | |
| |
| |
| |
Definition of interfaces | |
| |
| |
| |
Implementing interfaces in classes | |
| |
| |
| |
Composing interfaces | |
| |
| |
| |
Alias names for interface components | |
| |
| |
| |
Interface references | |
| |
| |
| |
Polymorphism through interfaces | |
| |
| |
| |
Interfaces and inheritance | |
| |
| |
| |
Events | |
| |
| |
| |
Defining and triggering events | |
| |
| |
| |
Handling events | |
| |
| |
| |
Global classes and interfaces | |
| |
| |
| |
Class pools and interface pools | |
| |
| |
| |
Creating global classes | |
| |
| |
| |
Testing global classes | |
| |
| |
| |
Using global classes | |
| |
| |
| |
Programming Screens | |
| |
| |
| |
General screens | |
| |
| |
| |
What are screens? | |
| |
| |
| |
Defining screens | |
| |
| |
| |
Calling screens and screen sequences | |
| |
| |
| |
User actions on screens | |
| |
| |
| |
Dialog module and data transport | |
| |
| |
| |
Input checks | |
| |
| |
| |
Field and input helps | |
| |
| |
| |
An example transaction | |
| |
| |
| |
Selection screens | |
| |
| |
| |
What are selection screens? | |
| |
| |
| |
Why selection screens? | |
| |
| |
| |
Defining selection screens | |
| |
| |
| |
Calling selection screens | |
| |
| |
| |
Selection screen processing | |
| |
| |
| |
User actions on selection screens | |
| |
| |
| |
Classical lists | |
| |
| |
| |
What are classical lists? | |
| |
| |
| |
Classical lists prior to the advent of ABAP Objects | |
| |
| |
| |
Classical lists in ABAP Objects | |
| |
| |
| |
Creating classical lists | |
| |
| |
| |
Displaying classical lists | |
| |
| |
| |
User actions on classical lists | |
| |
| |
| |
Classical list processing and detail lists | |
| |
| |
| |
Example of classical list processing | |
| |
| |
| |
Sending lists to the SAP spool system | |
| |
| |
| |
Messages | |
| |
| |
| |
Creating messages | |
| |
| |
| |
Sending messages | |
| |
| |
| |
Message Processing | |
| |
| |
| |
Advanced screen techniques | |
| |
| |
| |
Context menus you program yourself | |
| |
| |
| |
Drop-down boxes | |
| |
| |
| |
Classical controls | |
| |
| |
| |
GUI controls | |
| |
| |
| |
Working with External Data | |
| |
| |
| |
Database access | |
| |
| |
| |
Introduction | |
| |
| |
| |
Defining database tables in the ABAP Dictionary | |
| |
| |
| |
Editing data with Open SQL | |
| |
| |
| |
Consistent data retention | |
| |
| |
| |
Special sections on database access | |
| |
| |
| |
File interfaces | |
| |
| |
| |
Files on the application server | |
| |
| |
| |
Files on the presentation server | |
| |
| |
| |
Storing data as clusters | |
| |
| |
| |
Data clusters in the ABAP Memory | |
| |
| |
| |
Data clusters in database tables | |
| |
| |
| |
Data clusters in cross-transaction application buffers | |
| |
| |
| |
Authority checks | |
| |
| |
| |
Authorizations and authorization objects | |
| |
| |
| |
Evaluating authorization objects | |
| |
| |
Appendices | |
| |
| |
Appendix A | |
| |
| |
| |
The key flight data model tables | |
| |
| |
| |
Glossary | |
| |
| |
| |
ABAP system fields | |
| |
| |
| |
Literature | |
| |
| |
| |
Installing the SAP Mini Basis System | |
| |
| |
| |
System requirements | |
| |
| |
| |
Preliminary remark | |
| |
| |
| |
Installing the application server and the database | |
| |
| |
| |
Installing the SAP GUI (front end) | |
| |
| |
| |
Starting the SAP System | |
| |
| |
| |
Configuring the SAPLogon and calling the SAP GUI | |
| |
| |
| |
Logging on to the SAP System | |
| |
| |
| |
Generating example data | |
| |
| |
| |
Linking the Basis Documentation to the SAP Library | |
| |
| |
| |
License | |