BC170_2.04.1
Data Declarations
BC170_2.04.2
Objectives
• The participants will be able to:
– Define the Data Types used in ABAP Programming
– Declare Variables within an ABAP Program
– Assign Default Values to variables within an ABAP
Program
– Create user defined Data Types
– Assign values to fields within an ABAP Program
– Use Arithmetic Expressions in an ABAP Program
– Create Report Parameters in an ABAP Program
– Use Field Symbols in an ABAP Program
BC170_2.04.3
C: Character Text
I: Integer
P: Packed #
F: Floating Point #
N: Numeric Text
D: Date
T: Time
X: Hexadecimal #
ABAP Elementary Data Types
BC170_2.04.4
DATA
: PLAYER(35) TYPE C,
NICKNAME(35),
POINTS
TYPE I,
GAMES
TYPE I
VALUE ‘10’,
AVERAGE(5) TYPE P,
STARTER,
ACQUIRED
TYPE D.
Declaring Variables
BC170_2.04.5
C: (blank)
I: zero
P: zero
F: zeroes
N: zeroes
D: 00000000
T: 000000
X: 00
The CLEAR statement sets a field back to its initial
value, not its default value.
Initial Values
BC170_2.04.6
DATA: PLAYER(35) TYPE C,
NICKNAME(35)
VALUE ‘Dr. J’
,
POINTS
TYPE I
VALUE ‘255’
,
GAMES
TYPE I
VALUE 10
,
AVERAGE(5) TYPE P
VALUE ‘25.5’
,
STARTER
VALUE ‘Yes’
,
ACQUIRED
TYPE D
VALUE
‘19760610’
.
Assigning Default Values
BC170_2.04.7
DATA: PLAYER(35) TYPE C VALUE ‘Julius
Erving’,
NICKNAME(35),
ACQUIRED
TYPE D.
DATA: PLAYER(35) TYPE C VALUE ‘Julius
Erving’,
NICKNAME
LIKE PLAYER
,
ACQUIRED
LIKE SY-DATUM
.
Use the LIKE addition to
declare fields with the same
format (i.e., data type and
length)
Declaring Like Fields
BC170_2.04.8
CONSTANTS
:C_TEAM1(20)
TYPE C VALUE ‘76ers’,
C_ TEAM2
LIKE TEAM1 VALUE
‘Celtics’,
C_ TOT_GAMES TYPE I VALUE 82.
If you attempt to change the value of a constant,
a syntax error will occur.
The VALUE addition
is required.
Declaring Constants
BC170_2.04.9
TYPES: NAME(35)
TYPE C,
TEAMS(20) TYPE C.
DATA: PLAYER
TYPE NAME
VALUE ‘Troy
Aikman’,
NICKNAME LIKE PLAYER.
CONSTANTS:C_TEAM1
TYPE TEAMS
VALUE
‘Cowboys’,
C_TEAM2 LIKE TEAM1 VALUE
‘Packers’.
A user-defined data type created with the TYPES
statement is used to specify a field’s data type in the
TYPE addition of the DATA or CONSTANTS statements.
User-Defined Data Types
BC170_2.04.10
Standard Length
Standard Length
C
C
=
=
defined length
defined length
I
I
=
=
12
12
P
P
=
=
(2 * defined length) +
(2 * defined length) +
1
1
F
F
=
=
22
22
N
N
=
=
defined length
defined length
D
D
=
=
10
10
T
T
=
=
8
8
X
X
=
=
(2 * defined length)
(2 * defined length)
Justification
Justification
C
C
=
=
left-justified
left-justified
I
I
=
=
right-justified
right-justified
P
P
=
=
right-justified
right-justified
F
F
=
=
right-justified
right-justified
N
N
=
=
left-justified
left-justified
D
D
=
=
left-justified
left-justified
T
T
=
=
left-justified
left-justified
X
X
=
=
left-justified
left-justified
Output Characteristic for Data
Types
BC170_2.04.11
DATA: FLOAT
TYPE F
VALUE
‘98.7654321E2’,
PACK TYPE P
VALUE 12,
INT
TYPE I
VALUE 32.
WRITE:
/ FLOAT,
/ FLOAT EXPONENT 1 DECIMALS
3,
/ FLOAT EXPONENT 0 DECIMALS
2,
/ PACK,
/ PACK DECIMALS 1,
/ INT DECIMALS 2.
9.876543210000000E+03
987.654E+01
9876.54
12
12.0
32.00
These fields are not
aligned because of the
different standard
output lengths of the
numeric type fields.
Output for Numeric Fields
BC170_2.04.12
DATA: TITLE(25),
SALARY TYPE P,
CNVSALARY LIKE
SALARY.
MOVE ‘President’ TO TITLE.
COMPUTE SALARY = 5000000.
CNVSALARY = SALARY * 3.
ADD 1000 TO SALARY.
MOVE <value> TO <field>.
[COMPUTE] <field> = <value or expression>.
ADD <value> TO <field>.
SUBTRACT <value> FROM <field>.
MULTIPLY <field> BY <value>.
DIVIDE <field> BY <value>.
Assigning Values to Fields
BC170_2.04.13
COUNTER = COUNTER + 1.
SALARY = BASE * BONUS_PERCENT.
LENGTH = STRLEN( NAME ).
ANSWER = ( 10 + SQRT( NUM1 ) ) / ( NUM2 -
10 ).
Spacing is very important when using arithmetic
expressions!!!
Functions
SQRT, EXP, LOG,
SIN, COS, STRLEN, . . .
Operators
+ - * / **
DIV and MOD
Arithmetic Expressions
BC170_2.04.14
DATA: CUSTOMER(10) TYPE C,
INV_DATE LIKE SY-DATUM.
CUSTOMER = ‘1234567890’.
INV_DATE = ‘19960626’.
WRITE: / CUSTOMER
+8(2)
, ‘xx’,
INV_DATE
(4)
.
* Start of Month
INV_DATE
+6(2)
= ‘01’.
CUSTOMER
+6
= ‘ABCD’.
WRITE: / CUSTOMER, ‘------’, INV_DATE.
90 xx 1996
123456ABCD ----- 06/01/1996
Use an offset and
length to display or
change portions of a
field.
Sub-Fields in ABAP
BC170_2.04.15
DATA: DAYSOLD TYPE P,
DOB TYPE D,
TODAY LIKE SY-DATUM.
DOB = ‘19621230’.
TODAY
= SY-DATUM.
DAYSOLD = TODAY - DOB.
WRITE: ‘You are’, DAYSOLD, ‘days old.’.
You are 12410 days old.
Date fields store
values as
YYYYMMDD.
Date Calculations in ABAP
BC170_2.04.16
PARAMETERS
:
P_NUM TYPE I,
P_NAME(20) DEFAULT
‘Aaron’.
ADD 10 TO P_NUM.
WRITE: / P_NUM,
‘----’,
P_NAME.
32 ---- Aaron
Selection Screen
Declaring Fields with PARAMETERS
BC170_2.04.17
Selection Texts
These selection
texts will be used
on the selection
screen instead of
the parameter
names.
BC170_2.04.18
DATA: NUM TYPE I VALUE 12.
FIELD-SYMBOLS
:
<F1>,
<F2> TYPE I,
<F3> LIKE NUM.
ASSIGN
:
NUM TO <F1>,
NUM TO <F2>,
NUM TO <F3>.
WRITE: /
‘Line 1:’, NUM, <F1>,
<F2>, <F3>.
<F1> = 32.
WRITE: /
‘Line 2:’, NUM, <F1>,
<F2>, <F3>.
A field symbol is a
“pointer” that
assumes a field’s
address, not a
field’s value.
Line 1: 12
12
12
12
Line 2: 32
32
32
32
Working with Field Symbols in
ABAP
BC170_2.04.19
DATA: TEXT_LINE(30) VALUE ‘ABCDEFGHIJK’.
FIELD-SYMBOLS <FSYMBOL>.
ASSIGN TEXT_LINE+2(5) TO <FSYMBOL>.
* this assigns 5 characters of text_line starting at position 2
* (3
rd
letter, because count starts at 0) to the field string .
WRITE: / ‘text line =‘, TEXT_LINE.
ULINE.
WRITE: / ‘field symbol=‘, <FSYMBOL>.
ULINE.
<FSYMBOL> = ‘1234567890’.
WRITE: / ‘field symbol =‘, <FSYMBOL>.
ULINE.
WRITE: / ‘text line =‘, TEXT_LINE.
Dynamic Assignment of Partial
Strings
BC170_2.04.20
PARAMETERS P_FIELD(8) DEFAULT ‘SY-UZEIT’.
FIELD-SYMBOLS <FSYMBOL>.
ASSIGN (P_FIELD) TO <FSYMBOL>
.
IF SY-SUBRC = 0.
WRITE: / ‘The contents of field’, P_FIELD,
<FSYMBOL>.
ELSE.
WRITE: / ‘Failure assigning field’, P_FIELD, ‘to
field symbol’.
ENDIF.
The contents of field SY-UZEIT 12:32:06
FIELD
SY-UZEIT
Selection Screen
List
Dynamic Field Assignment
BC170_2.04.21
Summary
• The participants should be able to:
– Define the Data Types used in ABAP Programming
– Declare Variables within an ABAP Program
– Assign Default Values to variables within an ABAP
Program
– Create user defined Data Types
– Assign values to fields within an ABAP Program
– Use Arithmetic Expressions in an ABAP Program
– Create Report Parameters in an ABAP Program
– Use Field Symbols in an ABAP Program
BC170_2.04.22