Skip to content

ABAP Keyword Documentation →  ABAP − Reference →  Processing Internal Data →  Assignments →  Lossless Assignments →  Lossless Assignments - Rules 

Checking Elementary Data Objects

In conversions between incompatible elementary data objects, the operator EXACT ensures that no values are lost. Regardless of the value of the argument, the operator EXACT generally does not permit assignments between data objects with the following data types. The is because with these data types, values are always lost when the conversion rules are applied.

  • From x, xstring to n, d, t, and reversed.
  • From d and t to b and s

Conversions from d to t and vice versa, and most conversions for time stamps of the type utclong are prohibited independently of the operator EXACT. Other conversions that are not permitted are conversions in which byte-like fields are converted directly or as an intermediate result to the data type i (or reversed).

If illegal conversions are made, a syntax error occurs, or if the cause cannot be known statically, an exception of the class CX_SY_CONVERSION_EXACT_NOT_SUP is raised. This also occurs with types for which conversions are permitted, but for which a loss of values can be identified regardless of the content, for example, if a conversion is made to fields that are too short.

When permitted conversions are made between incompatible elementary data objects, the operator EXACT checks the contents of the argument at runtime as follows:

If the elementary data types for which no conversion is required are compatible, no checks are performed and no exceptions are raised.

Other versions: 7.31 | 7.40 | 7.54


Notes

  • When the operator EXACT is used, a handleable exception is always raised at runtime when an illegal conversions is made. This occurs in particular when conversions are attempted between d and t. In all other cases, an attempted conversion of this type raises a non-handleable exception.

  • If an argument contains an invalid or inappropriate value, this is assigned to its return value, even if the operator EXACT is used.

Executable Example

Lossless Assignment.

Continue

Valid Values for Lossless Assignments

Suitable Values for Lossless Assignments

Lossless Assignment