SAP WRITE TO ABAP Statements

Get Example source ABAP code based on a different SAP table
  


Standard SAP Help for WRITE_TO

WRITE - TO

Short Reference
• WRITE TO ABAP Statement
• TO WRITE


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.
INTHINT Even the access to data of other programs of the same
INTHINT internal session is possible via '(prog)name' -
INTHINT also in lower case.

System Fields sy-subrcMeaning 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 inWRITE 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

Return to menu