Community Builds
ABAP: The Language Behind SAP Business Systems
A plain guide to ABAP for readers who meet SAP systems from the outside: basic syntax, elementary statements, data types, and where to find a keyword index.

ABAP is the programming language in which SAP business systems are written and extended. A program in ABAP is a sequence of statements, each beginning with a keyword and ending with a period, and the language ships with a fixed set of elementary statements and a fixed set of data types that every program declares before it does anything. Readers who meet an SAP system from the outside usually need only three things first: how a statement is written, which types a program can declare, and where the keywords are listed. A working reference such as the Italian Registro ABAP covers ABAP syntax and statements alongside the Data Dictionary and the debugger, which is the shape most reference material for this language takes.
How is the basic ABAP syntax written?
An ABAP statement opens with a keyword, carries its operands after it, and closes with a period. The period is not decoration: it marks the end of the statement, and a missing one is a syntax error. Statements can be written on one line or split across several lines, and the editor re-indents them, but the period still ends each one. Comments begin with an asterisk in the first column or with a double quote anywhere on the line.
The elementary statements are the ones a reader will see in almost any program. DATA declares a variable. WRITE puts a value on the screen. MOVE or the equals sign assigns a value. IF, CASE, DO, and WHILE control the flow. CALL FUNCTION calls a function module, and PERFORM calls a subroutine. These are not library calls in the usual sense; they are part of the language itself, and the keyword list is finite and documented.
A short example makes the shape clear. A program that declares a text field, fills it, and writes it reads as DATA followed by the variable name and type, then a MOVE statement, then a WRITE statement, each closed with a period. Nothing about the order is surprising to anyone who has written in a language with explicit declarations, but the period and the keyword-first form are the two habits a newcomer has to acquire.
Which data types are used in ABAP?
ABAP declares its types in the program or takes them from the Data Dictionary. The elementary types include character fields of fixed length, numeric text fields, integers, packed numbers with decimals, floating point numbers, dates, times, and strings of variable length. A declaration names the type and, for fixed-length types, the length. The Dictionary adds named types on top of these: a table, a view, or a data element defined centrally and reused across programs.
Internal tables are the structure that carries rows in memory. They are declared with a line type and a table kind, and the elementary statements that work on them are APPEND to add a row, LOOP to walk the rows, READ TABLE to find one by key, and SORT to order them. These four statements appear in nearly every report, and their names are stable across releases.
The Data Dictionary holds tables, views, and primary keys. A table defined there has fields with types, and a view joins or projects those fields for reading. Because the types live centrally, a program that declares a variable with reference to a Dictionary type stays aligned with the database definition. This is the part of the language that most often surprises readers who come from systems where the schema and the program are separate concerns.
Where does a reader find an index of the ABAP keywords?
A keyword index is a list of the language's statements with a short description of each and, usually, a pointer to the full documentation. SAP publishes the reference documentation for the language, and the index there is organised by statement name. Independent reference guides also keep an index of keywords, often with examples, because the official documentation is large and a short list is easier to scan when a reader only needs to confirm what a statement does.
The Registro ABAP is one such guide, written mainly for Italian-speaking ABAP programmers, beginners, and practitioners who write reports and maintain existing code. Its three subject areas are the language and its foundations, data and output, and the system and exchanges. The foundations section covers syntax, data types, statements, an index of keywords, and internal tables with APPEND, LOOP, READ TABLE, and SORT, together with the Data Dictionary and its tables, views, and primary keys.
An index is useful over the years because the language changes slowly. Statements that were written in the 1990s still run, and a list that names them stays accurate for a long time. When a reader meets an unfamiliar statement in a program, the index is the first place to look, and the entry usually gives enough to know whether the statement reads, writes, sorts, or calls something.
What happens after the Dictionary, in output and exchange?
The path from the Data Dictionary to a report is the common one. A program reads rows from a table or a view, holds them in an internal table, and writes them out. The output can be a plain list, an interactive ALV list or grid, or a form. Smart Forms and SAPscript are the two form technologies used for invoices and printed pages, and export to Excel is a frequent last step when a reader wants the data in a spreadsheet.
On the system side, BAPI and RFC are the interfaces between systems. A BAPI is a business interface exposed by an SAP system, and RFC is the call mechanism that carries it. ABAP on HANA changes some of the performance assumptions, because parts of the work move into the database, and optimisation becomes a matter of what runs where. The debugger is the tool a reader uses to watch a program run: breakpoints stop it at a line, and watchpoints stop it when a particular variable changes value.
Transport orders move changes between systems. STMS is the transaction that manages the transport system, and an order carries objects from a development system to a test or production system. Archives hold data that has been removed from the live tables but must be kept. A forum and a club are the parts of a reference site where practitioners ask and answer questions, which is how a static index stays connected to current practice.
Why the foundations matter before anything else
A reader who meets an SAP system from the outside, perhaps to read a report, check a field, or follow a data path, does not need to write ABAP to understand what is happening. The words in the program are the same words in the index, and the index explains them. Knowing that a statement ends with a period, that DATA declares and WRITE displays, that internal tables carry rows and are walked with LOOP, and that types come from the Data Dictionary is enough to read a program's shape.
The rest, forms, interfaces, transports, archives, is built on that base. The language is old and its foundations are stable, which is why a keyword index remains a usable reference over the years. A reader who learns the elementary statements first can then follow the output and system sections without guessing at the vocabulary.
A note on scope
The ABAP language is documented by SAP and described in independent guides, and the two do not always agree on emphasis. The official documentation is authoritative on behaviour; independent guides are often clearer on what a beginner needs first. For a reader outside the SAP world, the useful move is to treat the keyword index as a glossary and the elementary statements as the grammar, and to leave the system and exchange topics until a specific task requires them.
Statements and syntax only describe part of the work. Once a program is written, someone has to connect it to a database and keep the jobs running on a schedule. That side of the practice is covered in Mac database clients and task scheduling, which explains how to choose a SQL client on macOS, what SyBrowser did from 1999, and how server administrators set up a cron-style scheduler such as MacAT. The two guides meet at the same point: code that reads clearly and a client or scheduler that runs it without a person watching.
Readers who want to check a statement or a data type against the language itself can turn to the official ABAP documentation, published by SAP. That source holds the keyword index of the language, its statements and its data types, so it works as a reference rather than a tutorial. It is useful when a page like this one summarizes syntax and you need the exact wording of a keyword, the permitted additions, or the definition of a type before you write code. The index is organized for lookup, which suits readers who already know what they are searching for.