sapdev logo background
sapdev logo sapdev logo
Comments

ABAP WRITE TO Statement syntax, information and example SAP source code



Return to Statement index



WRITE - TO

Short Reference

ABAP Syntax WRITE {source|(source_name)} TO destination

[format_options] .

What does it do?
The statement WRITE TO formats the content of source or of the source field specified in source_name using either
predefined formats or
explicit formatting options
format_options
as a character string and assigns the formatted content to the character-like data object destination .
source is a general expression position with the restriction that no numeric literals , arithmetic expressions , or bit expressions can be specified directly.
All flat data types and the data types
string and xstring are allowed for source ; structures are treated as a data object of type c and must be character-like in Unicode systems. In a Unicode system, only the data types grouped together under the simple generic type can be used. The data object source can be specified using either a field symbol or a dereferenced data reference.
The data objects source_name and destination must be character-like and have a fixed length (flat data type).
If the length of the target field destination is less than the length of the data object format either
predefined or specified using
format_options , the output (when formatted and assigned) is shortened in accordance with a type-specific
cutoff behavior
If the available length exceeds the length required for formatting, the system places the result in the target field based on the predefined or self-defined alignment and fills the non-required space with blanks.
source_name can contain the name of the data object to be assigned in uppercase or lowercase. If the data object specified in
source_name does not exist, no assignment takes place and
sy-subrc is set to 4. When evaluating source_name , the same applies as for the dynamic specification of (name) in the statement ASSIGN .

System Fields
sy-subrc Meaning
0The data object specified in source_name was found and the assignment was performed.
4The data object specified in source_name could not be found and the assignment was not performed.
If the static source is specified, sy-subrc is not set.

Latest notes: If destination is specified as an untyped field symbol or an untyped formal parameter and is not flat and character-like when the statement is executed, this results in an exception (that cannot be handled) in Unicode programs
. In non-Unicode programs , an exception only occurs if deep types are used, while flat types are handled like character-like types.

Although the statement WRITE TO does not send any data to an output medium, the system may execute a conversion routine .

The statement WRITE TO is primarily designed for formatting data for output purposes but not for further internal processing. For example, a field can no longer be handled as a numeric data object if the decimal separator is displayed as a comma.

No numeric literals can be specified between WRITE and TO
. This is because, in this case, the statement cannot be distinguished from a WRITE statement with a specified position.

Use of the WRITE TO statement can be replaced in most cases by embedded expressions in string templates of string expressions .

It is possible to use string templates as source fields for the statement WRITE TO , but this is not usually recommended since both WRITE TO and string templates are used to format data and only a single method should be used. It is best to use string templates only.

Example ABAP Coding After the assignment, the variables date_short and date_long contain the current local date in the order specified in the user master record. The variable date_long contains the separators defined there. The variable date_short does not contain any separators since their length is not sufficient. The content of the variable date_mask is formatted according to the formatting addition DD/MM/YY , for which their length is sufficient.
DATA: date_long TYPE c LENGTH 10,
date_short TYPE c LENGTH 8,
date_mask TYPE c LENGTH 8.

WRITE sy-datlo TO: date_short,
date_long,
date_mask DD/MM/YY.



Runtime Exceptions

Catchable Exceptions

CX_SY_WRITE_INVALID_STYLE
Reason for error: Incorrect output format for decimal floating point numbers with the STYLE addition.
Runtime error: WRITE_INVALID_STYLE
CX_SY_CONVERSION_NO_NUMBER
Reason for error: Invalid format of the source field in the output of a decimal floating point number.
Runtime error: CONVT_NO_NUMBER
CX_SY_CONVERSION_OVERFLOW
Reason for error: Target field is too short to display a decimal floating point number.
Runtime error: CONVT_OVERFLOW


Non-catchable Exceptions

Reason for error: Negative length specification for offset/length specification.
Runtime error: WRITE_TO_LENGTH_NEGATIVE
Reason for error: Negative offset specification for offset/length specification.
Runtime error: WRITE_TO_OFFSET_NEGATIVE
Reason for error: Offset specification for offset/length specification is larger than the field length.
Runtime error: WRITE_TO_OFFSET_TOOLARGE
Reason for error: CURRENCY parameter in WRITE does not have type c
Runtime error: WRITE_CURRENCY_ILLEGAL_TYPE
Reason for error: Rounding parameter less than -14
Runtime error: WRITE_ROUND_TOO_SMALL
Reason for error: UNIT parameter in WRITE does not have type
c
Runtime error: WRITE_UNIT_ILLEGAL_TYPE
Reason for error: Incomplete rules for a time zone when using the addition
TIME ZONE
Runtime error: CONVERT_TSTMP_INCONSISTENT_TAB
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved




WRITE_SKIP
WRITE_TO_ITAB




comments powered by Disqus