PEXA Supportについて

PEXAプロパティ

トランスレータ

印刷フレームワーク

AETフレームワーク

ワークフロー

動的フォーム

変換フレームワーク

テンプレートエンジン

カレンダー

タスクスケジューラー

目次

  1. はじめに
  2. ファイルの格納場所
  3. セッションキー
  4. ワークフローイベント
  5. workflow_routeセクション
  6. conditionセクション
  7. requestセクション
  8. state_chartセクション
  9. feedbackセクション
  10. sendセクション
  11. 記述例


はじめに

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

承認ルートスキーマは、承認対象に適用される承認ルートそのものを定義するスキーマです。
承認ルートをどのような粒度で定義すべきは、ワークフローフレームワークでは定めていません。
基本的には以下の2通りの考え方があります。

  • 承認対象を基準にして対応するルートを作成する
  • 承認ルートを主として先に作成し後から承認対象をマッピングする
企業内における承認行為は、対象の伝票を軸に考えられている場合が多いので前者が該当しやすく、
役所内における承認行為は、法律によって承認内容が先に決まっていて、そこに個々の書類がマッチングされるような場合があり後者が該当しやすくなります。

このスキーマは、状態遷移表のような形で記述するようになっています。

  • 承認対象が申請された場合にどの承認ポイントに入るか?
  • ある承認ポイント上で承認された場合に次の遷移先となる承認ポイントがどこになるか?
を記述することで承認ルートの全体構成を記述します。

また、承認対象がルートを出入りすることでワークフローイベントが内部で発生します。
そのイベント発生時にフィードバックやモデルイベント送信などを行うように指定することができます。


ファイルの格納場所

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

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

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


セッションキー

後述の各セクションの条件判定式やフィードバック処理で、 以下のセッションキーで判定材料等に使用できるデータモデルを取得することができます。

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


ワークフローイベント

承認ルートに承認対象が出入することにより、ワークフローエンジン内部でワークフローイベントが発生します。
後述のfeedbackセクションやsendセクションで、このワークフローイベントにひもづける形でフィードバック処理やモデルイベント送信処理を指定することができます。

以下がワークフローイベントの一覧となります。

ワークフローイベント名 説明 ワークフロー操作 WF_RequestStatusCategoryの状態変化
REQUESTED 申請者が申請を行った時に発生するイベントです。 REQUEST NOT_REQUESTED --> REQUESTED
UNREQUESTED 申請者が申請を取り下げた時に発生するイベントです。 UNREQUEST REQUESTED --> NOT_REQUESTED
APPROVED 承認対象が決裁(最終承認)された時に発生するイベントです。 ACCEPT REQUESTED --> APPROVED
UNAPPROVED 承認対象の最終承認が取り消された時に発生するイベントです。 UNACCEPT APPROVED --> REQUESTED
REJECTED 承認対象が返却された時に発生するイベントです。 REJECT REQUESTED --> REJECTED
SUSPENDED 承認対象が保留された時に発生するイベントです。 SUSPEND REQUESTED --> SUSPENDED
UNSUSPENDED 承認対象が保留解除された時に発生するイベントです。 UNSUSPEND SUSPENDED --> REQUESTED


workflow_routeセクション

(workflow_route
    workflow_route_id宣言部(1)
    workflow_route_name宣言部(1)
    conditionセクション(0|1)
    requestセクション(1)
    state_chartセクション(1)
    feedbackセクション(0|1)
    sendセクション(0|1)
)

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

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


承認ルートスキーマのトップレベルのセクションです。
スキーマのIDと承認ルート名を記述して、詳細情報を各セクションに記述します。

workflow_route_id宣言部

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

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

形式:
Key・値

記述例:

    workflow_route_id    WRT_000001


workflow_route_name宣言部

承認ルートにつける名前を指定します。システム内でユニークである必要があります。
形式は自由なので、各プロジェクト毎に規則を決めてください。

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

形式:
Key・値

記述例:

    workflow_route_name    見積承認ルート



conditionセクション

(condition
    requestサブセクション(0|1)
    unapproveサブセクション(0|1)
)

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

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


承認ルートのエントランス条件を記述するセクションです。以下に関する前提条件を記述できます。

  • requestセクション:承認ルートに入ることができる(=申請できる)前提条件
  • unapproveセクション:承認ルートに戻ることができる(=最終承認取り消し)前提条件

