setError()

sysLib.setError() システム関数は、以下の複数の候補となるコンテナーのいずれかとメッセージを関連付けます。

sysLib.setError() には、以下のコンテナーを使用できます。
メッセージが配置されるロケーションは、変わることがあります。

関連する Web ページが表示されたときに、メッセージが表示されます。

検証機能が sysLib.setError() を呼び出した場合、この機能の終了時に Web ページが自動的に再表示されます。

『構文』で示されている関数の 3 つのシグニチャーのうち最初のシグニチャーは、JSF ハンドラーと VGWebTransaction プログラムのいずれでも有効ですが、2 つ目と 3 つ目は JSF ハンドラーでのみ有効です。

複数のメッセージを 1 つのフィールドまたは JSF ハンドラーと関連付けることができます。 JSF ハンドラーが forward ステートメントを実行するか、VGWebTransaction プログラムが transfer ステートメントまたは show ステートメントを実行すると、メッセージは失われます。

JSF ハンドラー の onPostRenderFunction プロパティーで指定される関数では、sysLib.setError() を使用できますが、onPostRenderFunction プロパティーまたは onConstructionFunction プロパティーで指定される関数では使用できません。

構文

  sysLib.setError(
    fieldInError anyPageVariable in,
    msgKey STRING in
    [, msgInsert STRING in])
  sysLib.setError(
    this enumerationThis in,
    msgKey STRING in
    {, msgInsert STRING in})
  sysLib.setError(msgText STRING in)
fieldInError
sysLib.setError() が JSF ハンドラーから発行されている場合、fieldInError は、Web ページ上のコンポーネントにバインドされる JSF ハンドラーの変数です。

sysLib.setError が VGWebTransaction プログラムから発行されている場合、fieldInError は、show ステートメントまたは converse ステートメントで指定されている VGUI レコード内か、プログラムの inputUIRecord 内のフィールドです。

this
sysLib.setError() 呼び出しを発行する JSF ハンドラーを参照します。 この場合、メッセージはフィールド固有ではなく、JSF ハンドラーそのものに関連付けられます。 this について詳しくは、「this」キーワードを参照してください。
msgKey
STRING 型との代入互換性のある任意の変数または式を入力できます (EGL における代入の互換性を参照)。 msgKey は、実行時に使用されるメッセージ・リソース・バンドルまたはプロパティー・ファイルにキーを指定します。 キーがブランクの場合、メッセージはすべてのメッセージを連結したものとなります。
msgInsert
STRING 型との代入互換性のある任意の変数または式を入力できます (EGL における代入の互換性を参照)。 msgInsert は、出力メッセージに挿入されます。 メッセージ・テキスト内の置換シンボルは、次の例のような中括弧で囲まれた整数です。
  Invalid file name {0}
挿入の配列を使用する sysLib.getMessage() と異なり、sysLib.setError() では、単一の msgInsert ストリングのみを使用できます。
msgText
STRING 型との代入互換性のある任意の変数または式を入力できます (EGL における代入の互換性を参照)。 これは、Web ページと関連付けられたメッセージのテキストです。

次の例は、メッセージ・ファイル 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. 互換性に関する考慮事項
プラットフォーム 問題
JavaScript 生成 関数 sysLib.setError() はサポートされていません。
JSF ハンドラー msgTable 型の DataTable でのメッセージの挿入がサポートされています。最初の挿入は {0} です。
Web トランザクション msgTable 型の DataTable でのメッセージの挿入がサポートされています。最初の挿入は {1} です。

フィードバック