ABAP Keyword Documentation → ABAP − Reference → Processing External Data → Data Cluster → IMPORT
IMPORT - medium
Other versions: 7.31 | 7.40 | 7.54
Syntax
... { DATA BUFFER xstr }
| { INTERNAL TABLE itab }
| { MEMORY ID id }
| { DATABASE dbtab(ar) [TO wa] [CLIENT cl] ID id }
| { SHARED MEMORY dbtab(ar) [TO wa] [CLIENT cl] ID id }
| { SHARED BUFFER dbtab(ar) [TO wa] [CLIENT cl] ID id } ...
Alternatives
1. ... DATA BUFFER xstr
2. ... INTERNAL TABLE itab
3. ... MEMORY ID id
4. ... DATABASE dbtab(ar) [TO wa] [CLIENT cl] ID id
5. ... SHARED MEMORY dbtab(ar) [TO wa] [CLIENT cl] ID id
6. ... SHARED BUFFER dbtab(ar) [TO wa] [CLIENT cl] ID id
Effect
The data cluster to import
can be taken from an elementary data object xstr or an internal table itab , the
ABAP Memory, a database
table dbtab, or a cross-program memory area (if SHARED MEMORY or BUFFER is specified) .
Alternative 1
... DATA BUFFER xstr
Effect
If DATA BUFFER is specified, the data cluster is taken from the elementary
data object xstr, which must be of the type xstring.
The data object must contain a data cluster which was created using the DATA BUFFER
addition of the EXPORT statement. Otherwise, a
runtime error occurs. Note that the data object cannot be initial.
Alternative 2
... INTERNAL TABLE itab
Effect
If INTERNAL TABLE is specified, the data cluster is taken from the internal
table itab. The first column of itab must have
the data type s
or i and the second column must have the type x. The only table category allowed for itab are
standard tables without
secondary table keys.
The internal table must contain a data cluster created using the INTERNAL TABLE
addition of the EXPORT statement; otherwise, a
runtime error occurs. Note that the internal table cannot be empty.
Alternative 3
... MEMORY ID id
Effect
If MEMORY is specified, the data cluster that was written to the
ABAP Memory under the ID
specified in id by the statement EXPORT is imported. id expects a
flat
character-like data object. This object contains the ID of the data cluster, which is case-sensitive.
Note
Outside of classes, an obsolete short form
exists, in which the addition ID can be omitted. This reads the data cluster
saved by the statement EXPORT without an ID being specified.
Alternative 4
... DATABASE dbtab(ar) [TO wa] [CLIENT cl] ID id
Effect
If DATABASE is specified, the data cluster that was written to the
export/import table
dbtab in the area ar and under the ID specified
in id using the statement EXPORT is imported. The export/import table dbtab must be
set up in the same way as described for
the EXPORT statement. id expects a flat, character-like
data object that contains the ID of the data cluster, which is case-sensitive. The two-character area ar must be specified directly.
After TO, a work area wa that has the same data
type as the database table dbtab can be specified. When imported, the values
of the database fields that are between the fields SRTF2 and CLUSTR are assigned to the components of
wa with the same name. If the addition TO wa is
not specified within classes, no data transport takes place in these components. If the addition
TO wa is not specified outside of classes, but the statement TABLES is used to declare a
table work area for
the export/import table dbtab, the values of these database fields are assigned, when imported, to the components of the table work area dbtab with the same names.
If the export/import table dbtab is client-specific, a flat character-like field cl can be specified after the addition CLIENT. This field contains a
client ID. If the addition is not specified, the current client is used.
Notes
-
Since each client represents a self-contained unit, the addition
CLIENTmust not be used in application programs. -
It is still possible to use a table work area implicitly outside of classes (instead of using
TO waexplicitly). This should be considered an obsolete short form, however. -
Only outside of classes can
idstill be replaced by the obsoleteobs_id.
Example
Reads the table exported under the name scarr_tab and the ID SCARR
into the area SC of the database table DEMO_INDX_BLOB
(see the example for the addition DATABASE
of the statement EXPORT) into the internal table itab. Here, those components that can be selected are assigned to the structure wa.
DATA:
wa TYPE demo_indx_blob,
itab TYPE table OF scarr with EMPTY KEY.
IMPORT scarr_tab = itab
FROM DATABASE demo_indx_blob(sc)
TO wa
ID 'SCARR'.
cl_demo_output=>new(
)->write_data( wa-timestamp
)->write_data( wa-userid
)->display( itab ).
Alternative 5
... SHARED MEMORY dbtab(ar) [TO wa] [CLIENT cl] ID id
Alternative 6
... SHARED BUFFER dbtab(ar) [TO wa] [CLIENT cl] ID id
Effect
If SHARED MEMORY or SHARED BUFFER is specified,
the data cluster is imported that was written (by the statement EXPORT) to the relevant application buffer of the
shared memory in the
area ar and using the ID specified in id. The
system accesses a memory table of the application buffer whose row structure is defined by an export/import table dbtab. The
setup of this table is described in the statement EXPORT. id expects a
flat character-like data object
that contains the ID of the data cluster. The two-character area ar must be specified directly.
For the optional work area wa and client cl, the same applies as for imports from a database table.
Notes
- The length of the key fields of the export/import table specified between the columns RELID and SRTF2 cannot exceed 59 or 62 characters, depending on whether a client column exists.
-
Instead of using data clusters in the shared memory, it is best to use
shared objects. Shared
objects make it possible to store objects with complex dependencies, can be processed like normal objects, and enable multiple users to access the shared memory without any copying effort.
Example
Reads the table exported under the name scarr_tab and the ID SCARR
into the area SC of the cross-transaction application buffer (see the
example for the addition SHARED
BUFFER of the statement EXPORT) into the internal table
itab. Here, those components that can be selected are assigned to the structure wa.
DATA:
wa TYPE demo_indx_blob,
itab TYPE table OF scarr with EMPTY KEY.
IMPORT scarr_tab = itab
FROM SHARED BUFFER demo_indx_blob(sc)
TO wa
ID 'SCARR'.
cl_demo_output=>new(
)->write_data( wa-timestamp
)->write_data( wa-userid
)->display( itab ).