ABAP Programs Station
ABAP/4 is the language created by SAP AG for implementation and customization
of their R/3 system.
The rough English translation of the acronym would be A Business Application
Programming language, version 4.
It is a block-structured language that seems to me to most resemble
a cross between Oracle's PL/SQL and IBM's PL/I.
-
It contains a moderately rich set of data structures; integers, ``packed''
BCD numbers, character strings, dates, times, ...
-
Some reasonable modularization tools handling both subroutines that are
localized (called a FORM), and globally defined encapsulated functions
(called FUNCTION MODULES).
-
A somewhat weak set of SQL operators; a select statement is represented
by a loop structure, where operations are placed within the loop. e.g.
A typical selection would look like:
The operators are somewhat ``weak'' in that they cannot be directly composed
to generate such things as inner or outer joins; one would instead nest
select ``loops'' one within another.
-
ABAP/4 contains some highly report-oriented event-driven control structures.
For instance, events can be defined for:
-
INITIALIZATION.
-
START-OF-SELECTION.
-
END-OF-SELECTION.
-
AT NEW-PAGE.
-
AT END-OF-PAGE.
Reports can be defined with drill-down capabilities, where by ``double-clicking''
on a line on a report, the program may be requested to display a "subreport,"
or perhaps to run an independent report or transaction.
There are also events defined to automate access to ``logical databases,''
that is, to selectively walk down a hierarchy tree defined for a set of
related tables. This can be used to provide (without programmer intervention)
additional selection and sort criteria as parameters to reports.
-
ABAP/4 is a byte-compiled language. The virtual machine is fairly well
hidden from view, but core dumps can be examined, and appear to resemble
IBM 370 assembly language.
-
Operations that work on tables will have to access the database server;
for efficiency's sake, there is the notion of an ``Internal Table,'' which
is an array structure that is stored ``locally'' on the application server
. Using internal tables decreases both the load on the network and on the
database server, and is highly encouraged, at least for moderate quantities
of data.
-
Some additional ``little languages'' are used to link ABAP/4 code to screen
definitions and screen control code to help define online transactions.
-
Jointly with the ``screen control'' language, ABAP/4 is used to implement
substantially all of the visible R/3 system functionality. The R/3 "kernel"
represents some (albeit fairly large) programs written in C that interpret
ABAP/4 bytecode. There is so much infrastructure built up around this that
most users and indeed many developers are probably not aware of where or
what the kernel is.
Listed here are some useful abap program which you could used for your
own programming reference. Test the abap programs on your developers
first before tranporting it to your production system.
Abap Program |
Abap Program Descriptions |
abapdelete |
Mass delete ABAP Reports. Useful if you have lots of unwanted
ABAP reports to clean up. |
ringsthebell |
Rings the bell on a users PC, not very useful, but a good example of
running a remote program on a frontend machine. |
tableinformation |
This ABAP program displays SAP table information in a report form so
that downloading and searching can be performed easily. An extension to
SE11. |
tablecontrolexample |
A simple ABAP program that demonstrates how to program SAP table control.
Screenshots of various screen painter windows are included. |
preventstwicerun |
Prevents two copies of the same program running at the same time. |
checkbasisjobs |
Program to check if the Basis Jobs are scheduled OK. |
longprogramcollect |
Detects long-running ABAP programs - collector. |
alvgridcontrol |
How to used the ALV grid control. |
abap programming |
Cool ABAP site |