サンプルアプリケーション

目次

基本仕様
概要

申請ワークフローを紙ベースの管理から電子化することにより、 業務の効率化を目指すアプリケーションです。

以下に、機能の一覧を示します。

機能 提供するサービス
認証 ログイン
ログアウト
申請 申請可能申請種別一覧表示
申請内容入力
申請
キャンセル
中断
申請の再開 入力待ち申請の再開
同報 表示
確認
承認状況表示 表示
申請内容確認 表示
承認 承認
差し戻し
否認
組織図と組織コード

サンプルアプリケーションでは、以下の組織図を想定しています。

組織図

組織コードは以下の通りです。

組織名称組織コード
全社Z000
企画営業部E100
企画営業部 1課E110
企画営業部 2課E120
人事部J100
人事部 人事課J110
ロール一覧とロール割当

サンプルアプリケーションで使用するロール一覧を示します。

ロール名種類備考
企画営業部ロール組織企画営業部の組織のロール
人事部ロール組織人事部の組織のロール
人事部長ロール個人人事部部長個人に付与するロール
人事課長ロール個人人事部人事課課長個人に付与するロール
部長ロール個人部長個人に付与するロール
課長ロール個人課長個人に付与するロール
一般社員ロール個人部長・課長以外の社員に付与するロール

以下の部署・職位のユーザに割り当てられるロールについて示します。


企画営業部 人事部
部長 課長 一般社員 部長 人事課課長 一般社員
企画営業部ロール


人事部ロール


人事部長ロール




人事課長ロール




部長ロール



課長ロール



一般社員ロール



機能概要

仕様
  • ユーザは、ユーザIDとパスワードを入力し、ログイン処理を指示する。
  • システムは、入力されたユーザIDとパスワードでログイン処理を行い、認証に成功した場合は、ログイン完了画面を表示する。
  • 認証に失敗した場合は、失敗した旨を表示し、ログイン画面を表示する。
仕様
  • ユーザが、申請種別一覧を取得すると、その時点でユーザが申請可能な申請種別の一覧が表示される。
  • 申請種別一覧に表示された申請種別を選択することで、各申請種別の申請内容の入力が行えるようになる。
  • 申請書には、自動で申請書番号、申請者所属、氏名、社員番号が記入される。
  • 申請内容入力中に、申請のキャンセルが行える。
  • 申請内容の入力中で、入力を中断した申請は、申請内容入力待ち状態になる。
  • 申請内容の入力完了後、入力した内容を確認できる。
  • 申請された申請書は、申請フローに従い次の承認者の承認待ち状態になる。
仕様
  • ユーザが、差し戻し/申請途中 申請一覧を取得すると、その時点でユーザの申請内容入力待ちの申請書一覧が表示される。
  • ユーザは一覧表示された申請書を選択して、その申請書個別の入力を再開することができる。
  • 申請入力画面表示以降の処理は、申請処理と同様とする。
仕様
  • ユーザが、同報確認待ち申請書一覧を取得すると、その時点でユーザの確認待ちの申請書一覧が表示される。
  • ユーザは一覧表示された申請書を選択して、その申請書個別の内容を確認することができる。
  • ユーザが申請書の内容を確認すると、システムは同報確認処理を行う。
仕様
  • ユーザが、承認状況一覧を取得すると、その時点で最終承認が完了していない(承認途中の)申請書が一覧で表示される。
仕様
  • 申請書の一覧から、ユーザが申請内容を確認したい申請を選択すると、その申請書個別の内容と、承認状況が表示される。
仕様
  • ユーザが承認待ち申請書の一覧を取得すると、そのユーザが承認できる申請書が一覧で表示される。
  • ユーザは一覧表示された申請書を選択して、その申請書個別の内容を確認することができる。
  • 承認者は、承認または否認または差し戻しを行える。
  • 承認者に承認された申請書は、次の承認者の承認待ち状態になる。次の承認者が存在しない場合は、申請は最終承認となる。
  • 最終承認された申請書は、完了となる。
  • 承認者に否認された申請書は、完了となる。
  • 承認者が差し戻しした申請は、申請者の申請内容入力待ちとなる。
申請種別

サンプルアプリケーションでは、下記の申請種別を想定しています。

  • 時間外労働申請ワークフロー
時間外労働申請

申請フロー図

時間外労働申請フロー図

仕様

  • 時間外労働申請は、一般社員のみ申請可能。
  • 第一承認者は、原則として申請者の上長とする。
  • 第二承認者は、原則として申請者の所属する部署の部長とする。
  • 最終承認者は、原則として人事部の担当者とする。
  • 最終承認者は、申請者が過残業となっていないか、また代休取得などの対策がとられているかを確認する。

入力項目

