PEXA Supportについて

PEXAプロパティ

トランスレータ

印刷フレームワーク

AETフレームワーク

ワークフロー

動的フォーム

変換フレームワーク

テンプレートエンジン

カレンダー

タスクスケジューラー

目次

  1. はじめに
  2. ファイルの格納場所
  3. セッションキー
  4. workflow_targetセクション
  5. requestセクション
  6. 記述例


はじめに

このドキュメントは、ワークフローフレームワークの承認対象スキーマについて解説する物です。

承認対象スキーマは、承認対象となるデータモデルに、どの承認ルートが適用されるかを定義するスキーマです。
承認対象となるデータモデル1つに対して1スキーマ作成します。

承認対象と適用ルートの関係は以下の3通りがあります。

  • 固定的に特定のルートが必ず適用される
  • 適用候補のルートが複数あり、承認対象の内容によってどれか一つに決まる
  • 適用候補のルートが複数あり、承認対象の内容によって複数決まる
このスキーマでは上記の3通りのケースに対応できるようになっています。
また、適用結果が見つからなかったり、適用結果が1つになることを期待しているのに複数になったりした場合にエラーとするか無視するか等指定できます。


ファイルの格納場所

承認対象スキーマはワークスペースの以下のフォルダに格納してください。

  /src/workflow/target
上記にサブフォルダを作成してもかまいません。
ファイルの拡張子は".wtg"です。フォルダパスと併せて以下のようになります。

格納例:
  /src/workflow/target/見積.wtg
拡張子以外に、ファイル名の制約はありません。命名規則は個別に決めてください。


セッションキー

後述のroute_matchingセクションの判定条件式で、 以下のセッションキーで判定材料となるデータモデルを取得することができます。

セッションキー名 説明
WF_Target 承認対象のデータモデルを取得することができるセッションキーです。
WF_Operator 操作者を表すOperatorデータモデルを取得することができるセッションキーです。


workflow_targetセクション

(workflow_target
    workflow_target_id宣言部(1)
    workflow_target_name宣言部(1)
    requestセクション(1)
)

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

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


承認対象スキーマのトップレベルのセクションです。
スキーマのIDと承認対象モデル名を記述して、さらに承認ルートとのマッチング情報を記述します。

workflow_target_id宣言部

承認対象スキーマの識別IDを指定します。システム内でユニークである必要があります。
IDフォーマットは自由なので、各プロジェクト毎に規則を決めてください。

キー:
「workflow_target_id」(固定|必須)

形式:
Key・値

記述例:

    workflow_target_id    WTG_000001


workflow_target_name宣言部

承認対象となるデータモデルの名前を指定します。
承認対象データモデルとこのスキーマは1対1の対応関係になりますので、 1システム内で同じデータモデルに対するスキーマを複数作成することはできません。

キー:
「workflow_target_name」(固定|必須)

形式:
Key・値

記述例:

    workflow_target_name    見積



requestセクション

(request
    [route_matchingセクション
        filter宣言部(0|1)
        route宣言部(1)
        ,
        filter宣言部(0|1)
        route宣言部(1)
        ,
        :
        :
    ]
    unique属性(0|1)
    no_found_ignore属性(0|1)
)

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

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


承認対象となるデータモデルと承認ルートとのマッチング情報を記述するセクションです。
候補となる承認ルートが複数存在する場合は、マッチング条件をつけて記述することでワークフローエンジンが実行時に選別します。 このときのマッチング条件は、セッション条件式となります。承認対象データモデルやOperatorデータモデルなどを判定材料としてください。

なお、ワークフローエンジンによる条件判定の結果としてマッチングしたルートが複数になるような定義も可能です。
その場合、ワークフロー操作のMATCHINGを実行したときの戻り値がWF_Requestのリストになります。

マッチングしたルートが必ず1つになってほしい場合はunique属性でtrueを指定します。この場合に複数ルートがマッチングしたら実行時エラーとなります。

また、マッチングしたルートが0になった場合はデフォルト動作では実行時エラーとなりますが、no_found_ignore属性でtrueを指定するとMATCHING実行時にエラーとせずにnullを返すようになります。

