Skip to content

ABAP Keyword Documentation →  ABAP − Reference →  Processing Internal Data →  Assignments 

= - Assignment Operator

Other versions: 7.31 | 7.40 | 7.54


lhs = rhs.


If the character = is specified in a statement between a left side lhs (or "left hand side") and a right side rhs (or "right hand side"), it works like an assignment operator that assigns the value of the right side to the left side, possibly using a conversion.

The right side rhs, the source of the assignment, is a general expression position and can be specified as follows:

  • As a return value or result of functional methods, built-in functions, or constructor expressions or table expressions

The left side lhs, the target of the assignment, is a both a declaration position and a result position and can be specified as follows:

  • As any data object that can be specified in a writing position. The data type of the data object must either be compatible with the assigned value or must be convertible to the data type of lhs in accordance with one of the conversion rules. If the assigned value does not match the data type of lhs, the exceptions described in the conversion rules may be raised.
  • As an inline declaration DATA(var). The data type of the declared variable is determined by the right side and is described as one of the rhs options. Any variables used on the right side cannot be declared on the left side. An identically named data object from a more global context can be used on the right side and is not obscured by the local declaration until after the statement.

If an exception is raised on the right side, the statement is not executed and the value of the target field is undefined.


  • If lhs is not a data object, it can be prefixed with the obsolete keyword COMPUTE. This keyword is ignored, however, and should no longer be used.

  • Another obsolete variant of the assignment is the statement MOVE rhs TO lhs. Here, the left side is on the right side and does not cover all options of the assignment operator =.

Programming Guideline

Assignments with the assignment operators = and ?= only


Assignments of a literal, a constructor expression, and an arithmetic expression to target fields.

DATA: o1 TYPE i, 
      o2 TYPE i, 
      r  TYPE i. 

o1 = 100. 
o2 = CONV #( '200' ). 
r  = o1 + o2.


= - Assign Data Objects

= - Assign Return Values and Results

= - Assign Calculation Expressions