時間外労働申請の入力項目として、以下の項目を定義します。
  • 勤務対象日
  • 勤務開始予定時刻
  • 勤務終了予定時刻
  • 勤務予定時間
  • 事由
  • 代休取得予定
  • 代休取得予定日
  • 備考
項目の型やサイズ等の詳細については、別途、画面仕様で定義しています。
画面仕様
画面遷移

画面遷移図

画面基本構成

画面基本構成

No 名称 説明
1 ヘッダー部 アプリケーションのロゴ、画面のタイトル、ログインユーザの所属組織名、ユーザ氏名、ログアウトのリンクを持つ。 ログイン画面以外ではアプリケーションのロゴはメニューへのリンクも兼ねる。 ログイン後は、このヘッダー部にユーザの所属組織名とユーザ氏名が表示される。 また、「ログアウト」リンクも表示される。 ログアウトすると、セッション情報等がクリアされ、ログアウト画面に遷移する。
2 ボディ部 各画面固有の表示を行うエリア。 ここに表示する内容も、申請内容確認画面と承認画面のように出来るだけ共通化を行う。 他には同報申請一覧と承認待ち申請一覧画面などがある。
3 フッター部 今回のサンプルアプリケーションでは、罫線と著作権表示を行うだけである。
4 申請内容表示部 申請内容確認画面では、ボディ部は、申請内容表示部と、申請処理部に分かれる。 申請内容表示部は、各申請種別ごとに用意される。また、申請内容確認画面だけでなく、 承認・否認画面や、承認状況画面でも使用される。
5 申請処理部 申請処理部は、各申請共通で申請処理を行うための部分である。 各申請種別の申請内容表示部と組み合わせることで、申請内容確認画面を構成する。

画面一覧

画面名説明
ログイン ログインする
メニュー メニューの一覧
ログアウト ログアウトした際に表示される
申請一覧 ログインユーザに許可されている申請の一覧
時間外労働申請入力 時間外労働申請の内容を入力する
時間外労働申請確認 時間外労働申請の入力内容を確認する
申請完了 申請が完了した際に表示される
差し戻し/申請途中 申請一覧 差し戻された申請や、入力が完了していない申請の一覧
承認状況一覧 自分がフローに関わっている申請の一覧
承認状況 申請の承認状況を閲覧する
同報申請一覧 同報確認を行うべき申請の一覧
同報確認 同報確認を行う
確認完了 申請を同報確認した際に表示される
承認待ち申請一覧 承認を行うべき申請の一覧
承認 承認・差し戻し・否認を行う
承認完了 申請を承認した際に表示される
否認完了 申請を否認した際に表示される
差し戻し完了 申請を差し戻した際に表示される

プログラム概要


処理概要  (ログイン画面

1. 利用者入力のユーザID、パスワードで、ワークフローエンジンに接続する。 (connect
1a. 接続できなかった場合、再度、ユーザID、パスワードの入力を促す。
1b. 接続できた場合、ワークフローエンジンからセッションIDが返る。
  以後、そのセッションIDでワークフローエンジンとは接続を行う。
  接続できた場合、メニュー画面に遷移する。
処理概要  (メニュー画面

  1. ユーザIDを使用して、ユーザ管理からユーザ情報を取得する。 (getUser
  2. ユーザを使用して、組織管理からユーザが所属している組織の情報を取得する。 (getOrganizationByUser
  3. 画面ヘッダー部に、ログインユーザの所属部署名称と氏名を表示する。
  4. メニューを表示する。
処理概要  (ログアウト画面

  1. セッションIDで、ワークフローエンジンとの接続を切断する。 (disconnect
  2. ログアウト画面を表示する。
処理概要  (申請一覧画面

  1. ロール管理から、ログインユーザに付与されているすべてのロールを取得する。 (getAttachedRoles
  2. 申請種別テーブルから、ログインユーザに付与されているロールで申請可能な申請種別の情報を取得する。
  3. 申請一覧画面を表示する。
※ 申請一覧画面から申請入力画面に遷移する際に行う、申請入力の前処理である。
  この処理は、申請内容入力待ち申請一覧画面から申請入力画面に遷移する際には
  行われない。

処理概要  (申請一覧画面申請入力画面

  1. 申請書番号シーケンスからシーケンス番号を取得し、日付と組み合わせて申請書番号を作成する。
  2. 申請書番号で、申請トランザクションテーブルにレコードを追加する。
    申請トランザクションテーブルには、[承認ブロック番号]"0"から申請種別テーブルの[承認ブロック数]+[同報ブロック数]までのレコードを追加する。
    [承認ブロック番号]"0"のレコードの状態は"申請待ち"に設定する。
    [承認ブロック番号]が 0より大きく[承認ブロック数]未満 のレコードの状態は"未達"に設定する。
    [承認ブロック番号]が[承認ブロック数]以上同報ブロック数]未満のレコードの状態は"同報"に設定する。
  3. 申請種別に応じて、申請内容を格納する個別テーブルに申請書番号の空のレコードを追加する。
  4. 申請種別に応じて、ワークフローのプロセスを作成する。 (createProcess
  5. プロセス変数の[申請書番号][申請種別コード][申請種別名称][申請者ユーザID][申請者氏名][申請者所属部署コード][状態]等を設定する。
    プロセス変数[状態]は、"APPLY_WAIT"(入力待ち状態)に設定する。 (assignProcessAttribute
  6. ワークフローのプロセスを開始する。 (startProcess
  7. 申請書番号をパラメータとして、申請入力画面に遷移する。

  1. ワークフローエンジンから、プロセス変数[状態]が"APPLY_WAIT"に一致するワークアイテムのリストを取得する。 (getWorkItems
  2. ワークアイテムIDから、ワークアイテムに結びついているプロセス変数[申請書番号]を取得する。 (getWorkItemAttributeValue
  3. 取得した申請書番号を元に、申請トランザクションテーブルを検索し、申請内容入力待ち申請一覧を作成する。
  4. 申請内容入力待ち申請一覧画面を表示する。
    申請入力画面へのリンクには、申請書番号をパラメータとする。
処理概要

  1. パラメータの申請書番号で、申請内容を、申請内容を格納する個別テーブルから取得する。
  2. 取得した申請内容を初期値として、申請個別の申請内容入力画面を表示する。
処理概要  (申請入力画面申請確認画面

  1. 申請書番号を基にして、申請トランザクションテーブルと、申請内容を格納する個別テーブルの該当レコードを削除する。
  2. ワークアイテムに割り当てられているプロセス変数[申請書番号]を空文字に設定する。 (assignWorkItemAttribute
  3. ワークアイテムを完了する。 (completeWorkItem
  4. メニュー画面に遷移する。
処理概要  (申請入力画面申請確認画面

 1. 入力された内容のチェックを行う。チェックは、空チェック・ロジックチェックを行う。
 2a. チェックした結果、エラーがなければ、入力内容を、申請内容を格納する個別テーブルに
   登録し、申請内容確認画面に遷移する。
 2b. チェックした結果、エラーがある場合、申請内容入力画面に戻る。
   申請内容入力画面では、入力エラーの内容が表示される。
処理概要  (申請確認画面

  1. 申請内容を個別テーブルの該当レコードに登録する。
  2. 個別の申請種別毎の申請内容確認画面を作成する。
  3. 申請確認画面を表示する。
処理概要  (申請確認画面申請完了画面

  1. 申請トランザクションテーブルの[承認ブロック番号]"0"の[状態]を"申請"に[対象日]を申請内容の申請日に変更する。
  2. 申請トランザクションテーブルの[承認ブロック番号]"1"の[状態]を"待ち"に変更する。
  3. ワークアイテムに結びついているプロセス変数[申請日]に申請内容の申請日を、プロセス変数[状態]に"APPROVAL_WAIT"を設定する。 (assignWorkItemAttribute
  4. ワークアイテムの完了をワークフローエンジンに通知する。 (completeWorkItem
  5. 申請完了画面を表示する。
処理概要  (承認状況一覧画面

  1. 申請トランザクションテーブルからユーザおよびユーザのロールがフローに参加している申請の申請書番号を取得する。
  2. 取得した申請書番号を基に、プロセスが実行中である申請を取得する。 (getProcesses
  3. 取得した情報で、承認状況一覧を作成する。
  4. 承認状況一覧画面を表示する。
    承認状況画面へのリンクには、申請書番号をパラメータとする。
処理概要  (承認状況画面

  1. パラメータの申請書番号を基に、申請トランザクションテーブルと、申請内容を格納する個別テーブルから、申請書の内容等の情報を取得する。
  2. 個別の申請種別毎の申請内容確認画面を作成する。
  3. 承認状況の一覧表を作成する。
  4. 承認状況画面を表示する。
処理概要  (同報申請一覧画面

  1. ワークフローエンジンから、プロセス変数[状態]が"CONFIRM_WAIT"に一致するワークアイテムのリストを取得する。 (getWorkItems
  2. ワークアイテムIDから、ワークアイテムに結びついているプロセス変数[申請書番号]を取得する。 (getWorkItemAttributeValue
  3. 取得した情報で、同報申請一覧を作成する。
  4. 同報申請一覧画面を表示する。
処理概要  同報確認画面

  1. パラメータの申請書番号を基に、申請トランザクションテーブルと、申請内容を格納する個別テーブルから、申請書の内容等の情報を取得する。
  2. 個別の申請種別毎の申請内容確認画面を作成する。
  3. 同報確認画面を表示する。
処理概要  (同報確認画面確認完了画面

  1. ユーザの持つロールを取得する。 (getAttachedRoles
  2. ワークアイテムに結びついている、1.で取得したロールに対応するプロセス変数をtrueに設定する。 (assignWorkItemAttribute
  3. ワークアイテムの完了をワークフローエンジンに通知する。 (completeWorkItem
  4. 申請トランザクションテーブルの該当レコードの[状態]を"確認"に変更する。
  5. 確認完了画面を表示する。
処理概要

  1. スクリプト実行のツールエージェントで、パラメータの所属組織コードを、ワークアイテムのプロセス変数[承認ブロックコード]に設定する。 (assignWorkItemAttribute
処理概要

  1. スクリプト実行のツールエージェントを使用する。
  2. パラメータの所属組織コードを利用して、組織管理から所属組織の上位組織を取得する。
  3. 上位組織の組織コードを、ワークアイテムのプロセス変数[承認ブロックコード]に設定する。
    上位組織が全社組織の場合は、所属組織コードをプロセス変数[承認ブロックコード]に設定する。 (assignWorkItemAttribute
処理概要

  1. スクリプト実行のツールエージェントで、人事部の組織コードをワークアイテムのプロセス変数[承認ブロックコード]に設定する。
処理概要  (承認待ち申請一覧画面

  1. ワークフローエンジンから、プロセス変数[状態]が"APPROVAL_WAIT"に一致するワークアイテムのリストを取得する。 (getWorkItems
  2. ワークアイテムIDから、ワークアイテムに結びついているプロセス変数[申請書番号]を取得する。 (getWorkItemAttributeValue
  3. 取得した申請書番号を基に、申請トランザクションテーブルと、申請内容を格納する個別テーブルから、申請書の内容等の情報を取得する。
  4. 取得した情報で、承認待ち申請一覧を作成する。
  5. 承認待ち申請一覧画面を表示する。
処理概要  (承認画面

  1. パラメータの申請書番号を基に、申請内容を格納する個別テーブルから、申請書の内容等の情報を取得する。
  2. 個別の申請種別毎の申請内容確認画面を作成する。
  3. 承認画面を表示する。
処理概要  (承認画面、否認完了画面)

  1. 申請トランザクションテーブルの[状態]が"待ち"になっている最小の[承認ブロック番号]を取得する。
  2. パラメータの申請書番号と取得した承認ブロック番号で、申請トランザクションテーブルの[状態][申請者/承認者ユーザID][コメント][対象日]を更新する。 [状態]は"否認"にする。
  3. ワークアイテムに結びついているプロセス変数[承認結果]を"NACK"に設定する。 (assignWorkItemAttribute
  4. ワークアイテムの完了をワークフローエンジンに通知する。 (completeWorkItem
  5. 否認完了画面を表示する。
処理概要  (承認画面、差し戻し完了画面)

  1. 申請トランザクションテーブルの[状態]が"待ち"になっている最小の[承認ブロック番号]を取得する。
  2. パラメータの申請書番号と取得した承認ブロック番号で、申請トランザクションテーブルの[状態][申請者/承認者ユーザID][コメント][対象日]を更新する。 [状態]は"差し戻し"にする。
  3. ワークアイテムに結びついているプロセス変数[承認結果]を"RETRY"に、[状況]を"APPLY_WAIT"に設定する。 (assignWorkItemAttribute
  4. ワークアイテムの完了をワークフローエンジンに通知する。 (completeWorkItem
  5. 差し戻し完了画面を表示する。
処理概要  (承認画面承認完了画面

  1. 申請トランザクションテーブルの[状態]が"待ち"になっている最小の[承認ブロック番号]を取得する。
  2. パラメータの申請書番号と取得した承認ブロック番号で、申請トランザクションテーブルの[状態][申請者/承認者ユーザID][コメント][対象日]を更新する。 [状態]は"承認"にする。
  3. パラメータの申請書番号と取得した承認ブロック番号 + 1 で、申請トランザクションテーブルの[状態]を更新する。 [状態]は"待ち"にする。
    取得した承認ブロック番号 + 1が申請種別テーブルの[承認ブロック数]以上の場合、何も行わない。
  4. ワークアイテムに結びついているプロセス変数[承認結果]を"ACK"に設定する。
    ユーザが最終承認者の場合、プロセス変数[状態]を"CONFIRM_WAIT"に設定する。 (assignWorkItemAttribute
  5. ワークアイテムの完了をワークフローエンジンに通知する。 (completeWorkItem
  6. 承認完了画面を表示する。