IBM Global Business Services
ABAP Data Declarations
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Objectives
The participants will be able to :
List ABAP elementary data types
Declaring variables
List user-defined data types
Use arithmetic expressions
List field-symbols
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
ABAP Elementary Data Types
C: Character Text
N: Numeric Text
I: Integer
D: Date
P: Packed #
T: Time
F: Floating Point #
X: Hexadecimal #
STRING
XSTRING
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
ABAP Elementary Data Types (Contd.)
C: Character Text
N: Numeric Text
I: Integer
D: Date
P: Packed #
T: Time
F: Floating Point #
X: Hexadecimal #
STRING
XSTRING
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Declaring Variables
DATA:
ABAP Data Declarations |
PLAYER(35) TYPE C,
NICKNAME(35),
POINTS
TYPE I,
GAMES
TYPE I
AVERAGE(5) TYPE P,
STARTER,
ACQUIRED TYPE D.
VALUE 10,
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Initial Values
C: (blank)
N: zeroes
I: zero
D: 00000000
P: zero
T: 000000
F: zeroes
X: 00
The CLEAR statement sets a field back to its
initial value, not its default value.
6
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Assigning Default Values
DATA:
PLAYER(35) TYPE C,
NICKNAME(35)
POINTS
TYPE I
GAMES
TYPE I
AVERAGE(5) TYPE P
STARTER
ACQUIRED TYPE D
ABAP Data Declarations |
VALUE Dr. J,
VALUE 255,
VALUE 10,
VALUE 25.5,
VALUE Yes,
VALUE 19760610.
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Declaring Like Fields
DATA:
PLAYER(35) TYPE C VALUE Julius Erving,
NICKNAME(35),
ACQUIRED TYPE D.
Use the LIKE addition to declare fields with
the same format (i.e., data type and length)
DATA:
PLAYER(35)
NICKNAME
ACQUIRED
ABAP Data Declarations |
TYPE C VALUE Julius Erving,
LIKE PLAYER,
LIKE SY-DATUM.
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Declaring Constants
The VALUE addition is required.
CONSTANTS: TEAM1(20)
TYPE C
VALUE 76ers,
TEAM2
TYPE TEAM1
VALUE Celtics,
TOT_GAMES TYPE I
VALUE 82.
If you attempt to change the value of a
constant, a syntax error will occur.
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
User-Defined Data Types
TYPES:
NAME(35)
TEAMS(20)
DATA:
PLAYER
NICKNAME
CONSTANTS: TEAM1
TEAM2
TYPE C,
TYPE C.
TYPE NAME VALUE Troy Aikman,
TYPE PLAYER.
TYPE TEAMS VALUE Cowboys,
TYPE TEAM1
VALUE Packers.
A user-defined data type created with the TYPES statement
is used to specify a fields data type in the TYPE addition
of the DATA or CONSTANTS statements.
10
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Output Characteristic for Data Types
Standard Length
11
Justification
C = defined length
C = left-justified
I = 12
I = right-justified
P = (2 * defined length) + 1
P = right-justified
F = 22
F = right-justified
N = defined length
N = left-justified
D = 10
D = left-justified
T =8
T = left-justified
X = (2 * defined length)
X = left-justified
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Output for Numeric Fields
DATA:
FLOAT
PACK
INT
TYPE F
TYPE P
TYPE I
VALUE 98.7654321E2,
VALUE 12,
VALUE 32.
WRITE: / FLOAT,
/ FLOAT EXPONENT 1 DECIMALS 3,
/ FLOAT EXPONENT 0 DECIMALS 2,
/ PACK,
/ PACK DECIMALS 1,
/ INT DECIMALS 2.
These fields are not aligned
because of the different
standard output lengths of
the numeric type fields.
12
ABAP Data Declarations |
9.876543210000000E+03
987.654E+01
9876.54
12
12.0
32.00
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Demonstration
Declaring variables and constants.
13
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Practice
Declaring variables and constants.
14
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Assigning Values to Fields
MOVE <value> TO <field>.
[COMPUTE] <field> = <value or expression>.
ADD
<value> TO
SUBTRACT <value> FROM
MULTIPLY <field> BY
DIVIDE
<field> BY
DATA:
<field>.
<field>.
<value>.
<value>.
TITLE(25),
SALARY TYPE P,
CNVSALARY TYPE SALARY,
MOVE President TO TITLE.
COMPUTE SALARY = 5000000.
CNVSALARY = SALARY * 3.
ADD 1000 TO SALARY.
15
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Arithmetic Expressions
Operators
+ - * / **
DIV and MOD
Functions
SQRT, EXP, LOG,
SIN, COS, STRLEN, . . .
COUNTER = COUNTER + 1.
SALARY = BASE * BONUS_PERCENT.
LENGTH = STRLEN( NAME ).
ANSWER = ( 10 + SQRT( NUM1 ) ) / ( NUM2 - 10 ).
Spacing is very important when using arithmetic expressions!!!
16
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Sub-Fields in ABAP
DATA: CUSTOMER(10) TYPE C,
INV_DATE TYPE SYDATUM.
CUSTOMER = 1234567890.
INV_DATE = 19960626.
Use an offset and length to
display or change portions of a
field.
WRITE: / CUSTOMER+8(2), xx,
INV_DATE(4).
* Start of Month
INV_DATE+6(2) = 01.
CUSTOMER+6(4) = ABCD.
WRITE: / CUSTOMER, ------, INV_DATE.
17
ABAP Data Declarations |
90 xx 1996
123456ABCD ----- 06/01/1996
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Date Calculations in ABAP
DATA: DAYSOLD TYPE P,
DOB TYPE D,
TODAY TYPE SYDATUM.
DOB
TODAY
Date fields store values as
YYYYMMDD.
= 19621230.
= SY-DATUM.
DAYSOLD = TODAY - DOB.
WRITE: You are, DAYSOLD, days old.
You are 12410 days old.
18
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Demonstration
Assigning values to the fields and doing calculations.
19
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Practice
Assigning values to the fields and doing calculations.
20
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Declaring Fields with PARAMETERS
PARAMETERS:
NUM TYPE I,
NAME(20) DEFAULT AARON.
ADD 10 TO NUM.
WRITE: / NUM,
----,
NAME.
Selection Screen
21
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Selection Texts
These selection texts
will be used on the
selection screen
instead of the
parameter names.
Selection Screen With the parameter description
22
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Demonstration
Creation of a selection screen and displaying the value in the report.
23
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Practice
Creation of a selection screen and displaying the value in the report.
24
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Working with Field Symbols in ABAP
DATA: NUM TYPE I VALUE 12.
FIELD-SYMBOLS:
<F1>,
<F2> TYPE I,
<F3> TYPE NUM.
A field symbol is a
pointer that assumes a
fields address, not a
fields value.
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>.
Line 1: 12
Line 2: 32
25
ABAP Data Declarations |
12
32
12
32
Dec-2008
12
32
IBM Corporation 2013
IBM Global Business Services
Demonstration
Working with Field Symbols.
26
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Practice
Working with Field Symbols.
27
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Dynamic Assignment of Partial Strings
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 3 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.
28
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Dynamic Field Assignment
PARAMETERS FIELD(8) DEFAULT SY-UZEIT.
FIELD-SYMBOLS <FSYMBOL>.
ASSIGN (FIELD) TO <FSYMBOL>.
IF SY-SUBRC = 0.
WRITE: / The contents of field, FIELD, <FSYMBOL>.
ELSE.
WRITE: / Failure assigning field, FIELD, to field symbol.
ENDIF.
FIELD
SY-UZEIT
Selection Screen
List
The contents of field SY-UZEIT 12:32:06
29
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Demonstration
Dynamic assignment with the Field Symbol.
30
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Practice
Dynamic assignment with the Field Symbol.
31
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Summary
DATA statement is used to declare a variable (or field) in an ABAP program
"LIKE" and "TYPE" statements are used to declare fields with reference to other
variables or fields
CONSTANTS statement is used to declare a constant
Text elements can be used to maintain a programs title and column headings,
selection texts, and text symbols. These text elements can be maintained in
multiple languages
A field symbol does not reserve space for the field, but points to the field
ASSIGN statement associates a field to a field symbol at runtime
The system carries out automatic type conversion if variables are not of the same
type
ABAP allows to display and change portions of a field by specifying an offset and
length
32
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013
IBM Global Business Services
Questions
What are the different types of data types?
What is a field symbol ? What is the advantage of using it in the program?
How to create a selection screen with the selection screen text?
33
ABAP Data Declarations |
Dec-2008
IBM Corporation 2013