SAP NetWeaver AS ABAP Release 740, ©Copyright 2014 SAP AG. All rights reserved.
ABAP Keyword Documentation → ABAP − Reference → Processing Internal Data → Assignments → Lossless Assignments → Lossless Assignments - Rules → Checking Elementary Data Objects →Lossless Assignment
This example demonstrates how the operator EXACT is used to make lossless assignments.
Source Code
REPORT demo_move_exact.
CLASS demo DEFINITION.
PUBLIC SECTION.
CLASS-METHODS main.
ENDCLASS.
CLASS demo IMPLEMENTATION.
METHOD main.
DATA: text TYPE string VALUE `4 Apples + 3 Oranges`,
num_text TYPE n LENGTH 8.
DATA(out) = cl_demo_output=>new(
)->begin_section( text
)->begin_section( `Not really exact:` ).
num_text = text.
out->write_data( num_text
)->next_section( `Try to be exact:` ).
TRY.
num_text = EXACT #( text ).
out->write_data( num_text ).
CATCH cx_sy_conversion_error INTO DATA(exc).
out->write_text( exc->get_text( ) ).
ENDTRY.
out->display( ).
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
demo=>main( ).
Description
Without the operator EXACT, text is assigned to num_text without the validity of the assigned value being checked against the associated conversion rules. This produces a value that is not very intuitive, "00000043".
Using the operator EXACT, the value that is passed is checked and an exception is raised in the case in question.