getMessage()

sysLib.getMessage() システム関数は、以下の複数の候補となるソースのいずれかからメッセージを戻します。

この関数は以下のいずれかのソースからメッセージを取得します。

そのメッセージ内への組み込みには、挿入を指定できます。この関数は、通常は、カスタム・エラー・メッセージを取得します。

vgj.messages.file 設定は、言語とロケーションの異なる複数のファイルを保持している場合に拡張可能な、基本ファイル名を参照します。 例えば、次のような設定になります。
vgj.messages.file = files/messages/errorMessages
最も単純なケースは、errorMessages.properties という名前の files/messages フォルダー内に単一のファイルがある場合です。 各国語サポートが必要な場合は、errorMessages_fr.properties のように、ベース名に下線と 2 文字の言語コードを追加します。
特定のロケール向けにカスタマイズされているファイルの場合は、別の下線および 2 文字の国別コードを追加できます。 例えば、カナダ用に設計されたアプリケーションの場合は、2 つのカスタム・エラー・メッセージ・ファイルを持つことができます。

vgj.messages.file などの Java ランタイム・プロパティーの設定については、Java ランタイム・プロパティーの概要を参照してください。 メッセージのフォーマット方法についてのより詳しい説明は、java.text.MessageFormat クラスの Java API 文書を参照してください。

sysLib.getMessage() を使用して、EGL エラー・メッセージを検索することもできます。 例えば、キー「EGL0001I」は、「{0} にエラーが発生しました。」というメッセージを戻します。 また、EGL は以下の状況において、Informix JDBC ドライバーに Informix メッセージを照会します。

言語コードは ISO 639-2 規格に、国別コードは ISO 3166 規格に準じます。 詳しくは、このトピックの最後にある関連参照リンクを参照してください。

以下の構文は、メッセージ・ファイル内の項目のフォーマットを示しています。
key = message

key は、メッセージを識別する固有のストリングです。 メッセージには、置換が可能な位置を示す、中括弧で囲んだ整数が含まれる場合があります。 整数は 0 から開始し、順次増分します。 これらの整数は、置換ストリングの配列内にインデックスを提供します。 このトピックの後半にある例を参照してください。

複数の言語バージョンを使用している場合、key 識別子は、このファイルのすべてのバージョンを通じて同一にする必要があります。

構文

  sysLib.getMessage(
    key STRING in
    [, insertArray STRING[] in])
  returns (result STRING)
key
STRING 型との代入互換性のある任意の変数または式を入力できます。 このパラメーターは、実行時に使用されるメッセージ・ファイルにキーを指定します。 キーがブランクである場合、ファイル内のすべてのメッセージは連結されます。
insertArray
STRING 型の配列。各要素には、取り出したメッセージに組み込む挿入が格納されています。
メッセージ・テキスト内の置換シンボルは、次のメッセージ・ファイルからの例に示すように、中括弧で囲まれた整数です。
  VGJ0216E = {0} is not a valid date mask for {1}.

insertArray 内の最初の要素は、0 の番号が付いたプレースホルダーへ代入され、2 番目の要素は 1 の番号が付いたプレースホルダーへ代入され、それ以降も同様に代入されます。

result
結果は、STRING 型と代入互換性のあるすべての変数に割り当てることが可能です。 この関数は、key が見つからない場合、ヌル・ストリングを戻します。

以下の例は、メッセージ・ファイル errorMessages_en_US.properties からの項目です。

badname = The name you entered, {0}, is not valid.
コードの以下のセクションでは、このメッセージを使用しています。
  userName STRING = getUserName();  // 入力を要求します
  rc = validateUserName(userName);
  if (rc < 0)
    SysLib.setError( SysLib.getMessage( "badname", [ userName ] ) );
  end

互換性

表 1. getMessage() の互換性に関する考慮事項
プラットフォーム 問題
COBOL 生成 sysLib.getMessage() 関数はサポートされていません。
JavaScript 生成 sysLib.getMessage() 関数はサポートされていません。

フィードバック