sapdev logo background
sapdev logo sapdev logo
Comments

SAP UNICODE CREATE documentation, setup help and example usage



Return to SAP documentation index


ARTICLE

Creating Data Objects Dynamically

Overview

1 Data objects
2 Table objects



1 Data objects
CREATE DATA allows you to create fields in a pre-defined or user-defined data type. The statement has the following variants:
CREATE DATA dref TYPE typ.
CREATE DATA dref TYPE (typname).
CREATE DATA dref LIKE field.
CREATE DATA dref TYPE LINE OF itab.
CREATE DATA dref LIKE LINE OF itab.
In the following example, the content of a specific field of a database table is read, whereby the field and table names are not known until runtime.

Example
PARAMETERS:
tab_name TYPE tname, "Table name
tab_comp TYPE tfieldname, "Field name
line_num TYPE i DEFAULT 10. "Line number
FIELD-SYMBOLS:
<(><)> TYPE ANY,
<(><)> TYPE ANY.
DATA:
wa_ref TYPE REF TO DATA.

CREATE DATA wa_ref TYPE (tab_name). "Suitable work area
ASSIGN wa_ref->* TO <(><<)>wa>.
SELECT * FROM (tab_name) INTO <(><)>.
CHECK SY-DBCNT < line_num.
ASSIGN COMPONENT tab_comp OF STRUCTURE <(><<)>wa> TO .
WRITE: / tab_comp, .
ENDSELECT.



2 Table objects
Another variant of CREATE DATA allows you to create table objects at runtime. The line type and table key can be entered statically or dynamically.

CREATE DATA dref (TYPE [STANDARD|SORTED|HASHED] TABLE
OF (linetype | (Name) | REF TO DATA | REF TO obj))
| (LIKE [STANDARD | SORTED | HASHED] TABLE OF lineobj )
[ WITH (UNIQUE|NON-UNIQUE)
( KEY (K1 ... Kn | (KEYTAB) | TABLE_LINE )
| DEFAULT KEY ) ]
[ INITIAL SIZE M ]

The following constraints apply to this variant:

m must be a variable or a constant without a sign, whose content at runtime has the type NUMLIKE
keytab must be a table of the type CHARLIKE, which must not be empty, and whose components must not contain any offset, length, or overlapping key entries. You can use the TABLE_LINE addition, if the table contains only one line.
The system returns a syntax error if either the type, or the line and key declarations are static.
If you do not define a key, the system uses the default key.

Note
You can also use the generic Basis types C , N , X , and P with the CREATE DATA statement, along with additions to specify the length and (for type P ) the number of decimal places .
CREATE DATA dref TYPE (t | (typeName))
[ LENGTH len ]
[ DECIMALS dec ].
You can only use the LENGTH addition for types C , N
, X , and P and you must always include it after the TYPE keyword. If you do not comply with syntax conventions when entering LENGTH or DECIMALS values, an exception that can be handled is raised.
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved




UNICODE_CONVERSIONS
UNICODE_DATASET




comments powered by Disqus