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-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 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>