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