requestサブセクション

承認ルートに入ることができる(=申請できる)前提条件を記述するセクションです。
判定条件はセッション条件式になります。承認対象データモデルやOperatorデータモデルなどを判定材料としてください。

このセクションの中身の記述形式は、サービスプロセスのbefore_conditionセクションと同じになります。 複数条件をリスト形式で列挙したり、エラー情報をメッセージではなくエラー番号で返すことなどがサービスプロセスと同じように可能です。

キー:
「request」(固定|オプショナル)

形式:条件が1つだけの場合

(condition
    (request
        filter   前提条件となるセッション条件式の指定。
        error    前提条件に違反した場合に呼び元に返すエラー情報の指定。
    )
)

形式:条件が複数ある場合

(condition
    [request
        filter   前提条件となるセッション条件式の指定。
        error    前提条件に違反した場合に呼び元に返すエラー情報の指定。
        ,
        filter   前提条件となるセッション条件式の指定。
        error    前提条件に違反した場合に呼び元に返すエラー情報の指定。
        ,
           :
           :
    ]
)


記述例:

(condition
    (request
        filter   ""
        error    ""
    )
)


unapprovedサブセクション

承認ルートに戻ることができる(=最終承認取り消しできる)前提条件を記述するセクションです。
判定条件はセッション条件式になります。承認対象データモデルやOperatorデータモデルなどを判定材料としてください。

このセクションの中身の記述形式は、サービスプロセスのbefore_conditionセクションと同じになります。 複数条件をリスト形式で列挙したり、エラー情報をメッセージではなくエラー番号で返すことなどがサービスプロセスと同じように可能です。

キー:
「unapproved」(固定|オプショナル)

形式:条件が1つだけの場合

(condition
    (unapproved
        filter   前提条件となるセッション条件式の指定。
        error    前提条件に違反した場合に呼び元に返すエラー情報の指定。
    )
)

形式:条件が複数ある場合

(condition
    [unapproved
        filter   前提条件となるセッション条件式の指定。
        error    前提条件に違反した場合に呼び元に返すエラー情報の指定。
        ,
        filter   前提条件となるセッション条件式の指定。
        error    前提条件に違反した場合に呼び元に返すエラー情報の指定。
        ,
           :
           :
    ]
)


記述例:

(condition
    (unapproved
        filter   ""
        error    ""
    )
)



requestセクション

(request
    state_matchingサブセクション(1)
)

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

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


承認対象が承認ルートに入る(=申請される)時の制御情報を記述するセクションです。

state_matchingサブセクション

承認対象が承認ルートに入る(=申請される)時に適用される初回承認ポイントのマッチング情報を記述するセクションです。

候補となる承認ポイントが一つしかない場合は、state宣言を1つだけ記述して指定できます。
候補となる承認ポイントが複数ある場合は、マッチング条件と一緒に列挙してください。
複数の場合は記述された条件を上から順に判定して、最初にマッチングした物が採用されます。もし最後の候補まで判定してもマッチングしなかった場合は実行時エラーとなります。

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

形式:初回承認ポイントが固定の場合

(request
    (state_matching
        state    対応する承認ポイント名。承認ルートスキーマのstate_chartセクションで宣言されている名前を指定。
    )
)

形式:承認ポイント候補が複数の場合

(request
    [state_matching
        filter   マッチング条件式の指定。セッション条件式となる。
        state    対応する承認ポイント名。承認ルートスキーマのstate_chartセクションで宣言されている名前を指定。
        ,
            :
            :
    ]
)


記述例:初回承認ポイントが固定で1つの場合

(request
    (state_matching
        state    部門長承認待ち
    )
)


記述例:承認ポイント候補が複数ある場合

(request
    [state_matching
        filter   "@WF_Target/見積金額合計 >= 10000000"
        state    "部門長承認待ち"
        ,
        filter   "@WF_Target/見積金額合計 < 10000000"
        state    "上長承認待ち"
    ]
)


記述例:複数ポイントとデフォルトポイント

(request
    [state_matching
        filter   "@WF_Target/見積金額合計 >= 10000000"
        state    "役員承認待ち"
        ,
        filter   "@WF_Target/見積金額合計 >= 5000000 and @WF_Target/見積金額合計 < 10000000"
        state    "部門長承認待ち"
        ,
        state    "上長承認待ち";;これがデフォルト承認ポイントになる
    ]
)



