Boolean values, or truth values, are results of logical expressions. A truth value is either true or false. ABAP does not, and probably never will support explicit Boolean data types.
The result of a logical expression cannot be assigned directly to a data object. Nevertheless, this can be achieved through Boolean functions.
It has become common practice to express the truth value true
as value X
and the truth value false
as a ' '
(blank).
That being said, below source code serves as a bad example. It is not recommended to work with the literal 'X'
or ' '
even though you will see this regularly in legacy code:
DATA does_exist TYPE c LENGTH 1.
does_exist = 'X'.
IF does_exist IS NOT INITIAL.
...
ENDIF.
Using abap_true and abap_false
The type group abap
contains a data type abap_bool
of type char with length 1, and the constants abap_true
and abap_false
. These constants serve as substitutes for a real Boolean data type.
Use the type abap_bool
when working with truth values. A data object declared in this way should only have abap_true
and abap_false
as values.
Below is the recommended example. Instead of declaring does_exist
as TYPE c
we use the type abap_bool
and replace the text literal with the constants abap_true
and abap_false
:
DATA does_exist TYPE abap_bool.
does_exist = abap_true.
IF does_exist = abap_true.
...
ENDIF.