(57)【要約】【課題】作業手順に基づいて複数の作業を実施する場合にあって、実施済みの作業を再度実施するとき、その作業よりも順番が後の作業を行う作業者に対して、再度実施するための作業の差し戻しの指示を行わせる必要がないようにした作業制御プログラムを提供する。【解決手段】作業制御プログラムは、コンピュータに、複数の作業に対する作業手順に基づいて実施が許可されている作業よりも前に実施された作業における作業結果の変更要求を受け付ける変更要求受付機能と、前記変更要求受付機能によって変更要求を受け付けられた作業を起点として、前記作業手順に基づいて、実施を許可する作業を特定する作業特定機能を実現させる。【選択図】図１
2010044636.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
複数の作業に対する作業手順に基づいて実施が許可されている作業よりも前に実施された作業における作業結果の変更要求を受け付ける変更要求受付機能と、
前記変更要求受付機能によって変更要求が受け付けられた作業を起点として、前記作業手順に基づいて、実施を許可する作業を特定する作業特定機能
を実現させることを特徴とする作業制御プログラム。
【請求項２】
前記作業特定機能は、作業を特定する場合に、作業結果の変更とは独立した作業を除外して、作業を特定する
ことを特徴とする請求項１に記載の作業制御プログラム。
【請求項３】
前記作業特定機能は、実施を許可する作業として特定しようとしている作業が、実施が許可されている作業である場合、又は実施が許可されている作業よりも後の作業である場合には、当該実施が許可されている作業を終点とする
ことを特徴とする請求項１又は２に記載の作業制御プログラム。
【請求項４】
前記コンピュータに、
前記変更要求受付機能が変更要求を受け付けた場合、実施が許可されている作業の作業者にその旨を通知する通知機能
をさらに実現させることを特徴とする請求項１から３のいずれか一項に記載の作業制御プログラム。
【請求項５】
前記コンピュータに、
実施が許可されている第１の作業よりも前に実施された作業の中に、前記作業特定機能によって特定された第２の作業がある場合には、当該第１の作業における次への作業の移行を抑制する作業移行抑制機能
をさらに実現させることを特徴とする請求項１から４のいずれか一項に記載の作業制御プログラム。
【請求項６】
前記コンピュータに、
前記作業手順には分岐があり、前記作業特定機能によって特定された作業が、既に実施された作業とは異なる分岐にある場合は、当該既に実施された作業を取り消す作業取消機能
をさらに実現させることを特徴とする請求項１から５のいずれか一項に記載の作業制御プログラム。
【請求項７】
複数の作業に対する作業手順に基づいて実施が許可されている作業よりも前に実施された作業における作業結果の変更要求を受け付ける変更要求受付手段と、
前記変更要求受付手段によって変更要求が受け付けられた作業を起点として、前記作業手順に基づいて、実施を許可する作業を特定する作業特定手段
を実現させることを特徴とする作業制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、作業制御プログラム及び作業制御システムに関する。
【背景技術】
【０００２】
複数の作業を有する業務プロセスの遂行のために、作業の順序と作業間の情報の受け渡しを定義し、その定義に基づいて作業の状態や担当者の割り当てを管理し実行を制御するワークフローシステムがある。そのワークフローシステムにおいて、既に作業済みの内容に対して、修正を施す必要が生じる場合がある。
【０００３】
これに関連する技術として、例えば、特許文献１には、回覧中の書類に不備があるおそれのあるときでも、キャンセルせずに一時停止して調査することにより、ワークフローシステム上の書類回覧を迅速かつきめ細かに行うことを可能とすることを課題とし、書類の回覧にポーズ（一時停止）を設定し、そのポーズを解除することにより、ポーズ設定中に不備の可能性のある書類の確認を行い、またポーズ設定時に開始可能日時を入力することにより、その日時が過ぎると自動的にポーズを解除し、回覧を再開することができ、さらに書類に追加又は修正があった場合には、ポーズを設定し、回覧が完了している回覧者に対して、同時に追加又は修正された書類を送付し、承認結果を回収した後、前の書類と追加・変更後の書類の回覧を再開することが開示されている。
【０００４】
また、例えば、特許文献２には、ワークフローにおける経路途中の処理者に、申請者による申請内容に対する修正権限を持たせたワークフローシステムを提供することを課題とし、ワークフローシステムにおいて、ワークフローにおける経路上の所定のアクティビティにおいて他のアクティビティにおける処理結果が修正され差し戻された場合に、差し戻し先のアクティビティに対してこの修正に合意するかどうかを問い合わせる問い合わせ手段と、この差し戻し先のアクティビティにおいてこの修正が合意された場合に、この修正が行われたこの所定のアクティビティを飛び越えてワークフローの経路上における次のアクティビティに業務プロセスを進める管理手段とを備えることが開示されている。
【特許文献１】特開平０９−１３８８２４号公報
【特許文献２】特開２００２−３４２５４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
作業手順に基づいて複数の作業を実施する場合にあって、実施済みの作業を再度実施するとき、その作業よりも順番が後の作業を行う作業者に対して、再度作業を実施させるための指示を行わせる必要がないようにした作業制御プログラム及び作業制御システムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、コンピュータに、複数の作業に対する作業手順に基づいて実施が許可されている作業よりも前に実施された作業における作業結果の変更要求を受け付ける変更要求受付機能と、前記変更要求受付機能によって変更要求が受け付けられた作業を起点として、前記作業手順に基づいて、実施を許可する作業を特定する作業特定機能を実現させることを特徴とする作業制御プログラムである。
【０００７】
請求項２の発明は、前記作業特定機能は、作業を特定する場合に、作業結果の変更とは独立した作業を除外して、作業を特定することを特徴とする請求項１に記載の作業制御プログラムである。
【０００８】
請求項３の発明は、前記作業特定機能は、実施を許可する作業として特定しようとしている作業が、実施が許可されている作業である場合、又は実施が許可されている作業よりも後の作業である場合には、当該実施が許可されている作業を終点とすることを特徴とする請求項１又は２に記載の作業制御プログラムである。
【０００９】
請求項４の発明は、前記コンピュータに、前記変更要求受付機能が変更要求を受け付けた場合、実施が許可されている作業の作業者にその旨を通知する通知機能をさらに実現させることを特徴とする請求項１から３のいずれか一項に記載の作業制御プログラムである。
【００１０】
請求項５の発明は、前記コンピュータに、実施が許可されている第１の作業よりも前に実施された作業の中に、前記作業特定機能によって特定された第２の作業がある場合には、当該第１の作業における次への作業の移行を抑制する作業移行抑制機能をさらに実現させることを特徴とする請求項１から４のいずれか一項に記載の作業制御プログラムである。
【００１１】
請求項６の発明は、前記コンピュータに、前記作業手順には分岐があり、前記作業特定機能によって特定された作業が、既に実施された作業とは異なる分岐にある場合は、当該既に実施された作業を取り消す作業取消機能をさらに実現させることを特徴とする請求項１から５のいずれか一項に記載の作業制御プログラムである。
【００１２】
請求項７の発明は、複数の作業に対する作業手順に基づいて実施が許可されている作業よりも前に実施された作業における作業結果の変更要求を受け付ける変更要求受付手段と、前記変更要求受付手段によって変更要求が受け付けられた作業を起点として、前記作業手順に基づいて、実施を許可する作業を特定する作業特定手段を実現させることを特徴とする作業制御システムである。
【発明の効果】
【００１３】
請求項１記載の作業制御プログラムによれば、作業手順に基づいて複数の作業を実施する場合にあって、実施済みの作業を再度実施するとき、その作業よりも順番が後の作業を行う作業者に対して、再度作業を実施させるための指示を行わせる必要がないようにすることができる。
【００１４】
請求項２記載の作業制御プログラムによれば、本構成を有しない場合と比較して、実施済みの作業を再度実施する場合における作業者の作業を軽減することができる。
【００１５】
請求項３記載の作業制御プログラムによれば、再度実施する作業から本来の作業へと移行させることを担保することができる。
【００１６】
請求項４記載の作業制御プログラムによれば、作業者は再度実施する作業が発生したことを知ることができる。
【００１７】
請求項５記載の作業制御プログラムによれば、本構成を有しない場合と比較して、継続している作業が無駄な作業となることを抑制することができる。
【００１８】
請求項６記載の作業制御プログラムによれば、分岐がある作業手順に適用することができる。
【００１９】
請求項７記載の作業制御システムによれば、作業手順に基づいて複数の作業を実施する場合にあって、実施済みの作業を再度実施するとき、その作業よりも順番が後の作業を行う作業者に対して、再度作業を実施させるための指示を行わせる必要がないようにすることができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図１は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、コンピュータ・プログラム、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能にほぼ一対一に対応しているが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）の場合にも用いる。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。「あらかじめ定められた」とは、対象としている処理の前であることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。
【００２１】
本実施の形態は、図１に示すように、変更要求受付モジュール１１０、変更作業特定モジュール１２０、通知モジュール１３０、標準作業特定モジュール１４０、作業移行抑制モジュール１５０、分岐作業処理モジュール１６０を有している。
【００２２】
なお、ワークフローとは、業務に関連する情報や作業の流れの体系の総称であり、複数の作業に対する作業手順である。その作業手順にはあらかじめ定められた複数の作業項目が含まれ、さらに、その作業項目には作業が含まれている。特に、図２に例示するワークフローエンジンモジュール２２１では、さらに、その複数の作業項目の作業に対する作業手順に基づいて、実施を許可する作業を特定すること、そして、その作業を行うこと、場合によっては作業者の操作に応じてその作業を行うこと、それらを制御することをいう。グループウェア、スケジュール管理、進捗管理などのモジュールを組み合わせたものであってもよい。なお、作業項目とは、ワークフローにおけるアクティビティに対応し、作業とは、そのアクティビティ毎に行われる実際の作業に対応する。
また、本実施の形態は、ワークフローにおける作業結果の変更についての処理を行うが、変更には修正を含み、主に修正について説明する。
【００２３】
変更要求受付モジュール１１０は、変更作業特定モジュール１２０、通知モジュール１３０と接続されている。
変更要求受付モジュール１１０は、複数の作業に対する作業手順に基づいて実施が許可されている作業よりも前に実施された作業における作業結果の変更要求を受け付ける。例えば、具体的には、購入申請のワークフローにおいて、購入申請をした者が金額を間違えたことを、申請後に気がついて、その金額を修正するような場合である。その修正である変更要求が行われたときは、既にその後の作業が行われていることとなる。
【００２４】
変更作業特定モジュール１２０は、変更要求受付モジュール１１０と接続されており、作業手順解析モジュール１２２、作業除外モジュール１２４、変更作業範囲特定モジュール１２６を有している。変更作業特定モジュール１２０の作業手順解析モジュール１２２は、作業移行抑制モジュール１５０、分岐作業処理モジュール１６０と接続されている。
作業手順解析モジュール１２２は、変更作業特定モジュール１２０、作業除外モジュール１２４、変更作業範囲特定モジュール１２６、作業移行抑制モジュール１５０、分岐作業処理モジュール１６０からの解析指示にしたがって、ワークフローの解析を行い、その解析結果を渡す。例えば、具体的には、ネットワーク状に接続された作業間の順番、分岐の有無、その分岐箇所等を抽出する等を行う。
【００２５】
変更作業特定モジュール１２０は、作業手順解析モジュール１２２による解析結果に基づいて、変更要求受付モジュール１１０によって変更要求を受け付けられた作業を起点として、前記作業手順に基づいて、実施を許可する作業を特定する。つまり、変更要求が行われた作業から現在行っている作業までの間にある作業が、実施を許可する作業として特定されることとなる。そして、その特定された作業において、変更要求が行われた作業に対して、その変更を許可すること又は否認することが、作業者の操作に応じて行われる。
【００２６】
なお、「実施が許可されている作業」とは、ワークフローにしたがって、現在、作業者に割り当てている作業のことをいう。また、ワークフローにしたがうことの他に、変更作業特定モジュール１２０によって特定されて、現在、作業者に割り当てている作業を含めてもよい。つまり、実施が許可されている作業には、変更作業以外に現在行っている作業（例えば、具体的には、先の例で、修正前の購入申請に対する作業）が主としてあるが、この他に、変更作業特定モジュール１２０によって特定された作業であってもよいこととなる。これは、変更中に更なる変更が行われた場合にも対応するためである。
【００２７】
また、「実施が許可されている作業」には、実施が許可されている作業であることという条件の他に、その作業が完了したことを受け付けることが許可された作業であることという条件を付加してもよい。つまり、単に実施が許可されている作業ではなく、その作業が完了することも条件とした作業であることとしてもよい。したがって、この場合は、たとえ実施が許可されている作業であっても、その作業が途中であるものは含まれないこととなる。
【００２８】
また、変更作業特定モジュール１２０は、作業を特定する場合に、作業除外モジュール１２４による処理を行わせて、その結果を用いて作業を特定するようにしてもよい。つまり、作業除外モジュール１２４は、作業手順解析モジュール１２２による解析結果に基づいて、作業結果の変更とは独立した作業を除外する。なお、作業結果の変更とは独立した作業とは、作業結果が変更されたとしてもそれとは無関係である作業のことをいい、例えば、作業結果の変更による影響（例えば、支配、連鎖等）を受けない作業をいう。つまり、作業結果の変更による影響を受ける作業のみが特定されることになる。
【００２９】
また、変更作業特定モジュール１２０は、変更作業範囲特定モジュール１２６による処理を行わせて、その結果を用いて作業の終点を特定するようにしてもよい。つまり、変更作業範囲特定モジュール１２６は、実施を許可する作業として特定しようとしている作業が、実施が許可されている作業である場合、又は実施が許可されている作業よりも後の作業である場合には、当該実施が許可されている作業を終点とする。なお、「実施が許可されている作業よりも後の作業である場合」とは、前述の作業除外モジュール１２４による処理の結果、現在行っている作業が除外されてしまい、現在行っている作業よりも後の作業を特定してしまうことを防止するものである。
【００３０】
通知モジュール１３０は、変更要求受付モジュール１１０と接続されており、変更要求受付モジュール１１０が変更要求を受け付けた場合、実施が許可されている作業の作業者にその旨を通知する。つまり、現在行っている作業の作業者に、その対象としたデータについて変更が行われたことを知らせるものである。更に、変更要求受付モジュール１１０による変更要求の受付の通知の他に、作業移行抑制モジュール１５０による抑制が行われたことを通知するようにしてもよい。
【００３１】
標準作業特定モジュール１４０は、作業移行抑制モジュール１５０、分岐作業処理モジュール１６０と接続されている。
標準作業特定モジュール１４０は、作業手順にしたがって、ワークフロー内で現在行われている作業を特定するものである。一般的には、変更作業が行われていない場合に、行うべき作業を特定する。そして、変更作業が行われている場合であっても、行うべき作業を特定するものである。ただし、作業移行抑制モジュール１５０によって、作業の移行を抑制されることがある。例えば、それ以上の作業の続行を中断することによって、作業の特定を抑制することがある。
【００３２】
作業移行抑制モジュール１５０は、作業手順解析モジュール１２２、標準作業特定モジュール１４０と接続されている。
作業移行抑制モジュール１５０は、実施が許可されている第１の作業よりも前に実施された作業の中に、変更作業特定モジュール１２０によって特定された第２の作業がある場合には、当該第１の作業における次への作業の移行を抑制する。つまり、現在行われている作業よりも以前に行われた作業において、変更が生じた場面であるので、それ以降の作業を続行することは無駄となる可能性があるものである。したがって、現在行われている作業以降の作業を抑制するものである。抑制としては、例えば、中止、中断、作業の延期等がある。
【００３３】
分岐作業処理モジュール１６０は、作業手順解析モジュール１２２、標準作業特定モジュール１４０と接続されている。
分岐作業処理モジュール１６０は、前記作業手順には分岐があり、変更作業特定モジュール１２０によって特定された作業が、既に実施された作業とは異なる分岐にある場合は、当該既に実施された作業を取り消す。つまり、ワークフロー内に分岐があり、現在行っている作業がその分岐の後のものであり、変更要求のあった作業によって、分岐の条件によっては異なる作業を行わなければならない場合に、分岐から今まで行っていた作業を取り消すようにしたものである。
【００３４】
図２は、システム全体の構成例を示すブロック図である。
ワークフロー管理システムサーバー２１０、クライアント２５０Ａ、クライアント２５０Ｂは、ネットワーク２９０を介して、クライアント２５０Ｃは、広域通信網２９１及びネットワーク２９０を介して、それぞれ接続されている。クライアントは３つに限らず、１つであってもよいし、それ以上であってもよく、また、他の通信網を介して接続されていてもよい。ワークフロー管理システムサーバー２１０も複数あってもよいし、ワークフロー管理システムサーバー２１０自体が複数のサーバーによって構成されていてもよい。
ワークフロー管理システムサーバー２１０は、ワークフロー処理モジュール２２０、ワークフローデータ格納モジュール２３０を有している。
ワークフロー処理モジュール２２０は、ワークフローエンジンモジュール２２１、ワークフロー定義管理モジュール２２２、案件操作モジュール２２３、作業操作モジュール２２４、追認操作モジュール２２５を有している。
ワークフローデータ格納モジュール２３０は、ワークフロー定義格納モジュール２３２、案件・作業状態・履歴格納モジュール２３３、属性データ格納モジュール２３４、修正データ格納モジュール２３５、追認作業状態格納モジュール２３６を有している。
【００３５】
作業者は、クライアント２５０Ａ、２５０Ｂ、２５０Ｃのユーザーインターフェイスを介して、ワークフロー管理システムサーバー２１０を利用する。
ワークフロー管理システムサーバー２１０は、ワークフロー処理モジュール２２０内の各モジュールがワークフローデータ格納モジュール２３０内に格納されている各データを用いてワークフローに関する処理を行う。主に追認操作モジュール２２５によって修正データ格納モジュール２３５、追認作業状態格納モジュール２３６を用いて、図１の例に示した処理を行う。ワークフロー定義管理モジュール２２２によってワークフロー定義格納モジュール２３２を用いて、ワークフロー自体の定義を行う。案件操作モジュール２２３によって案件・作業状態・履歴格納モジュール２３３を用いて、その案件についてのワークフローを起動等する。そして、作業者からの操作に応じて作業操作モジュール２２４によって属性データ格納モジュール２３４又は案件・作業状態・履歴格納モジュール２３３を用いて、作業を実施する。また、ワークフローに関する基本的な処理、つまり案件のワークフロー又は作業の実行状態を制御する処理をワークフローエンジンモジュール２２１が担う。なお、案件とは、定義されたワークフローにしたがって、実際に起動されたワークフローをいい、１つのワークフローの定義から複数の案件であるワークフローが起動されることがある。
【００３６】
図３は、本実施の形態の構成例について別の観点からみた場合の概念的なモジュール構成図である。また、図２の例に示したワークフロー管理システムサーバー２１０内の詳細例を示したものである。
ワークフロー定義格納モジュール２３２、追認処理データ格納モジュール２３７、案件・作業状態・履歴格納モジュール２３３、属性データ格納モジュール２３４は説明の都合上、別個に記憶装置に記憶されているように図３の例では示しているが、１つの記憶装置に記憶するようにしてもよいし、これらのうちの組み合わせであってもよい。例えば、案件・作業状態・履歴格納モジュール２３３と追認作業状態格納モジュール２３６を同じ記憶装置に記憶させ、属性データ格納モジュール２３４と修正データ格納モジュール２３５を同じ記憶装置に記憶させるようにしてもよい。
【００３７】
ユーザーインターフェイス２５１は、クライアント２５０Ａ等にあり、作業者の操作に応じて、ワークフロー定義管理モジュール２２２に対して、ワークフローの生成に関する定義登録３０１、定義取得３０５等の指示又はデータ取得を行い、案件操作モジュール２２３に対して、ワークフローの案件（複数の作業を有している）に関する案件起動３０６、案件一覧３１２等の指示又はデータ取得を行い、作業操作モジュール２２４に対して、案件内の作業に関する属性データ受付３１４、作業完了３１５、作業一覧３２０、入力フォーム取得３２１等の指示又はデータ取得を行い、追認操作モジュール２２５に対して、修正に関する修正データ受付３２２、追認完了３２３、追認一覧３３０、追認フォーム取得３３１等の指示又はデータ取得を行う。
【００３８】
ワークフロー定義管理モジュール２２２は、ワークフローの定義に関するデータについて、ワークフロー定義格納モジュール２３２に対して、保存３０２、参照３０４等を行い、ユーザーインターフェイス２５１に対して、定義登録３０１、定義取得３０５等の指示受付又はデータ提示を行う。
ワークフロー定義格納モジュール２３２は、ワークフローエンジンモジュール２２１から定義参照３０３等され、ワークフロー定義管理モジュール２２２から保存３０２、参照３０４等される。例えば、ワークフロー定義格納モジュール２３２に格納されるデータ例として、図９の例に示したワークフロー定義テーブル９００、図１０の例に示した作業定義テーブル１０００、図１１の例に示したトランジション定義テーブル１１００、図１２の例に示した属性定義テーブル１２００、図１３の例に示したフォーム定義テーブル１３００がある。これらによって、ワークフローが定義される。
【００３９】
図９は、ワークフロー定義テーブル９００のデータ構造例を示す説明図である。ワークフロー定義テーブル９００は、ＩＤ欄９０１、定義名欄９０２を有している。ＩＤ欄９０１は、ワークフロー自体を一意に識別する識別子を記憶する。定義名欄９０２は、そのワークフローの名称を記憶する。ワークフローを作業者に提示する場合等に利用する。
【００４０】
図１０は、作業定義テーブル１０００のデータ構造例を示す説明図である。作業定義テーブル１０００は、ＩＤ欄１００１、定義欄１００２、作業名欄１００３を有している。ワークフローを構成する作業を記憶する。つまり、ＩＤ欄１００１は、作業を一意に識別する識別子を記憶する。定義欄１００２は、その作業が含まれるワークフローの識別子（ワークフロー定義テーブル９００のＩＤ欄９０１で定義された識別子）を記憶する。作業名欄１００３は、その作業の名称を記憶する。ワークフローの作業を作業者に提示する場合等に利用する。したがって、図１０の例では、ワークフロー「購入申請」の作業として「申請」、「課長承認」、「部長承認」、「調達」、「経理」、「総務」がある。
【００４１】
図１１は、トランジション定義テーブル１１００のデータ構造例を示す説明図である。トランジション定義テーブル１１００は、ＩＤ欄１１０１、遷移元欄１１０２、遷移先欄１１０３を有している。ワークフローの構造（作業間の順番）を記憶する。つまり、ＩＤ欄１１０１は、ワークフローにおけるある作業からある作業への遷移を一意に識別する識別子を記憶する。遷移元欄１１０２は、遷移元の作業の識別子を記憶する。遷移先欄１１０３は、遷移先の作業の識別子を記憶する。したがって、図１１の例では、ワークフロー「購入申請」は、「申請」（作業の識別子：１１１）から「課長承認」（作業の識別子：１１２）へ遷移し、「課長承認」から「部長承認」（作業の識別子：１１３）へ遷移し、「部長承認」から「調達」（作業の識別子：１１４）へ遷移し、「部長承認」から「経理」（作業の識別子：１１５）へ遷移し、「調達」から「総務」（作業の識別子：１１６）へ遷移し、「経理」から「総務」へ遷移することを示している。
【００４２】
図１２は、属性定義テーブル１２００のデータ構造例を示す説明図である。属性定義テーブル１２００は、ＩＤ欄１２０１、定義欄１２０２、属性名欄１２０３、データ型欄１２０４を有している。各ワークフロー内で処理されるデータである属性に関する定義を記憶する。つまり、ＩＤ欄１２０１は、そのデータである属性を一意に識別する識別子を記憶する。定義欄１２０２は、そのデータが用いられるワークフローの識別子を記憶する。属性名欄１２０３は、そのデータである属性の名称を記憶する。そのデータを作業者に提示する場合等に利用する。データ型欄１２０４は、そのデータの型（文字列型、整数型等）を記憶する。
【００４３】
図１３は、フォーム定義テーブル１３００のデータ構造例を示す説明図である。フォーム定義テーブル１３００は、ＩＤ欄１３０１、作業定義欄１３０２、属性欄１３０３、操作欄１３０４を有している。ユーザーインターフェイス２５１に提示するフォーム（文書、書類等の形式）に関する定義を記憶する。つまり、ＩＤ欄１３０１は、そのフォームを一意に識別する識別子を記憶する。作業定義欄１３０２は、そのフォームが用いられる作業の識別子（作業定義テーブル１０００のＩＤ欄１００１で定義された識別子）記憶する。属性欄１３０３は、そのフォームで用いられる属性であるデータの識別子（属性定義テーブル１２００のＩＤ欄１２０１で定義された識別子）を記憶する。操作欄１３０４は、そのフォームでの操作の型（「Ｗ」はデータの変更が可能であることを示し、「Ｒ」はデータの変更ができないこと（表示のみ）を示す）を記憶する。したがって、図１３に示す例は、「申請」（作業の識別子：１１１）の作業において、申請者、所属部門、購入品名、単価、数量、発注先、口座番号、予算区分、希望納期（属性の識別子：５１１から５１９まで）が、ユーザーインターフェイス２５１で記載可能であることを示している。
【００４４】
案件操作モジュール２２３は、案件のワークフローに関する起動等について、案件・作業状態・履歴格納モジュール２３３に対して、案件状態変更３０７、案件情報取得３１１等を行い、ユーザーインターフェイス２５１に対して、案件起動３０６、案件一覧３１２等の指示受付又はデータ提示を行う。
案件・作業状態・履歴格納モジュール２３３は、ワークフローエンジンモジュール２２１から状態参照３０８、履歴参照３０９、状態変更３１０等され、案件操作モジュール２２３から案件状態変更３０７、案件情報取得３１１等され、作業操作モジュール２２４から作業情報の取得・変更３１３等される。例えば、案件・作業状態・履歴格納モジュール２３３に格納されるデータ例として、図１５の例に示した案件実行状態テーブル１５００、図１６の例に示した作業実行状態テーブル１６００がある。
【００４５】
図１５は、案件実行状態テーブル１５００のデータ構造例を示す説明図である。案件実行状態テーブル１５００は、ＩＤ欄１５０１、定義欄１５０２、起案者欄１５０３、起案日時欄１５０４、状態欄１５０５を有している。案件のワークフローにおける実行状態を記憶する。つまり、ＩＤ欄１５０１は、案件毎の実行状態を一意に識別する識別子を記憶する。定義欄１５０２は、その案件のワークフローの識別子（ワークフロー定義テーブル９００のＩＤ欄９０１で定義された識別子）を記憶する。起案者欄１５０３は、その案件の起案者（本ワークフローにおける最初の作業者になる場合が一般的である）を記憶する。起案日時欄１５０４は、案件が起案された日時、つまりその案件のワークフローが起動された日時（年、分、秒等を含んでいてもよい）を記憶する。状態欄１５０５は、その案件のワークフローにおける現在の状態（実行中、完了等）を記憶する。
【００４６】
図１６は、作業実行状態テーブル１６００のデータ構造例を示す説明図である。作業実行状態テーブル１６００は、ＩＤ欄１６０１、案件欄１６０２、作業定義欄１６０３、状態欄１６０４を有している。ワークフローにおける各作業の実行状態を記憶する。つまり、ＩＤ欄１６０１は、作業毎の実行状態を一意に識別する識別子を記憶する。案件欄１６０２は、その作業が含まれている案件を一意に識別する識別子（案件実行状態テーブル１５００のＩＤ欄１５０１で定義された識別子）を記憶する。作業定義欄１６０３は、その作業を一意に識別する識別子（作業定義テーブル１０００のＩＤ欄１００１で定義された識別子）を記憶する。状態欄１６０４は、その作業における現在の状態（実行中、完了、待機中等）を記憶する。
【００４７】
作業操作モジュール２２４は、案件内の作業に関するデータについて、案件・作業状態・履歴格納モジュール２３３に対して、作業情報の取得・変更３１３等を行い、属性データ格納モジュール２３４に対して、属性データ登録３１６、属性データ更新３１７、属性データ参照３１９等を行い、ユーザーインターフェイス２５１に対して、属性データ受付３１４、作業完了３１５、作業一覧３２０、入力フォーム取得３２１等の指示受付又はデータ提示を行う。
属性データ格納モジュール２３４は、ワークフローエンジンモジュール２２１から属性データ更新（修正データのマージ）３１８等され、作業操作モジュール２２４から属性データ登録３１６、属性データ更新３１７、属性データ参照３１９等される。例えば、属性データ格納モジュール２３４に格納されるデータ例として、図１７の例に示した属性データテーブル１７００がある。
【００４８】
図１７は、属性データテーブル１７００のデータ構造例を示す説明図である。属性データテーブル１７００は、ＩＤ欄１７０１、案件欄１７０２、属性定義欄１７０３、属性値欄１７０４を有している。フォームに提示された属性に記載されたデータを記憶する。つまり、ＩＤ欄１７０１は、その属性を一意に識別する識別子を記憶する。案件欄１７０２は、その属性が用いられた案件を一意に識別する識別子（案件実行状態テーブル１５００のＩＤ欄１５０１で定義された識別子）を記憶する。属性定義欄１７０３は、その属性を一意に識別する識別子（属性定義テーブル１２００のＩＤ欄１２０１で定義された識別子）を記憶する。属性値欄１７０４は、その属性に対して記入されたデータを記憶する。
【００４９】
追認操作モジュール２２５は、追認処理データ格納モジュール２３７に対して、修正データ登録３２４、修正データ更新３２５、追認状態変更３２６、修正データ参照３２９等を行い、ユーザーインターフェイス２５１に対して、修正データ受付３２２、追認完了３２３、追認一覧３３０、追認フォーム取得３３１等の指示受付又はデータ提示を行う。
追認処理データ格納モジュール２３７は、修正データ格納モジュール２３５、追認作業状態格納モジュール２３６を含んでおり、ワークフローエンジンモジュール２２１からデータ参照３２７、状態変更３２８等され、追認操作モジュール２２５から修正データ登録３２４、修正データ更新３２５、追認状態変更３２６、修正データ参照３２９等される。例えば、修正データ格納モジュール２３５に格納されるデータ例として、図２０の例に示した修正データテーブル２０００がある。これによって、修正が行われたデータについて記憶される。例えば、追認作業状態格納モジュール２３６に格納されるデータ例として、図１９の例に示した追認状態テーブル１９００がある。これによって、修正が行われたデータについての各作業における追認状態が記憶される。
【００５０】
図２０は、修正データテーブル２０００のデータ構造例を示す説明図である。修正データテーブル２０００は、ＩＤ欄２００１、案件欄２００２、属性定義欄２００３、属性値欄２００４を有している。修正が行われた属性であるデータを記憶する。つまり、ＩＤ欄２００１は、修正されたデータを一意に識別する識別子を記憶する。案件欄２００２は、その修正が行われたデータが用いられた案件を一意に識別する識別子（案件実行状態テーブル１５００のＩＤ欄１５０１で定義された識別子）を記憶する。属性定義欄２００３は、その修正されたデータである属性を一意に識別する識別子（属性定義テーブル１２００のＩＤ欄１２０１で定義された識別子）を記憶する。属性値欄２００４は、修正された後のデータを記憶する。
【００５１】
図１９は、追認状態テーブル１９００のデータ構造例を示す説明図である。追認状態テーブル１９００は、ＩＤ欄１９０１、案件欄１９０２、作業定義欄１９０３、状態欄１９０４を有している。修正が行われたデータについての各作業における追認状態を記憶する。つまり、ＩＤ欄１９０１は、各作業において修正に対する追認の状態を一意に識別する識別子を記憶する。案件欄１９０２は、その追認が含まれている案件を一意に識別する識別子（案件実行状態テーブル１５００のＩＤ欄１５０１で定義された識別子）を記憶する。作業定義欄１９０３は、その追認が行われる作業を一意に識別する識別子（作業定義テーブル１０００のＩＤ欄１００１で定義された識別子）を記憶する。状態欄１９０４は、追認の状態（実行中、完了、待機中等）を記憶する。なお、追認状態テーブル１９００は、属性に対する修正毎に生成されるものとしてもよい。つまり、その場合、修正データテーブル２０００の行毎に生成されることとなる。
【００５２】
ワークフローエンジンモジュール２２１は、ワークフローに基づいて、実行させるべき作業を特定する等を行い、ワークフロー定義格納モジュール２３２に対して、定義参照３０３等を行い、案件・作業状態・履歴格納モジュール２３３に対して、状態参照３０８、履歴参照３０９、状態変更３１０等を行い、属性データ格納モジュール２３４に対して、属性データ更新（修正データのマージ）３１８等を行い、追認処理データ格納モジュール２３７に対して、データ参照３２７、状態変更３２８等を行う。
【００５３】
なお、図１に示した実施の形態における変更要求受付モジュール１１０、変更作業特定モジュール１２０、通知モジュール１３０、作業移行抑制モジュール１５０、分岐作業処理モジュール１６０における処理は、主に、追認操作モジュール２２５、ワークフローエンジンモジュール２２１によって追認処理データ格納モジュール２３７を用いて行われる。また、ワークフローエンジンモジュール２２１が属性データ格納モジュール２３４に対して行う属性データ更新（修正データのマージ）３１８等も該当する。また標準作業特定モジュール１４０における処理は、主に、作業操作モジュール２２４、ワークフローエンジンモジュール２２１によって属性データ格納モジュール２３４を用いて行われる。
【００５４】
図４は、対象とする購入申請・承認のワークフロー例を示す説明図である。
図４の例に示したワークフローの定義は、図９から図１３に示したテーブルを用いて定義されているものである。つまり、申請４１０の次に課長承認４２０、部長承認４３０が行われ、次に調達４４０、経理４５０が並行して行われて最後に総務４６０が行われるものである。
【００５５】
なお、以下の申請４１０等の説明では、理解を容易にするために、作業者の動作を説明するが、もちろんのことながら、ユーザーインターフェイス２５１における作業者の操作に応じて、ワークフロー管理システムサーバー２１０内の各モジュールが動作するものである。
【００５６】
申請４１０では、作業者である申請者が、申請内容を入力してワークフローを起動し、物品購入の承認を課長に依頼する（申請４１１）。
課長承認４２０では、作業者である課長が、申請内容を確認して、（１）申請を却下する、（２）承認し次の部長承認４３０へと進める（承認４２１）、（３）申請内容の修正のために申請者へ差し戻す（やり直しの指示である差し戻し４２２）、のいずれかを判断する。
部長承認４３０では、作業者である部長が、課長承認４２０と同様に承認／却下／差し戻し（差し戻し４３３）を判断し、承認する場合には決済完了として調達と経理による購入手続きへと進める（決済４３１、決済４３２）。
【００５７】
調達４４０では、作業者である調達が、購入先に対して物品の発注を行う。
経理４５０では、作業者である経理が、購入先に対して代金の支払処理を行う。
総務４６０では、作業者である総務が、購入物品の資産管理台帳に登録する。
本実施の形態は、前述の課長承認４２０又は部長承認４３０の作業工程において、申請内容に不備があり修正が必要である場合に、特に申請を却下するか承認するかに影響しない些細な修正を申請者が行う場合の手順に関するものである。
【００５８】
図５は、本実施の形態による処理例を示すための購入申請・承認のワークフロー例の説明図である。つまり、課長承認４２０又は部長承認４３０では差し戻しを行わずに、申請４１０を行った作業者である申請者が、申請書の誤りに気付いて、作業結果であるその誤りを修正する。そのために、申請者によって修正要求がなされ、既にその申請書に対する作業を行っている作業者に対して追認を求める。そして、修正に対する追認処理が現在行われている作業を追いかけるようにして進むようにするものである。なお、追認とは、既に承認したデータが修正された場合に、その修正されたデータであっても同様に承認することを認めることをいう。また、この例では、申請者による作業結果である内容の修正であるが、申請者に限る必要はなく、ワークフロー内の経路途中の作業者による修正であってもよい。
【００５９】
より詳細に説明する。
既に完了状態となっている申請４１０の作業において、作業者である申請者は、既に入力したデータを修正し追認を依頼する。
例えば、図６（ａ）の例に示す申請及び内容修正画面６００のように、「購買ワークフロー」という案件において、申請者欄６１１、所属部門欄６１２、購入品名欄６１３、単価欄６１４、数量欄６１５、発注先欄６１６、口座番号欄６１７、予算区分欄６１８、希望納期欄６１９に対して、申請者はそれぞれ値を記載する。そして、承認依頼ボタン６２１が選択されることによって、申請４１１の処理が行われる。
つまり、案件操作モジュール２２３は、ワークフロー定義テーブル９００を用いて、ユーザーインターフェイス２５１に案件一覧３１２を提示する。そして、購入申請というワークフローの案件起動３０６を受け付ける。そして、案件操作モジュール２２３は、案件実行状態テーブル１５００にその案件は実行中であるということを登録し、作業操作モジュール２２４によって、ワークフローエンジンモジュール２２１、フォーム定義テーブル１３００等を用いて、ユーザーインターフェイス２５１に対して申請及び内容修正画面６００を提示する。そして、作業操作モジュール２２４は、申請及び内容修正画面６００内の各欄について属性データ受付３１４を行う。
【００６０】
そして、申請４１１後に、申請者は申請及び内容修正画面６００内の単価欄６１４、口座番号欄６１７、希望納期欄６１９に誤りがあることに気づき、これを修正する（修正内容５１０、図６（ｂ）の例参照）。そして、修正追認依頼ボタン６３１が選択されることによって、修正追認の処理が行われる。
つまり、追認操作モジュール２２５は、ユーザーインターフェイス２５１から申請者の操作に応じて、修正データ受付３２２し、追認の依頼を受け付ける。このことは、追認操作モジュール２２５は、既に行われた作業による作業結果の変更要求を受け付けることとなる。追認操作モジュール２２５は、追認処理データ格納モジュール２３７に対して、修正データ登録３２４又は修正データ更新３２５をする。なお、この時点で、現在行われている作業は、部長承認４３０とする。つまり、既に課長承認４２０では修正前の状態で承認作業が終了している状態である。
【００６１】
また、追認操作モジュール２２５は、ワークフローエンジンモジュール２２１を用いて、作業実行状態テーブル１６００から現在進行している作業を抽出し、データが修正された作業（申請４１０）を起点として、その抽出した現在進行している作業（部長承認４３０）までに行われた作業を特定する。つまり、追認が必要となる作業を抽出する。ここでは、課長承認４２０、部長承認４３０が抽出されることになる。この処理は、追認操作モジュール２２５が、ワークフローエンジンモジュール２２１による処理を行わせて、作業実行状態テーブル１６００から現在実行中の作業を抽出して、トランジション定義テーブル１１００を用いて作業手順を解析して、起点となっている作業から現在実行中の作業までにある作業を抽出する。この抽出した作業は、追認が必要となる作業の候補である。
【００６２】
そして、修正された一部のデータとは関係ない作業を除外する。修正されたデータが、起点の作業から終点の作業の間にある作業であっても、その作業において含まれない場合には、作業そのものをスキップする。例えば、図６（ｂ）の例で示した申請及び内容修正画面６００での修正で、もしも単価欄６１４の修正がなければ、他に修正された口座番号欄６１７と希望納期欄６１９に対する課長の追認は不要と判断し、図７の例に示す追認画面７００による課長承認はスキップするように制御してもよい。
【００６３】
つまり、各作業に必要なデータを対応付けてあらかじめ定義しておく。つまり、先の例では、課長承認４２０には単価の承認のみが対応付けられており、部長承認４３０には単価、口座番号等の承認が対応付けられている定義のテーブルをあらかじめ用意しておく。追認操作モジュール２２５は、修正が行われたデータである属性に関係しない作業を、その定義のテーブルや属性データテーブル１７００等を用いて取り出す。なお、ここでは、単価の修正があるので、課長承認４２０、部長承認４３０は除外されない。したがって、追認が必要とされる作業の終点は部長承認４３０となる。なお、もしも現在実行中の作業が、修正が行われたデータである属性に関係しない作業である場合であっても、終点は現在実行中の作業とする。
また、作業完了の受付があったものだけを対象とするようにしてもよい。その場合は、部長承認４３０では作業途中であり、作業完了とはなっていないので、終点はその前にある課長承認４２０となる。
【００６４】
また、修正承認依頼ボタン６３１が選択されたことを契機として、追認操作モジュール２２５は、現在実行中の作業の作業者が操作しているユーザーインターフェイス２５１に対して、作業中のデータについて修正が行われた旨を提示する。現在実行中の作業については、追認操作モジュール２２５が、前述のようにワークフローエンジンモジュール２２１等を用いて抽出する。
また、修正承認依頼ボタン６３１が選択されたことを契機として、追認操作モジュール２２５は、現在実行中の作業に対して、次への作業への移行を抑制させる。つまり、作業操作モジュール２２４による処理を中断させる。
【００６５】
次に、既に承認されている課長承認４２０の作業では、作業者である課長に対して、修正された箇所が明示され、課長はそれに対して「追認」か「拒否」を選択する。
例えば、図７の例に示す追認画面７００のような画面を、追認操作モジュール２２５が、課長が操作しているユーザーインターフェイス２５１に提示する。追認画面７００は、申請者欄７１１、所属部門欄７１２、購入品名欄７１３、単価欄７１４、数量欄７１５、追認ボタン７２１、拒否ボタン７２２を有している。つまり、申請者欄７１１、所属部門欄７１２で修正をした者に関する情報を提示し、単価欄７１４で修正されたデータを提示し、その購入に関する購入品名欄７１３、数量欄７１５を提示する。なお、これらの他に修正されていないデータを、修正されたデータとは異なる形態で提示するようにしてもよい。なお、修正された属性毎に追認画面７００を提示しているが、これを修正された複数の属性を提示するようにしてもよい。
【００６６】
ここで、追認ボタン７２１が選択された場合には、次の作業工程である部長承認４３０の追認に進む。
拒否ボタン７２２が選択された場合には、修正を行った申請者が「修正取り下げ」か「申請取り下げ」を選択する。
例えば、図８の例に示す拒否された場合の修正者の選択画面８００のような画面を、追認操作モジュール２２５が、修正を行った作業者が操作しているユーザーインターフェイス２５１に提示する。拒否された場合の修正者に対する選択画面８００は、単価欄８１１、選択肢８１２、選択肢８１３、実行ボタン８２１を有している。つまり、修正が行われたデータである単価欄８１１（他の修正が行われたデータの欄であってもよい）を提示しており、拒否された修正を示している。そして、選択肢８１２の「修正を取り下げる（修正前の内容で継続します）」又は選択肢８１３の「申請を取り下げる（案件を中止します）」のいずれかを選択するように提示する。
選択肢８１２が選択された場合は、修正はなかったことになり、現在の実行中の作業が継続されることになる。つまり、中断されていた作業操作モジュール２２４による処理が継続されることになる。
【００６７】
承認４２１で追認ボタン７２１が選択された場合に、部長承認４３０による作業が行われる前に追認処理が到達したことになり、それによって購入申請内容に修正内容が置換（又はマージ）され、部長承認４３０の作業者である部長は修正されたことを関知する必要なく、修正済みの申請内容に対する承認の可否を行う。すなわち、現在実行中の作業において、そこでの作業が終了していない場合は、その作業の前の作業において修正が承認された場合は、修正後のデータで作業を行うようにする。追認操作モジュール２２５が、修正データ格納モジュール２３５及び追認作業状態格納モジュール２３６のデータを書き換えて、ワークフローエンジンモジュール２２１が修正後のデータで作業操作モジュール２２４による作業を継続させるものである。
【００６８】
既に全ての作業が完了している場合、全ての作業で追認された場合には、最終的な処理結果に修正が置換されるが、いずれかの作業で拒否された場合には、修正を行った作業者は「申請取り下げ」は行えないように制御してもよい。つまり、図８の例で示した拒否された場合の修正者の選択画面８００において、選択肢８１３を提示しないようにしてもよい。
なお、追認操作モジュール２２５による追認処理は、作業実行状態テーブル１６００及びトランジション定義テーブル１１００を用いて、作業が実行された経路を辿って、実行された各作業に対して行われる。
【００６９】
図１４は、本実施の形態によって対象となっている購入申請・承認のワークフロー例のワークフロー定義例を示す説明図である。つまり、図５の例に示したワークフローにおいて、ワークフロー定義格納モジュール２３２内のデータ構造について、具体例を用いて説明するものである。
図１４（図５）に示すワークフローそのもののワークフロー定義１４１０は、図９の例に示したワークフロー定義テーブル９００内の第１行目のワークフローのＩＤが「１」であり、定義名が「購入申請」に該当する（ワークフロー定義：ＩＤ＝１、定義名＝購入申請）。そして、課長承認４２０の作業定義１４２０は、図１０の例に示した作業定義テーブル１０００の第２行目の作業のＩＤが「１１２」であり、作業名が「課長承認」に該当する（作業定義：ＩＤ＝１１２、作業名＝課長承認）。また、承認４２１の遷移定義１４３０は、図１１の例に示したトランジション定義テーブル１１００の第２行目の遷移のＩＤが「３１２」であり、遷移元が「１１２」であり、遷移先が「１１３」である（遷移定義：ＩＤ＝３１２、遷移元＝１１２、遷移先＝１１３）。
【００７０】
図１８は、承認画面例と作業定義等のデータ構造例等を示す説明図である。つまり、図５の例に示したワークフローの課長承認４２０において、ワークフロー定義格納モジュール２３２、案件・作業状態・履歴格納モジュール２３３内のデータ構造について、具体例を用いて説明するものである。
「課長承認」作業の承認画面１８００は、申請者欄１８１１、所属部門欄１８１２、購入品名欄１８１３、単価欄１８１４、数量欄１８１５、承認ボタン１８２１を有している。これらは、図１３の例に示したフォーム定義テーブル１３００内の第１０行目から第１４行目までのもの（フォーム定義：ＩＤ＝７２０、作業定義＝１１２、属性＝５１１等）から生成されたものである。つまり、「課長承認」作業の承認画面１８００内の申請者欄１８１１から数量欄１８１５は、それぞれフォーム定義１８５３からフォーム定義１８５７までによって生成されたものである。そして、図５の例に示した課長承認４２０の作業定義１８５２は、図１０の例に示した作業定義テーブル１０００内の第２行目の作業のＩＤが「１１２」であり、ワークフロー定義が「１」であり、作業名が「課長承認」に該当する（作業定義：ＩＤ＝１１２、定義＝１、作業名＝課長承認）。また、図５の例に示した課長承認４２０の作業実行状態１８５１（つまり、「課長承認」作業の承認画面１８００を提示している作業）は、図１６の例に示した作業実行状態テーブル１６００内の第２行目の作業実行状態のＩＤが「１１０２」であり、案件のＩＤが「１００１」であり、作業定義が「１１２」に該当する（作業実行状態：ＩＤ＝１１０２、案件＝１００１、作業定義＝１１２）。
【００７１】
図２１は、本実施の形態による処理例を示すための分岐があるワークフロー例の説明図である。
申請２１１０から課長承認２１２０へ遷移し、購入金額が１００万円以内である場合は経理２１４０へ遷移し、１００万円超である場合は部長承認２１３０へ遷移し、部長承認２１３０の後は経理２１４０へ遷移する。
このようなワークフローの場合に、
（１）購入金額が２０万円で購入依頼の申請２１１０を行う。
（２）その後、課長承認２１２０が済み、分岐条件の１００万円以内のため部長承認不要として、経理２１４０で処理中とする。
（３）その場合に、申請２１１０の申請者が、購入金額を２００万円に修正して、追認を依頼した。
という場合を想定する。
【００７２】
この場合の処理は、次のように行う。
（１）追認操作モジュール２２５が、ワークフローエンジンモジュール２２１を用いて、修正前と修正後で遷移先が異なることを検知する。つまり、修正前については実行履歴を参照し、修正後については追認がされたとした場合の内容に対する分岐における条件を判定する。なお、実行履歴とは、修正内容（修正項目と修正前後の値）や追認（追認、拒否の選択を含む）処理履歴を通常の実行履歴と共に参照できるように格納しておくものである。
【００７３】
（２）追認操作モジュール２２５が追認の次作業への遷移を抑制する。そして、追認操作モジュール２２５が、修正前の遷移先の作業を行っている作業者のユーザーインターフェイス２５１に対して、「申請取り消し」の画面を提示する。ここで、「申請取り消し」の画面とは、追認と同様に認可又は拒否を選択させることができるものであるが、認可が前述の作業の取り消しを意味する点が異なる。
（Ａ）「認可」の場合には、次の作業工程に対する申請取り消しに進む。
遷移先の全ての作業の申請取り消しが認可された場合には、改めて修正後の内容に基づく遷移先に分岐する。
（Ｂ）「拒否」の場合には、修正を行った申請者によって「修正取り下げ」か「申請取り下げ」が選択される。前述した図８の例に示した拒否された場合の修正者の選択画面８００と同等のものをユーザーインターフェイス２５１に提示する。「修正取り下げ」が選択された場合には、元の申請内容で継続する。「申請取り下げ」が選択された場合には、その案件を中止する。
【００７４】
より具体的に図２１に示した例に基づいて説明する。
（１）課長承認２１２０による追認後の分岐において、修正前後で遷移先が異なることを追認操作モジュール２２５が検知する。
（２）課長承認２１２０で追認された場合に、部長承認２１３０での作業への遷移を抑制し、経理２１４０での作業に遷移する分岐に対して「申請取り消し」を発行する。つまり、経理２１４０の作業者のユーザーインターフェイス２５１に対して「申請取り消し」を提示する。
その経理２１４０の作業者が、金額の支払い取り消しなどにより対応可能な場合には、「申請取り消し」の「認可」が選択される。
【００７５】
（３）修正前の全ての作業に対して「申請取り消し」が認可された場合（以降の作業への遷移がないことから判断してもよい）、修正前の分岐の取り消しが成立しているので、部長承認２１３０の作業に遷移する。その部長承認２１３０の作業においては、修正前のデータに対して修正後のデータが置換される。つまり、修正後のデータで作業が始められることとなる。
（４）部長承認２１３０によって承認された場合には、経理２１４０の作業に遷移して修正後の購入金額２００万円の支払いを行うこととなる。
【００７６】
また、「申請取り消し」の実行状況を管理するために、作業実行状態テーブル１６００、追認状態テーブル１９００に加えて、申請取り消し状態テーブル２２００を設けるようにする。又は、これらのテーブルを集約して、いずれの状態かを判別するための「実行種別」情報を付加した実行種別テーブル２３００を利用してもよい。
図２２は、申請取り消し状態テーブル２２００のデータ構造例を示す説明図である。申請取り消し状態テーブル２２００は、ＩＤ欄２２０１、案件欄２２０２、作業定義欄２２０３、状態欄２２０４を有している。「申請取り消し」の実行状況を管理するためのテーブルである。つまり、ＩＤ欄２２０１は、「申請取り消し」の実行状況を一意に識別する識別子を記憶する。案件欄２２０２は、その「申請取り消し」の作業が含まれている案件を一意に識別する識別子（案件実行状態テーブル１５００のＩＤ欄１５０１で定義された識別子）を記憶する。作業定義欄２２０３は、その「申請取り消し」の判断がされる作業を一意に識別する識別子（作業定義テーブル１０００のＩＤ欄１００１で定義された識別子）を記憶する。状態欄２２０４は、その「申請取り消し」における現在の状態（実行中、認可、拒否、待機中等）を記憶する。
【００７７】
図２３は、実行種別テーブル２３００のデータ構造例を示す説明図である。実行種別テーブル２３００は、ＩＤ欄２３０１、案件欄２３０２、作業定義欄２３０３、状態欄２３０４、実行種別欄２３０５を有している。作業実行状態テーブル１６００、追認状態テーブル１９００、申請取り消し状態テーブル２２００の機能を併せ持ったテーブルである。つまり、ＩＤ欄２３０１は、「作業実行」、「追認」、「申請取り消し」の実行状況を一意に識別する識別子を記憶する。案件欄２３０２は、その「作業実行」等の作業が含まれている案件を一意に識別する識別子（案件実行状態テーブル１５００のＩＤ欄１５０１で定義された識別子）を記憶する。作業定義欄２３０３は、その「作業実行」等がされる作業を一意に識別する識別子（作業定義テーブル１０００のＩＤ欄１００１で定義された識別子）を記憶する。状態欄２３０４は、その「作業実行」等における現在の状態（実行中、完了、認可、拒否、待機中等）を記憶する。実行種別欄２３０５は、「作業実行」、「追認」、「申請取り消し」のいずれの実行状態を示しているものであるかを記憶する。
【００７８】
既に全ての作業が完了している場合は、前述の追認の場合と同様に「申請取り消し」は行えないように制御してもよい。
また、作業に着手していない作業に関しては、「申請取り消し」の認可が選択されたものとして取り扱うようにしてもよい。
申請取り消しは、実行履歴から作業が実行された経路の各作業に対して行われる。各作業での申請取り消しに対する認可又は拒否の選択は、実行された順序に限られず、実行された逆の順序でもよいし、一斉に各作業に対して行ってもよい。
【００７９】
修正前の分岐先の複数の作業に対する申請取り消しの確認を行う場合であって、分岐箇所まで全て認可された場合には、追認操作モジュール２２５がその分岐箇所までの作業の取り消しが確定したことを、分岐後の申請取り消しの確認を行う作業の作業者に通知してもよい。
この機能により、作業者は取り消しが可能である場合に取り消しを「認可」すること、つまり、分岐箇所前の全ての作業において認可されたという通知を受けてから、申請取り消しの認可を行うこととなる。
この場合には、時間の経過により作業取り消しが不可能になる状況に対応するために、申請取り消し「認可」に対して作業取り消しが可能な期限を設定して、その期限が到来すると「拒否」の場合と同等の処理となるようにしてもよい。
【００８０】
なお、本実施の形態としてのプログラムが実行されるコンピュータのハードウェア構成は、図２４に例示するように、一般的なコンピュータであり、具体的にはパーソナルコンピュータ、サーバーとなり得るコンピュータ等である。変更要求受付モジュール１１０、変更作業特定モジュール１２０、通知モジュール１３０、標準作業特定モジュール１４０、作業移行抑制モジュール１５０、分岐作業処理モジュール１６０等のプログラムを実行するＣＰＵ２４０１（この例では演算部としてＣＰＵを用いた）と、そのプログラムやデータを記憶するＲＡＭ２４０２と、本コンピュータを起動するためのプログラム等が格納されているＲＯＭ２４０３と、補助記憶装置であるＨＤ２４０４（例えばハードディスクを用いることができる）と、キーボード、マウス等のデータを入力する入力装置２４０６と、ＣＲＴや液晶ディスプレイ等の出力装置２４０５と、通信ネットワークと接続するための通信回線インターフェイス２４０７（例えばネットワークインターフェイスカードを用いることができる）、そして、それらをつないでデータのやりとりをするためのバス２４０８により構成されている。これらのコンピュータが複数台互いにネットワークによって接続されていてもよい。
【００８１】
前述の実施の形態のうち、コンピュータ・プログラムによるものについては、本ハードウェア構成のシステムにソフトウェアであるコンピュータ・プログラムを読み込ませ、ソフトウェアとハードウェア資源とが協働して、前述の実施の形態が実現される。
なお、図２４に示すハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図２４に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えばＡＳＩＣ等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図２４に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、情報家電、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
【００８２】
前述の実施の形態においては、作業結果の修正の例を主に示したが、修正以外にも追加、削除等の変更であってもよい。
なお、前述のユーザーインターフェイス２５１への提示には、ディスプレイ等の表示装置に表示することの他に、音声による出力等であってもよいし、それらの組み合わせであってもよい。
また、通知には、前述の提示の他に、電子メール、チャット等による通知を含めてもよい。
【００８３】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕｅ−ｒａｙ  Ｄｉｓｋ）、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【図面の簡単な説明】
【００８４】
【図１】本実施の形態の構成例についての概念的なモジュール構成図である。
【図２】システム全体の構成例を示すブロック図である。
【図３】本実施の形態の構成例について別の観点からみた場合の概念的なモジュール構成図である。
【図４】対象とする購入申請・承認のワークフロー例を示す説明図である。
【図５】本実施の形態による処理例を示すための購入申請・承認のワークフロー例の説明図である。
【図６】申請及び内容修正の画面例を示す説明図である。
【図７】追認画面例を示す説明図である。
【図８】拒否された場合の修正者の選択画面例を示す説明図である。
【図９】ワークフロー定義テーブルのデータ構造例を示す説明図である。
【図１０】作業定義テーブルのデータ構造例を示す説明図である。
【図１１】トランジション定義テーブルのデータ構造例を示す説明図である。
【図１２】属性定義テーブルのデータ構造例を示す説明図である。
【図１３】フォーム定義テーブルのデータ構造例を示す説明図である。
【図１４】本実施の形態によって対象となっている購入申請・承認のワークフロー例のワークフロー定義例を示す説明図である。
【図１５】案件実行状態テーブルのデータ構造例を示す説明図である。
【図１６】作業実行状態テーブルのデータ構造例を示す説明図である。
【図１７】属性データテーブルのデータ構造例を示す説明図である。
【図１８】承認画面例と作業定義等のデータ構造例等を示す説明図である。
【図１９】追認状態テーブルのデータ構造例を示す説明図である。
【図２０】修正データテーブルのデータ構造例を示す説明図である。
【図２１】本実施の形態による処理例を示すための分岐があるワークフロー例の説明図である。
【図２２】申請取り消し状態テーブルのデータ構造例を示す説明図である。
【図２３】実行種別テーブルのデータ構造例を示す説明図である。
【図２４】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【符号の説明】
【００８５】
１１０…変更要求受付モジュール
１２０…変更作業特定モジュール
１２２…作業手順解析モジュール
１２４…作業除外モジュール
１２６…変更作業範囲特定モジュール
１３０…通知モジュール
１４０…標準作業特定モジュール
１５０…作業移行抑制モジュール
１６０…分岐作業処理モジュール
２１０…ワークフロー管理システムサーバー
２２０…ワークフロー処理モジュール
２２１…ワークフローエンジンモジュール
２２２…ワークフロー定義管理モジュール
２２３…案件操作モジュール
２２４…作業操作モジュール
２２５…追認操作モジュール
２３０…ワークフローデータ格納モジュール
２３２…ワークフロー定義格納モジュール
２３３…案件・作業状態・履歴格納モジュール
２３４…属性データ格納モジュール
２３５…修正データ格納モジュール
２３６…追認作業状態格納モジュール
２３７…追認処理データ格納モジュール
２５０Ａ…クライアント
２５０Ｂ…クライアント
２５０Ｃ…クライアント
２５１…ユーザーインターフェイス
２９０…ネットワーク
２９１…広域通信網
【図１】
2010044636.tif 000003
【図２】
2010044636.tif 000004
【図３】
2010044636.tif 000005
【図４】
2010044636.tif 000006
【図５】
2010044636.tif 000007
【図６】
2010044636.tif 000008
【図７】
2010044636.tif 000009
【図８】
2010044636.tif 000010
【図９】
2010044636.tif 000011
【図１０】
2010044636.tif 000012
【図１１】
2010044636.tif 000013
【図１２】
2010044636.tif 000014
【図１３】
2010044636.tif 000015
【図１４】
2010044636.tif 000016
【図１５】
2010044636.tif 000017
【図１６】
2010044636.tif 000018
【図１７】
2010044636.tif 000019
【図１８】
2010044636.tif 000020
【図１９】
2010044636.tif 000021
【図２０】
2010044636.tif 000022
【図２１】
2010044636.tif 000023
【図２２】
2010044636.tif 000024
【図２３】
2010044636.tif 000025
【図２４】
2010044636.tif 000026