以下、図面を参照して、本発明の実施形態を詳細に説明する。
図1は、本実施形態が適用されるワークフローシステムの概略構成を示す図である。
図1において、ワークフローシステムは少なくとも1つのワークフローサーバ101とワークフロークライアント102がネットワークを介して接続されている。本実施例においては、ワークフロークライアント102は複数台で構成されている。
ユーザは、たとえばウェブブラウザやクライアントソフトウェアなどを利用して、ワークフロークライアント102から、ワークフローサーバ101に対して、ワークフロー進行の要求などを行う。
ワークフローサーバ101は、ワークフロークライアント102からの要求に応じた処理、案件の管理をおこない、必要があればワークフロークライアント102に対して結果などを送信する。ワークフローサーバ101とワークフロークライアント102の間の通信は、通常のHTTPのリクエストでもよいし、SOAPなどを利用したウェブサービスのリクエストでもよい。
図2は、本発明の実施形態におけるワークフローサーバ101とワークフロークライアント102のハードウェア構成を示す図である。
図2において、CPU201は、システムバス204に接続される各デバイスを統括的に制御する。また、ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるオペレーティングシステム(OS)や、各サーバーあるいは各クライアントの後述する各種機能を実現するためのプログラムが記憶されている。
RAM202は、CPU201の主メモリ、ワークエリア、一時待避領域等として機能する。
入力コントローラ205は、入力部209からの入力を制御する。この入力部209としては、特に、サーバーやクライアント等の端末では、キーボード、マウス等のポインティングデバイスが挙げられる。
出力コントローラ206は、出力部210の表示を制御する。この出力部210としては、例えば、CRTや液晶ディスプレイ等が挙げられる。
外部メモリコントローラ207は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタドライバ等を記憶する外部メモリ211へのアクセスを制御する。加えて、各サーバーあるいは各クライアントの各種機能を実現するための各種テーブル、パラメータが記憶されている。この外部メモリ211としては、ハードディスク(HD)やフロッピー(登録商標)ディスク(FD)、PCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)、スマートメディア等が挙げられる。
通信I/Fコントローラ208は、ネットワーク213を介して外部機器との通信制御処理を実行する。
なお、CPU201は、例えばRAM202内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、出力部210上での表示を可能としている。また、CPU201は、出力部210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
本発明を実現するための後述する各種プログラムは、外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。さらに、上記プログラムの実行時に用いられる定義ファイル及び各種情報テーブル等も、外部メモリ211に格納されており、これらについての詳細な説明も後述する。
次に、図3において、本発明の実施形態における機能構成図の一例について説明をする。
ワークフローサーバ101は、処理履歴記憶部301、案件抽出部302、表示部303、役割表示部304、過去処理識別表示部305、処理部306、一括処理部307からなる。
処理履歴記憶部301は、ワークフローシステムにおいて申請された案件の、各処理単位における処理済や処理待ちの状況を配送履歴として記憶する。
案件抽出部302は、案件の処理担当者の、前記異なる処理それぞれにおける処理待ちの案件を処理履歴記憶部301より抽出する。
表示部303は、案件抽出部302によって抽出した案件を処理担当者の処理待ち案件一覧画面(処理待ち案件表示画面)において表示する。
役割表示部304は、表示部303によって処理待ち案件一覧画面(処理待ち案件表示画面)に表示された案件に対し、処理担当者が当該案件を処理すべき役割を表示する。
過去処理識別表示部305は、役割表示部304によって役割を表示した処理待ち案件一覧画面(処理待ち案件表示画面)において表示される案件の、過去の処理担当者が、当該案件の処理担当者と同一である場合、過去に処理したことを識別可能に、過去に承認した時点の役割と過去に承認した承認日時を表示する。
処理部306は、ワークフロークライアント102の表示部311に表示がされた処理待ち案件一覧(処理待ち案件表示画面)において表示されている案件のうち、過去に承認したことがある案件の処理画面を開かず承認することをワークフロークライアント102の処理部312より受け付け、処理を行う。
一括処理部307は、ワークフロークライアント102の表示部311に表示がされた処理待ち案件一覧(処理待ち案件表示画面)において表示されている案件のうち、過去に承認したことがある複数案件の処理画面を開かず一括して承認することをワークフロークライアント102の処理部312より受け付け、処理を行う。
ワークフロークライアント102は、表示部311と処理部312からなる。
表示部311は、ワークフローサーバ101の表示部303によって表示処理が行われた処理担当者の処理待ち案件一覧画面(処理待ち案件表示画面)を表示する。
処理部312は、表示部311で表示がされている処理待ち案件一覧画面(処理待ち案件表示画面)の案件に対する処理を受け付け、ワークフローサーバ101に処理依頼を行う。
続いて、本発明のワークフローの処理が行われるにあって必要となる前提条件を図5から図9において、説明を行う。
図5は、ワークフローの設計情報である定義情報と、実際にその定義情報を利用して申請がされた案件である案件情報の関係を示す図である。
定義情報500は、ワークフローにおける業務を定義する情報であり、設計者が予め定義するものであり、本実施例においては、業務501、プロセス502、アクティビティ503からなるようにする。
業務501は、ワークフローにおいて申請を行うために必要となるアプリケーションの設計情報の単位であって、業務IDと業務名で識別可能にすることとする。
プロセス502は、ワークフローで申請される業務501に対する、処理のルートの規則を定義したものであって、1つの業務に対し、申請部門ごとに複数のプロセスを定義可能であるため、プロセス502は、プロセスID、業務ID、申請可能IDでどのようなプロセスであるかを識別可能であることとする。
アクティビティ503は、プロセス502で定義される処理のルートにおけるそれぞれの処理単位の定義であり、例えば、承認を行うための1つのアクティビティ設定例としては、処理担当者が所属する部門ID、処理担当者の役割ID、等を設定することによってアクティビティの定義を行うこととする。なお、アクティビティ503はプロセス502の定義に対して紐付き、アクティビティIDと、プロセスIDとの組み合わせで紐付けが識別可能であることとする。またアクティビティ処理の順番である番号と、担当ロールの情報ももつこととする。
なお、図中の「1」と「*」は、1対多の関係にあることを示す。例えば、業務501に対しては、複数のプロセス502を紐付けることが可能である。また、1つのプロセス502は、複数のアクティビティ503が構成されるということである。更に、1つのプロセス502を基に申請されたワークフローにおける案件データである案件情報510の案件511と紐付くこととなる。
案件情報510とは、ワークフローにおいて申請された案件に関する情報であり案件511と処理履歴512からなる。
案件511は、業務501を基に申請がされたワークフローシステムにおける案件データのことを指し、案件ID、案件が申請された業務に紐付くプロセスID、また、案件を申請した申請者を特定可能にするために、申請者が所属する申請部門IDと申請ロールIDの情報を持つこととする。
処理履歴512は、1つの案件511に対して複数存在するものであって、案件の処理履歴データのことを指す。この処理履歴データである処理履歴512は、申請された案件を識別するための案件ID、その案件が処理された、プロセス502の中における位置の情報であるアクティビティID、案件の処理を行った処理担当者の担当者ID、案件の処理状況を示す状態、案件の処理が行われた日時である処理日の情報を持つこととする。
図6は、本発明のワークフローの処理が行われるにあたって使用される組織情報を説明するための図である。
組織情報は、部門テーブル611、ロールテーブル612、ユーザテーブル613の情報の組み合わせることによって組織情報テーブル614を構成することにより作成されることとする。
部門テーブル611は、組織を識別するための情報である、部門ID、部門名、組織621に示すように、組織を階層型で表現した場合に組織階層のレベルを示す番号であるレベル番号、自分の部門IDの階層より1つ上の階層の部門IDを示す親部門IDの情報から構成することとする。
ロールテーブル612は、ワークフローで申請や承認等の処理を行うユーザに紐付くロールIDとその役割の名称を示すロール名から構成することとする。
ユーザテーブル613は、ワークフローで申請や承認等の処理を行うユーザのユーザID、それに紐付く氏名、メールアドレス、パスワードから構成することとする。
これらの情報をもとに、組織情報テーブル614は作成されることとする。
組織情報テーブル614は、どの組織に誰がどの役割で所属しているのか、についての情報を登録しておくテーブルであって、ワークフローで申請や承認等の処理を行うユーザのユーザID、そのユーザに紐付く役割を識別するためのロールID、また、そのユーザが所属する部門IDの情報から構成されることとする。
なお、組織情報テーブル614を階層構造で表現した組織図で図示した例を、組織621を用いて説明する。例えば、ユーザIDがU000の木屋野一郎は、組織情報テーブル614においては、所属する部門IDは、B001とC001となる。また、部門IDがB001である場合は、ロールIDはR002であって、部門IDがC001である場合は、ロールIDはR001となっている。この情報を、階層型の組織図で、木屋野一郎が所属する部署と、部署に応じた役割を図示すると、部門IDがB001に、ロールIDがR002で所属をしている状況は621−1として、部門IDがC001に、ロールIDがR001で所属をしている状況は621−2として図示することが可能となる。
図7は、図5の定義情報500の業務501、プロセス502、アクティビティ503の情報をテーブル構造で説明する図である。
なお、図7の各テーブル構造は、図6の組織情報テーブル614または、組織621の情報を使用することを前提として説明をする。
業務テーブル701は、業務501の情報をテーブル構造で説明した図である。業務テーブル701には、ワークフローにおいて申請がされる案件のアプリケーションの設計情報の情報が登録され、設計情報(アプリケーション情報)を識別する業務ID、その設計情報の名称である業務名、の情報からなる。
一例として、業務IDとして「GID001」、業務名として「交通費精算」が登録されていることとする。
プロセステーブル702は、プロセス502の情報をテーブル構造で説明した図である。プロセステーブル702には、案件が申請される業務に紐付くプロセス定義の情報が登録され、プロセスを識別可能にするプロセスID、プロセスIDに紐付く業務ID、そのプロセスIDで定義されたプロセスにおいて申請可能な部門の情報である申請可能部門ID、の情報からなる。
一例として、プロセスIDとして「PID001」、業務IDとして「GID001」、申請可能部門IDとして「B001」が登録されていることとする。なお、「B001」で指定された場合、「B001」の配下の部門である「C001」と「C002」から案件が申請できることとする。
アクティビティテーブル703は、アクティビティ503の情報をテーブル構造で説明した図である。アクティビティテーブル703には、案件が誰にどの順番で処理されるのかを定義したプロセス定義の各処理の処理担当者の情報が登録される。各アクティビティを識別するためのアクティビティID、アクティビティがどのプロセスのものであるかを識別可能にするプロセスID、アクティビティの処理の順序を管理する番号、担当ロールID、の情報からなる。
プロセス定義704は、プロセステーブル702とアクティビティテーブル703の情報をもとに、実際のプロセスを分かりやすく図示したものである。
プロセスIDがPID0001のプロセスは、アクティビティテーブル703の番号で指定されている順番の通り、0番目のアクティビティは、担当ロールが無しになっているため、申請可能部門がB0001配下に所属される誰もが案件を申請できることなる(704−1)。
次の704−2のアクティビティは、アクティビティテーブル703の番号が1番目のアクティビティを図示したものであって、担当ロールがR001で指定されている。
次の704−3のアクティビティは、アクティビティテーブル703の番号が2番目のアクティビティを図示したものであって、担当ロールがR002で指定されている。
このプロセス定義の例は、部門IDについては指定がされていなくて、担当ロールのみをアクティビティに設定するプロセス定義である。この場合、処理担当者の決定は、申請された部署の部門IDと同じ部門IDの組織の中において、指定された担当ロールを所持する処理担当者がいないかを判定し、存在しない場合は、その部門IDと同じ系列の上位組織をたどっていき、指定された担当者ロールを所持する処理担当者がいないかを確認し、存在した場合は、その処理担当が案件の処理を行うユーザとなることとする。
つまり、704−2は、ロールテーブル612の情報より、課長(R001)、部長(R002)に処理依頼が行われることになるが、申請された部署の所属組織から同じ系列の組織階層を上位階層へたどっていき、課長や部長の役割のユーザが存在する時に、そのユーザに対して処理依頼がいくという動作であることとする。
例えば、組織621に示すように、木屋野三郎が申請をC001から行ったとすると、課長が同一部門IDの組織にいるため、次の704−2の処理担当者は木屋野一郎になり、さらに次の704−3の処理担当者はB001の組織にいるためB001に所属する木屋野一郎が処理を行うこととなる。
図8は、図5の案件情報510の案件511、処理履歴512の情報をテーブル構造で説明する図である。
なお、図8の各テーブル構造は、図6の組織情報テーブル614または、組織621の情報、また、図7の業務テーブル701、プロセステーブル702、アクティビティテーブル703、プロセス定義704の情報を使用することを前提として説明をする。
図8の案件テーブル801は、案件511の情報をテーブル構造で説明した図である。案件テーブル801には、ワークフローにおいて申請がされた案件のデータの情報が登録される。
申請がされた案件の業務に紐付くプロセスID、新規案件が申請されると申請を識別ために付与される案件ID、案件を申請したユーザが所属する申請部門ID、案件を申請したユーザに紐付く申請ロールIDの情報からなる。
一例として、プロセスIDが「PID001」でプロセス定義がされた業務ID「GID001」(ワークフローにおいては申請するための業務)が、申請可能部門IDとして「C001」に所属する、申請ロールIDが「R000」のユーザによって申請がされた、案件IDが「00000001」のデータが登録されていることとする。
図8の処理履歴テーブル802は、処理履歴512の情報をテーブル構造で説明した図である。処理履歴テーブル802には、申請された案件が処理された処理履歴のデータをプロセス定義における各アクビティ単位で保持するテーブルである。
案件IDは、申請がされた案件を識別するためのIDが登録され、アクティビティIDには、その案件が処理されたアクティビティの情報が登録され、担当者IDには、処理を行った処理担当者のユーザIDが登録され、状態へは、処理済や処理待ちなど案件の状態が登録され、処理日は、案件に対する承認等の実際の処理が行われた日時が登録される。
例えば、案件IDが00000001の案件については、組織情報テーブル614のユーザIDがU002の申請者によって申請がされ、アクティビティact001において、組織情報テーブル614のユーザIDがU000の処理担当者による処理待ち状態となっている。
案件IDが00000002の案件については、組織情報テーブル614のユーザIDがU002によって、申請され、アクティビティact001において、組織情報テーブル614のユーザIDがU000の処理担当者によって承認が行われ(課長の役割で承認が行われ)、のユーザIDがU000の処理担当者による処理待ち状態(部長の役割での処理待ち状態)となっている。
案件IDが00000003の案件については、組織情報テーブル614のユーザIDがU003の申請者によって申請がされ、アクティビティact001において、組織情報テーブル614のユーザIDがU001の処理担当者によって承認が行われ(課長の役割で承認が行われ)、のユーザIDがU000の処理担当者による処理待ち状態(部長の役割での処理待ち状態)となっている。
なお、処理履歴803は、処理履歴テーブル802の処理履歴の状況を各案件(案件ID=00000001、案件ID=00000002、案件ID=00000003)ごとに図示した図である。
図9は、ワークフローで申請がされた案件で、処理担当者へ処理依頼がされた案件の一覧を表示する処理待ち案件表示画面の一例を示す図である。なお、図9の900は、従来の処理待ち案件表示画面の一例であり、図9の920は、本発明における処理待ち案件表示画面の一例とする。なおそれぞれにおいて表示をしている処理待ち案件のデータは、処理履歴テーブル802において、担当者IDがU000(部門ID=B001、ロールID=R002の木屋野一郎)の状態が処理待ちになっている案件(案件ID=00000001、案件ID=0000002、案件ID=0000003)であることとする。
続いて、従来の処理待ち案件表示画面900の各表示項目について説明を行う。
操作901は、案件を処理するため操作するための機能を表示する箇所である。例えば、901においては、案件を開くための「開く」という機能が表示される。状態902は、処理履歴テーブル802の「状態」の値を表示する。案件名903は、案件が申請された業務の名称を表示する。案件番号904は、処理履歴テーブル802の「案件ID」の値を表示する。タイトル905は、申請画面で申請者より記入処理を受け付けた、申請の簡単な内容(どのような申請内容かを記載した内容)の値を表示する。受信日906は、処理履歴テーブル802の「処理日」の値を表示する。
申請部門907は、処理履歴テーブル802に紐付く、案件テーブル801の申請部門ID(紐付けは「案件ID」で行う)を基に、部門テーブル611の「部門名」を抽出し、表示する。
申請者908は、処理履歴テーブル802に存在するレコードのうち、処理待ち案件一覧(処理待ち案件表示画面)に表示する案件と、同一の「案件ID」を持ち、かつ「アクティビティID」が申請アクティビティのレコードの「担当者ID」の値をまず抽出する。さらにその担当者IDの値をもとに、ユーザテーブル613を検索し、「氏名」の情報を表示する。
909は、表示されている案件を選択状態にするためのチェックボックスである。910は、909で選択状態にされた案件に関して、処理画面を開かずに案件の処理を可能とするための一括承認機能のボタンである。
続いて、本発明における処理待ち案件表示画面920の各表示項目について説明を行う。
なお、状態922は状態902、案件名923は案件名903、案件番号924は案件番号904、タイトル925はタイトル905、受信日927は受信日906、申請部門928は申請部門907、申請者929は申請者908、931は909、932は910と同様の表示内容であるため、説明は省略し、ここでは、操作921、あなたの役割926、備考930、933(過去に承認した案件の一括承認)について説明を行う。
操作921は、案件を処理するため操作するための機能を表示する箇所である。例えば、920においては、案件を開くための「開く」という機能の他に、「承認」という機能が表示される。この詳細については後述する。
あなたの役割926は、処理担当者が表示されている案件をどの役割における処理待ち状態であるかを識別可能に処理担当者の役割を表示する。この詳細については後述する。
備考930は、処理担当者が案件を既に承認を行っている場合に、どの役割でいつ承認を行ったかを識別可能に表示する。この詳細については、後述する。
933は、過去に一度承認を行った案件に関して処理画面を開かずに案件の承認を可能とするための過去に承認した案件の一括承認の機能を有するボタンである。なお、ボタン押下時に、過去に承認が行われているものに関して一括承認を行えるようにしても良いこととする。
また、同じく933のボタンの押下を受け付けた場合、過去に一度承認が行われている案件を選択状態にし、ユーザからの選択の有無の切り替えを受け付けた後に、一括承認を行えるようにしても良いこととする。
また、同じく933のボタンの押下を受け付けた場合、931が選択状態にされた案件が過去に承認が行われているものかを判定して、過去に承認が行われているものに関して一括承認を行えるようにしても良いこととする。
すなわち、過去に承認した案件と、933のボタンが押下された場合、少なくとも931が選択状態にされた案件については、過去に承認された案件であることを確認したうえで一括承認がなされるようにするということである。
<第1の実施形態>
続いて、図4を参照して、本実施形態のワークフローシステムにおける処理待ち一覧(図9の920)を表示する処理について説明する。
ワークフローシステムにおける処理担当者はログイン画面(不図示)に処理担当者自身のユーザIDとパスワードを入力しシステムの利用を開始することとする。尚、取得したユーザIDはRAM202に記憶され、後述のS401、S404の処理で利用される。
また、処理担当者がワークフロークライアントの「処理待ち一覧」ボタン(不図示)を押下すると、本処理がワークフローサーバ101のCPU201にて実施され、処理待ち一覧(図9の920)がワークフロークライアントに表示されることとする。
ステップS401では、処理履歴テーブル802を参照し、「状態」が「処理待ち」で、かつ、「担当者ID」が、処理担当者がシステムの利用を開始する際に入力したユーザIDと一致するものを抽出する。
例えば、本処理においては、処理履歴テーブル802のうち、状態が「処理待ち」であって、担当者IDが、U000のデータを抽出することとする。
抽出した各処理待ちのデータについて、後述のS402からS406のステップを繰り返し実施する。
ステップS402は、処理待ち一覧の図9の922から925、927から929の各項目の値を表示するステップである。各項目の値については、図9の各項目の説明でした方法で値を取得する。
ステップS403は、本発明における処理待ち案件表示画面920の各案件の役割926に表示を行う役割名を求めるステップである。
処理履歴テーブル802の「アクティビティID」を元に、アクティビティテーブル703を参照し、処理担当者指定として指定されている「担当ロールID」を求める。更に、「担当ロールID」より、ロールテーブル612を参照し、「ロール名」を求める。この「ロール名」を本発明における処理待ち案件表示画面920の926に表示をする。
例えば、処理履歴テーブル802の案件ID=00000001(担当者IDが「U000」で状態が「処理待ち」)のレコードは、アクティビティIDがact001であり、そのアクティビティIDより、担当ロールIDを求めると、R001となる。そのロール名(役割)をロールテーブル612から求めるとロール名として「課長」が求められ、あなたの役割926には、「課長」が表示される。
処理履歴テーブル802の案件ID=00000002(担当者IDが「U000」で状態が「処理待ち」)のレコードは、アクティビティIDがact002であり、そのアクティビティIDより、担当ロールIDを求めると、R002となる。そのロール名(役割)をロールテーブル612から求めるとロール名として「部長」が求められ、あなたの役割926には、「部長」が表示される。
処理履歴テーブル802の案件ID=00000003(担当者IDが「U000」で状態が「処理待ち」)のレコードも、前述した、案件ID=00000002の案件で表示される役割と同じである。
ステップS404は、利用者が過去に承認したかを判定するステップである。
処理履歴テーブル802の中で、以下(1)〜(3)の条件にすべて該当する案件の「レコードが存在する場合、その案件のレコードは過去に承認したと判定することとする。
(1)処理履歴テーブル802の案件IDが、ステップS401で処理履歴テーブル802より抽出した案件の案件IDと一致
(2)処理履歴テーブル802の担当者IDが、ワークフローシステムへログインを開始するときに、処理担当者が入力したユーザIDと一致
(3)処理履歴テーブルの802の状態が処理済みである
ステップS404で、処理対象の案件が過去に承認した案件ではないと判定した場合、ステップS405で、図9の操作921に、「開く」ボタンのみを表示する処理を行う。
例えば、ステップS401で抽出したレコードの中の、案件IDが00000001と00000003のレコードには、担当者IDが「U000」であって、状態が「処理済み」のレコードが存在しないため、このレコードを本発明における処理待ち案件表示画面920に表示する場合は、操作921に「開く」のボタンを表示する。なお、ここではボタンとしているが、ボタンではなくリンクが張られるようにしても良いこととする。
ステップS404で、処理対象の案件が過去に承認した案件であると判定した場合、ステップS406で、図9の操作921に、「開く」と「承認する」ボタンを表示する処理を行う。
例えば、ステップS401で抽出したレコードの中の、案件IDが00000002のレコードには、担当者IDが「U000」であって、状態が「処理済み」のレコードが存在しているため、このレコードを本発明における処理待ち案件表示画面920に表示する場合は、操作921に「開く」と「承認する」のボタンを表示する。なお、ここではボタンとしているが、ボタンではなくリンクが張られるようにしても良いこととする。
更に、図9の備考930において、過去に承認した役割と過去に承認した日時が分かるコメントを表示する。
例えば、図9の951ではとして、「課長として2014/06/30に承認した案件です」と表示している。
「課長として2014/06/30に承認した案件です」の文言のうち、「課長」の部分は、処理担当者が処理したときのロールの名称が表示されているのであって、ステップS404で抽出した処理履歴のレコードより、ステップS403と同様の手順で求め、その値を表示する。
また、2014/06/30の部分は、処理担当者が処理した日付が表示されているのであって、ステップS404で処理履歴のレコードより、処理日を求め、その値を表示する。
例えば、ステップS401で抽出したレコードの中の、案件IDが00000002のレコードには、担当者IDが「U000」であって、状態が「処理済み」のレコードが存在しているため、このレコードを本発明における処理待ち案件表示画面920に表示する場合は、備考930に「課長として6/30に承認した案件です」のコメントを表示する。
なお、ステップS404で抽出した処理履歴テーブルのレコードが同一案件の中で複数の存在する場合、すなわち、同一案件で過去に2度以上承認している場合、それぞれについて過去に承認した役割と過去に承認した承認日時を表示してもよいし(不図示)、直近の1件のみ過去に承認した役割と過去に承認した承認日時を表示(不図示)してもよいこととする。
なお、実際の処理待ち一覧を表示する処理では、上記だけでなく他の情報の取得や、情報をワークフロークライアントに転送し、表示する手段が必要であるが、それらは従来の技術を利用することとする。
以上の処理により、処理待ち案件一覧(処理待ち案件表示画面)の表示において、処理待ち案件がどのフェーズにおける処理待ちなのかを識別可能にし、更に、処理待ち案件が過去に処理した案件である場合には、過去に処理した案件であることを識別可能にすることにより、処理担当者が案件の処理を効率的に行えるようにする仕組みを提供することが可能となる
また、過去に図9の本発明における処理待ち案件表示画面920においては、933の過去に承認した案件の一括承認を行うことを可能とするためのボタンの押下を受け付けた場合、過去に承認が行われているものに関して一括処理を行えるようにしても良いこととする。
また、同じく933のボタンの押下を受け付けた場合、過去に一度承認が行われている案件を選択状態にし、ユーザからの選択の有無の切り替えを受け付けた後に、一括承認を行えるようにしても良いこととする。
また、同じく933のボタンの押下を受け付けた場合、931が選択状態にされた案件が過去に承認が行われているものかを判定して、過去に承認が行われているものに関して一括承認を行えるようにしても良いこととする。
すなわち、933のボタンが押下された場合、少なくとも931が選択状態にされた案件については、過去に承認された案件であることを確認したうえで一括承認がなされるようにするということである。
なお、本実施例においては、処理担当者が処理待ち案件一覧(処理待ち案件表示画面)に表示される案件を過去に処理した場合、前回処理したケースを挙げて説明を行ったが、過去というのは前回に限定されなくても良いこととする。例えば、前回は別の処理担当者が処理を行って、その前の処理単位(アクティビティ)において処理担当者が処理を行ったことがあるというケースも、本発明が適応可能であることとする。
続いて、図24の処理図を用いて、図9の処理待ち案件表示画面2500において、案件の処理担当者が、承認ボタン950や、一括承認ボタン(933)を押下したときの動作について説明を行う。なお、本処理は、ワークフローサーバ101のCPU201において実行されるものとする。
ステップS2401において、処理待ち案件表示画面2500において、承認ボタン950、又は、過去に承認した案件の一括承認ボタン933(以下、一括承認ボタン933とする)の押下を受け付ける。
ステップS2402において、処理待ち案件表示画面2500において、承認ボタン950、又は、一括承認ボタン933、のどちらが押下されたかを判定する。
ステップS2402において、図25の承認ボタン950が押下されたと判定した場合は、ステップS2403へ処理を進め、ステップS2402において、図25の一括承認ボタン933が押下されたと判定した場合は、ステップS2404へ処理を進める。
ステップS2403において、図25の承認ボタン950の押下を受け付けた案件の処理を行う。そして、処理担当者が処理したアクティビティにおける処理は処理済みの状態とし、次のアクティビティが存在する場合は、案件の次の処理担当者(次の処理を行うアクティビティ)において処理待ちの状態とする。
図25の案件番号924が00000002の案件を例にとって説明をする。
図25の処理待ち案件表示画面2500は、処理待ち案件表示画面より案件の処理を受け付けた時の処理待ち案件表示画面の一例を示す図である。
なお、図25の921〜933、950の各機能、各項目は、図9の本発明における処理待ち案件表示画面920において同一の番号がふられている機能、項目と同じものであるとする。そのため各機能、各項目の詳細な説明については省略する。
なお、図25の案件番号624が00000002の案件は、図9の案件番号924が00000002の案件と同じ案件であることとする。そのため、紐づくプロセス定義は、プロセス定義704であるとし、処理履歴についても、処理履歴テーブル800の「案件ID」が00000002で管理されている処理履歴と同じである前提とする。
図25の案件番号924が00000002の案件は、処理履歴テーブル802の処理履歴の管理においては、「アクティビティID」がact002のレコードにおいて、「状態」が処理待ちとなっているが、「担当者ID」がU000の処理担当者によって、図25の承認ボタン950の押下の処理を受け付けると、「案件ID」が00000002、「アクティビティID」がact002のレコードの「状態」は処理済みとなる。
また、図25の案件番号624が00000002の案件は次のアクティビティによる処理がプロセス定義上存在しないため、処理が終了したということになり、処理待ち案件表示画面2500には、表示されなくなる。
ステップS2404において、承認ボタン950が付与されている案件、すなわち、処理担当者が過去に承認を行っていて、連続して承認を行える状態の案件、を処理待ち案件表示画面2500の画面より一括で処理を行う。
そして、処理担当者が処理した各案件のアクティビティにおける処理は処理済みの状態とし、次のアクティビティが存在する場合は、各案件の次の処理担当者(次の処理を行うアクティビティ)において処理待ちの状態とする。
図25の案件番号624が00000002、00000010、00000011の案件を例にとって説明をする。
なお、図25の案件番号624が00000010と、00000011の案件は、本処理の説明のために用意した案件であるが、図25の案件番号624が00000002の案件と同じ業務において起案がされた案件であり、同じアクティビティで処理待ちとなっている案件であることとする。そのため、紐づくプロセス定義は、プロセス定義704であるとする。
なお、処理履歴については、処理履歴テーブル2600の「案件ID」が00000002で管理されている処理履歴と同じである前提とする。なお、処理履歴テーブル2600の「案件ID」が00000002で管理されている処理履歴は、処理履歴テーブル800の「案件ID」が00000002で管理されている処理履歴と同じであることとする。また、図26の処理履歴テーブル2600は図8の処理履歴テーブル802、とテーブルの構造については同一であることとする。そのため詳細な説明は省略する。
図25の案件番号924が00000002、00000010、00000011の案件は、処理履歴テーブル2600の処理履歴の管理においては、それぞれ「アクティビティID」がact002のレコードにおいて、「状態」が処理待ちとなっているが、「担当者ID」がU000の処理担当者によって、図25の一括承認ボタン933の押下の処理を受け付けると、「案件ID」が00000002、00000010、00000011、における、「アクティビティID」がact002のレコードの「状態」は処理済みとなる。
また、図25の案件番号624が00000002、00000010、00000011の案件は次のアクティビティによる処理がプロセス定義上存在しないため、処理が終了したということになり、処理待ち案件表示画面2500には、表示されなくなる。
なお、一括承認ボタン933が押下された場合に、過去に承認を行った、全ての承認ボタン950が付与されている案件を自動的に承認するのではなく、承認ボタン950が付与されている案件の中において、一括承認を受け付ける案件の選択を931にチェックを入れることで受け付けることによって、931にチェックが入っている案件のみを一括承認できるようにしても良いこととする。
また、一括承認ボタン933が押下された場合に、予め931にチェックを入れておいた案件が、過去に承認を行っているかを判定した上で、一括承認ができるようにしても良いこととする。
すなわち、一括承認ボタン933が押下された場合、少なくとも931が選択状態にされた案件については、過去に承認された案件であることを確認したうえで一括承認がなされるようにするということである。
以上で、図24の処理図の説明を終了する。
<第2の実施形態>
続いて、第2の実施形態について説明を行う。図4による第1の実施形態の処理待ち案件表示画面の表示においては、図4のステップS404で、処理対象の案件が過去に承認した案件であると判定した場合、ステップS406で、図9の操作921に、「開く」のボタンの横に、「承認する」ボタンを表示する処理を行っているが、処理履歴テーブル802において、過去に処理担当者が案件の処理を行った場合であれば、必ず表示をするようにしている。
そのため、第2の実施形態においては、これから処理を行おうとする処理担当者が過去に案件の処理を行っていたとしても、その後の工程の処理担当者により、処理を再度行わせるために差し戻し等の処理が行われて、再度、処理依頼が来た場合には、処理待ち一覧の案件においては、「承認する」のボタンの表示を行わないようにする、実施形態について説明を行う。
また、一定の期間過ぎた場合において、処理待ち一覧の案件においては、「承認する」のボタンの表示を行わないようにする、実施形態についても説明を行う。
まず始めに、第2の実施形態のワークフローの処理が行われるにあって必要となる前提条件を図11から図14において、説明を行う。
図11は、第2の実施形態のワークフローの処理が行われるにあたって使用される組織情報を説明するための図である。なお、図11の部門テーブル1111は図6の部門テーブル611、図11のロールテーブル1112は図6のロールテーブル612、図11のユーザテーブル1113は図6のユーザテーブル613、図11の組織情報テーブル1114は図6の組織情報テーブル614とテーブルの構造については同一であることとする。そのため詳細な説明は省略する。
なお、図11の組織1121は、組織情報テーブル1114を階層構造で表現した組織図であり、図6の組織621と同様な構造となる。なお、第2の実施形態においては、組織情報テーブル1114に、ユーザID=U004、ロールID=R003、部門ID=A001に所属するユーザである木屋野勘太郎を追加したため、これにともない、ユーザIDがU004の木屋野勘太郎が、部門IDがA001に、ロールIDがR004で所属をしている状況を、組織1121の中の、1121で図示する階層で図示することとする。
図12は、第1の実施形態における図5の定義情報500の業務501、プロセス502、アクティビティ503の情報をテーブル構造で説明可能な図である。また、図12の業務テーブル1201は図7の業務テーブル701、図12のプロセステーブル1202は図7のプロセステーブル702、図12のアクティビティテーブル1203は図7のアクティビティテーブル703、とテーブルの構造については同一であることとする。そのため詳細な説明は省略する。
なお、図12のプロセス定義1204は、プロセステーブル1202とアクティビティテーブル1203の情報をもとに、実際のプロセスを分かりやすく図示したものであり、図7のプロセス定義704と同様な構造となる。なお、図12のプロセス定義1204−1は図7のプロセス定義704の704−1、図12のプロセス定義1204−2は図7のプロセス定義704の704−2は、図12のプロセス定義1204−3は図7のプロセス定義704の704−3、の設定値と同じこととする。
なお、第2の実施形態においては、アクティビティテーブル1203において、番号が3番目のアクティビティを追加する。そのため、図12の1204−4のアクティビティに図示するように、担当ロールがR004の社長で処理を行うアクティビティが追加されることになる。
図13は、第1の実施形態における図5の案件情報510の案件511、処理履歴512の情報をテーブル構造で説明する図である。また、図13の案件テーブル1301は図8の案件テーブル801、図13の処理履歴テーブル1302は図8の処理履歴テーブル802、とテーブルの構造については同一であることとする。そのため詳細な説明は省略する。
図14の、処理履歴1400は、処理履歴テーブル1302の処理履歴の状況を、案件ID=00000004、案件ID=00000005、に関して図示した図である。
図15の処理待ち案件表示画面1500は、ワークフローで申請がされた案件で、処理担当者へ処理依頼がされた案件の一覧を表示する処理待ち案件表示画面の一例を示す図である。
なお、図15の921〜933、950の各機能、各項目は、第1の実施形態の図9の本発明における処理待ち案件表示画面920において同一の番号がふられている機能、項目と同じものであるとする。そのため各機能、各項目の詳細な説明については省略する。なお、図15の952、953のボタンは、案件の内容確認を確認するための処理画面を開くための機能を有する。
図16の表示日数管理テーブル1600は、過去に承認した案件に対し処理待ち一覧で「承認」ボタンの機能を表示可能とする日数について管理するテーブルであり、表示日数1601によりその日数を管理する。なお、表示日数管理テーブル1610は、表示日数管理テーブル1600と同じテーブルである。表示日数1611も、表示日数1601と同じ項目であることとする。
続いて、図10を用いて、本実施形態のワークフローシステムにおける処理待ち一覧である、図15の処理待ち案件表示画面1500を表示する第2の実施形態の処理について説明する。
ワークフローシステムにおける処理担当者はログイン画面(不図示)に処理担当者自身のユーザIDとパスワードを入力しシステムの利用を開始することとする。
また、処理担当者がワークフロークライアントの「処理待ち一覧」ボタン(不図示)を押下すると、本処理がワークフローサーバ101のCPU201にて実施され、処理待ち一覧(図15の処理待ち案件表示画面1500)がワークフロークライアントに表示されることとする。
ステップS1001では、処理履歴テーブル1302を参照し、「状態」が「処理待ち」で、かつ、「担当者ID」が、処理担当者がシステムの利用を開始する際に入力したユーザIDと一致するものを抽出する。
例えば、本処理においては、処理履歴テーブル1302のうち、状態が「処理待ち」であって、担当者IDが、U000のデータを抽出することとする。
抽出した各処理待ちのデータについて、後述のS1002からS1009のステップを繰り返し実施する。
ステップS1002は、処理待ち一覧の図15の922から925、927から929の各
項目の値を表示するステップである。各項目の値については、第1の実施形態の図9の各項目の説明でした方法で値を取得する方法と同様であることとする。そのため、説明は省略する。
ステップS1003は、処理待ち案件表示画面1500の各案件の役割926に表示を行う役割名を求めるステップである。なお、本ステップについては、第1の実施形態のステップS403と同様の処理と同様であるため、説明は省略する。
ステップS1004は、利用者が過去に承認したかを判定するステップである。
処理履歴テーブル1302の中で、以下(1)〜(3)の条件にすべて該当する案件の「レコードが存在する場合、その案件のレコードは過去に承認したと判定することとする。
(1)処理履歴テーブル1302の案件IDが、ステップS1001で処理履歴テーブル1302より抽出した案件の案件IDと一致
(2)処理履歴テーブル1302の担当者IDが、ワークフローシステムへログインを開始するときに、処理担当者が入力したユーザIDと一致
(3)処理履歴テーブル1302の状態が処理済みである
ステップS1004で、処理対象の案件が過去に承認した案件ではないと判定した場合、ステップS1009で、図15の操作921に、「開く」ボタンを表示する処理を行う。
例えば、第1の実施形態と同様に、ステップS1001で抽出したレコードの中の、案件IDが00000001と00000003のレコードには、担当者IDが「U000」であって、状態が「処理済み」のレコードが存在しないため、このレコードを処理待ち案件表示画面1500に表示する場合は、操作921に「開く」のボタンを表示する。なお、ここではボタンとしているが、ボタンではなくリンクが張られるようにしても良いこととする。
ステップS1004で、処理対象の案件が過去に承認した案件であると判定した場合、ステップS1005へ処理を進める。
ステップS1005は、処理対象の案件が、差し戻しされ、かつ、差し戻しよりも後に、処理待ちの処理担当者が承認している、処理履歴が存在するか否かを判定する。
すなわち、案件において過去に承認した履歴が存在するが、その後の工程から、いずれかの工程に対し差し戻しされ処理履歴があり、かつ、その差し戻しされた処理履歴よりも後に処理担当者が承認しているかを判定するステップである。
例えば、ステップS1001で処理履歴テーブル1302より抽出したレコードの中の、案件IDが00000004のレコードには、担当者IDが「U000」であって、状態が「処理済み」のレコードである、1310、1311のレコードが存在しているため、ステップS1004では、処理対象の案件が過去に承認した案件であると判定し、ステップS1005へ処理を進める。
案件IDが00000004に関しては、状態が「処理済み(差戻し)」となっている、1312のレコードが存在している。しかし、担当者IDが「U000」であって、状態が「処理済み(承認)」のレコードは、1312よりも後に発生する処理履歴には存在しない。すなわち、ステップS1005において、処理対象の案件が、差し戻しされ、かつ、差し戻しよりも後に、処理待ちの処理担当者が承認している、処理履歴が存在しない(ステップS1005においてNO)と判定し、ステップS1009へ処理を進める。
ステップS1009においては、ステップS1009の処理を通る案件を、処理待ち一覧から処理画面を開くことにより確認できるようにするための、図15の操作921に図示する「開く」ボタンを表示する処理を行う。なお、ここではボタンとしているが、ボタンではなくリンクが張られるようにしても良いこととする。
以上により、これから処理を行おうとする処理担当者が過去に案件の処理を行っていたとしても、その後の工程の処理担当者により、処理を再度行わせるためにいずれかの工程に対し差戻しの処理が行われて、再度、処理依頼が来た場合には、処理待ち一覧の案件においては、「承認」のボタンの表示をせず、「開く」ボタンのみを表示をすることにより、案件の申請内容を処理画面において確認を行ってから処理を行うことが可能になる。すなわち、単純に、過去に処理を行った履歴が存在した場合に、「承認」ボタンを表示することを回避することが可能となる。
ステップS1005において、処理対象の案件が、差し戻しされ、かつ、差し戻しよりも後に、処理待ちの処理担当者が承認している、処理履歴が存在する(ステップS1005においてYES)と判定した場合、ステップS1006へ処理を進める。
例えば、ステップS1001で処理履歴テーブル1302より抽出したレコードの中の、案件IDが00000005のレコードには、担当者IDが「U000」であって、状態が「処理済み」のレコードである、1313、1314、1316のレコードが存在しているため、ステップS1004では、処理対象の案件が過去に承認した案件であると判定し、ステップS1005へ処理を進める。
また、案件IDが00000005に関しては、状態が「処理済み(差戻し)」となっている、1315のレコードが存在している。かつ、担当者IDが「U000」であって、状態が「処理済み(承認)」のレコードは、状態が「処理済み(承認)」である1316のレコードが、1315よりも後に発生する処理履歴に存在する。すなわち、ステップS1005において、処理対象の案件が、差し戻しされ、かつ、差し戻しよりも後に、処理待ちの処理担当者が承認している、処理履歴が存在する(ステップS1005においてYES)と判定し、ステップS1006へ処理を進める。
ステップS1006は、処理対象の案件が、承認依頼から、一定時間経過しているか否かを判定する。図16の、表示日数管理テーブル1600は、過去に承認した案件に対し処理待ち一覧で「承認」ボタンの機能を表示可能とする日数について管理するテーブルであり、表示日数1601によりその日数を管理する。例えば、図16の表示日数管理テーブル1600においては、その日数は、7日間と設定されている。
処理待状態である、案件IDが00000005の案件を処理担当者の処理待ち案件表示画面で表示をした日付が「2015/7/14」であったとすると、1317のレコードが、状態=「処理待ち」として作成された時点、すなわち、1316のレコードが、状態=「処理済み(承認)」となった時点である「2015/7/4」から、「2015/7/14」までの間は10日間ということになり、表示日数管理テーブル1600で管理される表示日数1601を超えているため、処理待ち一覧においては「承認ボタン」は表示しない。
なお、過去に承認した案件に対し処理待ち案件表示画面で「承認」ボタンの機能を表示可能とする日数が、表示日数管理テーブル1610(表示日数管理テーブル1600と同様のテーブル)において、表示日数1611において、12日間と登録されている場合の、処理待状態である、案件IDが00000005の処理待ち案件表示画面における承認ボタンの表示について説明する。
処理待状態である、案件IDが00000005の案件を処理担当者の処理待ち一覧で表示をした日付が「2015/7/14」であったとすると、1317のレコードが、状態=「処理待ち」として作成された時点、すなわち、1316のレコードが、状態=「処理済み(承認)」となった時点である「2015/7/4」から、「2015/7/14」までの間は10日間ということになるため、表示日数管理テーブル1610で管理される表示日数1611を超えていないため、処理待ち一覧においては「承認」ボタンは表示する。
ステップS1007においては、ステップS1007の処理を通る案件を、処理待ち一覧から処理画面を開かなくても承認できるようにするための、図15の操作921に図示する「承認」ボタンを表示する処理を行う。すなわち、抽出した処理待ちの状態の案件が、処理担当者が直近の過去に処理してから、当該処理担当者の処理待ちの状態となるまでの間に、差戻しされたか否かによって、処理待ち案件表示画面における処理待ちの状態の案件を承認することを可能とする承認ボタンの表示制御を行う。
例えば、案件IDが「00000005」の案件は、図15の案件961で図示すように、承認ボタン950が処理待ち案件表示画面において表示される。なお、ここではボタンとしているが、ボタンではなくリンクが張られるようにしても良いこととする。
ステップS1008において、図15の備考930において、過去に承認した役割と過去に承認した日時が分かるコメントを表示する。
例えば、図15の案件IDが「00000005」の案件961は、図15の970に図示するように、「課長として2014/07/04に承認した案件です」と表示している。
「課長として2014/07/04に承認した案件です」の文言のうち、「課長」の部分は、処理担当者が過去に処理した1316のレコードに紐づくロールの名称が表示される。なお、紐づくとは、処理を行ったアクティビティにおける役割ということである。すなわち、処理担当者が処理したときのロールの名称が表示される。
方法としては、処理履歴テーブル1302の1316のレコードの「アクティビティID」を元に、アクティビティテーブル1203を参照し、処理担当者指定として指定されている「担当ロールID」を求める。更に、「担当ロールID」より、ロールテーブル1112を参照し、「ロール名」を求める。この「ロール名」を図15の930で表示する文面に使用する。
例えば、処理履歴テーブル1302の案件ID=00000005(担当者IDが「U000」で状態が「処理待ち(承認)」)の1316のレコードは、アクティビティIDがact001であり、そのアクティビティIDより、担当ロールIDをアクティビティテーブル1203より求めると、R001となる。そのロール名(役割)をロールテーブル1112から求めるとロール名として「課長」が求められ、それを表示する。
また、2014/07/04の部分は、処理履歴上、差戻しが行われた後に、再度、処理担当者が過去に処理した日付すなわち、1316のレコードの処理日の値を表示する。
ステップS1008の処理が終了したあとは、処理待ち一覧から処理画面を開くことにより確認できるようにするための、図15の操作921に図示する「開く」ボタンも表示するため、ステップS1009の処理を行う。
例えば、案件IDが「00000004」の案件においては、図15の案件960で図示すように、図15の開くボタン952が処理待ち案件表示画面において表示する。
また、案件IDが「00000005」の案件においては、図15の案件961で図示すように、図15の開くボタン953が処理待ち案件表示画面において表示する。
なお、これらの「開く」や、「承認」の機能は、ボタンにより実現するとしているが、ボタンではなくリンクが張られるようにしても良いこととする。
なお、第2の実施形態におけるステップS1006の分岐は、第1の実施形態のステップS406の前の処理入れても良いこととする。この場合の、ステップS1006において、処理対象の案件が、承認依頼から、一定時間経過している場合、ステップS405へ処理を進め、処理対象の案件が、承認依頼から、一定時間経過していない場合は、ステップS406へ処理を進めることとする。
以上により、処理担当者が直近の過去に処理を行った時点から、再度処理を行う時点までの間に、差戻しの処理が存在した状態で、再度、当該処理担当者へ案件の処理依頼が来た場合、当該処理担当者は処理画面において対象の案件の内容を確認してから案件の処理を行うことが可能になる。
また、差戻しの処理が、処理担当者の直近の過去に処理を行った時点から、再度処理を行う時点までの間に存在しない場合は、直近に処理を行った処理案件の内容を処理画面において確認を行うことなく、処理待ち案件表示画面から処理を行うことが可能になる。
更に、過去に処理を行っていたとしても、処理待ち状態となってから一定時間経過した案件に対しては、処理待ち一覧においてにおいて、承認ボタンの表示を行わないため、必ず案件の内容を処理画面において確認をしながら処理を行うことが可能になる。
<第3の実施形態>
続いて、第3の実施形態について説明を行う。第3の実施形態においては、ワークフローのプロセス定義における特定のアクティビティに対し、処理待ち一覧から「承認」を行うことを可能としている場合の処理待ち一覧の「承認ボタン」の機能について説明を行う。なお、実施形態の処理の内容としては、ワークフローのプロセス定義におけるあるアクティビティの処理担当者が、他のアクティビティの処理担当者へ案件を差戻したことがあり、再度、処理待ち一覧から「承認」を行うことを可能とするアクティビティの処理担当者へ案件の承認依頼が来た場合、処理待ち一覧に「承認ボタン」を表示しないようにする、という内容になる。
また、第2の実施形態と同じく、一定の期間過ぎた場合において、処理待ち一覧の案件においては、「承認する」のボタンの表示を行わないようにする。
まず始めに、第3の実施形態のワークフローの処理が行われるにあたって必要となる前提条件について説明を行う。
第3の実施形態のワークフローの処理が行われるにあたって使用される組織情報は、第2の実施形態で使用している、図11の部門テーブル1111、ロールテーブル1112、ユーザテーブル1113、組織情報テーブル1114を使用することとする。
また、第3の実施形態のワークフローの処理が行われ案件が生成されるための必要となるテーブルの情報は、第2の実施形態で使用している、図12の業務テーブル1201、図12のプロセステーブル1202、を使用することとする。
なお、第1の実施形態において、図7のアクティビティテーブル703、第2の実施形態において、図12のアクティビティテーブル1203として使用しているテーブルの情報は、第3の実施形態においては、図22のアクティビティテーブル2200を使用することとする。
図22のアクティビティテーブル2200は、図23のアクティビティ2303の情報をテーブル構造で説明した図である。
なお、図23は、ワークフローの設計情報である定義情報と、実際にその定義情報を利用して申請がされた案件である案件情報の関係を示す図である。なお、図23の業務2301は図5の業務501、図23のプロセス2302は図5のプロセス502は、図23の案件2311は図5の案件511、図23の処理履歴2312は図5の処理履歴512と定義は同一であることとする。したがって、詳細についての説明は、省略する。
また、図23のアクティビティ2303については、図23のアクティビティ2303のアクティビティIDは図5のアクティビティ503のアクティビティID、図23のアクティビティ2303のプロセスIDは図5のアクティビティ503のプロセスID、図23のアクティビティ2303の番号は図5のアクティビティ503の番号、図23のアクティビティ2303の担当ロールIDは図5のアクティビティ503の担当ロールID、と同じであるとする。
なお、図23のアクティビティ2303の承認ボタン機能は、図21の処理待ち案件表示画面2100に示す、ワークフローにおける処理待ち状態となっている案件の一覧を表示するにおいて一覧画面において、案件を、952の「開く」ボタンを押下し、処理理画面を開いて内容を確認しながら承認を行うのではなく、案件を選択状態にし、950の「承認」ボタンを押下することによって承認を行うことを可能とするための許可フラグを管理する。
アクティビティテーブル2200は、案件が誰にどの順番で処理されるのかを定義したプロセス定義の各処理の処理担当者の情報が登録される。また、アクティビティテーブル2200のアクティビティIDは、アクティビティテーブル703のアクティビティID、アクティビティテーブル2200のプロセスIDは、アクティビティテーブル703のプロセスID、アクティビティテーブル2200の番号は、アクティビティテーブル703の番号、アクティビティテーブル2200の担当ロールIDは、アクティビティテーブル703の担当ロールID、と同じ項目であることとする。なお、第3の実施形態においては、新たに、承認ボタン機能という項目を保持することとする。
承認ボタン機能とは、図21の処理待ち案件表示画面2100に示す、ワークフローにおける処理待ち状態となっている案件の一覧を表示するにおいて一覧画面において、案件を、952の「開く」ボタンを押下し、処理理画面を開いて内容を確認しながら承認を行うのではなく、選択した案件を、950の「承認」ボタンを押下することによって承認を行うことを可能とするための許可フラグを管理する。
また、プロセス定義については、図18のプロセス定義1800を使用することとする。図18の1804−1のアクティビティは図12の1204−1のアクティビティ定義、図18の1804−2のアクティビティは図12の1204−2のアクティビティ定義、のアクティビティ定義、と同じこととする。
なお、図18の1804−3のアクティビティ定義は、処理担当者の指定は、担当ロールが「部長」であり、ここまでは、図12の1204−3のアクティビティ定義と同じであるとするが、第3の実施形態において、「承認ボタン機能可」という属性を持たせることにする。この「承認ボタン機能可」の属性は、アクティビティテーブル2200の該当するアクティビティIDの、承認ボタン機能が「可」に設定されていることにより、保持することになる。例えば、プロセス定義1800の1804−3のアクティビティの場合、アクティビティテーブル2200においては、アクティビティIDが「act002」のレコードが該当するアクティビティの情報であり、そのレコードの承認ボタン機能が「可」に設定されていることにより、そのような属性を保持することになる。
また、アクティビティテーブル1203において、番号が4番目のアクティビティを追加する。そのため、図18の1804−4のアクティビティに図示するように、担当ロールがR003の社長で処理を行うアクティビティが追加されることになる。
第3の実施形態において、ワークフローにおいて申請がされた案件のデータの情報を登録するために必要となるテーブルの情報は、第2の実施形態で使用している、図13の案件テーブル1301、を使用することとする。
図19は、第1の実施形態における、処理履歴512の情報をテーブル構造で説明する図である。また、図19の処理履歴テーブル1900は図8の処理履歴テーブル802、とテーブルの構造については同一であることとする。そのため詳細な説明は省略する。
図20の、処理履歴2000は、処理履歴テーブル1900の処理履歴の状況を各案件(案件ID=00000004、案件ID=00000005)ごとに図示した図である。
図21の処理待ち案件表示画面2100は、ワークフローで申請がされた案件で、処理担当者へ処理依頼がされた案件の一覧を表示する処理待ち案件表示画面の一例を示す図である。
なお、図21の921〜933、950の各機能、各項目は、第1の実施形態の図9の本発明における処理待ち案件表示画面920において同一の番号がふられている機能、項目と同じものであるとする。そのため各機能、各項目の詳細な説明については省略する。なお、図21の952、953のボタンは、案件の内容確認を確認するための処理画面を開くための機能を有する。
続いて、図17を用いて、本実施形態のワークフローシステムにおける処理待ち一覧である、図21の処理待ち案件表示画面2100を表示する第3の実施形態の処理について説明する。
ワークフローシステムにおける処理担当者はログイン画面(不図示)に処理担当者自身のユーザIDとパスワードを入力しシステムの利用を開始することとする。
また、処理担当者がワークフロークライアントの「処理待ち一覧」ボタン(不図示)を押下すると、本処理がワークフローサーバ101のCPU201にて実施され、処理待ち一覧(図21の処理待ち案件表示画面2100)がワークフロークライアントに表示されることとする。
ステップS1701では、処理履歴テーブル1900を参照し、「状態」が「処理待ち」で、かつ、「担当者ID」が、処理担当者がシステムの利用を開始する際に入力したユーザIDと一致するものを抽出する。
例えば、本処理においては、処理履歴テーブル1900のうち、状態が「処理待ち」であって、担当者IDが、U000のデータを抽出することとする。
抽出した各処理待ちのデータについて、後述のS1702からS1710のステップを繰り返し実施する。
ステップS1702は、図21、処理待ち案件表示画面2100の922から925、927から929の各項目の値を表示するステップである。各項目の値については、第1の実施形態の図9の各項目の説明でした方法で値を取得する方法と同様であることとする。
ステップS1703は、処理待ち案件表示画面2100の各案件の役割926に表示を行う役割名を求めるステップである。なお、本ステップについては、第1の実施形態のステップS403の処理と同様であるため、説明は省略する。
ステップS1704は、処理対象の処理待ち案件に紐づくアクティビティに、承認ボタン機能が使用可能な設定がされているか否かを判定する。ステップS1704で、処理対象の処理待ち案件に紐づくアクティビティに、承認ボタン機能が使用可能な設定がされている場合(ステップS1704でYESの場合)は、ステップS1705へ処理を進め、処理対象の処理待ち案件に紐づくアクティビティに、承認ボタン機能が使用可能な設定がされていない場合(ステップS1704でNOの場合)は、ステップS1710へ処理を進める。
例えば、本実施形態においてワークフローの起案が、図18のプロセス定義1800をもとに動作しているものとすると、1810−3のact002のアクティビティは、処理担当者の指定は、部長の役割が指定されていて、さらに、「承認ボタン機能」が可となっているため、承認ボタン機能が使用可能な設定がされていることになる。なお、この情報は、本実施形態で使用されるプロセス定義の各処理(アクティビティ)の処理担当者の情報を、アクティビティ単位でアクティビティテーブル2200の承認ボタン機能の項目において情報を管理するが、アクティビティID=act002の場合、承認ボタン機能は「可」となっているため、このアクティビティにおいて案件が処理待ちの状態となった場合は、処理待ち一覧において表示がされる処理待ちの案件に対して、承認ボタン機能を付加することになる。なお、この承認ボタン機能が「不可」になっている場合は、処理待ち一覧において表示がされる処理待ちの案件に対してこの機能は付加されない。
ステップS1705は、利用者が過去に承認したかを判定するステップである。
処理履歴テーブル1900の中で、以下(1)〜(3)の条件にすべて該当する案件の「レコードが存在する場合、その案件のレコードは過去に承認したと判定することとする。
(1)処理履歴テーブル1900の案件IDが、ステップS1701で処理履歴テーブル1900より抽出した案件の案件IDと一致
(2)処理履歴テーブル1900の担当者IDが、ワークフローシステムへログインを開始するときに、処理担当者が入力したユーザIDと一致
(3)処理履歴テーブル1900の状態が処理済みである
ステップS1705で、処理対象の案件が過去に承認した案件であると判定した場合(ステップS1705でYESの場合)、ステップS1706へ処理を進める。ステップS1705で、処理対象の案件が過去に承認していない案件であると判定した場合(ステップS1705でNOの場合)、ステップS1707へ処理を進める。
例えば、ステップS1701で処理履歴テーブル1900より抽出したレコードの中に、案件IDが「00000004」、担当者IDが「U000」、状態が「処理待ち」の1910のレコードが存在するが、案件IDが「00000004」、担当者IDが「U000」、状態が「処理済み」のレコードは、1911、1912の2件のレコードが存在する。このため、1910の処理履歴の状態(アクティビティIDが「act002」において状態が「処理待ち」)においては、案件IDが「00000004」の案件は過去に承認した案件であると判定する。
ステップS1706において、処理対象の案件が、差し戻しされた処理履歴が存在するか否かを判定する。ステップS1706において、処理対象の案件が、差し戻しされた処理履歴が存在すると判定した場合(ステップS1706においてYES)、ステップS1710へ処理を進める。ステップS1706において、処理対象の案件が、差し戻しされた処理履歴が存在しないと判定した場合(ステップS1706においてNO)、ステップS1707へ処理を進める。
なお、本処理の説明においては、差し戻しされた処理履歴の存在の確認は、過去に処理を行ったとされる処理履歴の中より処理された日時が一番近いものから、処理待ちの状態の履歴のまでの履歴中に存在するか否かによって確認することとする。なお、別の方法として、差し戻しされた処理履歴の存在の確認を、全ての処理履歴において存在するか否かを確認する方法をとっても良いこととする。
例えば、案件IDが「00000004」は、アクティビティIDが「act002」において状態が「処理待ち」になっていて、この処理を行うのは、担当者IDが「U000」であることが、1910の処理履歴のレコードより分かるが、この担当者IDが「U000」が過去に承認を行った履歴としては、案件IDが「00000004」、担当者IDが「U000」、状態が「処理済み」の1911と、1912のレコードが存在する。この中において、過去に処理を行ったとされる処理履歴の中より処理された日時が近いものは、1912のレコードになる。この1912のレコードから、状態が「処理待ち」の1910のレコードまでの間において、差戻しされた履歴は、1913のレコードとして存在する(案件IDが「00000004」、アクティビティIDが「act003」担当者IDが「U004」、状態が「処理済み(差戻し)」)。
したがって、ステップS1706において、処理対象の案件が、差し戻しされた処理履歴が存在すると判定したため、ステップS1710へ処理を進める。
続いて、ステップS1706において、処理対象の案件が、差し戻しされた処理履歴が存在しないと判定する案件の処理履歴のケースについて説明を行う。
例えば、ステップS1701で処理履歴テーブル1900より抽出したレコードの中に、案件IDが「00000005」、担当者IDが「U000」、状態が「処理待ち」の1920のレコードが存在するが、案件IDが「00000005」、担当者IDが「U000」、状態が「処理済み」のレコードは、1921、1922、1923の3件のレコードが存在する。このため、1920の処理履歴の状態(アクティビティIDが「act002」において状態が「処理待ち」)においては、案件IDが「00000005」の案件は過去に承認した案件であると、ステップS1705において、判定する。
続いて、この場合における、ステップS1706における処理対象の案件が、差し戻しされた処理履歴が存在しないと判定するか否かの判定について説明を行う。
例えば、案件IDが「00000005」は、アクティビティIDが「act002」において状態が「処理待ち」になっていて、この処理を行うのは、担当者IDが「U000」であることが、1920の処理履歴のレコードより分かるが、この担当者IDが「U000」が過去に承認を行った履歴としては、案件IDが「00000004」、担当者IDが「U000」、状態が「処理済み」の1921、1922、1923の3つのレコードが存在する。この中において、過去に処理を行ったとされる処理履歴の中より処理された日時が近いものは、1923のレコードになる。
なお、この1923のレコードから、状態が「処理待ち」の1920のレコードまでの間において、差戻しされた履歴は存在しない。したがって、ステップS1706において、処理対象の案件が、差し戻しされた処理履歴が存在しないと判定したため、ステップS1707へ処理を進める。
ステップS1707においては、処理対象の案件が、承認依頼から、一定時間経過しているか否かを判定する。なお、処理は、第2の実施形態におけるステップS1006の処理と同じ考え方による方法で行うものとするため、処理の詳細についての説明は省略する。
ステップS1707において、処理対象の案件が、承認依頼から、一定時間経過していると判定した場合、ステップS1710へ処理を進める。また、ステップS1707において、処理対象の案件が、承認依頼から、一定時間経過していないと判定した場合、ステップS1708へ処理を進める。
ステップS1708においては、ステップS1708の処理を通る案件を、処理待ち一覧から処理画面を開かなくても承認できるようにするための、図21の操作921に図示する承認ボタンを表示する処理を行う。すなわち、抽出した処理待ちの状態の案件が、処理担当者が直近の過去に処理してから、当該処理担当者の処理待ちの状態となるまでの間に、差戻しされたか否かによって、処理待ち案件表示画面における処理待ちの状態の案件を承認することを可能とする承認ボタンの表示制御を行う。
例えば、案件IDが「00000005」の案件は、図21の案件961で図示すように、承認ボタン950が処理待ち案件表示画面において表示される。なお、ここではボタンとしているが、ボタンではなくリンクが張られるようにしても良いこととする。
ステップS1709において、図21の備考930において、過去に承認した役割と過去に承認した日時が分かるコメントを表示する。
例えば、図21の案件IDが「00000005」の案件961は、図21の970に図示するように、「課長として2014/07/04に承認した案件です」と表示している。
「課長として2015/07/04に承認した案件です」の文言のうち、「課長」の部分は、処理担当者が過去に処理した1923のレコードに紐づくロールの名称が表示される。なお、紐づく役割とは、処理を行ったアクティビティにおける役割ということである。すなわち、処理担当者が処理したときのロールの名称が表示される。
方法としては、処理履歴テーブル1900の1923のレコードの「アクティビティID」を元に、アクティビティテーブル2200を参照し、処理担当者指定として指定されている「担当ロールID」を求める。更に、「担当ロールID」より、ロールテーブル1112を参照し、「ロール名」を求める。
例えば、処理履歴テーブル1900の案件ID=00000005(担当者IDが「U000」で状態が「処理待ち(承認)」)の1923のレコードは、アクティビティIDがact001であり、そのアクティビティIDより、担当ロールIDをアクティビティテーブル1203より求めると、R001となる。そのロール名(役割)をロールテーブル1112から求めるとロール名として「課長」が求められ、それを表示する。
また、2014/07/04の部分は、処理担当者が過去処理した日付すなわち、1923のレコードの処理日の値を表示する。
ステップS1709の処理が終了したあとは、処理待ち一覧から処理画面を開くことにより確認できるようにするための、図21の操作921に図示する「開く」ボタンも表示するため、ステップS1710の処理を行う。
ステップS1710において、ステップS1710の処理を通る案件を、処理待ち一覧から処理画面を開くことにより確認できるようにするための、図21の操作921に図示する「開く」ボタンを表示する処理を行う。
例えば、案件IDが「00000004」の案件においては、図21の案件960で図示すように、図21の開くボタン952が処理待ち案件表示画面2100において表示される。また、案件IDが「00000005」の案件においては、図21の案件961で図示すように、図21の開くボタン953が処理待ち案件表示画面2100において表示される。
なお、れらの「開く」や、「承認」の機能は、ここではボタンとしているが、ボタンではなくリンクが張られるようにしても良いこととする。
以上により、処理担当者が直近の過去に処理を行った時点から、再度処理を行う時点までの間に、差戻しの処理が存在した状態で、再度、当該処理担当者へ案件の処理依頼が来た場合、当該処理担当者は処理画面において対象の案件の内容を確認してから案件の処理を行うことが可能になる。
また、差戻しの処理が、処理担当者の直近の過去に処理を行った時点から、再度処理を行う時点までの間に存在しない場合は、直近に処理を行った処理案件の内容を処理画面において確認を行うことなく、処理待ち案件表示画面から処理を行うことが可能になる。
更に、過去に処理を行っていたとしても、処理待ち状態となってから一定時間経過した案件に対しては、処理待ち一覧においてにおいて、承認ボタンの表示を行わないため、必ず案件の内容を処理画面において確認をしながら処理を行うことが可能になる。
以上、3実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、本発明におけるプログラムは、図4、図10、図17に示すフローチャートの処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体は図4、図10、図17の処理方法をコンピュータが実行可能なプログラムが記憶されている。なお、本発明におけるプログラムは図4、図10、図17の各装置の処理方法ごとのプログラムであってもよい。
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読み出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク、ソリッドステートドライブ等を用いることができる。
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。