getMessage()

Die Systemfunktion 'sysLib.getMessage()' gibt eine Nachricht aus einer von mehreren möglichen Quellen zurück.

Die Funktion ruft eine Nachricht aus einer der folgenden Quellen ab:

Sie können Einfügungen angeben, die in die Nachricht aufgenommen werden sollen. Die Funktion ruft üblicherweise eine angepasste Fehlernachricht ab.

Die Einstellung 'vgj.messages.file' referenziert einen Basisdateinamen, der erweitert werden kann, wenn Sie über mehrere Dateien für unterschiedliche Sprachen und Standorte verfügen. Die Einstellung könnte beispielsweise wie folgt aussehen:
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.
Bei einer Datei, die für eine bestimmte Ländereinstellung angepasst ist, können Sie ein weiteres Unterstreichungszeichen und einen aus zwei Buchstaben bestehenden Landescode hinzufügen. Wenn Ihre Anwendung beispielsweise in Kanada entwickelt wurde, haben Sie möglicherweise zwei angepasste Fehlernachrichtendateien:

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'.

Sie können auch die Funktion 'sysLib.getMessage()' verwenden, um EGL-Fehlernachrichten zu suchen. Der Schlüssel "EGL0001I" beispielsweise gibt die folgende Nachricht zurück: "Der Fehler ist in {0} aufgetreten." Darüber hinaus fragt EGL in den folgenden Fällen auch den Informix JDBC Driver nach einer Informix-Nachricht ab:

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.

Die folgende Syntax zeigt das Format der Einträge in der Nachrichtendatei:
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.
Diese Nachricht wird im folgenden Codeabschnitt verwendet:
  userName STRING = getUserName();  // Aufforderung zur Eingabe
  rc = validateUserName(userName);
  if (rc < 0)
    SysLib.setError( SysLib.getMessage( "badname", [ userName ] ) );
  end

Kompatibilität

Tabelle 1. Hinweise zur Kompatibilität für 'getMessage()'
Plattform Problem
COBOL-Generierung Die Funktion 'sysLib.getMessage()' wird nicht unterstützt.
JavaScript-Generierung Die Funktion 'sysLib.getMessage()' wird nicht unterstützt.

Feedback