route_matchingセクション

承認ルートとのマッチング条件と対応する承認ルート名を記述するセクションです。

候補となる承認ルートが一つしかない場合は、route宣言を1つだけ記述して指定できます。
候補となる承認ルートが複数ある場合は、マッチング条件と一緒に列挙してください。

キー:
「route_matching」(固定|必須)

形式:ルートが固定の場合

(route_matching
    route    対応する承認ルート名。承認ルートスキーマのworkflow_route_nameで宣言されている名前を指定。
)

形式:ルート候補が複数の場合

[route_matching
    filter   マッチング条件式の指定。セッション条件式となる。
    route    対応する承認ルート名。承認ルートスキーマのworkflow_route_nameで宣言されている名前を指定。
    ,
        :
        :
]


記述例:ルートが固定で1つの場合

(route_matching
    route    見積承認ルート
)


記述例:ルートが複数ある場合

[route_matching
    filter   "@WF_Target/見積金額合計 >= 10000000"
    route    "見積承認ルート1"
    ,
    filter   "@WF_Target/見積金額合計 < 10000000"
    route    "見積承認ルート2"
]


記述例:複数ルートとデフォルトルート

[route_matching
    filter   "@WF_Target/見積金額合計 >= 10000000"
    route    "見積承認ルート1"
    ,
    filter   "@WF_Target/見積金額合計 > 5000000 and @WF_Target/見積金額合計 < 10000000"
    route    "見積承認ルート2"
    ,
    route    "見積承認ルート3";;これがデフォルトルートになる
]


unique属性

承認ルートマッチングの結果が1つに特定されるべきかを指定するフラグです。
省略時はデフォルトでtrueの扱いになります。

unique=trueの場合に、ワークフロー操作のMATCHINGの実行結果が複数となった場合は実行時エラーとなります。

キー:
「unique」(固定|必須)

形式:
Key・値

区分値:

  • true:マッチング結果は1つとみなす(デフォルト)
  • false:マッチング結果が複数でも許容する

記述例:

    unique    false


no_found_ignore属性

承認ルートマッチングの結果が0の場合に実行時エラーとするかの指定です。
省略時はデフォルトでfalseの扱いになります。

no_found_ignore=trueの場合は、ワークフロー操作のMATCHINGの実行結果が0の場合はエラーとならずnullが返ります。

キー:
「no_found_ignore」(固定|必須)

形式:
Key・値

区分値:

  • true:マッチング結果が0の場合でも実行時エラーとせずnullとなる
  • false:マッチング結果が0の場合は実行時エラーとなる(デフォルト)

記述例:

    no_found_ignore    true



記述例

;;---------------------------------------------------------------
;; Current-Module:   $HeadURL: http://pexa.atrris.com/repos/trunk/readme.txt $
;; Release-Date:     $Date:: 2010-05-25 11:48:50 #$
;; Release-Version:  $Revision: 5054 $
;; First-Created-On: 2010/06/29
;; First-Created-By: morishita
;; Copy-Right-Owner: %Q%
;; ---------------------------------------------------------------
;; Description:
;; ---------------------------------------------------------------
(workflow_target
    workflow_target_id      "WTG_000001"
    workflow_target_name    "見積"
    ;;--------------------------------------------
    ;; 申請
    ;;--------------------------------------------
    (request
        [route_matching
            filter      "@WF_Target/見積合計金額 >= 100000000"
            route       "見積承認ルート1"
            ,
            filter      "@WF_Target/見積合計金額 >= 50000000 and @WF_Target/見積合計金額 < 100000000"
            route       "見積承認ルート2"
            ,
            route       "見積承認ルート3"
        ]
        unique                  "true"
        no_found_ignore         "false"
    )
)


更新情報

  • 最終更新者 : $Author: morishita $
  • 最終更新日時 : $Date:: 2010-09-06 13:50:30 #$
  • バージョン : $Revision: 5329 $



Copyright © 2006, Atrris Corporation