getMessage()
Die Systemfunktion 'sysLib.getMessage()' gibt eine Nachricht aus einer von mehreren möglichen Quellen zurück.
- Aus der Datei, die in der Java™-Laufzeiteinstellung 'vgj.messages.file' referenziert ist.
- Aus der Liste der EGL-Fehlernachrichten.
- Aus der Liste der Informix-Fehlernachrichten.
Sie können Einfügungen angeben, die in die Nachricht aufgenommen werden sollen. Die Funktion ruft üblicherweise eine angepasste Fehlernachricht ab.
vgj.messages.file = files/messages/errorMessages
Im
einfachsten Fall gibt es im Ordner 'files/messages' eine einzelne Datei namens 'errorMessages.properties'. Wenn Sie
Unterstützung in der Landessprache benötigen, fügen Sie dem Basisnamen ein Unterstreichungszeichen und einen aus zwei Buchstaben bestehenden Sprachencode hinzu.
Beispiel: errorMessages_fr.properties. - errorMessages_fr_CA.properties
- errorMessages_en_CA.properties
Informationen dazu, wie Java-Laufzeiteigenschaften wie beispielsweise 'vgj.messages.file' gesetzt werden, finden Sie unter Übersicht über die Java-Laufzeiteigenschaften. Eine vollständige Beschreibung der Vorgehensweise beim Formatieren von Nachrichten finden Sie in Ihren Java-API-Dokumenten für die Klasse 'java.text.MessageFormat'.
- In der in 'vgj.messages.file' angegebenen Datei wird keine Nachricht mit dem angegebenen Schlüssel gefunden.
- Es wird keine EGL-Nachricht mit dem angegebenen Schlüssel gefunden.
- Das Programm wurde mit der Builddeskriptoroption 'dbms' mit der Angabe INFORMIX erstellt.
- Der Schlüssel enthält nur Ziffern.
Sprachencodes folgen der Norm ISO 639-2, Landescodes folgenden der Norm ISO 3166. Weitere Informationen erhalten Sie über die Links in der zugehörigen Referenz am Ende dieses Themas.
Schlüssel = Nachricht
Schlüssel ist eine eindeutige Zeichenfolge zur Identifikation der Nachricht. Die Nachricht kann ganze Zahlen in geschweiften Klammern enthalten, um Stellen anzugeben, an denen Ersetzungen vorgenommen werden können. Beginnen Sie bei den ganzen Zahlen mit 0 und erhöhen Sie die Zahl schrittweise in der entsprechenden Reihenfolge. Diese ganzen Zahlen stellen Indizes zu einer Feldgruppe von Substitutionszeichenfolgen bereit. Dies wird weiter unten in diesem Thema anhand von Beispielen veranschaulicht.
Wenn Sie mehrere Sprachversionen verwenden, müssen die Schlüsselkennungen in allen Versionen der Datei identisch sein.
Syntax
sysLib.getMessage(
Schlüssel STRING in
[, Feldgruppe_mit_Einfügungen STRING[] in])
returns (Ergebnis STRING)
- Schlüssel
- Bei der Eingabe kann es sich um eine beliebige Variable oder einen beliebigen Ausdruck handeln, die/der mit dem Typ STRING zuordnungskompatibel ist. Dieser Parameter liefert den Schlüssel zur Nachrichtendatei, die zur Ausführungszeit verwendet wird. Wird für den Schlüssel kein Wert angegeben, werden alle Nachrichten in der Datei verkettet.
- Feldgruppe_mit_Einfügungen
- Eine Feldgruppe vom Typ STRING. Jedes Element enthält eine Einfügung, die in die abzurufende Nachricht
aufgenommen werden soll. Im Nachrichtentext ist das Substitutionssymbol eine ganze Zahl in geschweiften Klammern, wie im folgenden Beispiel aus einer Nachrichtendatei:
VGJ0216E = {0} ist keine gültige Datumsmaske für {1}.Das erste Element in Feldgruppe_mit_Einfügungen wird dem Platzhalter mit der Nummer 0 zugeordnet, das zweite Element wird dem Platzhalter mit der Nummer 1 zugeordnet usw.
- Ergebnis
- Das Ergebnis kann einer beliebigen Variablen zugeordnet werden, die mit dem Typ STRING zuordnungskompatibel ist. Wenn Schlüssel nicht gefunden wird, gibt die Funktion eine leere Zeichenfolge zurück.
Beispiel
Das folgende Beispiel ist ein Eintrag in der Nachrichtendatei 'errorMessages_en_US.properties':
badname = The name you entered, {0}, is not valid.
userName STRING = getUserName(); // Aufforderung zur Eingabe
rc = validateUserName(userName);
if (rc < 0)
SysLib.setError( SysLib.getMessage( "badname", [ userName ] ) );
end
Kompatibilität
| Plattform | Problem |
|---|---|
| COBOL-Generierung | Die Funktion 'sysLib.getMessage()' wird nicht unterstützt. |
| JavaScript-Generierung | Die Funktion 'sysLib.getMessage()' wird nicht unterstützt. |
