Session variables are global variables in the SAP HANA database. They can be read there with the built-in
function SESSION_CONTEXT and provided with a value by the statement SET 'VAR' = :value; (SAP HANA Platform SPS12 and higher). Session variables contain global information about the current context and are hence similar to
ABAP system fields. In particular, their value should only be changed in exceptional application logic cases, for example, in
SQLScript.
When a SAP HANA database is used as the
standard AS ABAP database, the following session variables are filled with ABAP-specific values in ABAP reads:
CLIENT contains the current
client in accordance with the
nominal value of the ABAP system field sy-mandt.
CDS_CLIENT like CLIENT but with the following differences:
CDS_CLIENT is set to the specified value when the database is accessed
with an ABAP SQL statement with the addition USING CLIENT.
During an AMDP method
call from ABAP, where the addition AMDP
OPTIONS CDS SESSION CLIENT is specified in the declaration, CDS_CLIENT is set to the value specified there.
APPLICATIONUSER contains the current
client in accordance with
the nominal value of the ABAP system field sy-uname.
SAP_SYSTEM_DATE contains the current
system date of the AS ABAP
in accordance with the nominal value of ABAP system field sy-datum.
Notes
The ABAP-specific session variables can be read, for example, in
AMDP methods and make the associated input parameters
superfluous. Such a method should only be called up from ABAP programs. Otherwise it cannot be guaranteed
that the variables will be provided with the correct values. However, write access to session variables with SQLScript statement SET is not permitted in AMDP methods.
In the CDS DDL of the ABAP
CDS, the syntax $session.vname can be used in the definition of a
CDS view to access the ABAP-specific
session variables. The name vname is then different from the name shown
here. The CDS session variable client accesses CDS_CLIENT, not CLIENT. When a CDS view is accessed using
ABAP SQL, the session variables are available on all supported database platforms and not just on the SAP HANA database.
In ABAP reads, regardless of whether they are in ABAP SQL, Native SQL, or AMDP, the session variable LOCALE_SAP contains the current value of the
text environment language,
which can be set by the statement SET LOCALE LANGUAGE.
Example
Reads the session variable APPLICATIONUSER using ADBC.
DATA(result) = NEW cl_sql_statement( )->execute_query( `select SESSION_CONTEXT('APPLICATIONUSER') from DUMMY` ).
DATA uname TYPE sy-uname. result->set_param( REF #( uname ) ). result->next( ). cl_demo_output=>display( uname ).