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
' ' 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_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_false as values.
Below is the recommended example. Instead of declaring
TYPE c we use the type
abap_bool and replace the text literal with the constants
DATA does_exist TYPE abap_bool. does_exist = abap_true. IF does_exist = abap_true. ... ENDIF.