state_chartセクション

(state_chart
    (承認ポイントセクション(1以上)
        receiverサブセクション(0|1)
        receiver_groupサブセクション(0|1)
        operationサブセクション(1)
    )
)

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

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


承認ルート中の承認ポイントに関する情報を記述するセクションです。
承認ルート中に含まれる承認ポイントを列挙して、そこにぶら下げる形で以下の情報を記述します。

  • 承認対象を受け取る人に関する情報(=承認権限保持者の抽出情報)
  • 承認対象を受け取るグループに関する情報(=承認権限保持グループの抽出情報)
  • ワークフロー操作による状態遷移に関する情報
このセクションの内容全体が、承認ルートの状態遷移表となります。

receiverサブセクション

ある承認ポイントにおいて、承認対象を受け取ってワークフロー処理を行うべき人に関する情報を記述するセクションです。

このセクションはワークフロー操作のMATCHINGを呼び出した際にワークフローエンジンが参照する情報です。 この情報に従って承認権限の保持者リスト(Operatorデータモデルリスト)が抽出されて、WF_RequestデータモデルのWF_ExcpectedReceiverListにセットされます。

このセクションを記述しなかった場合は、MATCHING操作による承認権限保持者の抽出処理は行われません。

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

形式:標準の承認権限管理マスタを利用する場合

(receiver
    finder    common
    filter    マスタからの抽出結果に対する追加の絞込条件式(なければ省略)
)

形式:独自の承認権限管理を行う場合

(receiver
    finder    original
    (original
        service    呼び出しサービス名
        (return_keys
            WF_ExpectedReceiverList    呼び出したサービスが返す権限保持者リスト
        )
    )
)


記述例:標準の権限管理マスタを使用、追加条件無し

(経理承認待ち
    (receiver
        finder    common
    )
    (operation
        :
        :
    )
)


記述例:標準の権限管理マスタを使用、同じ所属部署で絞込

(部門長承認待ち
    (receiver
        finder    common
        filter    "@WF_Target/申請時部署No in @WF_Receiver/所属部署リスト/部署No"
    )
    (operation
        :
        :
    )
)


記述例:独自の権限保持者抽出処理を使用

(部門長承認待ち
    (receiver
        finder    original
        (original
            service    "SSR.WF.承認権限保持者を抽出する"
            (return_keys
                WF_ExpectedReceiverList    @OperatorList
            )
        )
    )
    (operation
        :
        :
    )
)


receiver_groupサブセクション

ある承認ポイントにおいて、承認対象を受け取ってワークフロー処理を行うべきグループに関する情報を記述するセクションです。

このセクションはワークフロー操作のMATCHINGを呼び出した際にワークフローエンジンが参照する情報です。 この情報に従って承認権限の保持者グループリスト(OperatorGroupデータモデルのリスト)が抽出されて、WF_RequestデータモデルのWF_ExcpectedReceiverGroupListにセットされます。

このセクションを記述しなかった場合は、MATCHING操作による承認権限保持者グループの抽出処理は行われません。

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

形式:標準の承認権限管理マスタを利用する場合

(receiver_group
    finder    common
    filter    マスタからの抽出結果に対する追加の絞込条件式(なければ省略)
)

形式:独自の承認権限管理を行う場合

(receiver_group
    finder    original
    (original
        service    呼び出しサービス名
        (return_keys
            WF_ExpectedReceiverGroupList    呼び出したサービスが返す権限保持者グループリスト
        )
    )
)


記述例:標準の権限管理マスタを使用、追加条件無し

(予算審議委員会承認待ち
    (receiver_group
        finder    common
    )
    (operation
        :
        :
    )
)


記述例:標準の権限管理マスタを使用、同じ所属部署で絞込

(予算審議委員会承認待ち
    (receiver_group
        finder    common
        filter    "@WF_Target/申請時部署No in @WF_ReceiverGroup/所属部署リスト/部署No"
    )
    (operation
        :
        :
    )
)


記述例:独自の権限保持者抽出処理を使用

(予算審議委員会承認待ち
    (receiver_group
        finder    original
        (original
            service    "SSR.WF.承認権限保持者グループを抽出する"
            (return_keys
                WF_ExpectedReceiverGroupList    @OperatorGroupList
            )
        )
    )
    (operation
        :
        :
    )
)


