WRITE ... TO

WRITE - Output to a variable

Variants:

1. WRITE f TO g[+off][(len)].
2. WRITE f TO itab[+off][(len)] INDEX idx.

Addition:

... option

Effect

Assigns the contents of the source field f to the target field g as a new value.

In contrast to MOVE, the format of the target field g is the same as when outputting to a list with WRITE. The field type C is always used, regardless of the actual data type.

As with list output, the settings in the user's master record for decimal point (period or comma) and date format are taken into account.

Other formatting options are also possible with list output.

Instead of specifying a static source field f, you can make a dynamic source field specification (name). In this case, the contents of the field name is interpreted as the source field name at runtime and the contents are formatted accordingly.

You can identify the target field g more precisely by specifying the offset and/or length in the form g+off(len). Both the offset and the length specifications off and len can also be dynamic.

Example

WRITE ... TO with dynamic source field specification and dynamic offset and length specification for the target field:

DATA: NAME(5)  VALUE 'FIELD', 
	FIELD(5) VALUE 'Harry', 
	DEST(18) VALUE 'Robert James Smith', 
	OFF	TYPE I, 
	LEN	TYPE I. 
 
OFF = 7. 
LEN = 8. 
WRITE (NAME) TO DEST+OFF(LEN). 

The field DEST noew contains the value "Robert Harry ith".

Only values between 0 and the length of the target field g are allowed as offset specifications. Any other offset specifications result in a runtime error.

Effect

Modifies the output format with the aid of special formatting options.


Additions like variant 1.

Effect

Like variant 1, except that output is to the idx-th line of the internal table itab.

Any offset and/or length specifications refer to the table line used for output.

SY-SUBRC = 0:

Valid index specification, i.e. the internal table itab contains a line with the index idx.

SY-SUBRC = 4:

Index specification is too large, i.e. the internal table itab contains fewer than idx entries.

Note

Invalid index specifications, i.e. idx <= 0, result in a runtime error.

The runtime of WRITE ... TO corresponds with that of the WRITE statement. However, considerable extra runtime is required if you specify the source field dynamically.

Specifying the target field using offset and length increases the runtime slightly.

WRITE ... TO with a dynamically-specified source field takes around 40 msn (standard microseconds). If you specify the source field statically, the runtime is around 6 msn, or 8 msn if you specify offset and length.

Related

MOVE, WRITE