Professional Documents
Culture Documents
Karl-Heinz Khnhauser
Discover ABAP
Bonn Boston
152.book Seite 5 Donnerstag, 11. Oktober 2007 7:18 19
Contents at a Glance
Preface ..................................................................... 15
Contents
Preface ........................................................................... 15
Who This Book Is For .................................................................. 15
What Youll Discover ................................................................... 16
Navigational Tools for This Book ................................................. 16
System Requirements .................................................................. 16
Whats In This Book? ................................................................... 17
Code Samples for Download ....................................................... 19
Acknowledgments ....................................................................... 19
7
152.book Seite 8 Donnerstag, 11. Oktober 2007 7:18 19
Contents
8
152.book Seite 9 Donnerstag, 11. Oktober 2007 7:18 19
Contents
9
152.book Seite 10 Donnerstag, 11. Oktober 2007 7:18 19
Contents
10
152.book Seite 11 Donnerstag, 11. Oktober 2007 7:18 19
Contents
11
152.book Seite 12 Donnerstag, 11. Oktober 2007 7:18 19
Contents
12
152.book Seite 13 Donnerstag, 11. Oktober 2007 7:18 19
Contents
13
152.book Seite 15 Donnerstag, 11. Oktober 2007 7:18 19
Preface
For this reason, this book can neither replace a course in basic SAP
principles nor any advanced literature on specific ABAP-related
subjects. It is not exhaustive in any respect. Furthermore, the book
is not intended to be a "dry run;" instead, it is intended to motivate
you to get to know and use the SAP system. All steps integral to
reaching this goal are comprehensively described on the basis of
examples, background information, and source code listings.
15
152.book Seite 16 Donnerstag, 11. Oktober 2007 7:18 19
Preface
This is a Additionally, marginal text provides a useful way to scan the book
marginal note to locate topics of interest for you. Each appears to the side of a
paragraph or section with related information.
System Requirements
16
152.book Seite 17 Donnerstag, 11. Oktober 2007 7:18 19
Mini-SAP System
17
152.book Seite 18 Donnerstag, 11. Oktober 2007 7:18 19
Preface
In Chapter 5, youll work with character strings and carry out dif-
ferent variants of string operations. Youll learn how to search for
substrings and modify character strings.
In Chapter 8, you will declare date and time fields, process these
fields, and examine their specific features. For a better understand-
ing, this chapter uses many examples, which are described and
traced in the ABAP Debugger.
Chapter 11 describes how you can provide a report with input val-
ues for the program flow in a selection screen. You will develop
simple and complex selections and selection texts, and design the
selection screen in accordance with your own requirements. Fur-
thermore, this chapter describes the meaning of text symbols, mes-
sages, and variants in relation to the selection screen.
18
152.book Seite 19 Donnerstag, 11. Oktober 2007 7:18 19
Acknowledgments
Acknowledgments
Lastly, I hope that you will enjoy reading this book and I wish all
of you much success in learning ABAP.
Karl-Heinz Khnhauser
Nuremberg
19
152.book Seite 69 Donnerstag, 11. Oktober 2007 7:18 19
Programming in the
ABAP Editor
Everything looks complicated when you first get started, but when
youre done, its usually not half as difficult as you imagined. Small
successes balance out the effort. After working through this chap-
ter, youll be proud of your first list.
This chapter shows you how to use the ABAP editor to create, acti-
vate, and execute your first program. It familiarizes you with ABAP
statements and shows you how to take the first steps in working
with the ABAP editor.
You can start the ABAP editor from the SAP menu (Tools ABAP SE38
Workbench Development ABAP Editor) or using Transaction
Code SE38.
You must enter a program name in the initial screen. The name can One name,
be up to 30 characters long and should contain only letters and one program
69
152.book Seite 70 Donnerstag, 11. Oktober 2007 7:18 19
Maintaining pro- In the next screen, you define the attributes the properties of the
gram properties report (see Figure 3.2) and give it a descriptive Title, such as
"First Member List." You must also specify the original language of
the report the language in which it is created "EN" for English
in this case.
70
152.book Seite 71 Donnerstag, 11. Oktober 2007 7:18 19
For the Type of program, select Executable program. An execut- Program type
able program can be started without a transaction code directly, or
in the background with a batch job. The invisible runtime envi-
ronment controls the report. It calls defined processing blocks in a
fixed sequence and handles the processes of program execution,
such as outputting a list at the end of the report.
As the Status of the program, select Test program from the list and Program status
select Basis for the Application. Both criteria help program
management. They describe the status of program development: if
youre dealing with a finished customer program in production or
a program in the experimental and testing phase. They also
describe the business application area that the program belongs to.
71
152.book Seite 72 Donnerstag, 11. Oktober 2007 7:18 19
See Chapter 11 Leave the next three optional fields blank. You can use the Autho-
for more information rization Group to assign the program to a program group and then
on the Selection
screen. set authorization checks for the group, so that only authorized
users can start the report. A Logical database is a higher-level read-
program that makes it easier for you to find and assign data in var-
ious tables. It can ensure that data is processed in the right
sequence and perform other tasks that we cannot discuss in more
detail here.
Additional Select the following settings for the four remaining checkboxes:
attributes
Editor lock
Do not set the Editor lock. You need it only when you want to
prevent another user from changing, renaming, or deleting the
program. In the real world, this precaution can be helpful. Only
the author of the last program change can remove the lock.
Unicode checks active
Check Unicode checks active. As of Release 6.10, ABAP sup-
ports multibyte coding. Earlier releases used only character sets
based on single-byte coding ASCII or EBCDIC codes. In some
circumstances, programs without Unicode checks can trigger
syntax or runtime errors.
Fixed point arithmetic
Activate Fixed point arithmetic. Otherwise, packed numbers
are treated as whole numbers without consideration of decimal
places, and intermediate results are rounded in calculations. In
other words, if youre interested in exact calculations (which is
the case in Chapter 4), you must activate fixed point arithmetic.
Start using variant
Dont select Start using variant. Variants populate the selection
screen with initial values. To ensure that a report is actually
populated with the same initial values every time the report
runs, you can store the selection screen in a variant. If you start
the report with the variant, the selection screen is already popu-
lated, which significantly reduces the risk of errors.
72
152.book Seite 73 Donnerstag, 11. Oktober 2007 7:18 19
Tip
The Start using variant option is beneficial in your daily work. In the
real world, these kinds of selection screens can be quite compre-
hensive. But right now, starting the report with only a variant will not
be helpful. In Chapter 11, we will assign initial values to the report
with a selection screen for the first time.
After you save the program, youre instructed to create an object Maintaining an
catalog entry. As we noted in Chapter 2, you should save the object object catalog entry
locally.
That automatically (and finally) takes you to the ABAP editor (see Frontend and
Figure 3.3), which has two basic modes: frontend mode and backend backend mode
mode.
73
152.book Seite 74 Donnerstag, 11. Oktober 2007 7:18 19
Both modes offer the same layout of the source code and are appro-
priate for editing ABAP source code. The difference between the
two modes lies in their operation and functional scope:
Although novices probably find that it takes longer to get used to and
is not immediately comfortable, the backend mode has two advan-
tages. It offers better performance with large quantities of data and it
can process all the development objects that the ABAP editor needs.
Limitations still exist in frontend mode. Backend mode also doesnt
limit the choice of local operating systems on the presentation server.
Thats why we will always use backend mode in the following. Of
course, you can use frontend mode if it better meets your personal
style of working.
74
152.book Seite 75 Donnerstag, 11. Oktober 2007 7:18 19
The ABAP editor always starts in the last mode in which it was Switching between
operated. If you want to switch from one mode to another, use the editor modes
toolbars. The upper one (see Figure 3.4) helps to control the ABAP
editor. Table 3.1 explains the individual icons.
75
152.book Seite 76 Donnerstag, 11. Oktober 2007 7:18 19
Table 3.1 Functions of the Toolbar to Control the ABAP Editor (cont.)
76
152.book Seite 77 Donnerstag, 11. Oktober 2007 7:18 19
Table 3.1 Functions of the Toolbar to Control the ABAP Editor (cont.)
The lower toolbar (see Figure 3.5) is used to edit the source code.
As you can easily see from the icons, the functions here are similar
77
152.book Seite 78 Donnerstag, 11. Oktober 2007 7:18 19
to those of other interfaces: cut, copy, paste, and so on. Table 3.2
explains the meaning of the icons.
SAP buffers In particular, working with buffers differs from working with the
clipboards familiar to you from your client. In addition to the
buffer of the presentation server (client) as the standard buffer, the
SAP system has three additional buffers: X, Y, and Z.
Copying within If youre copying in the standard SAP buffer, you can insert the
a system and contents of the buffer into another location in the source code in
beyond a system
the same mode. If youre copying in one of the three supplemental
buffers, you can also insert the contents into the source code in a
different mode. In both cases, however, the SAP system must be
the same. The buffers are related to the system and are emptied
when you quit the editor or log off the system. If you want to copy
between systems, you must start from the SAP system and copy to
the buffer of the client, either with the SAP menu or with Ctrl+C
and Ctrl+V.
The cursor must be placed on the line that is being edited. A section
of a line must be highlighted beforehand. A block that consists of
several lines must be highlighted at the beginning and at the end
of the block.
78
152.book Seite 79 Donnerstag, 11. Oktober 2007 7:18 19
Table 3.2 Functions of the Toolbar for Editing Source Code (cont.)
79
152.book Seite 80 Donnerstag, 11. Oktober 2007 7:18 19
Table 3.2 Functions of the Toolbar for Editing Source Code (cont.)
1 Please use this option carefully. You can use it to write two short commands in
one line. ABAP has no problem if you end every command with a period, but
doing so would make the source code difficult to read and runs counter to the
convention of placing each new command in a new line.
80
152.book Seite 81 Donnerstag, 11. Oktober 2007 7:18 19
When you now look at the source code (see Figure 3.3), you might Comments in the
see red, especially in lines 1 7. The asterisk (*) in the first position source code
turns the entire editing line into a comment line. You also have a
second option for comments: you can write something after an
opening quotation mark ("). Everything after the quotation mark is
interpreted as a comment rather than as a command. Section
Notes on the Source Code in this chapter provides an example of
this feature.
Please try from the very start to create good legible inline documen-
tation; the business world calls this adequate documentation, but
this term is not operational. Comment lines that make up some
30 % (or more) of the source code can, in some situations, be com-
pletely appropriate. Always remember that you might soon be a
third-party looking at the source code. You will note how quickly
your own code becomes unfamiliar even after a couple of months.
In the ABAP editor, youll see black along with red in line 9. This REPORT
is the first ABAP statement (also called a command) that youll
become familiar with, namely, the REPORT statement. It is always
the first statement in an executable program.
Youll also see the first operand (or addition) of the command: the
program name (Z_MEMBERLIST01).
You can also see a period (.) in the line, because every ABAP state- One more point
ment must end with a period. Even if a statement stretches over
several lines or screens, a period must be placed at the end of the
statement. However, you should note that a period doesnt have a
fixed place like the end of a line. It is just important that the period
is the last character of the command (i.e., it closes the command).
The place in the line is not important. It also could be placed
directly after the last operator. See the following complete state-
ment:
REPORT Z_MEMBERLIST01.
81
152.book Seite 82 Donnerstag, 11. Oktober 2007 7:18 19
If the REPORT command didnt offer any explanation here, you can eas-
ily determine what the statement does and what operands it has.
Click on the statement and then press F1. A help window opens with
ABAP key word documentation; you have information on the effects of
the command along with examples and tips (see Figure 3.6). The win-
dow also displays possible additions, and you can display hints and
examples as well.
WRITE Of course, you want to see the success of your first ABAP program
quickly, so you now write your first comment in line 10 (after the
REPORT statement):
Literal Its not difficult to discern that the WRITE statement outputs a list,
in this case, a literal 'This is my first list'. A literal is a set char-
acter string in the source code. It begins with a single quotation
mark and unfortunately cannot be maintained as language-depen-
dent. In Chapter 11, well start working with text elements that can
be translated, but for now lets just enjoy our immediate success.
82
152.book Seite 83 Donnerstag, 11. Oktober 2007 7:18 19
Four steps are involved in the execution of our first ABAP program: Short countdown
Save
Check
Activate
Execute
Save the program via Program Save or with the Save (Ctrl+S) but-
ton. The status line issues a confirmation. Then check the program
via Program Check Syntax or the Check (Ctrl+F2) button. If you
receive a message in the status line that no syntax errors were
found in the program, you can activate the program via Program
Activate or with the Activate (Ctrl+F3) button.
You have two ways to perform a required test here. The first way Starting from the
is to navigate via Program Test Directly or with the Directly ABAP Workbench
(F8) button. You start the report from the ABAP Workbench. If the
program terminates, you then have to reopen the ABAP Work-
bench and redisplay the source code on the screen to look for
errors and correct them.
The second way is akin to the way that a user would start a report. Starting from ABAP
Usually, users dont have the necessary access rights to work in the program execution
83
152.book Seite 84 Donnerstag, 11. Oktober 2007 7:18 19
Were assuming that our first attempt didnt trigger a program termi-
nation. If everything worked, you can see the result the first mem-
ber list (see Figure 3.7). You can use the Back (F3) button to return
to ABAP program execution. Then you have to switch to the session
with the ABAP editor.
That wasnt difficult, but were not done yet. In the next step, lets
try to output the data records of the table that we created and popu-
lated in Chapter 2.
84
152.book Seite 85 Donnerstag, 11. Oktober 2007 7:18 19
When you want to work with database tables in a report, you must
inform the report about the tables. You can inform the report about
our table, ZMEMBER01, with the following statement:
TABLES zmember01.
The hyphen
You address the fields of the structure with their names; you address
the MNAME fields of the ZMEMBER01 table with ZMEMBER01-MNAME.
The first part of the name is the table name; the second part of the
name is the field name. Note the hyphen between both parts. It sepa-
rates the parts of the name without any blank spaces. For your addi-
tional work, also note that you use the hyphen only for this purpose:
never use it with variable names.
Of course, no one remembers the type declarations for all the fields
of the database tables in use. If you need to refer to them, use forward
navigation (double-click on the name of the table) to branch to the
display of the dictionary, where you can see the required information
on the fields in the Fields tab. Then use the Back button to return to
the ABAP editor.
The following program is the simplest way to output the rows of a SELECT
database table line-by-line in a list:
The SELECT statement means that the records from the ZMEM-
BER01 table are transferred, record for record, into the program
85
152.book Seite 86 Donnerstag, 11. Oktober 2007 7:18 19
structure. The asterisk (*) indicates that all the fields of a record are
transferred. If you want to transfer only some of the fields, you
must specify those fields as a field list instead of using the asterisk.
Formatting Lists
WRITE / With three data records in the database table, you have three lines
in the list: each line of the list is as long as the structure. The struc-
ture is output as a character string in the list. There is no empty col-
umn between the fields and the legibility of the list leaves
something to be desired. It would be better to see the fields in the
desired order with some space between them on the list. You must
address the fields of the structure. Consider the following example:
WRITE / zmember01-mdob.
The slash triggers output of the field on a new line. The following
statement, however, places the output of the field at the end of the
current line of print: the field is simply appended to the line.
WRITE zmember01-mname.
This approach can truly produce infinitely long lines. On its own,
the system breaks a line on the screen only when the screen set-
tings demand it. It breaks a line on paper only when the output set-
tings on the printer or the width of the paper demand it.
Accordingly, each and every developer is responsible for the cor-
rect design of a line.
86
152.book Seite 87 Donnerstag, 11. Oktober 2007 7:18 19
Formatting Lists
3
Chain Statement
A WRITE statement is needed for every field of the structure that
should be output in the list. You would have to expend a great deal
of effort to write a statement each time. Luckily, you dont have to.
Simply tell the system that several WRITE statements are to be exe-
cuted after each other.
Place a colon (:) after the first statement and separate the statement WRITE:
with a comma instead of a period. Place a period only after the last
statement. In our example, the chain statement appears as follows:
WRITE: / zmember01-mdob,
zmember01-mname.
Looking good
Lines
For simple list formatting, the ULINE command (without additional Underline
operands) creates a horizontal line in a new line of the list.
ULINE.
You can use this command to set off sections of a list and improve
its legibility.
Blank Lines
The SKIP statement creates blank lines in a list.
SKIP.
87
152.book Seite 88 Donnerstag, 11. Oktober 2007 7:18 19
If you want to create several blank lines, simply specify the number
of blank lines. The following statement produces three blank lines:
SKIP 3.
Type it yourself You can simply type your first source code manually (see Listing
3.1),1 so that you can become familiar with the ABAP editor. You
create empty lines with Enter. You can also use the familiar copy
and insert functions (Ctrl+C, Ctrl+V, and so on) and practice with
the additional functions of the ABAP editor for entire lines or
blocks of lines, as described in Section Controlling the ABAP Edi-
tor in this chapter.
1 *&---------------------------------------------*
2 *& Report Z_MEMBERLIST01 *
3 *& *
4 *&---------------------------------------------*
5 *& *
6 *& *
7 *&---------------------------------------------*
8
9 REPORT z_memberlist01 .
10 TABLES zmember01. " Declare table
11 WRITE 'This is my first list'.
12 ULINE. " horizontal line
13
14 * loop
15 * each record of the table with all fields
16 * will be printed on a new line of the list
17 SELECT * FROM zmember01.
18 WRITE / zmember01.
19 ENDSELECT.
20 SKIP. " 1 blank line
21
22 * select statement like before
1 You can also download the source code in Listing 3.1 from the website for this
book at http://www.sap-press.com.
88
152.book Seite 89 Donnerstag, 11. Oktober 2007 7:18 19
Line 10
TABLES zmember01. " Declare table
After the blank space, a comment line begins with the quotation Comment lines
mark in the same line: "Declare table." The system interprets all
characters to the right of the quotation mark as a comment. Even
if you write a statement over several lines, you can still insert com-
ments into individual lines. The comments would appear in the
middle of the statement.
89
152.book Seite 90 Donnerstag, 11. Oktober 2007 7:18 19
Line 11
WRITE 'This is my first list'.
Line 12
ULINE. " horizontal line
ULINE produces a horizontal line across the entire width of the list.
That separates the title from the rest of the list.
Line 13
The blank link should improve the legibility of the list.
These three lines are comment lines that explain the following
statements.
Line 17
SELECT * FROM zmember01.
One record The SELECT statement opens a structure. A loop reads all the data
after the other records of the table and transfers them one by one into the table
area of the program. The table area contains a complete record of
the table. The record is processed from the table area. Once
processing of the record ends, the next record is read. The asterisk
means that all the fields of a record are being selected.
Line 18
WRITE / zmember01.
The slash after the WRITE statement outputs the list to a new line in
column 1, rather than to the current print position. Note that a
blank space must be placed before and after the slash.
90
152.book Seite 91 Donnerstag, 11. Oktober 2007 7:18 19
Writing the ZMEMBER01 option outputs the table area as a whole Output as
as a character string. The length of the character string is the character string
sum of the lengths of the fields. In the character string, the fields
are given according to their type they are not formatted for print-
ing.
Line 19
ENDSELECT.
Line 20
SKIP. " 1 blank line
The SKIP statement creates a blank line in the list. This statement Improved legibility
is helpful for improving the legibility of the list.
Line 24
SELECT * FROM zmember01.
91
152.book Seite 92 Donnerstag, 11. Oktober 2007 7:18 19
All records of the table are reread in a loop as in line 17. There
difference here is in the following record processing.
Line 25
WRITE / zmember01-mdob.
Writing convention
This WRITE statement outputs a field from the work area of the table
structure: the MDOB field of the ZMEMBER01 table structure. Note
the writing convention here: structurename-fieldname. If the field
name or the structure name contains a hyphen as part of the name,
the system cannot uniquely identify and interpret the statement.
Thats why when assigning names, you should always work with an
underline ( _ ) TABLE_A-FIELD_B, for example.
The slash after the write statement always places the output on a new
line in column 1.
Line 26
WRITE zmember01-mname.
This WRITE statement also outputs a field of the table structure: the
MNAME field. The output is placed in the current position in the
list, after the MDOB field in this case. If fields are written after each
other in the same line, the system automatically inserts a line
break.
LINE-SIZE With this kind of output, you must make sure that the line has
enough room for the fields that you want to have in the first line.
You could also add LINE-SIZE after the REPORT statement to manip-
ulate the width of the list.
Line 27
ENDSELECT.
92
152.book Seite 93 Donnerstag, 11. Oktober 2007 7:18 19
Line 28
SKIP. " 1 blank line
Lines 29 32
Blank lines and comments are inserted into the source code here.
Line 33
SELECT * FROM zmember01.
Line 34 und 35
WRITE: / zmember01-mdob,
zmember01-mname.
In the list, the result looks exactly like the second read loop. The C as in
difference is in the writing. When several statements that follow chain statement;
C as in comma
each other are the same and differ only in the operands, you can
use a chain statement. Line 34 has a colon right after the WRITE
statement without a space. That tells the system that several
WRITE statements now follow each other. The individual statements
are not ended with a period, but are separated by commas. Only
the last statement, as usual, is closed with a period.
The first statement in our example outputs the MDOB field of the
ZMEMBER01 table structure to a new line in column 1. It is closed
with a comma. The second statement writes the MNAME field of
the same table structure to a list with a blank space after the MDOB
field. Because this statement is the last statement of the chain state-
ment, it is closed with a period. Please note that a chain statement
can involve several statements right after each other. The principle
that a new command belongs in a new line also applies to a chain
statement.
Line 36
ENDSELECT.
93
152.book Seite 94 Donnerstag, 11. Oktober 2007 7:18 19
But right now, the outputs that we created ourselves are more
important:
Outputs created The first line is the text, "This is my first list."
The second line is the horizontal line beneath the text.
The next three lines present the unformatted output of the table
structure. One line in the list corresponds to the complete con-
tents of the structure. Because the table contains three data
records, the processing loop is run through three times and three
lines are written to the list.
94
152.book Seite 95 Donnerstag, 11. Oktober 2007 7:18 19
After the blank line, you can see three lines, each with a birth
date and name. Note that the date is output in a different format
than it was in the first block. When we declared the field in the
table, we defined the "Date" field type. That includes a country-
specific presentation of the data format. The internal formatting
of the field is seen in the output of the table structure: YYYYM-
MDD. Because only two fields of the table structure should be
output, the remaining fields do not appear in the list.
The contents of the third block do not differ from those of the
second block. The difference exists only in the source code,
where the WRITE command was given as a chain statement.
Did everything work as planned? If so, use the Back (F3) button to
return to the ABAP editor. In the next step, well work with fields
and calculations.
95
152.book Seite 491 Donnerstag, 11. Oktober 2007 7:18 19
Index
491
152.book Seite 492 Donnerstag, 11. Oktober 2007 7:18 19
Index
B Calculation 97 (cont.)
determining last day of previous
Back-end mode 73, 74 month 205
advantages 74 determining last day of the current
Background processing 337 month 206
Basic arithmetic operations 102, 108 determining past days 206
Basics of ABAP programming 33 determining periods of time 202
BEGIN OF 376 determining remaining days 207
BEGIN OF LINE 348 determining the age of a person 207
BETWEEN 283 determining the beginning of a month
Blank character 109 204
removing 128 determining the keydate 204
Blank lines, generating 87 determining the payment date 203
Block dimension of time periods 208
duplicate 80 remaining days 207
moving 80 sales tax 215
Block name 350 time period containing date change
Block of lines 212
deleting 101 time period in days 209
selecting 100 time period in hours 210
Block/buffer 100 time period in minutes 210
Block-by-block transfer 385 time period in seconds 210
Body line 441, 467 time period in years 209
change 391 time until midnight 211
delete 400, 401, 402 using time fields 209
Branch 266 with currency fields 214
BREAK-POINT 142, 157 with quantity fields 214
Breakpoints 77, 140, 150 Calculation accuracy 112
active 154 CALL FUNCTION 459, 465
delete 154, 155 Cardinality 177
dynamic 142, 155, 157 CASE 270, 272, 296, 465
manage 155 Case distinction 261, 270
save 155 Case sensitivity 300
set 142, 154 Central control component 489
Breakpoints mode 154 Chain statement 87, 93, 117, 375, 376,
Buffering 63, 78, 232 378
BY 396 CHAR, data type 166, 169
Character string 91, 121, 122
C complementing 124
concatenating 128
c, data type 122, 125, 131, 202, 214, condensing 127
240, 241, 282 modifying 121
Calculation 97 replacing 124, 126
determining an invoice amount 216 searching 124
determining an invoice date 203 shifting 124
determining keydates 202 splitting 130
492
152.book Seite 493 Donnerstag, 11. Oktober 2007 7:18 19
Index
493
152.book Seite 494 Donnerstag, 11. Oktober 2007 7:18 19
Index
494
152.book Seite 495 Donnerstag, 11. Oktober 2007 7:18 19
Index
495
152.book Seite 496 Donnerstag, 11. Oktober 2007 7:18 19
Index
Foreign key 171, 176, 235 (cont.) Hat 411, 427, 441
relationship 193 Header line 371, 372, 379, 380, 382,
table 175 390, 441
testing 177 Help 77
FORM 436, 437, 441, 444, 446 Hierarchy levels 123
Formatting lists 86 HIGH 324
Forward navigation 51, 85, 183, 185, Human resources 36
187, 432, 435, 466 Hyphen 85
Frames 347
FREE 402, 403, 411 I
Free text 347
FROM 400 i, data type 104, 111, 209
Front-end mode 73, 74 Identical names 388
Function builder 40, 450, 452 IF 262, 267, 269, 278, 284
test environment 456 IF structure 270, 323, 326, 465
Function code field 39 nesting 269
Function groups 450, 451 IMPORT 467
Function library 450 IMPORT FROM MEMORY 467
Function module 40, 77, 235, 431, Import parameter 459
449 IN PROGRAM 445
call 459, 462 INCLUDE 385, 389, 432
documentation 460 Include
exceptions 455 compress 187
export 454 expand 187
flow type 452 report 432
import 454 INCLUDE STRUCTURE 384
name 459 Include structure 183
properties 452 activating 186
search 451 create 185
searching 450 insert 185
testing 450, 457 maintaining 184
value transfer 454 position 184
preconditions 183
G Inconsistencies check 177
INDEX 392, 399
Generic data type 122, 123 Index 373, 391, 393, 395
Generic key 176 Index tables 374, 392, 395, 399
GET PARAMETER 466 Industry minutes 225
GET PARAMETER ID 466 Information systems 36
Global SAP memory 466 INITIAL SIZE 378
Global variables 437 Initial value 106, 240
INITIALIZATION 313, 315, 363
H Initialize header line 401
Inline documentation 81
Hash algorithm 374, 395 Input blocks 347
Hashed table 374, 395
496
152.book Seite 497 Donnerstag, 11. Oktober 2007 7:18 19
Index
497
152.book Seite 498 Donnerstag, 11. Oktober 2007 7:18 19
Index
498
152.book Seite 499 Donnerstag, 11. Oktober 2007 7:18 19
Index
499
152.book Seite 500 Donnerstag, 11. Oktober 2007 7:18 19
Index
500
152.book Seite 501 Donnerstag, 11. Oktober 2007 7:18 19
Index
Shifting field contents 126 String operation 124, 132, 209, 222,
Short description 52 223
Short documentation 89 String, data type 488
SIGN 324 Structure 85, 182, 371
Single quotation marks 90 components 182
Single values 325 end 262, 313
Size category 63 include 385
SKIP 87, 292 maintenance screen 186
Slash 86 start 262
SORT 396, 415 SUBMIT 447, 449, 466
BY 396 AND RETURN 449
Sort sequence 397 VIA SELECTION-SCREEN 447
SORTED TABLE 379 WITH 447
Sorted table 374, 393, 395 Subprogram 430, 434, 438
Sorting call 435, 444
binary 397 external 444
criteria 397 fields 438
language-specific 397 internal 444
Source code Subroutine 435
editing 78, 88 Substring 131
modularization 430 Substructures 183
switching 75 SUBTRACT 110
writing 88 Subtraction 108
Source field 111, 129 Suffix 457
SPACE 136 SY-DATUM 200
SPLIT 130, 138 SY-INDEX 276, 280
AT 130 Syntax 374
Standard key 373 check 76, 434
Standard selection screen 312 error 76
Standard table 181, 188, 373, 378, System
393 client 50
enhancing 180 date 200
STANDARD TABLE OF 378 table 147, 344
Start position 131 SY-SUBRC 147, 238, 239, 271, 456
START-OF-SELECTION 32, 314, 365, SY-TABIX 395
435
Statement block 267, 270, 348 T
terminating 277
Statement blocks 262 t, data type 200
Statements 81 T100 343, 364
Static name assignment 242, 243 Tab, fields 182
Step into 144, 412, 425 TABLE 400
Stop sign 411 Table 77, 377
Stopwatch 276 activating 63
String 199 area 85, 89
body 371, 372, 380, 390, 391
501
152.book Seite 502 Donnerstag, 11. Oktober 2007 7:18 19
Index
502
152.book Seite 503 Donnerstag, 11. Oktober 2007 7:18 19
Index
U W
ULINE 87 WAERS, domain 172, 174
UNDER 119 Watchpoints 140, 150
Underline 92 create 151
Unicode check 72 mode 150
Unit of currency 255 save 155
UNIT, data type 169, 215 WHEN OTHERS 271
UPDATE 237, 241, 242 WHERE 245, 273, 396, 410, 424
Upgrade 180 Where-used list 76, 194, 195
Upper and lower case 317, 446 WHILE 275
Uppercase and lowercase letters 123 WHILE loop 275
Uppercase and lowercase spelling 391 Wildcard 451
User master record 233 WITH 347, 447
USING 438, 444 WITH FRAME 351
WITH HEADER LINE 379, 423
V WITH KEY 394, 399
WITH UNIQUE KEY 379
Validation 168, 179 Work area 240, 242, 371, 372, 376,
VALUE 106, 123, 200, 411 377, 382, 391, 398, 400, 423
VALUE CHECK 320 define 379
Value range 56 defining 240
Value table 172, 174, 175 initialize 248, 402
Values Work process 235
negative 106 Working memory areas 449, 465
transfer 447, 448 WRITE 82, 86, 87, 118
valid 171 UNDER 119
Variable 103, 467
Variant 72 X
creating 334
editing 337 X buffer 78
properties 337
protecting 337, 339 Y
start using 72
Variants 334 Y buffer 78
VIA SELECTION-SCREEN 447, 448
Z
Z buffer 78
ZIP codes 106
503