operationサブセクション

承認ポイント上で行われたワークフロー操作によって発生する状態遷移を記述するセクションです。
現状では、状態遷移が発生するワークフロー操作はACCEPTのみとなっています。

候補となる承認ポイントが一つしかない場合は、state宣言を1つだけ記述して指定できます。
候補となる承認ポイントが複数ある場合は、マッチング条件と一緒に列挙してください。
複数の場合は記述された条件を上から順に判定して、最初にマッチングした物が採用されます。もし最後の候補まで判定してもマッチングしなかった場合は実行時エラーとなります。

なお、最終承認(最後の承認ポイントでACCEPT)された場合の遷移先は固定で「APPROVED」と指定してください。
このAPPROVED状態に遷移することで、ワークフローの承認ルートを抜けたという扱いになります。

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

形式:

(operation
    (ACCEPT
        (state_matching
            state    遷移先の承認ポイント名。承認ルートスキーマのstate_chartセクションで宣言されている名前を指定。
        )
    )
)

形式:

(operation
    (ACCEPT
        [state_matching
            filter   マッチング条件式の指定。セッション条件式となる。
            state    遷移先承認ポイント名。承認ルートスキーマのstate_chartセクションで宣言されている名前を指定。
        ]
    )
)


記述例:遷移先の承認ポイントが固定の場合

(部門長承認待ち
    (operation
        (ACCEPT
            (state_matching
                state    経理承認待ち
            )
        )
    )
)


記述例:最終承認となる場合

(社長承認待ち
    (operation
        (ACCEPT
            (state_matching
                state    APPROVED
            )
        )
    )
)


記述例:遷移先の承認ポイント候補が複数ある場合

(経理承認待ち
    (operation
        (ACCEPT
            [state_matching
                filter    "@WF_Target/見積金額 >= 10000000"
                state     "社長承認待ち"
                ,
                filter    "@WF_Target/見積金額 >= 5000000 and @WF_Target/見積金額 < 10000000"
                state     "役員承認待ち"
                ,
                state     "APPROVED" ;;上記にあてはまらないならここで最終承認
            ]
        )
    )
)



feedbackセクション

(feedback
    (ワークフローイベントセクション(0以上)
        commit属性(0|1)
        mappingサブセクション(1)
        entryサブセクション(0|1)
    )
)

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

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


ワークフローイベントの発生タイミングで承認対象データモデルに行いたいフィードバック処理を記述するセクションです。
例えば以下のような使い方ができます。

  • 「見積」が承認ルートに入ったタイミング(REQUESTEDイベント発生時)で、「見積」のステータス項目を「申請済」に設定して中身を編集できなくする
  • 「発注依頼」が承認ルートを出たタイミング(APPROVEDイベント発生時)で、「発注依頼」のステータス項目を「最終承認済」に設定して発注業務に進めるようにする
また、承認対象データモデル本体だけでなく、その明細に対してのフィードバック処理も行うことが出来ます。
明細に対するフィードバック処理の内容はentryサブセクション配下で記述します。

commit属性

フィードバック処理時に承認対象データモデルをコミットするかどうかを指定します。
省略時はtrue(=コミットを行う)の扱いとなります。

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

形式:
Key・区分値

区分値:

true    コミットを行う(デフォルトはこちら)
false   コミットを行わない

記述例:

    commit    false


mappingサブセクション

承認対象データモデルに対して行うフィードバック処理の編集内容を指定します。

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

形式:
(mapping 承認対象データモデルが持つ現象型 設定値(固定値、セッション値、ディレクティブなど) 承認対象データモデルが持つ現象型 設定値(固定値、セッション値、ディレクティブなど) 承認対象データモデルが持つ現象型 設定値(固定値、セッション値、ディレクティブなど) : : )

記述例:

(feedback
    (APPROVED
        (mapping
            ワークフロー状態区分    最終承認済
            最終承認日時            &Now
            最終承認者              @WF_Operator/OperatorNo
        )
    )
)


entryサブセクション

承認対象データモデルの明細に対して行うフィードバック処理の編集内容を指定します。
明細の明細に対するフィードバックもネストして記述していくことで指定することが出来ます。

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

形式:

