PEXA Clientについて

チュートリアル

定義パターン

定義ファイル

リファレンス

目次

  1. はじめに
  2. ErrorMessage定義の内容
  3. ErrorMessage制御機能
  4. identityセクション
  5. descriptionセクション
  6. localeセクション
  7. error-message-listセクション
  8. statusセクション
  9. ErrorMessage定義全体のサンプル


はじめに

このドキュメントは、PEXAクライアントフレームワークで使用するErrorMessage定義ファイルについて解説するものです。

ErrorMessage定義ファイルは、

  • PEXAエンジンの各種機能から送信されるエラー(RecoverableException, FatalException)
  • Serviceからの業務エラー(ServiceException)
などに含まれるエラーコードに対応するエラー表示メッセージを外部定義するためのXML形式の定義ファイルです。
ここで定義されたエラーメッセージは、ClientFrameworkのエラーハンドリング機能によってエラーダイアログ表示される際に使用されます。

定義ファイルの分割単位は任意です。メッセージレベル毎、システム内のドメイン毎など、プロジェクト毎に都合のいい形で分割して下さい。

ErrorMessage定義ファイルの内部は、いくつかのセクションに分かれています。
以下でErrorMessage定義ファイルの内容の概説およびそれぞれのセクションの詳細を解説していきます。


ErrorMessage定義の内容

ErrorMessage定義に含まれる情報には、主に以下の物があります。

ErrorMessageListの識別情報

ErrorMessageListはシステム内でユニークに特定できる必要があります。
そのために、ErrorMessageListを識別するためのIDや名称を必ず定義する必要があります。

詳細はidentityセクションを参照してください。


ErrorMessageListの適用ロケール情報

エラー表示メッセージの国際化対応を行うために、ErrorMessageListを適用するロケールを指定することが出来ます。
ここで特定のロケールを指定しておくと、実行時の環境にマッチングするErrorMessageListが自動的に適用されます。

詳しくはlocaleセクションを参照してください。


ErrorMessageListに含まれるErrorMessage一覧

ErrorMessageListには複数個のErrorMessageが含まれます。
個々のErrorMessageは対応するエラーコード、メッセージの内容とメッセージレベルがそれぞれ定義されます。

詳しくはerror-message-listセクションを参照してください。



ErrorMessage制御機能

ErrorMessage定義を使用することで、以下のようなエラー表示メッセージ制御を行うことが出来ます。

それぞれについて以下で説明します。

変数が埋め込まれた動的なエラー表示メッセージの取得

ClientFrameworkのエラーハンドリング機能で受信したエラーがServiceから送信された業務エラー(ServiceException)の場合、 エラーコードと一緒にエラー時Session値が格納されている場合があります。

そのような場合には変数付きのエラーメッセージと組み合わせることで動的なエラー表示メッセージを取得することが出来ます。
ServiceExceptionに含まれるエラー時Session値を変数部分と置き換えた結果が実際のエラー表示メッセージとなります。

変数はtextタグで囲まれた文字列の中に"${変数名}"という形式で記述してください。

記述例:変数付きのエラーメッセージ定義

<error-message code="12345" level="INFO">
    <text>変数Aの値は${変数A}です。</text>
    <text>変数Bの値は${変数B}です。</text>
</error-message>
上記のような指定をすると、ClientFrameworkのエラーハンドリング機能で受信したServiceExceptionのエラー時セッション値がそれぞれ
  • 変数A="あいうえお"
  • 変数B="かきくけこ"
の場合には取得される実際のメッセージは以下のようになります。

変数値反映後の取得メッセージ
  変数Aの値はあいうえおです。
  変数Bの値はかきくけこです。
また、変数変換を行う際にtranslatorを適用することができます。
区分値や日付などを表示文字列に変換する際にデフォルトトランスレータ以外を使用したい場合はerror-messageタグのtranslator属性で指定してください。


エラー表示メッセージの国際化対応

ErrorMessage定義には国際化対応機能があります。

Java言語のリソースファイルと同じような仕組みとなっており、特定のロケール(ja_JP, en_USなど)に対応したErrorMessage定義を 複数セット用意しておくことで、実行環境のロケールと照らし合わせて適合した定義ファイルが読み込まれる形となります。

ロケールは、lang属性とcountry属性の組み合わせで指定することになります。
lang属性は言語(日本語、英語など)を表し、country属性は国(日本、アメリカ、イギリスなど)を表します。

lang属性は必須ですが、countryは省略可能です。
countryを省略した場合は、実行時の環境におけるcountryがなんであれlanguageが一致すればその定義ファイルが適用されます。

構成例:日本語と英語に対応する場合(英語はcountry指定無し)

    src/client/error/ja_JP/CE_COMM_001_ja_JP.xml
    src/client/error/en/CE_COMM_001_en.xml
上記2ファイルでどちらも同じIDを持たせて、さらにlocaleタグで対応ロケールを指定する。

記述例:CE_COMM_001_ja_JP.xml
    <identity id="CE_COMM_001"/>
    <locale lang="ja" contry="JP"/>
    <error-message-list>
        <error-message code="12345" level="INFO">
            <text>検索結果が0件です。</text>
        </error-message>
    </error-message-list>
記述例:CE_COMM_001_en.xml
    <identity id="CE_COMM_001"/>
    <locale lang="en"/>
    <error-message-list>
        <error-message code="12345" level="INFO">
            <text>search result count is 0.</text>
        </error-message>
    </error-message-list>
上記のように日本語のファイルと英語対応のファイルを同一IDで2つ用意しておくことで、エラーコードが"12345"のExceptionをClientFrameworkの デフォルトエラーハンドリング機能が受信した際に表示されるエラーメッセージが自動的に実行環境のロケールに合わせた内容になります。

error-message参照によって実際に読み込まれるErrorMessage定義ファイルが、CM_COMM_001_ja_JP.xmlになるかそれともCM_COMM_001_en_US.xmlになるかは ClientFramework内部で自動的に判定されるので、error-message参照を記述する際には何も気にする必要はありません。

なお、localeタグが記述されていないErrorMessage定義は、デフォルトErrorMessage定義として扱われます。
あるエラーコードに対応するErrorMessage定義を参照した際に、実行環境のロケールに明示的に対応しているものが無い場合に最終的に適用されるものとなります。



identityセクション

記述例 :

<identity id="CE_COMM_Info" name="共通メッセージリスト"/>

説明 :
identityセクションは、ErrorMessageListの識別情報を記述するセクションです。
IDや名称を定義します。

属性値 :
identityタグの属性値は以下の通り。

属性値名 説明 形式 必須/非必須 参照記法可/不可
id システム内でユニークになるErrorMessageListの識別ID 文字列 必須 不可
name ErrorMessageListの名称。 文字列 非必須 不可


descriptionセクション

記述例 :

<description>
    システム全体で使用される共通メッセージのリストです。
</description>

説明 :
descriptionセクションは、ErrorMessageListの詳細説明を記述するセクションです。
フリーフォーマットで文章で記入してください。


localeセクション

記述例 :

<locale lang="ja" country="JP"/>
記述例 : 言語のみ指定
<locale lang="ja"/>

説明 :
localeセクションは、表示メッセージの国際化対応を行うためのセクションです。
適用されるべきロケールを明示的にここで指定しておくと、画面の実行環境のロケールと適合した場合にのみ使用されるErrorMessage定義になります。

このセクションの記述は任意です。もし記述されていない場合はデフォルトErrorMessage定義として扱われます。
これは、実行環境のロケール対応のErrorMessage定義が見つからない場合に適用される物です。

localeタグの属性値は以下の通りです。

属性値名 説明 形式 必須/非必須 参照記法可/不可
lang このメッセージ定義の適用言語圏を指定する。
ISO-639で定義される2桁の小文字で指定すること。
文字列 必須 不可
country このメッセージ定義の適用国を指定する。
ISO-3166で定義される2桁の大文字で指定すること。
省略可能。省略時は実行環境のcountryに関わらずlanguageが一致すれば適用される。
文字列 非必須 不可


error-message-listセクション

記述例 :

<error-message-list>
    <error-message code="102" level="ERROR">
        <text>システムエラーが発生しました。</text>
        <text>システム管理部にお問い合わせ下さい。</text>
    </error-message>
    <error-message code="145" level="INFO" translator="default">
        <text>${ItemName}が未入力です。</text>
    </error-message>
    <error-message code="300" level="INFO" translator="default">
        <text>未入力です。</text>
    </error-message>
<error-message-list>

説明 :
error-message-listセクションは、ErrorMessageListに含まれる個々のErrorMessageを宣言するセクションです。
子要素として、個々のメッセージを表すerror-messageタグを列挙します。

セクション内の子要素 :
error-message-listセクションの子要素として、以下のタグがあります。

error-messageタグ

個々のメッセージを定義するためのタグです。必要な分を複数個列挙してください。
error-messageタグの属性値は以下の通り。

属性値名 説明 形式 必須/非必須 参照記法可/不可
code メッセージが対応するエラーコード。全てのエラーメッセージ定義の中でユニークであること。 文字列 必須 不可
level メッセージレベルを定義する。以下のいずれかを指定すること。
  • BUG
  • INFO
  • WARNING
  • ERROR
BUG
INFO
WARNING
ERROR
必須 不可
translator メッセージに変数を埋め込んだ場合に、変数値を表示文字列に変換するためのトランスレータを指定します。
指定しない場合はデフォルトトランスレータが自動的に適用されます。
文字列 非必須 不可

error-messageタグの子要素として、textタグがあります。
このtextタグの開始タグと終了タグの間に挟んでメッセージ文字列を記述します。
メッセージを改行させたい場合は、textタグを複数個記述して下さい。

記述例 :

<error-message id="複数行未選択" level="情報">
    <text>処理対象の行が選択されていません。</text>
    <text>複数選択可能な項目はチェックボックスで指定してください。</text>
</error-message>
上記のように記述すると、画面上には
  処理対象の行が選択されていません。
  複数選択可能な項目はチェックボックスで指定してください。
と表示されます。

なお、この表示メッセージ中に変数を埋め込むことで、表示文字列をある程度動的に生成することが出来ます。
変数付きメッセージについてはこちらを参照してください。



statusセクション

記述例 :

<status>
    <author>$Author: morishita $</author>
    <datetime>$Date:: 2010-08-31 15:37:03 #$</datetime>
    <version>$Revision: 5317 $</version>
</status>

説明 :
ErrorMessage定義ファイルの編集情報を記述するセクションです。
バージョン管理システムの置換キーワードなどと連携して使用してください。

セクション内の子要素 : 以下の子要素があります。

authorタグ

タグの間にはさんで、ファイルの編集者を記述します。


datetimeタグ

タグの間にはさんで、ファイルの編集日時を記述します。


versionタグ

タグの間にはさんで、ファイルのバージョンを記述します。



ErrorMessage定義全体のサンプル

<?xml version="1.0" encoding="Windows-31j"?>
<!--
 - Copyright
 -->
<!DOCTYPE client-error-messagelist SYSTEM "../doctype/client-error-messagelist.dtd">
<!--==============================================================
 == Current-Module:   
 == Release-Date:     
 == Release-Version:  
 == First-Created-On: 
 == First-Created-By:
 == Copy-Right-Owner:
 ==============================================================-->
<client-error-messagelist>
<!--==============================================================
==  識別情報
===============================================================-->
    <identity id="CE_TEST_001"
              name="テストエラーメッセージリスト"/>
<!--==============================================================
==  詳細説明
===============================================================-->
    <description>
        例外中のエラーコードに対応するメッセージのリストです。
    </description>
<!--==============================================================
==  メッセージリストに含まれるメッセージの一覧
===============================================================-->
    <error-message-list>
        <error-message code="102" level="ERROR">
            <text>システムエラーが発生しました。</text>
            <text>システム管理部にお問い合わせ下さい。</text>
        </error-message>
        <error-message code="145" level="INFO" translator="default">
            <text>${ItemName}が未入力です。</text>
        </error-message>
        <error-message code="300" level="INFO" translator="default">
            <text>未入力です。</text>
        </error-message>
    </error-message-list>
<!--==============================================================
==  ファイル編集情報
===============================================================-->
    <status>
        <author>$Author: morishita $</author>
        <datetime>$Date:: 2010-08-31 15:37:03 #$</datetime>
        <version>$Revision: 5317 $</version>
    </status>
</client-error-messagelist>


更新情報

  • 最終更新者 : $Author: morishita $
  • 最終更新日時 : $Date:: 2010-08-31 15:37:03 #$
  • バージョン : $Revision: 5317 $



Copyright © 2006, Atrris Corporation