ABAP - CL_ABAP_CONTEXT_INFO
Gesammelte Informationen zum User und dem System erhielt man bisher nur aus der SYST Struktur. Mittlerweile gibt es auch eine Klasse, die viele dieser Informationen liefert.
Inhaltsverzeichnis
In sehr vielen aktuellen Anwendungen auf einem On-Premise System wird für die Ermittlung des Users, des Datums oder der Uhrzeit die SYST (oder auch SY) Struktur des Systems verwendet und dies ist seit Beginn auch Standard. Die SAP möchte mit der Cloud und der neuen Version von ABAP nun etwas Neues probieren.
CL_ABAP_CONTEXT_INFO
Die neue Klasse bietet verschiedene Methoden zur Ermittlung von Umgebungsdaten zur aktuellen Anwendung. Dabei sollen die verschiedenen Methoden die entsprechenden Felder aus der SYST ablösen.
Zur Vereinfachung eine Gegenüberstellung der Methoden zu den einzelnen Feldern aus der SYST Struktur und eine Zuordnung zu verwendeten Feldern der SAP Cloud Platform:
Neue Methode | Alte Welt |
---|---|
GET_SYSTEM_DATE | SYST-DATUM |
GET_SYSTEM_TIME | SYST-UZEIT |
GET_USER_TECHNICAL_NAME | SYST-UNAME |
GET_USER_LANGUAGE_ABAP_FORMAT | SYST-LANGU |
GET_USER_LANGUAGE_ISO_FORMAT | ISO Format der Sprache |
GET_USER_TIME_ZONE | SYST-TZONE |
GET_USER_ALIAS | Alias des User aus Stammsatz (Cloud) |
GET_SYSTEM_URL | URL des Systems (Cloud) |
GET_USER_FORMATTED_NAME | BAPI_USER_GET_DETAIL |
GET_USER_DESCRIPTION | BAPI_USER_GET_DETAIL |
GET_USER_BUSINESS_PARTNER_ID | Business-Partner-ID des Users (Cloud) |
Einige der Felder die nur die Cloud betreffen, wirst du sehr wahrscheinlich auf deinem On-Premise System nicht benötigen. Die Ermittlung von Datum und Uhrzeit geschieht über die TIMESTAMP Funktion, die du auch ganz normal in der Cloud verwenden kannst.
Hinweis: Es sind weiterhin trotzdem noch viele Felder der SYST Struktur verfügbar, die du auch für deine tägliche Arbeit benötigst (SUBRC, INDEX, TABIX, DBCNT).
On-Premise
Auch wenn die Klasse auf der On-Premise Landschaft noch kein muss darstellt, empfehlen wir dir die Nutzung der neuen Felder. Vor allem wenn dein Unternehmen "Cloud Ready" sein möchte oder in naher Zukunft die Eigenentwicklungen per Side-by-Side Extension in die Cloud migriert. Wenn du dich bereits heute an die neue Hilfsklasse gewöhnst, fällt dir eine spätere Umstellung sehr leicht, da du bereits alles wie vorgstellt schon machst.
Cloud
Auf der SAP Cloud Platform waren bis Release 2008 (August 2020) viele der Felder nicht für die Verwendung freigegegeben und du konntest nur die Klasse verwenden, um an die übrigen Informationen zu gelangen. Seit diesem Release sind nun auch wieder die restlichen Felder freigegeben, wahrscheinlich aber erst einmal temporär.
Bei der Verwendung der neuen Felder, erhältst du in Eclipse eine Warnmeldung, dass das Feld mit dieser Sprachversion nicht mehr genutzt werden sollte.
Daher kann es auch sein, dass in Zukunft die Felder durch SAP wieder gesperrt werden und damit nicht mehr nutzbar sind. Wie bereits oben beschreiben, sind einige Felder aber immer noch relevant und nur über die SYST Struktur erreichbar.
Fazit
Die neue Klasse CL_ABAP_CONTEXT_INFO bietet bereits Heute einige nette Features zur Ermittlung des vollständigen Usernamens. Wir empfehlen dir allerdings sie schon in deine tägliche Entwicklung mit einzubeziehen, damit du für die Zukunft und die Cloud gewappnet bist.