(entry
    (フィードバック対象となる明細を表す現象型名
        (mapping
            承認対象の明細データモデルが持つ現象型    設定値(固定値、セッション値、ディレクティブなど)
            承認対象の明細データモデルが持つ現象型    設定値(固定値、セッション値、ディレクティブなど)
            承認対象の明細データモデルが持つ現象型    設定値(固定値、セッション値、ディレクティブなど)
                 :
                 :
        )
        (entry
            (明細の明細を表す現象型名
                (mapping
                    明細の明細データモデルが持つ現象型    設定値(固定値、セッション値、ディレクティブなど)
                    明細の明細データモデルが持つ現象型    設定値(固定値、セッション値、ディレクティブなど)
                    明細の明細データモデルが持つ現象型    設定値(固定値、セッション値、ディレクティブなど)
                )
                (entry
                    (明細の明細の明細を表す現象型
                        :
                        :
                    )
                    (明細の明細の明細を表す現象型
                        :
                        :
                    )
                )
            )
            (明細の明細を表す現象型名
                :
                :
            )
        )
    )
    (フィードバック対象となる明細を表す現象型名
        :
        :
    )
    :
    :
)

記述例:

(feedback
    (APPROVED
        (mapping
            ワークフロー状態区分    最終承認済
            最終承認日時            &Now
            最終承認者              @WF_Operator/OperatorNo
        )
        (entry
            (見積List
                (mapping
                    見積状態    承認済
                )
                (entry
                    (見積明細List
                        (mapping
                            見積明細状態    承認済
                        )
                    )
                )
            )
        )
    )
)



sendセクション

(send
    (ワークフローイベントセクション(0以上)
        table_name宣言部(1)
        unsync属性(0|1)
        operation属性(0|1)
    )
)

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

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


ワークフローイベントの発生タイミングで送信したいモデルイベントを記述するセクションです。
例えば、「見積」が承認ルートを出たタイミング(APPROVEDイベント発生時)で、与信枠に関するAET処理を実行するモデルイベントを送信するといったことが可能です。

table_name宣言部

モデルイベント送信先のイベントテーブル名を指定します。

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

形式:
Key・値

記述例:

    table_name    見積モデルイベントテーブル


unsync属性

モデルイベント送信の同期・非同期を指定します。

同期送信すると、ワークフロー処理とモデルイベントによって実行される処理が同一トランザクション内で行われます。
非同期送信すると、モデルイベント側のトランザクションが別となるため待ちが発生せずにワークフロー処理に復帰します。
省略時はfalse(=同期送信)の扱いとなります。

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

形式:
Key・区分値

区分値:

true    非同期
false   同期(デフォルトはこちら)

記述例:

    unsync    true


operation属性

モデルイベントに設定されるModelOperationCategoryを指定します。
省略した場合、ワークフローイベントに対応した以下の区分値が自動的に設定されます。

基本は省略しつつ、実装上の都合で別の値にしたい場合に指定してください。
ここで指定できるのはServiceFrameworkのsendプロセスと同様です。

ワークフローイベント ModelOperationCategory
REQUESTED REQUEST
UNREQUESTED UNREQUEST
APPROVED ACCEPT
UNAPPROVED UNACCEPT
SUSPENDED SUSPEND
UNSUSPENDED UNSUSPEND
REJECTED REJECT

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

形式:
Key・区分値

区分値:
ServiceFrameworkのsendプロセスと同様。

記述例:

    operation    ACCEPT



記述例

