MINS298c
ABAP/4 Programming
Introduction to Data Types Chapter 4
Fall 1998
CSU Chico
SAP AG
Overview
Introduction Declaration
Data Types
elementary complex
Working with Data Types
CSU Chico
SAP AG
Data Objects
Data Object
Fixed
Variable
CSU Chico
SAP AG
Data Objects
Data Object
Fixed
Variable
Literals
Constants
CSU Chico
SAP AG
Fixed Data Objects
(Constants and Literals)
CONSTANTS: company_name(3) type c value SAP.
Literals are inside quotes
WRITE: Happiness is SAP.
CSU Chico
SAP AG
Hierarchy
Variable Data Objects
Table Record Field
Table is made up of Records(s) is made up of have a structure Field(s) is made up of characters have a type
CSU Chico
SAP AG
Fields are Variables
may be declared at any point within the program may use up to 30 characters in name
may use hyphen, but prefer dash for readability
may not use an ABAP reserved word follow rules of scope definition
CSU Chico
SAP AG
Normal Scope
Line 1 2 Program DATA A, B, C Write A Write F Form DATA X, Y, Z Write A Write F Form DATA D, E, F Write A Write F
3 4
According to normal rules of scope, which Write statements are legal and which are not?
5 6
CSU Chico
SAP AG
Data Types
Pre-defined (p,i,f,c,n,d,t,x)
User defined
Elementary
Structured
Structured type
Table type
CSU Chico
SAP AG
Data Types
Pre-defined (p,i,f,c,n,d,t,x)
User defined
Elementary
Structured
Structured type
Table type
CSU Chico
SAP AG
Pre-defined Types
(with default length and value)
Character
Default 1 1 4 8 8 8 6 1 space 0 0 0 0.0 000000 00
Justify left left right right right left left
c n Numbers
i p f
Date (d) Time (t) Hexadecimal (x)
00000000 left
CSU Chico
SAP AG
Data Types
Pre-defined (p,i,f,c,n,d,t,x)
User defined
Elementary
Structured
Structured type
Table type
CSU Chico
SAP AG
Three Ways to Declare Types
pre-defined elementary types non-elementary types
existing fields
CSU Chico
SAP AG
Types and Data Statement
DATA var[(length)] [TYPE type] [DECIMALS num] [VALUE init]
TYPES BEGIN OF rec-name [fieldname]
END OF rec-name
DATA var LIKE table-field [VALUE init]
CSU Chico
SAP AG
Similar Declarations
Data: customer_name(25) type c, vendor_name(25) type c.
TYPES name(25) type c. DATA: customer_name type name,
vendor_name type name.
DATA: customer_name(25) type c, vendor_name LIKE customer_name.
CSU Chico
SAP AG
What are the defaults here?
What are the default type and length of flag and of my_number?
DATA: flag, my_number.
What is contained in c_alpha and n_alpha?
DATA: c_alpha(3) type c value 5,
n_alpha(3) type n value 5.
CSU Chico
SAP AG
Character: C vs N
C = justifies left and has trailing blanks N = justifies right and has leading zeroes
What happens with:
DATA: var-1(4) type c value 1234, var-2(4) type n value 1234. WRITE:/ var-1, var-2.
CSU Chico
SAP AG
What are the defaults here?
What is contained in c_alpha and n_alpha?
DATA: c_alpha(3) type c value 5,
n_alpha(3) type n value 5.
CSU Chico
SAP AG
Numbers
i - cannot have explicit length
p - 15 digits, can explicitly define decimal places
DATA Dollars TYPE p DECIMALS 2.
f - handles exponential, subject to rounding errors sometimes (1.0/3.0)*3.0 is not 1.0
CSU Chico
SAP AG
Dates and Times
Date = d stored as YYYYMMDD with initial value of 00000000
Time = t stored as HHMMSS with 000000
Why store in this format?
CSU Chico
SAP AG
Which is easier to sort?
01/01/58 01/20/58 19580101 19580120
01/01/60
12/01/97 01/20/00
19600101
19971201 20000120
CSU Chico
SAP AG
Computations on Dates
DATA my_date LIKE sy-datum. MOVE 19580420 to my_date.
my_date = my_date - 1.
Write:\ my_date.
Displays 19580419
CSU Chico
SAP AG
Offset and Length Format
One may address sub-parts of elementary data objects by specifying the offset and length !!!
MOVE sy-datum+6(2) to hold_day
1 9
sy-datum(0)
8 0
sy-datum(6)
CSU Chico
SAP AG
Parameter Statement
Parameter statement creates a set of variable fields which are presented to the user for input on the selection screen. PARAMETERS var TYPE type [DEFAULT value]
CSU Chico
SAP AG
Data Types
Pre-defined (p,i,f,c,n,d,t,x)
User defined
Elementary
Structured
Structured type
Table type
CSU Chico
SAP AG
Records
records or structures are called field strings in ABAP use BEGIN OF and END OF
nesting is allowed
use TYPES command
CSU Chico
SAP AG
Field String Types
TYPES : BEGIN OF ADDRESS, street(20) type c, city(20) type c, state(10) type c, zip type I, END OF ADDRESS.
How large (in characters) is the record ADDRESS?
CSU Chico
SAP AG
Using Field String Types
TYPES : BEGIN OF ADDRESS, street(20) type c, city(20) type c,
state(10) type c,
zip type I, END OF ADDRESS.
DATA: Old_Address TYPE Address,
New_Address TYPE Address.
MOVE Old_Address to New_Address.
CSU Chico
SAP AG
Using Field String Types
TYPES : BEGIN OF ADDRESS, street(20) type c, city(20) type c,
Old_Address Street City State Zip
state(10) type c,
zip type I, END OF ADDRESS. DATA: Old_Address TYPE Address, New_Address TYPE Address.
Old_Address-Zip Old_Address-City
CSU Chico
SAP AG
Data Types
Pre-defined (p,i,f,c,n,d,t,x)
User defined
Elementary
Structured
Structured type
Table type
CSU Chico
SAP AG
Creating Tables
Use the occurs statement not necessary to identify the amount, may use zero (0).
Format
TYPES tablename TYPE type OCCURS 0. Example TYPES Address_Table TYPE ADDRESS OCCURS 0.
Really creates the structure which will be allocated and maintained dynamically.
CSU Chico
SAP AG
Declarative Statements
DATA TYPE
CONSTANTS
PARAMETERS
CSU Chico
SAP AG
Assignments
Create program(s) to
demonstrate the justification difference between the n and c types determine whether or not our system has a rounding error in the fixed point arithmetic
find the difference between the current date and your birthday
prove that one day before 01/01/98 is 12/31/97 using the ABAP date types
use the parameter statement to interactively ask for two dates and display the difference between them.
CSU Chico
SAP AG