TYPES
Variants
1. TYPES typ.
2. TYPES typ(len).
3. TYPES: BEGIN OF rectyp,
...
END OF rectyp.
Effect
The TYPES statement introduces user-defined
data types . As with standard data types, you can use them when
creating data objects and when assigning types to formal parameters and
field symbols. User-defined data types are an essential component of
the ABAP/4 type concept .
Variant 1
TYPES f.
Additions
1. ... TYPE typ1
2. ... LIKE f
3. ... TYPE typ1 OCCURS n
4. ... LIKE f OCCURS n
5. ... TYPE LINE OF itabtyp
6. ... LIKE LINE OF itab
7. ... DECIMALS n
Effect
Creates a new type. If the TYPE addition is not
used, the new type points to the standard type C .
The type name typ can be up to 30 characters long. Apart from
the special characters '(', ')', '+', '.', ',', ':', '-', '<' and '>',
you can use any characters. Numbers are allowed, but the name cannot
consist of numbers alone.
Recommendations for type names:
Always use a letter as the first character.
Use the underscore as the link in multiple word names (e.g.
NEW_PRODUCT ).
Addition 1
... TYPE typ1
Effect
Defines the new type with the type typ1 .
typ1 can be one of the predefined types specified below or a
type you define yourself with TYPES .
The length (SL) of the type typ is the same as the type
typ1 .
Type Description Std len. Initial value
C Text (character) 1 Blank
N Numeric text 1 '00...0'
D Date (YYYYMMDD) 8 '00000000'
T Time (HHMMSS) 6 '000000'
X Hexadecimal 1 X'00'
I Whole number (integer) 4 0
P Packed number 8 0
F Floating point number 8 '0.0'
Example
-
TYPES NUMBER TYPE I.
This defines the type NUMBER NUMBER with the type I . It
can then be used in the program.
Notes
The data type I is the whole number type for the
hardware you are using. Its value range is -2**31 to 2**31-1
(-2.147.483.648 to 2.147.483.647).
While type P is used for money amount fields, you should use
type I for number fields, index fields, position specifications,
etc.
Apart from zero, type F allows you to display positive and
negative numbers in the range from 1E-307 to 1E+307 with 15
decimal places. (The ABAP/4 processor uses the floating point
operations of the relevant hardware and does not attempt to standardize
them.) Floating point literals must be enclosed in quotation marks. The
standard output length is 22.
Input in type F fields can be formatted differently:
Decimal number with or without sign, with or without decimal point.
In the form E, where the mantissa is a decimal
number and the exponent can be specified with or without a sign.
(Examples of floating point literals: '1', '-12.34567', '-765E-04',
'1234E5', '+12E+34', '+12.3E-4', '1E160').
Floating point arithmetic is fast on our hardware platforms. It is
ideal when you require a large value range and can take rounding errors
into account when making calculations. Such rounding errors can occur
when converting from external (decimal) format to internal format (base
2 or 16) or vice-versa (see ABAP/4 number
types ).
Addition 2
... LIKE f
Effect
Defines the type typ with the type of the field
f . f may be a database field or an already defined
internal field.
Example
-
TYPES TABLE_INDEX_TYP LIKE SY-TABIX.
The type TABLE_INDEX_TYP now points to the type of the field
SY-TABIX (index for internal tables).
Note
This addition is useful in a number of cases, since any
field type changes are automatically known to the program. Also, any
unnecessary and unwanted conversions are not performed.
Addition 3
... TYPE typ1 OCCURS n
Effect
Defines the type of an internal table without a header
line. An internal table without a header line consists of any number of
table lines that have the same structure as that specified by
TYPE .
You fill and process an internal table with statements such as
APPEND ,
READ TABLE ,
LOOP and
SORT .
The OCCURS parameter n specifies how many table lines of
storage is required. This storage reservation process does not happen
until the first line is inserted in the table. The value n of
the OCCURS specification has no effect on type checking, i.e.
data objects which have types with different OCCURS
specifications are type-compatible.
Example
TYPES: TAB_TYPE TYPE I OCCURS 20.
DATA: TAB TYPE TAB_TYPE,
TAB_WA TYPE I.
TAB_WA = 1.
APPEND TAB_WA TO TAB.
TAB_WA = 2.
APPEND TAB_WA TO TAB.
The internal table TAB now consists of two table entries.
Addition 4
... LIKE f OCCURS n
Effect
Defines the type of an internal table without a header
line. This table consists of any number of table lines which have the
structure specified by the data object f . Processing is the same
as for addition 3.
Example
-
DATA: BEGIN OF PERSON,
NAME(20),
AGE TYPE I,
END OF PERSON.
TYPES TYPE_PERSONS LIKE PERSON OCCURS 20.
DATA PERSONS TYPE TYPE_PERSONS.
PERSON-NAME = 'Michael'.
PERSON-AGE = 25.
APPEND PERSON TO PERSONS.
PERSON-NAME = 'Gabriela'.
PERSON-AGE = 22.
APPEND PERSON TO PERSONS.
The internal table PERSONS now consists of two table entries.
Addition 5
... TYPE LINE OF itabtyp
Effect
The specified type itabtyp must be the type of an
internal table with or without a header line. The statement creates a
type corresponding to the line type of the specified table type.
Example
-
TYPES TAB_TYP TYPE I OCCURS 10.
TYPES MY_TYPE TYPE LINE OF TAB_TYP.
The type MY_TYPE now has the same attributes as a line of the
table type TAB_TYP and is thus type I .
Addition 6
... LIKE LINE OF itab
Effect
The data object itab must be an internal table
with or without a header line. The statement defines a type which
corresponds to the line type of the specified table.
Example
-
DATA TAB TYPE I OCCURS 10.
TYPES MY_TYPE LIKE LINE OF TAB.
The type MY_TYPE now has the same attributes as the line type
of the table TAB and thus has the type I .
Addition 7
... DECIMALS n
Effect
This addition only makes sense with the field type
P . When making calculations and outputting data, a field of this
type has n decimal places. n must be a value between 0
and 14.
Normally, the attribute for fixed point arithmetic is set with newly
created programms. If you switch this attribute off, the
DECIMALS -specification is taken into account on output, but not
when making calculations. In this case, the programmer must take care
that the decimal point is in the right place by multiplying or dividing
(COMPUTE ) by the appropriate power of
ten.
When making calculations, you should always have fixed point arithmetic
switched on. Then, even intermediate results (division!) are calculated
with the greatest possible accuracy (31 decimal places).
To decide whether the fixed point type P or the floating point
type F is more suitable, see also
"ABAP/4 number types ".
Variant 2
TYPES typ(len).
Additions
Similar to variant 1
Effect
Creates the type typ with the length len .
This variant should only be used with the types C , N ,
P and X . Other types can only be created in the standard
length (see table under effect of variant 1).
The permitted lengths depend on the type being pointed to:
Type Permitted lengths
C 1 - 65535
N 1 - 65535
P 1 - 16
X 1 - 65535
Note
For each byte, you can display one character, two decimal
digits or two hexadecimal digits. With P fields, one place is
reserved for the leading sign, so that a P field of the length 3
can contain 5 digits, while an X field of the length 3 can
contain 6 digits. Both have an output length of 6.
Variant 3
TYPES: BEGIN OF rectyp,
...
END OF rectyp.
Effect
Defines the field string type rectyp by grouping
together all fields of the type rectyp defined between
" BEGIN OF rectyp " and " END OF rectyp ". Each name is
prefixed by " rectyp- ".
Example
-
TYPES: BEGIN OF PERSON,
NAME(20) TYPE C,
AGE TYPE I,
END OF PERSON.
Index
© SAP AG 1996