;;---------------------------------------------------------------
;; Current-Module:   $HeadURL$
;; Release-Date:     $Date:: 2010-10-19 18:43:07 #$
;; Release-Version:  $Revision: 5488 $
;; First-Created-On: 2010/06/29
;; First-Created-By: morishita
;; Copy-Right-Owner: %Q%
;; ---------------------------------------------------------------
;; Description:
;; ---------------------------------------------------------------
(workflow_route
    workflow_route_id       "WRT_000001"
    workflow_route_name     "見積照査ルート"
    ;;--------------------------------------------
    ;; 条件
    ;;--------------------------------------------
    (condition
        ;;--------------------------------------------
        ;; 申請可能条件
        ;;--------------------------------------------
        (request
            filter      "@WF_Target/見積金額合計 is not null"
            error       "見積金額が無い見積は承認対象外です。"
        )
        ;;--------------------------------------------
        ;; 決裁取消可能条件
        ;;--------------------------------------------
        (unapprove
            filter      "@WF_Target/見積状態区分 = 未受注"
            error       "受注済の見積は最終承認取り消しできません。"
        )
    )
    ;;--------------------------------------------
    ;; 申請時の状態マッチング
    ;;--------------------------------------------
    (request
        [state_matching
            filter      "@WF_Target/見積金額合計 < 1000000"
            state       "部門長承認待ち"
            ,
            filter      "@WF_Target/見積金額合計 >= 1000000"
            state       "経理承認待ち"
        ]
    )
    ;;--------------------------------------------
    ;; 状態遷移表
    ;;--------------------------------------------
    (state_chart
        ;;--------------------------------------------
        ;; 部門長承認待ち
        ;;--------------------------------------------
        (部門長承認待ち
            (receiver
                finder  "common"
                filter  "@WF_Target/申請時部署No in @WF_Receiver/所属部署リスト/部署No"
            )
            (operation
                (ACCEPT
                    (state_matching
                        state   経理承認待ち
                    )
                )
            )
        )
        ;;--------------------------------------------
        ;; 経理承認待ち
        ;;--------------------------------------------
        (経理承認待ち
            (receiver
                finder  "common"
            )
            (operation
                (ACCEPT
                    (state_matching
                        state   役員承認待ち
                    )
                )
            )
        )
        ;;--------------------------------------------
        ;; 役員承認待ち
        ;;--------------------------------------------
        (役員承認待ち
            (receiver
                finder  "common"
            )
            (operation
                (ACCEPT
                    [state_matching
                        state       社長決済
                        filter      "@WF_Target/見積金額合計 >= 100000000"
                        ,
                        state       APPROVED
                        filter      "@WF_Target/見積金額合計 < 100000000"
                    ]
                )
            )
        )
        ;;--------------------------------------------
        ;; 社長決済待ち
        ;;--------------------------------------------
        (社長決済待ち
            (receiver
                finder  "common"
            )
            (operation
                (ACCEPT
                    (state_matching
                        state       APPROVED
                    )
                )
            )
        )
    )
    ;;--------------------------------------------
    ;; フィードバック
    ;;--------------------------------------------
    (feedback
        ;;--------------------------------------------
        ;; 申請(NOT_REQUESTED -> REQUESTED)
        ;;--------------------------------------------
        (REQUESTED
            (mapping
                ワークフロー状態区分    "申請中"
            )
        )
        ;;--------------------------------------------
        ;; 申請取下(REQUESTED -> NOT_REQUESTED)
        ;;--------------------------------------------
        (UNREQUESTED
            commit      true
            (mapping
                ワークフロー状態区分    "未申請"
            )
        )
        ;;--------------------------------------------
        ;; 最終承認(REQUESTED -> APPROVED)
        ;;--------------------------------------------
        (APPROVED
            commit  true
            (mapping
                ワークフロー状態区分    "決裁済"
                最終承認日時            &Now
                最終承認者              @WF_Operator/OperatorNo
            )
        )
        ;;--------------------------------------------
        ;; 最終承認取消(APPROVED -> REQUESTED)
        ;;--------------------------------------------
        (UNAPPROVED
            commit  true
            (mapping
                ワークフロー状態区分    "申請中"
            )
        )
        ;;--------------------------------------------
        ;; 返却(REQUESTED -> REJECTED)
        ;;--------------------------------------------
        (REJECTED
            commit  true
            (mapping
                ワークフロー状態区分    "返却済"
            )
        )
    )
    ;;--------------------------------------------
    ;; モデルイベント送信
    ;;--------------------------------------------
    (send
        ;;--------------------------------------------
        ;; 最終承認(REQUESTED -> APPROVED)
        ;;--------------------------------------------
        (APPROVED
            table_name  "見積イベントテーブル"
        )
        ;;--------------------------------------------
        ;; 最終承認取消(APPROVED -> REQUESTED)
        ;;--------------------------------------------
        (UNAPPROVED
            table_name  "見積イベントテーブル"
        )
        ;;--------------------------------------------
        ;; 返却(REQUESTED -> REJECTED)
        ;;--------------------------------------------
        (REJECTED
            table_name  "見積イベントテーブル"
        )
    )
)


更新情報

  • 最終更新者 : $Author: morishita $
  • 最終更新日時 : $Date:: 2010-10-19 18:43:07 #$
  • バージョン : $Revision: 5488 $



Copyright © 2006, Atrris Corporation