- Program Structure & Control Flow
- ABAP Types
- ABAP Objects
- ABAP Performance and Tuning
- Transformations (XSLT and Simple Transformations)
- Working with files (application server and front-end)
- ABAP and Unicode
- Executing server commands (UNIX, etc.)
- SAP Library - ABAP Programming and Runtime Environment (BC-ABA)
- ABAP Keyword Documentation
- ABAP Technology Space @ Docupedia
What does ABAP stand for?
ABAP currently stands for Advanced Business Application Programming; however the original meaning was Allgemeiner Berichtsaufbereitungsprozessor, which is German for "generic report preparation processor". A different explanation is Anfänger Basteln An Programmen, which is German for "beginners tinker with programs".
What are the different types of internal tables?
There are three types of internal tables in ABAP:
- standard table,
- sorted table and
- hashed table.
What is the difference between SAP memory and ABAP memory?
SAP Memory is a global memory area which all sessions within a SAPgui have access to if they run on the same application server instance. This allows for passing data between sessions.
The SET PARAMETER ID and GET PARAMETER ID statements are used to manipulate the SAP Memory.
ABAP Memory is a memory area which all programs in the call stack within the same internal session can access. The EXPORT and IMPORT statements are used here.
What are the events used in report programs?
- At Selection-Screen
- At Selection-Screen on <field(mention the field name)>
- At Selection-Screen on block
- At Selection-Screen output
- At Pf<nn>
- At Line-Selection
- At User-Command
- Top-of-Page during line-selection
How are RANGES different from SELECT-OPTIONS?
They are the same, except SELECT-OPTIONS will provide an interface
on the selection screen for the user to input data.
SELECT-OPTIONS have an inbuilt internal table having the fields LOW, HIGH, OPTION, SIGN where as in RANGES we have to explicitly define the internal table with the above fields.
Are header lines and the OCCURS extension obsolete?
In regard to internal tables, header lines and the OCCURS extension are obsolete. These are actually not allowed in the OO context. The correct way to define internal tables and work areas is to use a TYPE statement to define the structure and the table type and then to use a DATA statement to define the internal table and work area.
What is the difference between OCCURS n and INITIAL SIZE n?
OCCURS n is obsolete in OO Context and it is advisable to use INITIAL SIZE instead. The difference between the two is that OCCURS n allocates memory to store specified number of rows in the internal table and also creates a header line, whereas INITIAL SIZE allocates memory for the specified number of rows without creating the header line.
How do I define a deep structure in modern ABAP?
One thing needing to be clarified is that there are 3 terms often mixed up:
- Nested Structure,
- Deep Structure,
- Flat Structure.
According to official training material BC402, they are explained as follows:
- Nested Structure : Structure contains other structure as component.
- Deep Structure : Structure contains variable length components (string / xstring), or even an internal table
- Flat Structure : Structure only contains fixed-length components.
What is the difference between "'" and "`" in a character literal?
A character sequence within single quote characters (') is a char literal, while within (`) is a string literal. That is especially important for trailing spaces, a string literal preserves the trailing space while a char literal ignores them.
How can I access parameters to MACROS?
The parameters in MACROS can be accessed by &1, &2 ...