PEXA Serviceについて

チュートリアル

テストツール

定義ファイル

基本プロセス

拡張プロセス

Condition

セッション

モデル

リファレンス

環境設定

mappingプロセス概要

データモデルを生成、編集、コミットするためのプロセスです。

モデル定義によって定義されているデータモデルをServiceSession上に新規生成したり、 ServiceSession上のモデルに対して値を設定したり、 ServiceSession上のモデルの内容をDBにコミットしたりすることが出来ます。

生成、編集、コミットは組み合わせて一度に行うことも可能です。
生成しつつ編集したり、編集しつつコミットしたり、生成して編集してコミットすることも出来ます。


mappingフォーマットタイプ書式
(プロセス名
    format_type mapping
    (mapping
        create属性(0|1)
        commit属性(0|1)
        trim_removed_entry属性(0|1)
        check_version_number属性(0|1)
        操作対象モデルServiceSesionキーセクション(1以上)
    )
)

記述注:
    属性        あらかじめ決められた値を選択する(true/falseなど)
    宣言部      値または、値のリストを設定する
    セクション  入れ子で他の属性、宣言部、セクションを保持する可能性がある
                (値又は、値のリストが設定される場合もある)

    (1):必須
    (0|1):オプション
    (1以上):一個以上必須
    (0以上):0個以上(オプション)
create属性

概要:
操作対象モデルのServiceSession名の値がnullの場合、モデル(モデル名が指定されなかった場合はUpdatable)を生成するか否かを選択する。
存在する場合も"force"のときは、Updatableが生成され、存在する場合は、上書きされる。
create属性が存在しない場合は、作成する("true")が指定されたと見なされる。
create属性に"true,force"が指定されないで、ServiceSessoinキーに対応する値がnullの場合何も処理が行われない。

キー:
「create](固定|オプション)

形式:
Key・値

区分値:
true/false デフォルトは"true"

  • true:ServiceSessionキーに対応する値がnullの場合モデル(モデル名が指定されていな場合Updatable)を生成する
  • false:ServiceSessionキーに対応する値がnullの場合何もしない
  • force:ServiceSessionキーに対応する値の有無にかかわらず、新規のUpdatableを生成する。

記述:

    create  true
    create  false
    create  force

!!!注意!!!
create属性は"true"と"force"はほとんど同じ動作に見えますが、使い方を間違えると予期しない動作をします。
特に気をつける必要があるのはiteratorプロセス内でモデルを生成しようとした場合です。

ループの1回目の場合は、ServiceSessionキーの指定セクションで指定した値は存在していないのでモデルがcreateされますが、 ループの2回目になると既に同じキーで1回目のモデルがメモリ上に存在するために、もし"create true"の指定をしていると データモデルが新しく作成されることはありません。これは当然ループが終了するまでかわりません。

もしループの内部でモデルをループの件数分だけcreateしたい場合は、以下のどちらかの方法をとってください。

  • createオプションでforceを指定する
  • ループ内部のmappingプロセスの前で、あらかじめ対象のセッション値をクリアしておく


commit属性

概要:
mapping処理後、その内容をDBに保存するか否かを指定する。
commit属性が指定された無かった場合は、commitする("true")が指定された物と見なされる。

キー:
「commit](固定|オプション)

形式:
Key・値

区分値:
true/false デフォルトは"true"

  • true:mapping処理後、commitを行う
  • false:mapping処理後、commitを行わない

記述:

    commit  true
    commit  false


trim_removed_entry属性

概要:
コミット処理後、RemovedFlag=REMOVEDにされた明細モデルをメモリ上から除外するか否かの指定。
commit属性でtrueが指定されている場合に有効。
trim_removed_entry属性が指定された無かった場合は、trimする("true")が指定された物と見なされる。

キー:
「trim_removed_entry](固定|オプション)

形式:
Key・値

区分値:
true/false デフォルトは"true"

  • true:コミット処理後、削除された明細のトリムを行う
  • false:コミット処理後、削除された明細のトリムを行わない

記述:

    trim_removed_entry  true
    trim_removed_entry  false

デフォルト設定の変更:
/src/plugins/pexa_plugins.entryで、全体に適用されるデフォルト値を変更することができます。

記述例

;;---------------------------------------------------------------
;; Model Mapping Option
;;---------------------------------------------------------------
trim_removed_entry  false


check_version_number属性

概要:
コミット処理時に、バージョン番号チェックを行うか否かの指定。
commit属性でtrueが指定されている場合に有効。
check_version_number属性が指定された無かった場合は、バージョン番号チェックする("true")が指定された物と見なされる。

!!!注意!!!
この属性でfalse指定することは原則禁止です。
バージョン番号チェックを行わないというのは楽観的ロックすらせずにDBデータ操作を行うことになるので、複数ユーザーによる同時操作時のデータ整合性に保証が無くなります。

キー:
「check_version_number](固定|オプション)

形式:
Key・値

区分値:
true/false デフォルトは"true"

  • true:コミット処理時にバージョン番号チェックを行う。
  • false:コミット処理時にバージョン番号チェックを行わない。

記述:

    check_version_number  true
    check_version_number  false

デフォルト設定の変更:
/src/plugins/pexa_plugins.entryで、全体に適用されるデフォルト値を変更することができます。

記述例

;;---------------------------------------------------------------
;; Model Mapping Option
;;---------------------------------------------------------------
check_version_number  true


操作対象モデルServiceSesionキーセクション

概要:
セクション名の部分に操作対象モデルを格納する(あるは現在格納されている)「セッションキー」を指定します。
また、対象がモデル定義を持つモデルの場合はコロン区切りでその右側に「モデル名」を指定します。

セクション内には、左辺に編集対象モデルの「現象型名」、右辺に設定値の指定を記述します。
設定値の指定はセッション値書式を使用できます。

書式:

(@モデルセッションキー:モデル名
    現象型A     セッション値書式
    現象型B     セッション値書式
    現象型C     セッション値書式
      :
      :
      :
)



記述例

;--------------------------------------------------------
; 操作ログモデルを生成
;--------------------------------------------------------
(操作ログモデルを登録する
    format_type mapping
    (mapping
        commit  true
        create  force
        (@操作ログ:OperationLog
            PatientNo               @PEXA_ModelEventModel/PatientNo
            ;;OperationModelID      ""
            OperationModelName      @PEXA_ModelEventModel/EntityName
            ModelOperationCategory  @PEXA_ModelEventOperationCategory
            Operator                @PEXA_ModelEventModel/LastUpdator
            OperationDatetime       @PEXA_ModelEventModel/LastUpdateDatetime
            Creator                 @PEXA_ModelEventModel/LastUpdator
            CreateDate              @現在日付
            CreateDatetime          @現在時刻
            LastUpdator             @PEXA_ModelEventModel/LastUpdator
            LastUpdateDatetime      @現在時刻
        )
    )
)


更新情報

  • 最終更新者 : $Author: morishita $
  • 最終更新日時 : $Date:: 2010-08-05 14:20:11 #$
  • バージョン : $Revision: 5263 $



Copyright © 2006, Atrris Corporation