Die Textumgebungssprache wird zu Beginn jeder internen Sitzung auf die
Anmeldesprache der aktuellen
Benutzersitzung gesetzt.
Sie kann mit der Anweisung SET LOCALE LANGUAGE für die aktuelle interne Sitzung auf eine andere Sprache gesetzt werden.
Die aktuelle Textumgebungssprache kann über die Methode GET_LANGUAGE der Klasse CL_ABAP_SYST
sowie über die Anweisung GET LOCALE
LANGUAGE festgestellt werden und ist der nominelle Inhalt des Systemfelds sy-langu. Die möglichen einstelligen Kürzel für
die Textumgebungssprache finden sich als Sprachenschlüssel in der Spalte SPRAS der Datenbanktabelle T002.
Beispiel
Zusicherung, dass das Systemfeld sy-langu die aktuelle Textumgebungssprache enthält. Es kommt zu einer Ausnahme, wenn das Systemfeld im Programm überschrieben wurde.
ASSERT sy-langu = cl_abap_syst=>get_language( ).
Textumgebung
Alle Programme einer internen
Sitzung arbeiten in einer gemeinsamen Textumgebung, die von der Textumgebungssprache bestimmt wird
und die über die Anweisung SET LOCALE LANGUAGE gesetzt werden kann. Die Textumgebung umfasst neben der Sprache:
eine Codepage
Die Codepage der Textumgebung ist unveränderbar die
System-CodepageUTF-16 des Applikationsservers eines
Unicode-Systems. Das
aktuelle Release unterstützt nur noch Unicode-Systeme und es kann keine Textumgebungen mit anderen Codepages mehr geben. Nur bei speziellen Anweisungen, wie z.B. dem Lesen und Schreiben von
Legacy-Dateien über die
ABAP-Dateischnittstelle gibt es die Besonderheit,
dass für Konvertierungen die Nicht-Unicode-Codepage verwendet wird, die in einem Nicht-Unicode-System der aktuellen Textumgebung zugeordnet wäre.
ein Locale
Die zur Textumgebungssprache und einem Land gehörigen
Locale-Eigenschaften sind in einer auf dem
Applikationsserver
vorhandenen und von dessen Betriebssystem unabhängigen ICU-Bibliothek (International Components for Unicode) definiert.
Die Textumgebung dient im Wesentlichen dem Umgang mit Texten in zeichenartigen Datenobjekten:
Die Codepage der Textumgebung beeinflusst alle Operationen, die vom aktuellen Zeichensatz abhängen, wie
Casting zeichenartiger Datenobjekte auf Byteartige Typen
Daneben wird in folgenden Fällen die Textumgebungssprache und nicht die Anmeldesprache verwendet:
Die ABAP-spezifische SitzungsvariableLOCALE_SAP in
SAP HANA sowie die Sitzungsvariable system_language
in ABAP CDS enthalten bei einem Zugriff aus ABAP bzw. Open SQL die aktuelle Textumgebungssprache.
Wenn bei der Anweisung SUBMIT VIA JOB keine explizite Sprache angegeben ist, wird die Anmeldesprache der
Hintergrundsitzung implizit auf die aktuelle Textumgebungssprache gesetzt.
Die Texte auf Selektionsbildern werden durch die aktuelle Textumgebungssprache bestimmt.
Auch weitere Frameworks, die auf dem nominellen Wert des Systemfelds sy-langu beruhen, greifen auf die aktuelle Textumgebungssprache und nicht auf die Anmeldesprache zu.
Hinweise
Die Programmiersprache ABAP unterstützt nicht den vollen Umfang von UTF-16, sondern die durch
UCS-2 abgedeckte Teilmenge. Diese beinhaltet im Wesentlichen alle Zeichen von
UTF bis auf die des
Surrogat-Bereichs. ABAP fasst ein Zeichen des Surrogat-Bereichs als zwei Zeichen auf.
In den vor Release 7.50 unterstützten Nicht-Unicode-
Single-Codepage-Systemen
war die Codepage der Textumgebung immer die Nicht-Unicode-System-Codepage des aktuellen Applikationsservers. Nur in den vor Release 7.0 unterstützten
MDMP-Systemen konnte für die Codepage der Textumgebung eines Systems verschiedene System-Codepages eingestellt werden.
Beispiel
Explizites Setzen der Textumgebung vor einem aRFC.
Der Funktionsbaustein DEMO_RFM_CALL_TRANSACTION ruft eine Transaktion über einen an ihn übergebenen
Transaktionscode auf. Die Anmeldesprache der
RFC-Sitzung ist unabhängig von der
Anmeldesprache der aktuellen Sitzung immer Englisch. Danach wird die Textumgebungssprache wieder auf ihren vorhergehenden Wert gesetzt.
GET LOCALE LANGUAGE DATA(langu) COUNTRY DATA(dummy)
MODIFIER dummy.
SET LOCALE LANGUAGE 'E'.
CALL FUNCTION 'DEMO_RFM_CALL_TRANSACTION' STARTING NEW TASK 'TCODE' EXPORTING tcode = 'SE11'. SET LOCALE LANGUAGE langu.