ARTICLE
typing Addition - generic_type
Short Reference
Syntax
... { TYPE generic_type }
| { LIKE generic_fs |generic_para } ...
Effect
To generically type a formal parameter or a field symbol,
specify any generic ABAP type
generic_type (except object ) after TYPE .
specify a field symbol visible at this position (<(><<)>generic_fs>
) or a formal parameter ( generic_para ) with generic typing,
after LIKE . The typing defined is applied when the field
symbol/parameter is declared. In method parameters, all generic typings
are possible. No complete generic typings are possible in parameters of
subroutines and field symbols.
When an actual parameter or memory area is assigned to a generically
typed formal parameter or field symbol, the system
checks whether the specified data type is a
subset of the generic type.
The formal parameter or field symbol can be used as operands anywhere
that is not excluded by this typing. However, operands that expect
particular internal tables are an exception to this rule. Here, only
formal parameters or field symbols with the requisite internal table
type are allowed.
The type attributes specified by the typing are used in static access to
a generically typed formal parameter or field symbol. In dynamic access,
the attributes of the actual parameter or memory area assigned apply.
If an actual parameter is not specified for a generically typed optional
formal parameter of a method or a function module when calling the
procedure and no replacement parameter is defined in the procedure, the
formal parameter is typed with a standard
type in accordance with the following rules:
any and data are converted to the type c with
length 4.
c , clike , csequence , and simple are
converted to the type c with length 1.
n is converted to the type n with length 1.
numeric and p are converted to the type p with
length 8 without decimal places.
x and xsequence are converted to the type x with
length 1.
ANY TABLE and INDEX TABLE are converted to STANDARD
TABLE .
For ANY TABLE , INDEX TABLE , [STANDARD] TABLE
SORTED TABLE , and HASHED TABLE , the row type is set to c
with length 1.
For generic table types without specification of a primary table key,
the standard key is completed for standard tables and the entire table
row (without any table-like parts) is completed as the key specification
for sorted tables and hash tables.
For generic table types, for which the primary table key is specified
but uniqueness is not specified, the standard key is set to non-unique
for standard tables and sorted tables, and to unique for hashed tables.
This generic property is ignored for table types that are generic with
respect to the secondary table key. This applies even if the generic
property was defined explicitly with the addition
WITH FURTHER SECONDARY KEYS .
If a replacement parameter is specified, then the type attributes of
this parameter are applied.
Note
When typing formal parameters, the addition LIKE can be used to
refer to formal parameters (in the same procedure) that have already
been declared.
Example
In the following example, two generically typed field symbols are used
in LOOP statement. To avoid syntax
errors, any_table must be defined as an internal table.
However, the system does not check the type of any_object
until runtime, to ensure that the type of the data object assigned to
it is compatible with the row type of the table.
FIELD-SYMBOLS: <(><<)>any_object> TYPE ANY,
<(><<)>any_table> TYPE ANY TABLE.
...
LOOP AT <(><<)>any_table> INTO <(><<)>any_object>.
...
ENDLOOP.
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved