PEXA Clientについて

チュートリアル

定義パターン

定義ファイル

リファレンス

目次

  1. はじめに
  2. Statusパターンのサンプル画面イメージ
  3. StatusのContent定義サンプル
  4. StatusのContent定義解説
  5. Area定義サンプル
  6. Area定義解説


はじめに

このドキュメントは、定義パターン"Status(Info,List)"の内容について解説する物です。

Status(Info)パターンは、細かい情報表示を行う画面に現れる定義パターンです。
これは他の定義パターンと同じ画面内に同時に現れることが多いパターンでもあります。
例としては以下のようなものがあります。

  • Edit系のパターンと一緒に現れて、編集対象のデータモデルについての詳細情報を表示する
  • Login後の画面のフッター上に現れてログインユーザの情報を表示する
  • ステータスバーのような画面のフッター上に現れてメッセージ表示を行う
このパターンのContent定義には、画面に表示する項目や、表示する内容を取得するための検索系サービスの呼び出しが記述されます。

"status","info"のContent定義には、主に以下のような内容が記述されます。
  • Content(status, info)の基本的なitem定義
    • 表示情報が格納されているデータモデル
    • 画面に表示される詳細な出力項目
    • その他サービスに渡すパラメータ
  • Content(status, info)の基本的なaction定義
    • 表示情報を取得するサービスの呼び出し
以下で、画面イメージ及び定義ファイルのサンプルを元に内容を解説していきます。


Statusパターンのサンプル画面イメージ

Statusパターンをとる画面のサンプルとなる画面イメージです。



上記の画面イメージでは、情報の表示部(Status)と入力部(Edit)が同じ画面内に現れています。
このうち、情報の表示部をPEXAクライアントフレームワークではステレオタイプ"status"もしくは"info"のContentとして表現します。
この例のように、Statusパターンは画面内の一要素として現れることが多いパターンであると言えます。

ステレオタイプ"status"は、状態情報を表示するContentです。
データの状態情報、ログインユーザの状態、ステータスメッセージなどがあります。

ステレオタイプ"info"は、一般的な情報を表示するContentです。
データの詳細表示、システム部からのお知らせなどがあります。

これら二つのステレオタイプは、表示する情報の内容という観点から分けられていますが、実際の定義内容や動作については特に差はありません。


StatusのContent定義サンプル

<?xml version="1.0" encoding="Windows-31J"?>
<!--
 - Copyright
 -->
<!DOCTYPE client-content SYSTEM "../doctype/client-content.dtd">
<!--==============================================================
 == Current-Module:
 == Release-Date:
 == Release-Version:
 == First-Created-On:
 == First-Created-By:
 == Copy-Right-Owner:
 ==============================================================-->
<client-content>
<!--==============================================================
==  コンテントの属性値の宣言
===============================================================-->
    <identity id="CC_WKFL_117_01_Status"
              name="申請書の申請情報を表示する"
              stereotype="status"/>
<!--==============================================================
==  コンテントの詳細説明
===============================================================-->
    <description>
        申請書の申請情報を表示するStatusコンテントです。
    </description>
<!--==============================================================
==  リンクするSVOステートメントの宣言
===============================================================-->
    <reference-list>
        <statement ref="WKFL_117" process="申請履歴一覧を表示する"/>
    </reference-list>
<!--==============================================================
==  コンテントで参照する項目の宣言
===============================================================-->
        <item-list>
            <!-- =====================================================
            == データモデル(共通)
            ====================================================== -->
            <item id="ログイン利用者情報" access="hidden" type="model" scope="global"/>
            <item id="ログイン部門情報" access="hidden" type="models" scope="global"/>
            <item id="ログイン会社情報" access="hidden" type="model" scope="global"/>
            <!--======================================================
            == データモデル(固有)
            =======================================================-->
            <item id="申請情報" access="hidden" type="model">
                <description>
                    親AreaのContentから引き継いだ申請書データモデルです。
                </description>
            </item>
            <!--======================================================
            == 画面の入出力項目
            =======================================================-->
            <item id="ワークフロー状態種別" access="output" type="value">
                <load from="observable:申請情報/ワークフロー状態種別"/>
                <load from="ptype:ワークフロー状態種別/未申請"/>
                <description>
                    申請書の申請状態を表示する。申請書新規作成の場合、申請状態を『未申請』を表示します。
                </description>
            </item>
            <item id="ワークフロー直前承認日時" access="output" type="value">
                <load from="observable:申請情報/ワークフロー直前承認日時"/>
            </item>
            <item id="ワークフロー直前承認者コード" access="output" type="value">
                <valuetype implement="java.lang.String"/>
                <load from="observable:申請情報/ワークフロー直前承認者No/利用者コード"/>
            </item>
            <item id="ワークフロー直前承認者" access="output" type="value">
                <valuetype implement="java.lang.String"/>
                <load from="observable:申請情報/ワークフロー直前承認者No/利用者氏名"/>
            </item>
            <item id="ワークフロー申請コード" access="output" type="value"/>
            <item id="ワークフロー申請日時" access="output" type="value">
                <load from="observable:申請情報/ワークフロー申請日時"/>
            </item>
            <item id="会社名略称" access="output" type="value">
                <load from="observable:申請情報/会社No/会社名略称"/>
                <load from="observable:ログイン利用者情報/利用者デフォルト会社No/会社名略称"/>
            </item>
            <item id="会計部門名" access="output" type="value">
                <load from="observable:申請情報/会計部門No/会計部門名"/>
                <load from="observable:ログイン利用者情報/利用者デフォルト会計部門No/会計部門名"/>
            </item>
            <item id="ワークフロー申請者コード" access="output" type="value">
                <valuetype implement="java.lang.String"/>
                <load from="observable:申請情報/ワークフロー申請者No/利用者コード"/>
                <load from="observable:ログイン利用者情報/利用者コード"/>
            </item>
            <item id="ワークフロー申請者" access="output" type="value">
                <valuetype implement="java.lang.String"/>
                <load from="observable:申請情報/ワークフロー申請者No/利用者氏名"/>
                <load from="observable:ログイン利用者情報/利用者氏名"/>
            </item>
            <item id="ワークフロー申請カウント" access="output" type="value">
                <load from="observable:申請情報/ワークフロー申請カウント"/>
                <load from="0"/>
                <description>
                    申請回数を表示します。申請書新規作成の場合、申請回数『0』を表示します。
                </description>
            </item>
            <item id="ワークフロー印刷カウント" access="output" type="value">
                <load from="observable:申請情報/ワークフロー印刷カウント"/>
                <load from="0"/>
                <description>
                    印刷回数を表示する。申請書新規作成の場合、印刷回数『0』を表示します。
                </description>
            </item>
            <item id="ワークフロー申請コメント" access="output" type="value">
                <load from="observable:申請情報/ワークフロー申請コメント"/>
            </item>
        </item-list>
<!--==============================================================
==  コンテントアクション
===============================================================-->
    <action-list>
    </action-list>
<!--==============================================================
==  コンテントの遷移先リスト
==  (この情報はコンテントカタログ間の関連定義であり、実行時には参照されません)
===============================================================-->
    <transition-list>
    </transition-list>
<!--==============================================================
==  ファイル編集情報
===============================================================-->
    <status>
        <author></author>
        <datetime></datetime>
        <version></version>
    </status>
</client-content>


StatusのContent定義解説

StatusのContentは、基本的に以下のような機能を持ちます。

  • 画面が取り扱うデータモデルの取得(他Contentとの共有、サービス呼び出しなど)を行う
  • 画面に表示する詳細な項目を持つ
上記を実現するための記述内容をitem及びactionの定義内容としてそれぞれ解説します。

item定義

ステレオタイプ"status"のContentで定義されるitemには、主に以下のような項目があります。

  • 表示する内容を持つデータモデル
  • 画面で表示する項目


サンプルのContent定義では、データモデルとしては表示項目を持つデータモデルである"申請情報"と、 各サービスに渡すログインユーザ情報の"ログイン利用者情報"等が定義されています。

"申請書情報"は、同じ画面内に存在するEditのContentから引き渡される項目です。
Editパターンにも説明がありますのでそちらも参照してください。

<!-- =====================================================
== データモデル(共通)
====================================================== -->
<item id="ログイン利用者情報" access="hidden" type="model" scope="global"/>
<item id="ログイン部門情報" access="hidden" type="models" scope="global"/>
<item id="ログイン会社情報" access="hidden" type="model" scope="global"/>
<!--======================================================
== データモデル(固有)
=======================================================-->
<item id="申請情報" access="hidden" type="model">
    <description>
        親AreaのContentから引き継いだ申請書データモデルです。
    </description>
</item>


画面で表示する項目は、画面上に表示フィールドが用意されている分だけそのまま項目が定義されています。
それぞれの項目の値は、基本的にはloadタグを使用して"申請情報"から取得されるようになっています。 一部の項目は、loadタグを複数個記述して申請情報から値が取得できなかった場合にログイン利用者情報等から取得しているものがあります。

<!--======================================================
== 画面の入出力項目
=======================================================-->
<item id="ワークフロー状態種別" access="output" type="value">
    <load from="observable:申請情報/ワークフロー状態種別"/>
    <load from="ptype:ワークフロー状態種別/未申請"/>
    <description>
        申請書の申請状態を表示する。申請書新規作成の場合、申請状態を『未申請』を表示します。
    </description>
</item>
<item id="ワークフロー直前承認日時" access="output" type="value">
    <load from="observable:申請情報/ワークフロー直前承認日時"/>
</item>
<item id="ワークフロー直前承認者コード" access="output" type="value">
    <valuetype implement="java.lang.String"/>
    <load from="observable:申請情報/ワークフロー直前承認者No/利用者コード"/>
</item>
<item id="ワークフロー直前承認者" access="output" type="value">
    <valuetype implement="java.lang.String"/>
    <load from="observable:申請情報/ワークフロー直前承認者No/利用者氏名"/>
</item>
<item id="ワークフロー申請コード" access="output" type="value"/>
<item id="ワークフロー申請日時" access="output" type="value">
    <load from="observable:申請情報/ワークフロー申請日時"/>
</item>
<item id="会社名略称" access="output" type="value">
    <load from="observable:申請情報/会社No/会社名略称"/>
    <load from="observable:ログイン利用者情報/利用者デフォルト会社No/会社名略称"/>
</item>
<item id="会計部門名" access="output" type="value">
    <load from="observable:申請情報/会計部門No/会計部門名"/>
    <load from="observable:ログイン利用者情報/利用者デフォルト会計部門No/会計部門名"/>
</item>
<item id="ワークフロー申請者コード" access="output" type="value">
    <valuetype implement="java.lang.String"/>
    <load from="observable:申請情報/ワークフロー申請者No/利用者コード"/>
    <load from="observable:ログイン利用者情報/利用者コード"/>
</item>
<item id="ワークフロー申請者" access="output" type="value">
    <valuetype implement="java.lang.String"/>
    <load from="observable:申請情報/ワークフロー申請者No/利用者氏名"/>
    <load from="observable:ログイン利用者情報/利用者氏名"/>
</item>
<item id="ワークフロー申請カウント" access="output" type="value">
    <load from="observable:申請情報/ワークフロー申請カウント"/>
    <load from="0"/>
    <description>
        申請回数を表示します。申請書新規作成の場合、申請回数『0』を表示します。
    </description>
</item>
<item id="ワークフロー印刷カウント" access="output" type="value">
    <load from="observable:申請情報/ワークフロー印刷カウント"/>
    <load from="0"/>
    <description>
        印刷回数を表示する。申請書新規作成の場合、印刷回数『0』を表示します。
    </description>
</item>
<item id="ワークフロー申請コメント" access="output" type="value">
    <load from="observable:申請情報/ワークフロー申請コメント"/>
</item>


action定義

ステレオタイプ"status"のContentで定義されるactionには、主に以下のものがあります。

  • 画面が取り扱うデータモデルの取得を行うaction


サンプルのContente定義では、表示内容を持つデータモデルである"申請情報"は同じ画面内の 他のContentから引き渡される形になっています。そのため特にactionは定義されていません。

このような形ではなく、画面の起動タイミングで能動的に表示内容の取得を行う必要がある場合は、検索サービス等の呼び出しを行うactionを定義します。

記述例 :

<action id="表示情報検索">
    <doService id="情報を検索する">
        <inputServiceSession>
            <inputValue item="ログイン利用者情報"/>
            <inputValue item="ログイン会社情報"/>
            <inputValue item="ログイン部門情報"/>
        </inputServiceSession>
        <outputServiceSession>
            <outputValue item="申請情報"/>
        </outputServiceSession>
    </doService>
</action>



Area定義サンプル
<?xml version="1.0" encoding="Windows-31J"?>
<!--
 - Copyright
 -->
<!DOCTYPE client-area SYSTEM "../doctype/client-area.dtd">
<!--==============================================================
 == Current-Module:
 == Release-Date:
 == Release-Version:
 == First-Created-On:
 == First-Created-By:
 == Copy-Right-Owner:
 ==============================================================-->
<client-area>
    <!-- エリア属性値 -->
    <identity id="CA_COMM_001_01_ApplicantInfoInput"
              name="申請履歴エリア"/>

    <!-- 詳細説明 -->
    <description>共通で使用される申請情報を表示するエリアです。</description>
<!--==============================================================
  ==  参照するコンテンツの宣言
  ==============================================================-->
    <reference-list>
        <content ref="CC_WKFL_117_01_Status"/>
    </reference-list>
<!--==============================================================
  ==  表示レイアウト情報
  ==============================================================-->
    <layout ref="PanelLayout">
        <gui implement="imeg.client.view.rich.area.share.wkfl.COM_001_ApplicantInfoInputPanel"/>
    </layout>
<!--==============================================================
  ==  コンポーネントマッピング
  ==============================================================-->
    <component-mapping>
        <!-- ================================================= -->
        <!-- 申請情報Info                                      -->
        <!-- ================================================= -->
        <Label id="申請状態ラベル" text="content:CC_WKFL_117_01_Status/ワークフロー状態種別"/>
        <Label id="直前承認日時ラベル" text="content:CC_WKFL_117_01_Status/ワークフロー直前承認日時"/>
        <Label id="直前承認者コードラベル"
            text="content:CC_WKFL_117_01_Status/ワークフロー直前承認者コード"/>
        <Label id="直前承認者ラベル" text="content:CC_WKFL_117_01_Status/ワークフロー直前承認者"/>
        <Label id="申請コードラベル" text="content:CC_WKFL_117_01_Status/ワークフロー申請コード"/>
        <Label id="申請日時ラベル" text="content:CC_WKFL_117_01_Status/ワークフロー申請日時"/>
        <Label id="会社名略称ラベル" text="content:CC_WKFL_117_01_Status/会社名略称"/>
        <Label id="部門名ラベル" text="content:CC_WKFL_117_01_Status/会計部門名"/>
        <Label id="申請者コードラベル" text="content:CC_WKFL_117_01_Status/ワークフロー申請者コード"/>
        <Label id="申請者ラベル" text="content:CC_WKFL_117_01_Status/ワークフロー申請者"/>
        <Label id="申請回数ラベル" text="content:CC_WKFL_117_01_Status/ワークフロー申請カウント"/>
        <Label id="印刷回数ラベル" text="content:CC_WKFL_117_01_Status/ワークフロー印刷カウント"/>
        <TextArea id="コメントテキストエリア" text="content:CC_WKFL_117_01_Status/ワークフロー申請コメント"/>
        <LinkMenu id="申請履歴リンクメニュー" direction="horizontal"
            foreground="color:51,51,255">
            <MenuItem text="申請履歴" onClick="COMMAND[申請履歴参照]"/>
        </LinkMenu>
    </component-mapping>
<!--==============================================================
  ==  コマンド定義
  ==============================================================-->
    <command-list>
        <command id="申請履歴参照">
            <doTransition transit="申請履歴画面をポップアップする"/>
        </command>
    </command-list>
<!--==============================================================
  ==  ファイル編集情報
  ==============================================================-->
    <status>
        <author></author>
        <datetime></datetime>
        <version></version>
    </status>
</client-area>


Area定義解説

Statusパターンが含まれる画面のArea定義では、statusのContentで定義した表示項目となる各itemと表示フィールドとなる各コンポーネントとのマッピングや、 ボタン等の押下時のaction呼び出しをcommandに記述する必要があります。

component-mapping定義

サンプルのArea定義では、各コンポーネントとContentは以下のようにマッピングされています。

  • Status Content : 各表示フィールドと申請履歴リンクメニュー
各表示フィールドは、Contentの各itemとそのままマッピングされています。
"申請履歴リンクメニュー"は、申請履歴を表示する画面をポップアップさせるコマンドとリンクしています。
<!-- ================================================= -->
<!-- 申請情報Info                                      -->
<!-- ================================================= -->
<Label id="申請状態ラベル" text="content:CC_WKFL_117_01_Status/ワークフロー状態種別"/>
<Label id="直前承認日時ラベル" text="content:CC_WKFL_117_01_Status/ワークフロー直前承認日時"/>
<Label id="直前承認者コードラベル"
    text="content:CC_WKFL_117_01_Status/ワークフロー直前承認者コード"/>
<Label id="直前承認者ラベル" text="content:CC_WKFL_117_01_Status/ワークフロー直前承認者"/>
<Label id="申請コードラベル" text="content:CC_WKFL_117_01_Status/ワークフロー申請コード"/>
<Label id="申請日時ラベル" text="content:CC_WKFL_117_01_Status/ワークフロー申請日時"/>
<Label id="会社名略称ラベル" text="content:CC_WKFL_117_01_Status/会社名略称"/>
<Label id="部門名ラベル" text="content:CC_WKFL_117_01_Status/会計部門名"/>
<Label id="申請者コードラベル" text="content:CC_WKFL_117_01_Status/ワークフロー申請者コード"/>
<Label id="申請者ラベル" text="content:CC_WKFL_117_01_Status/ワークフロー申請者"/>
<Label id="申請回数ラベル" text="content:CC_WKFL_117_01_Status/ワークフロー申請カウント"/>
<Label id="印刷回数ラベル" text="content:CC_WKFL_117_01_Status/ワークフロー印刷カウント"/>
<TextArea id="コメントテキストエリア" text="content:CC_WKFL_117_01_Status/ワークフロー申請コメント"/>
<LinkMenu id="申請履歴リンクメニュー" direction="horizontal"
    foreground="color:51,51,255">
    <MenuItem text="申請履歴" onClick="COMMAND[申請履歴参照]"/>
</LinkMenu>


command定義

Statusパターンの画面では、基本的に以下の場合の処理をcommandで定義します。

  • 画面に表示する情報を取得するための初期化処理
  • 実行ボタンが押された際の処理


サンプルのArea定義では、リンクがクリックされた際に実行される"申請履歴参照"commandが定義されています。
これは、申請履歴を参照するための別画面をポップアップさせています。

<command id="申請履歴参照">
    <doTransition transit="申請履歴画面をポップアップする"/>
</command>
この例では、表示情報は別のContentから引き渡される形で取得しているので、特に初期化コマンド等は定義していません。
このような形ではなく、自身の起動タイミングで情報の取得を行う必要がある場合はやはりINITコマンドを定義してその処理を行う必要があります。

記述例 :
<command id="INIT">
    <doAction content="CC_WKFL_117_01_Status" action="表示情報検索"/>
</command>



更新情報

  • 最終更新者 : $Author: morishita $
  • 最終更新日時 : $Date:: 2008-08-29 22:48:31 #$
  • バージョン : $Revision: 2282 $



Copyright © 2006, Atrris Corporation