JP2007004776A - ワークフローシステム、ワークフロー処理方法およびワークフロー処理プログラム - Google Patents

ワークフローシステム、ワークフロー処理方法およびワークフロー処理プログラム Download PDF

Info

Publication number
JP2007004776A
JP2007004776A JP2006130553A JP2006130553A JP2007004776A JP 2007004776 A JP2007004776 A JP 2007004776A JP 2006130553 A JP2006130553 A JP 2006130553A JP 2006130553 A JP2006130553 A JP 2006130553A JP 2007004776 A JP2007004776 A JP 2007004776A
Authority
JP
Japan
Prior art keywords
activity
transition
variable
definition
workflow
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006130553A
Other languages
English (en)
Other versions
JP4903012B2 (ja
Inventor
Yoshiro Matsui
善郎 松井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2006130553A priority Critical patent/JP4903012B2/ja
Priority to US11/435,747 priority patent/US20070006123A1/en
Priority to EP06252696A priority patent/EP1727083A1/en
Publication of JP2007004776A publication Critical patent/JP2007004776A/ja
Application granted granted Critical
Publication of JP4903012B2 publication Critical patent/JP4903012B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Abstract

【課題】実行中にプロセスを自由に変更することのできるワークフローシステムを提供する。
【解決手段】個々の仕事であるアクティビティと当該アクティビティの処理の順序を規定するトランジションとから構成されるプロセスを実行するワークフローシステムであって、実行中の上記プロセスを停止する手段と、停止した上記プロセスを編集する手段と、編集された上記プロセスの整合性をチェックする手段と、編集された上記プロセスの再開位置を決定する手段と、編集された上記プロセスを上記再開位置から再開する手段とを備える。
【選択図】図7

Description

本発明はワークフローシステム、ワークフロー処理方法およびワークフロー処理プログラムに関する。
近年、複数の担当者がネットワークを経由して仕事をする際に、仕事を円滑に進めるため、担当者間で受け渡すドキュメントや情報の流れを管理し、自動化するワークフローシステムが知られている(例えば、非特許文献1〜3参照。)。
速水治夫、「ここまできたワークフロー管理システム(1)」情報処理学会誌、Vol.39、NO.11、p1160−p1165(1998) 速水治夫、阪口俊昭、渋谷亮一、「ここまできたワークフロー管理システム(2)」情報処理学会誌、Vol.39、NO.12、p1258−p1263(1998) 速水治夫、渋谷亮一、鈴木登雄、生駒順一、寺下陽介、植野直樹、金子聡、林潔、「ここまできたワークフロー管理システム(3)」情報処理学会誌 Vol.40、NO.5、p507−p513(1999)
ところで、上述した従来のワークフローシステムは、予めシステム管理者により定義された固定的なワークフローを実行するのみであり、定義されているワークフローと異なる方法で実際の仕事を進めるといった柔軟な対応が行えないという問題があった。
かかる問題点に対応すべく、本発明者は、実行中のプロセスにアクティビティを追加、保留、先取りすることにより、実行中に柔軟にプロセスを変更する手法を提案している(特願2005−9265号)。
しかしながら、この手法ではプロセスに対して操作できる範囲がアクティビティの追加、保留、先取りに限られており、アクティビティの削除を認めていなかったことから、エンドユーザの立場からは十分なものではなかった。
本発明は上記の点に鑑み提案されたものであり、その目的とするところは、実行中にプロセスを自由に変更することのできるワークフローシステム、ワークフロー処理方法およびワークフロー処理プログラムを提供することにある。
上記の課題を解決するため、本発明にあっては、請求項1に記載されるように、個々の仕事であるアクティビティと当該アクティビティの処理の順序を規定するトランジションとから構成されるプロセスを実行するワークフローシステムであって、実行中の上記プロセスを停止する手段と、停止した上記プロセスを編集する手段と、編集された上記プロセスの整合性をチェックする手段と、編集された上記プロセスの再開位置を決定する手段と、編集された上記プロセスを上記再開位置から再開する手段とを備えるワークフローシステムを要旨としている。
また、請求項2に記載されるように、上記プロセスの整合性をチェックする手段は、上記アクティビティの参照もしくは更新するプロセス変数の有無および値、当該プロセス変数に対する業務遂行者の操作権限の有無により整合性をチェックするものとすることができる。
また、請求項3に記載されるように、上記プロセスの整合性をチェックする手段は、トランザクションの場合、並行するトランザクションの発火条件のORをとった場合に全て可能なプロセス変数の場合を網羅しているかをチェックするものとすることができる。
また、請求項4に記載されるように、上記プロセスの整合性をチェックする手段は、一つでも実行される可能性がないアクティビティが見つかった場合に警告を出し、編集完了を許さずに再編集を求めるものとすることができる。
また、請求項5に記載されるように、上記プロセスの整合性をチェックする手段は、終端のアクティビティに到達できない場合にエラーとし、編集完了を許さずに再編集を求めるものとすることができる。
また、請求項6に記載されるように、上記プロセスの再開位置を決定する手段は、上記プロセスを構成する最初のアクティビティからトランジションもしくはアクティビティをたどり、プロセス変数の変更履歴を参照してトランジションもしくはアクティビティの終了条件を満足したことが一度もない場合にそのトランジションもしくはアクティビティを再開位置とするものとすることができる。
また、請求項7に記載されるように、上記プロセスの再開位置を決定する手段は、終了条件を満足したことが一度でもあるアクティビティが最後のアクティビティである場合にプロセスが終了したと判断するものとすることができる。
また、請求項8に記載されるように、上記プロセスを停止する手段は、上記プロセスの状態を保留にすることでプロセスを停止するものとすることができる。
また、請求項9に記載されるように、上記プロセスを停止する手段は、上記プロセスの状態を中断にすることでプロセスを停止するものとすることができる。
また、請求項10に記載されるように、上記プロセスを編集する手段は、アクティビティの追加、削除、順序の変更、プロセス変数の追加、削除、プロセスの終了条件の変更、プロセス変数の値の変更を含む、プロセスの全ての構成要素の変更を含むものとすることができる。
また、請求項11に記載されるように、上記プロセスを編集する手段は、アクティビティもしくはトランジションの追加の場合に当該アクティビティもしくはトランジションが参照もしくは更新するプロセス変数のカウント値をインクリメントし、アクティビティもしくはトランジションの削除の場合に当該アクティビティもしくはトランジションが参照もしくは更新していたプロセス変数のカウント値をデクリメントし、カウント値がゼロになったプロセス変数を削除するものとすることができる。
また、請求項12に記載されるように、編集者の権限をチェックする手段を備え、上記プロセスを構成するオブジェクト毎に編集を行えるユーザもしくはグループと操作権限を示すアクセスコントロールとを含むアクセスコントロールリストに従って権限をチェックするものとすることができる。
また、請求項13に記載されるように、編集が行われ実体化されたプロセスインスタンスフローをプロセス定義に変換し、当該プロセス定義を再利用のために登録する手段を備えるものとすることができる。
また、請求項14に記載されるように、個々の仕事であるアクティビティと当該アクティビティの処理の順序を規定するトランジションとから構成されるプロセスを実行するワークフローシステムにおける処理方法であって、実行中の上記プロセスを停止する工程と、停止した上記プロセスを編集する工程と、編集された上記プロセスの整合性をチェックする工程と、編集された上記プロセスの再開位置を決定する工程と、編集された上記プロセスを上記再開位置から再開する工程とを備えるワークフロー処理方法として構成することができる。
また、請求項15に記載されるように、個々の仕事であるアクティビティと当該アクティビティの処理の順序を規定するトランジションとから構成されるプロセスを実行するワークフローシステムにおける処理プログラムであって、実行中の上記プロセスを停止する手順と、停止した上記プロセスを編集する手順と、編集された上記プロセスの整合性をチェックする手順と、編集された上記プロセスの再開位置を決定する手順と、編集された上記プロセスを上記再開位置から再開する手順とを、コンピュータに実行させるワークフロー処理プログラムとして構成することができる。
本発明のワークフローシステム、ワークフロー処理方法およびワークフロー処理プログラムにあっては、プロセスを停止した上でプロセスを編集し、プロセスの整合性をチェックし、プロセスの再開位置を決定して再開するようにしているため、エンドユーザにより不適切にプロセスが変更されることを防止することができ、実行可能性を担保した上で実行中にプロセスを自由に変更することができる。
以下、本発明の好適な実施形態につき図面を参照して説明する。
<プロセスの概要>
図1はプロセスの構成要素を示す図であり、プロセスはアクティビティとトランジションとから構成される。なお、ワークフローシステムで用いられる用語については、"Workflow Management Coalition The Workflow Reference Model"(http://www.wfmc.org/standards/docs/tc003v11.pdf)および"Workflow Management Coalition Workflow Standard/Process Definition Interface -- XML Process Definition Language"(http://www.wfmc.org/standards/docs/TC-1025_xpdl_2_2005-10-03.pdf)に詳細な定義がある。
プロセスとは、ある仕事を遂行するための処理の流れである。プロセスにはプロセスの状態を記述するプロセス変数が定義される。プロセス変数はアクティビティの開始条件、終了条件、トランジションの発火条件、プロセスの終了条件として使用される。アクティビティの開始条件、終了条件は、アクティビティ毎の開始、終了を判定するための条件である。トランジションの発火条件は、主に複数のアクティビティに分岐する場合の分岐条件を判定するために用いる。プロセスの終了条件は、プロセス全体が終了したかどうかを判定するために使用する。なお、後述するプロセスインスタンスフローの変更の前後で、明示的に変更しない限り、プロセス変数の値は保持される。
アクティビティとは、プロセスを構成する個々の仕事である。アクティビティは未実行、完了、処理待ちなどの状態を持っており、この状態の推移によってプロセスの進行状況を表現する。アクティビティには開始条件および終了条件があり、主にプロセス変数を用いた条件式で記述される。なお、アクティビティの実行結果はプロセス変数に格納され、プロセス変数の変更履歴もログとして残るようになっている。
トランジションとは、アクティビティとアクティビティとの処理の順序を規定するものである。トランジションも状態を持っており、これにより、接続するアクティビティの状態遷移条件を決定する。トランジションの前のアクティビティから次のアクティビティに遷移する条件をトランジションの発火条件と呼ぶ。トランジションの発火条件は主にプロセス変数を用いた条件式で記述される。
フローとは、アクティビティとトランジションとで表現した処理の流れ図である。
プロセス定義とは、プロセスのテンプレートであり、実行前のプロセスのフローを定義する。
プロセスインスタンスとは、プロセス定義を実体化したものであり、実際の仕事のコンテンツを含んでいる。
プロセスインスタンスフローとは、実行中のプロセスのフローである。プロセスインスタンスフローは、プロセスインスタンスのフロー定義であり、通常は元になったプロセス定義と同じものである。ただし、本発明では、プロセスインスタンスフローとプロセス定義とを異なる実体として扱い、個別に操作可能とする。すなわち、プロセスインスタンスフローを変更した場合、変更はプロセス定義に反映されることはない。また、プロセス定義に対する変更は、既にインスタンス化されたプロセス(プロセスインスタンス)に反映されることはない。
図2はプロセスの状態遷移を示す図であり、「未実行(NOTACTIVATED)」、「処理中(ACTIVATED)」、「保留(SUSPENDED)」、「完了(COMPLETED)」の状態を有している。ここで、「処理中」のプロセスを停止することで「保留」に移行し、プロセスの再開により「処理中」に復帰する。また、プロセスの「保留」はアクティビティの「保留」と同期する。
図3はアクティビティの状態遷移を示す図であり、「未実行(NOTACTIVATED)」、「処理待ち(WAITING)」、「処理中(ACTIVATED)」、「完了(COMPLETED)」、「保留(SUSPENDED)」の状態を有している。「未実行」のアクティビティは接続する前のトランジションが発火し、かつアクティビティの開始条件が整った場合に「処理待ち」に移行する。「処理待ち」のアクティビティはアクティビティに対応するワークフローアプリケーション(後述)からアクティビティの開始を指示された場合に「処理中」に移行する。「処理中」のアクティビティはワークフローアプリケーションからアクティビティの完了を指示された場合に「完了」に移行する。「未実行」、「処理待ち」、「処理中」、「完了」の状態にあるアクティビティは、プロセスの「保留」と同期して「保留」となり、プロセスが「処理中」に復帰するのと同期して元の状態に復帰する。
図4はトランジションの状態遷移を示す図であり、「OFF」、「ON」の状態を有している。「OFF」のトランジションは始点のアクティビティの状態が「完了」に変化し、かつトランジションの発火条件を満たした場合に「ON」に移行する。「ON」のトランジションは終点のアクティビティの状態が「処理待ち」から「処理中」に変化した場合に再び「OFF」に移行する。
<システム構成>
図5はワークフローシステムの構成例を示す図であり、ワークフローシステムを利用する業務遂行者が主に使用するクライアント1A、1B、1C、・・およびワークフローシステムの機能を提供するサーバ2A、2B、・・がネットワーク3に接続される形態となっている。
図6は図5におけるクライアントおよびサーバのハードウェア構成の例を示す図であり、それぞれバス100で相互に接続される入力装置101と、表示装置102と、ドライブ装置103と、記録媒体104と、ROM(Read Only Memory)105と、RAM(Random Access Memory)106と、CPU(Central Processing Unit)107と、インタフェース装置108と、HDD(Hard Disk Drive)109とから構成されている。
入力装置101は、クライアントもしくはサーバの利用者により操作されるキーボードおよびマウス等で構成され、クライアントもしくはサーバに各種操作信号を入力するのに用いられる。表示装置102は、クライアントもしくはサーバの利用者が利用するディスプレイ等で構成され、各種情報を表示する。インタフェース装置108は、クライアントもしくはサーバをネットワーク等に接続するインタフェースである。
後述するソフトウェアに対応するプログラムは、例えばCD−ROM等の記録媒体104によってクライアントもしくはサーバに提供されるか、ネットワークを通じてダウンロードされる。記録媒体104は、ドライブ装置103にセットされ、プログラムが記録媒体104からドライブ装置103を介してHDD109にインストールされる。
ROM105は、データ等を格納する。RAM106は、クライアントもしくはサーバの起動時にHDD109からプログラム等を読み出して格納する。CPU107は、RAM106に読み出され格納されたプログラム等に従って処理を実行する。
図7はワークフローシステムのソフトウェア構成例を示す図である。図7において、ワークフローシステムは、クライアント側に設けられるプロセス定義ツール11、プロセス実行時編集ツール12、ワークフローアプリケーション13と、サーバ側に設けられるプロセス定義管理部21、プロセス定義データベース22、ワークフローエンジン23、プロセスインスタンスデータベース24、プロセスオブジェクトACL(Access Control List)データベース25とを備えている。
プロセス定義ツール11は、プロセス定義を行うツールであり、プロセス定義管理部21を介して、プロセス定義データベース22にプロセス定義を登録したり、プロセス定義データベース22からプロセス定義を取得したりする。また、プロセス定義ツール11は、ワークフローエンジン23を介して、プロセスインスタンスデータベース24よりプロセスインスタンスフローを抽出し、例えば抽出したプロセスインスタンスフローを編集し、編集したプロセスインスタンスフローをプロセス定義としてプロセス定義管理部21を介してプロセス定義データベース22に登録する。
プロセス定義管理部21は、プロセス定義データベース22に格納されているプロセス定義を管理する管理部であって、プロセス定義ツール11からの要求に基づいて、対応するプロセス定義をプロセス定義データベース22から取得したり、対応するプロセス定義をプロセス定義データベース22に登録したりする。
プロセス定義データベース22は、プロセス定義を格納するデータベースであり、後述する各種のテーブルを備える。
プロセス実行時編集ツール12は、プロセスインスタンスフローを編集するツールであり、ワークフローエンジン23を介して、プロセスインスタンスデータベース24よりプロセスインスタンスフローを取得したり、取得したプロセスインスタンスフローを編集し、編集したプロセスインスタンスフローを、ワークフローエンジン23を介してプロセスインスタンスデータベース24に格納し、プロセスインスタンスフローを更新したりする。なお、プロセスインスタンスフローの編集には、アクティビティの追加、削除、順序の変更、プロセス変数の追加、削除、プロセスの終了条件の変更、プロセス変数の値の変更を含む、プロセスの全ての構成要素の変更を含む。
ワークフローアプリケーション13は、アクティビティを実行するアプリケーションであり、ワークフローエンジン23を介して、プロセスインスタンスデータベース24に格納されている対応するプロセスインスタンスのプロセス情報やプロセスステータスを取得したり、プロセス変数を更新したりする。また、ワークフローアプリケーション13は、ワークフローエンジン23を介して、プロセス定義データベース22よりプロセス定義を取得し、そのプロセス定義に基づいて、プロセスのインスタンス化を行い、インスタンス化されたプロセスをプロセスインスタンスデータベース24に格納する処理等も行う。
ワークフローエンジン23は、ワークフローアプリケーション13からの要求に応じてプロセス定義データベース22より対応するプロセス定義を取得し、そのプロセス定義に基づいて、プロセスのインスタンス化を行い、プロセスインスタンスデータベース24に格納したり、ワークフローアプリケーション13からの要求に基づいて、対応するプロセスインスタンスのプロセス情報やプロセスステータスをプロセスインスタンスデータベース24より取得したり、プロセスインスタンスデータベース24に格納されている対応するプロセスインスタンスのプロセス変数を更新したりする。
また、ワークフローエンジン23は、プロセス実行時編集ツール12またはプロセス定義ツール11からの要求に応じて、プロセスインスタンスデータベース24よりプロセスインスタンスフローを抽出したり、プロセス実行時編集ツール12からの要求に応じて、プロセスインスタンスデータベース24に格納されているプロセスインスタンスフローを更新したりする。また、ワークフローエンジン23は、プロセス実行時編集ツール12からのプロセスインスタンスフロー更新の要求等に応じて、プロセスオブジェクトACLデータベース25において格納され管理されている、対応するプロセスオブジェクトに対するアクセス権等を参照し、要求元のユーザまたはグループに有効なアクセス権が存在するか否かを判定する。
プロセスインスタンスデータベース24は、プロセスインスタンスを格納するデータベースであり、後述する各種のテーブルを備える。
プロセスオブジェクトACLデータベース25は、プロセスオブジェクトに対するアクセス権等を格納し管理する。
なお、上述したように、プロセス定義ツール11、プロセス実行時編集ツール12、ワークフローアプリケーション13等はクライアント側に実装され、プロセス定義管理部21、プロセス定義データベース22、ワークフローエンジン23、プロセスインスタンスデータベース24、プロセスオブジェクトACLデータベース25等はサーバ側に実装される。また、プロセス定義ツール11、プロセス実行時編集ツール12、ワークフローアプリケーション13、プロセス定義管理部21、プロセス定義データベース22、ワークフローエンジン23、プロセスインスタンスデータベース24、プロセスオブジェクトACLデータベース25等を、Webサービスとして実装するようにしてもよい。このような構成とした場合、クライアントとサーバとの間では、XML(eXtensible Markup Language)やHTTP(HyperText Transfer Protocol)をベースとしたSOAP(Simple Object Access Protocol)等に従って、通信が行われる。
図8はプロセス定義データベース22に設けられるプロセス定義テーブル221の例を示す図であり、プロセス定義を識別する「プロセス定義ID」フィールドと、プロセス定義の名前を示す「名前」フィールドと、プロセスの終了条件を示す「終了条件」フィールドと、プロセス定義が利用可能であるか否かを示す「状態」フィールドとを有している。
図9はプロセス定義データベース22に設けられるアクティビティ定義テーブル222の例を示す図であり、アクティビティ定義を識別する「アクティビティ定義ID」フィールドと、アクティビティを収容するプロセス定義を示す「プロセス定義ID」フィールドと、アクティビティに対応するワークフローアプリケーションを示す「アプリケーションID」フィールドと、アクティビティ定義の名前を示す「名前」フィールドと、アクティビティの開始条件を示す「開始条件」フィールドと、アクティビティの終了条件を示す「終了条件」フィールドとを有している。なお、「開始条件」および「終了条件」における「%」はプロセス変数定義を示し、「#」はアクティビティ変数定義を示している。
図10はプロセス定義データベース22に設けられるトランジション定義テーブル223の例を示す図であり、トランジション定義を識別する「トランジション定義ID」フィールドと、トランジションを収容するプロセス定義を示す「プロセス定義ID」フィールドと、トランジションの始点側のアクティビティ定義を示す「Fromアクティビティ定義ID」フィールドと、トランジションの終点側のアクティビティ定義を示す「Toアクティビティ定義ID」フィールドと、トランジションの発火条件を示す「発火条件」フィールドとを有している。
図11はプロセス定義データベース22に設けられるプロセス変数定義テーブル224の例を示す図であり、プロセス変数定義を識別する「プロセス変数定義ID」フィールドと、対応するプロセス定義を示す「プロセス定義ID」フィールドと、プロセス変数の名前を示す「プロセス変数名」フィールドと、プロセス変数の型を示す「変数型」フィールドとを有している。なお、このプロセス変数定義テーブル224は、プロセス変数の雛形(テンプレート)を保持することで、よく使うプロセス変数を再利用しやすくするためのものである。
図12はプロセス定義データベース22に設けられるアクティビティ変数定義テーブル225の例を示す図であり、アクティビティ変数定義を識別する「アクティビティ変数定義ID」フィールドと、対応するプロセス定義を示す「プロセス定義ID」フィールドと、対応するアクティビティ定義を示す「アクティビティ定義ID」フィールドと、アクティビティ変数の名前を示す「アクティビティ変数名」フィールドと、対応するワークフローアプリケーションのパラメータを示す「アプリケーションパラメータ番号」フィールドと、アクティビティ変数の型を示す「変数型」フィールドとを有している。なお、「アプリケーションパラメータ番号」は、後述するアプリケーション定義テーブル227のパラメータリストに記述されているパラメータ番号と対応し、対応しない場合はNULL値となる。
図13はプロセス定義データベース22に設けられるプロセス変数定義参照テーブル226の例を示す図であり、アクティビティ定義もしくはトランジション定義を示す「アクティビティ定義ID・トランジション定義ID」フィールドと、アクティビティもしくはトランジションの区別を示す「アクティビティ/トランジション」フィールド(A:アクティビティ、T:トランジション)と、参照もしくは更新するプロセス変数定義を示す「プロセス変数定義ID」フィールドと、プロセス変数のとり得る有効な値の範囲を示す「有効な値の範囲」フィールドと、対応するワークフローアプリケーションのパラメータを示す「アプリケーションパラメータ番号」フィールドと、参照もしくは更新の方法を示す「参照方法」フィールド(R:参照、W:更新)とを有している。なお、「アプリケーションパラメータ番号」は、後述するアプリケーション定義テーブル227のパラメータリストに記述されているパラメータ番号と対応し、対応しない場合はNULL値となる。
図14はプロセス定義データベース22に設けられるアプリケーション定義テーブル227の例を示す図であり、ワークフローアプリケーションを識別する「アプリケーションID」フィールドと、ワークフローアプリケーションの名前を示す「名前」フィールドと、ワークフローアプリケーションのエントリを示す「アプリケーション記述」フィールドと、ワークフローアプリケーションの使用するパラメータのリストを示す「パラメータリスト」フィールドとを有している。なお、「アプリケーション記述」としては、ここではWebアプリケーションを想定し、URL(Uniform Resource Locator)とした例を示している。
図15はプロセスインスタンスデータベース24に設けられるプロセスインスタンステーブル241の例を示す図であり、プロセス(プロセスインスタンス)を識別する「プロセスID」フィールドと、プロセスの名前を示す「名前」フィールドと、プロセスの終了条件を示す「終了条件」フィールドと、プロセスの状態を示す「状態」フィールドとを有している。
図16はプロセスインスタンスデータベース24に設けられるアクティビティテーブル242の例を示す図であり、アクティビティを識別する「アクティビティID」フィールドと、アクティビティを収容するプロセスを示す「プロセスID」フィールドと、アクティビティの名前を示す「名前」フィールドと、対応するアクティビティ定義を示す「アクティビティ定義ID」フィールドと、対応するワークフローアプリケーションを示す「アプリケーションID」フィールドと、アクティビティの開始条件を示す「開始条件」フィールドと、アクティビティの終了条件を示す「終了条件」フィールドと、アクティビティの状態を示す「状態」フィールドとを有している。なお、「開始条件」および「終了条件」における「%」はプロセス変数定義を示し、「#」はアクティビティ変数定義を示している。
図17はプロセスインスタンスデータベース24に設けられるトランジションテーブル243の例を示す図であり、トランジションを識別する「トランジションID」フィールドと、トランジションを収容するプロセスを示す「プロセスID」フィールドと、トランジションの始点側のアクティビティを示す「FromアクティビティID」フィールドと、トランジションの終点側のアクティビティを示す「ToアクティビティID」フィールドと、トランジションの発火条件を示す「発火条件」フィールドと、トランジションの状態を示す「状態」フィールドとを有している。
図18はプロセスインスタンスデータベース24に設けられるプロセス変数テーブル244の例を示す図であり、プロセス変数を識別する「プロセス変数ID」フィールドと、対応するプロセスを示す「プロセスID」フィールドと、対応するプロセス変数定義を示す「プロセス変数定義ID」フィールドと、プロセス変数の名前を示す「プロセス変数名」フィールドと、プロセス変数の型を示す「変数型」フィールドと、プロセス変数の値を示す「値」フィールドと、プロセス固有のプロセス変数である場合は初期値が「1」で、これにプロセス変数を参照するアクティビティおよびトランジションの数を加えた値を示す「参照カウント」フィールドと、プロセス変数を更新するアクティビティの数を示す「参照更新カウント」フィールドとを有している。
図19はプロセスインスタンスデータベース24に設けられるアクティビティ変数テーブル245の例を示す図であり、アクティビティ変数を識別する「アクティビティ変数ID」フィールドと、対応するプロセスを示す「プロセスID」フィールドと、対応するアクティビティを示す「アクティビティID」フィールドと、アクティビティ変数の名前を示す「アクティビティ変数名」フィールドと、対応するワークフローアプリケーションのパラメータを示す「アプリケーションパラメータ番号」フィールドと、アクティビティ変数の型を示す「変数型」フィールドと、アクティビティ変数の値を示す「値」フィールドとを有している。なお、「アプリケーションパラメータ番号」は、アプリケーション定義テーブル227のパラメータリストに記述されているパラメータ番号と対応し、対応しない場合はNULL値となる。
図20はプロセスインスタンスデータベース24に設けられるプロセス変数更新履歴テーブル246の例を示す図であり、履歴データを識別する「シーケンス番号」フィールドと、履歴の対象であるプロセスを示す「プロセスID」フィールドと、履歴の対象であるプロセス変数を示す「プロセス変数ID」フィールドと、履歴の対象となる事象の日時を示す「日時」フィールドと、プロセス変数の更新方法を示す「更新方法」フィールドと、更新後の値を示す「値」フィールドとを有している。
図21はプロセスインスタンスデータベース24に設けられるプロセス変数参照テーブル247の例を示す図であり、アクティビティもしくはトランジションを示す「アクティビティID・トランジションID」フィールドと、アクティビティもしくはトランジションの区別を示す「アクティビティ/トランジション」フィールド(A:アクティビティ、T:トランジション)と、参照もしくは更新するプロセス変数を示す「プロセス変数ID」フィールドと、対応するワークフローアプリケーションのパラメータを示す「アプリケーションパラメータ番号」フィールドと、プロセス変数のとり得る有効な値の範囲を示す「有効な値の範囲」フィールドと、参照もしくは更新の方法を示す「参照方法」フィールド(R:参照、W:更新参照)とを有している。
図22はプロセス定義のXML記述と各テーブル等との対応関係の例を示す図であり、プロセス定義全体がプロセス定義テーブル221およびプロセスインスタンステーブル241に対応し、「<WorkflowProcesses>」タグ直下の「<ExtendedAttributes>」タグ部分がプロセス変数定義テーブル224およびプロセス変数テーブル244に対応し、「<Activity>」タグ部分がアクティビティ定義テーブル222およびアクティビティテーブル242に対応し、その直下の「<ExtendedAttributes>」タグ部分がアクティビティ変数定義テーブル225およびアクティビティ変数テーブル245に対応し、「<ReferedAttributes>」タグ部分がプロセス変数定義参照テーブル226およびプロセス変数参照テーブル247に対応し、「<Application>」タグ部分がアプリケーション定義テーブル227に対応し、「<Transitions>」タグ部分がトランジション定義テーブル223およびトランジションテーブル243に対応している。
図23はプロセスオブジェクトに対するアクセスコントロールの例を示す図であり、プロセスに対しては変更、アクティビティに対しては実行、削除、変更、管理、プロセス変数に対しては参照、更新、管理、アクティビティ定義に対しては追加、プロセス変数定義に対しては追加の操作権限を規定している。なお、これらの操作権限はプロセス定義データベース22にプロセス定義の一部として保持されている。
図24はプロセスオブジェクトACLデータベース25に設けられるアクセスコントロールリストテーブル251の例を示す図であり、項目を識別する「SID(Security ID)」フィールドと、プロセスオブジェクトを示す「Object ID」フィールドと、許可対象のユーザもしくはグループを示す「User/Group ID」フィールドと、操作権限を示す「アクセスコントロール」フィールドとを有している。「アクセスコントロール」として示される記号は図23に示す権限記号である。
<動作>
図25はプロセスの実行開始時の処理例を示すシーケンス図である。
先ず、ユーザがワークフローアプリケーション13に対してプロセス定義一覧の取得を要求すると(ステップS1)、ワークフローアプリケーション13はプロセス定義管理部21に対してプロセス定義一覧の取得を要求し(ステップS2)、プロセス定義管理部21はプロセス定義データベース22からプロセス定義一覧を取得する(ステップS3)。取得されたプロセス定義一覧はワークフローアプリケーション13まで応答として送られ、ワークフローアプリケーション13上でユーザにより選択可能な状態に表示される。
次いで、ユーザが所望のプロセス定義を選択し、プロセスインスタンスの生成を要求すると(ステップS4)、ワークフローアプリケーション13はプロセス定義管理部21に対してプロセス定義の取得を要求し(ステップS5)、プロセス定義管理部21はプロセス定義データベース22からプロセス定義を取得する(ステップS6)。取得されたプロセス定義はワークフローアプリケーション13まで応答として送られ、ワークフローアプリケーション13はプロセス定義のパラメータを設定した上で(ステップS7)、ワークフローエンジン23に対してプロセスインスタンスの生成を要求し(ステップS8)、ワークフローエンジン23はプロセスインスタンスをプロセスインスタンスデータベース24に登録することでプロセスインスタンスを生成する(ステップS9)。プロセスインスタンスが生成された旨は応答としてワークフローアプリケーション13まで送られる。
そして、ワークフローアプリケーション13はワークフローエンジン23に対してプロセスの開始を要求し(ステップS10)、プロセスの実行が開始される。その後は、プロセス定義で規定されたワークフローに従い、業務処理が行われていく。
図26はプロセスの変更の概念図であり、定義されているワークフローと異なる方法で実際の仕事を進めたい場合における主要な処理を示している。
図26において、プロセスを停止した上で、ワークフローエンジン23はプロセスインスタンスデータベース24からプロセスインスタンスフローを取得し(ステップS11)、ワークフローエンジン23は取得したプロセスインスタンスフローをプロセスインスタンスデータベース24の内部表現の形式からプロセス定義に変換し(ステップS12)、プロセス実行時編集ツール12はワークフローエンジン23からプロセス定義を取得する(ステップS13)。
プロセス実行時編集ツール12は取得したプロセス定義に対して編集を行い(ステップS14)、ワークフローエンジン23に対してプロセス定義の更新を要求する(ステップS15)。
ワークフローエンジン23はプロセス実行時編集ツール12から渡されたプロセス定義をプロセスインスタンスデータベース24の内部表現の形式に変換し(ステップS16)、プロセスインスタンスデータベース24に対してプロセスインスタンスフローの更新を行う(ステップS17)。そして、停止していたプロセスを再開することで、編集により変更されたワークフローが有効となる。
図27はプロセスの変更の処理例を示すシーケンス図である。図27において、プロセスの実行中にユーザがワークフローアプリケーション13に対してプロセスインスタンスフローの編集開始を要求すると(ステップS21)、ワークフローアプリケーション13はワークフローエンジン23に対してプロセスの停止を要求し(ステップS22)、ワークフローエンジン23はプロセスインスタンスデータベース24のプロセスの状態を保留とすることでプロセスを停止する(ステップS23)。プロセスが停止した旨は応答としてワークフローアプリケーション13まで送られる。
ワークフローアプリケーション13はプロセス実行時編集ツール12を起動し(ステップS24)、プロセス実行時編集ツール12はワークフローエンジン23を介してプロセスインスタンスデータベース24からプロセスインスタンスフローを取得し(ステップS25、S26)、プロセスインスタンスフローを表示する(ステップS27)。
ユーザはプロセス実行時編集ツール12によりプロセスインスタンスフローに対して編集を行う(ステップS28)。図28は編集の一例であるアクティビティの追加におけるプロセス実行時編集ツール12のグラフィカルユーザインタフェース(GUI)の例を示す図である。ここでは、次の手順によってアクティビティの追加を行っている状態を示している。
(1)「追加」メニュー12aで「アクティビティ」を選択
(2)アプリケーション一覧12bから「ドキュメント作成」を選択
(3)アクティビティ設定ウィンドウ12cが表示
(4)アクティビティ設定ウィンドウ12cにパラメータ(タイトル「特許提案書作成」等)を設定し、「OK」ボタン12dを押下
(5)「Flow View」ウィンドウ12eに「特許提案書作成」のアクティビティ12fが表示
(6)「追加」メニュー12aで「トランジション」を選択し、トランジション12gを追加
(7)「編集完了」メニュー12hを選択
図29は上記のアクティビティ等の追加におけるシステム側の処理例を示すフローチャートである。
アクティビティの追加が要求されて処理が開始すると(ステップS41)、ワークフローアプリケーションの選択を受け付け(ステップS42)、アクティビティインスタンスを作成する(ステップS43)。この際、ワークフローアプリケーションの選択を行わせるリストを表示するためにアプリケーション定義テーブル227(図14)の参照が行われ、アクティビティインスタンスの作成のためにアクティビティテーブル242(図16)への更新が行われる。
次いで、必要に応じて新たなプロセス変数もしくはアクティビティ変数を作成する(ステップS44)。この際、プロセス変数については雛形の取得のためにプロセス変数定義テーブル224(図11)の参照が行われるとともに、作成のためにプロセス変数テーブル244(図18)への更新が行われる。アクティビティ変数についてはアクティビティ変数テーブル245(図19)への更新が行われる。なお、プロセス定義ツール11(図7)を用い、プロセス変数定義テーブル224に新たなプロセス変数定義を追加してもよい。
次いで、既存のあるいは新たに作成したプロセス変数、アクティビティ変数につき、選択したワークフローアプリケーションのパラメータに割り付ける(ステップS45)。この際、プロセス変数テーブル244、アクティビティ変数テーブル245、プロセス変数参照テーブル247(図21)への更新が行われる。
次いで、プロセス変数参照情報を更新する(ステップS46)。この際、プロセス変数参照テーブル247への更新が行われる。
次いで、トランジションの追加および設定を行う(ステップS47)。この際、トランジションテーブル243(図17)への更新が行われる。
次いで、追加したアクティビティもしくはトランジションが参照もしくは更新するプロセス変数の参照カウントもしくは参照更新カウントのうちの対応するものをインクリメント(1を加算)する(ステップS48)。この際、プロセス変数テーブル244への更新が行われる。
図30はアクティビティ等の削除におけるシステム側の処理例を示すフローチャートである。
処理が開始すると(ステップS51)、削除するアクティビティの選択を受け付け(ステップS52)、そのアクティビティインスタンスを削除する(ステップS53)。この際、アクティビティテーブル242およびアクティビティ変数テーブル245への更新が行われる。
次いで、削除したアクティビティが参照もしくは更新していたプロセス変数の参照カウントもしくは参照更新カウントのうちの対応するものをデクリメント(1を減算)する(ステップS54)。この際、プロセス変数テーブル244への更新が行われる。
次いで、削除したアクティビティの前後に接続するトランジションを削除する(ステップS55)。この際、トランジションテーブル243への更新が行われる。
次いで、そのトランジションが参照していたプロセス変数の参照カウントをデクリメントする(ステップS56)。この際、プロセス変数テーブル244への更新が行われる。
次いで、新たなトランジションの追加を行う(ステップS57)。この際、トランジションテーブル243への更新が行われる。
次いで、追加したトランジションが参照するプロセス変数の参照カウントをインクリメントする(ステップS58)。この際、プロセス変数テーブル244への更新が行われる。
次いで、参照カウントと更新参照カウントがともに「0」になったプロセス変数を削除する(ステップS59)。この際、プロセス変数テーブル244への更新が行われる。このように、いずれのアクティビティもしくはトランジションからも参照されないプロセス変数を削除することで、再利用時に不要なプロセス変数が含まれない状態とすることができる。なお、プロセス固有のプロセス変数については、予め参照カウントの初期値が「1」とされているため、全ての参照アクティビティもしくはトランジションが削除されても削除されることはない。
図27に戻り、プロセスインスタンスフローの編集(ステップS28)が完了した後、ユーザはプロセス実行時編集ツール12に対してプロセスインスタンスフローの更新を要求し(ステップS29)、プロセス実行時編集ツール12はワークフローエンジン23に対してプロセスインスタンスフローの更新を要求する(ステップS30)。
この要求を受けたワークフローエンジン23は、プロセスオブジェクトACLデータベース25に対してプロセスインスタンスフローの変更権を当該ユーザ(編集者)が有しているか否かの確認を行う(ステップS31)。当該ユーザが変更権を有していない場合は編集が許容されない旨をユーザに伝える。これにより、権限のない者によってプロセスが変更されることを防止することができる。
変更権のチェックに問題がない場合、ワークフローエンジン23はプロセスインスタンスフローの整合性(実行可能性)のチェックを行う(ステップS32)。図31はプロセスの整合性チェックの処理例を示すフローチャートである。
図31において、処理が開始されると(ステップS61)、先頭のアクティビティから順に、プロセス変数参照テーブル247(図21)を用いて、アクティビティとトランジションが参照するプロセス変数を確認する(ステップS62)。この際の確認の内容は例えば次のような内容である。
(1)プロセス変数の有無
(2)プロセス変数の値(そのプロセス変数を更新した最後のアクティビティの値がこのアクティビティもしくはトランジションの有効な値の範囲に入っているかどうか?)
(3)そのアクティビティに割り当てられた業務遂行者がそのプロセス変数に対する操作権限を持っているか?
(4)トランザクションの場合は、並行するトランザクションの発火条件のORをとった場合、全て可能なプロセス変数の場合を網羅しているか?
そして、一つでも実行される可能性がないアクティビティが見つかった場合には警告を出し、再編集を求める(ステップS63)。
更に、終端のアクティビティに到達できない場合にはエラーとし、再編集を求める(ステップS64)。
これにより、ユーザにより不適切にプロセスが変更されることを防止することができ、実行可能性を担保することができる。
図32は整合性チェックの詳細を示すフローチャートであり、図31のプロセス変数の確認処理(ステップS62)をより詳細に示したものである。
図32において、処理を開始すると(ステップS101)、プロセスインスタンスフローを取得し(ステップS102)、最初のアクティビティを取得し(ステップS103)、アクティビティが参照するプロセス変数を1つ選択する(ステップS104)。
そして、プロセス変数テーブル244でプロセス変数の有無を確認するとともに、アクセスコントロールリストテーブル251で、プロセス変数に対する業務遂行者の権限を確認する(ステップS105)。
ここで、プロセス変数が存在しないか、権限に違反がある場合(ステップS106のNo)は、整合違反と判定し(ステップS107)、処理を終了する(ステップS108)。
一方、プロセス変数が存在し、権限に違反がない場合(ステップS106のYes)は、メモリからプロセス変数のとり得る値を取得し(ステップS109)、取得できた場合(ステップS110のYes)は、プロセス変数のプロセス変数定義IDを取得し、アクティビティIDとプロセス定義IDからプロセス変数の有効な値の範囲を取得し(ステップS111)、取得できた場合(ステップS112のYes)は、プロセス変数の有効な値の範囲とプロセス変数のとり得る値のANDをとり、それをとり得る値としてメモリに記憶する(ステップS113)。取得できなかった場合(ステップS110、S112のNo)は特に何もしない。
次いで、メモリに記憶されているプロセス変数のとり得る値がアクティビティの開始条件に違反しないことを確認し(ステップS114)、違反している場合(ステップS114のNG)は、整合違反と判定し(ステップS107)、処理を終了する(ステップS108)。
違反していない場合(ステップS114のOK)は、次のプロセス変数を取得し(ステップS115)、取得できた場合(ステップS116のYes)は、アクティビティが参照するプロセス変数の選択(ステップS104)に戻る。
取得できなかった場合(ステップS116のNo)は、アクティビティの終了条件でメモリに記憶したプロセス変数のとり得る値を更新し(ステップS117)、次のトランジションを取得する(ステップS118)。
そして、メモリに記憶されているプロセス変数のとり得る値がトランジションの発火条件に違反しないことを確認し(ステップS119)、違反する場合(ステップS119のNG)は、整合違反と判定し(ステップS120)、処理を終了する(ステップS121)。
違反しない場合(ステップS119のOK)は、トランジションの発火条件でメモリに記憶したプロセス変数のとり得る値を更新し(ステップS122)、次のアクティビティを取得する(ステップS123)。
そして、取得できた場合(ステップS124のYes)は、最初のアクティビティの取得(ステップS103)に戻る。取得できなかった場合(ステップS124のNo)は、整合性違反なしと判定し(ステップS125)、処理を終了する(ステップS126)。
図33は整合性違反の例を示す図であり、(a)に示すActibity1とActibity2の間にActibity3を追加して(b)のようにした場合、Activity1の終了条件はP1>200であるから、Activity1終了時にはP1の値は200より大きく、Activity3の開始条件はP1<150であるからActivity 3は実行されず、このプロセスは完了しないため、整合性違反と判断される。
図27に戻り、プロセスインスタンスフローの整合性のチェック(ステップS32)に問題がなかった場合、ワークフローエンジン23はプロセス変数更新履歴テーブル246を参照してプロセスの再開位置を決定する(ステップS33)。図34はプロセス再開位置を決定する処理例を示すフローチャートである。
図34において、処理が開始されると(ステップS71)、プロセスインスタンスフローをプロセスインスタンスデータベース24から取得し(ステップS72)、最初のアクティビティの取得(ステップS73)およびそのアクティビティに続くトランジションの取得(ステップS74)を行う。そして、プロセス変数更新履歴テーブル246を参照し、トランジションの終了条件を満足したことが一度でもあったかどうかを判定し(ステップS75、S76)、満足したことがなかった場合(ステップS76のNo)には、そのトランジションを再開位置とし(ステップS77)、処理を終了する(ステップS78)。
また、トランジションが終了条件を満足したことが一度でもあった場合(ステップS76のYes)には、そのトランジションに続くアクティビティを取得し(ステップS79)、プロセス変数更新履歴テーブル246を参照し、アクティビティの終了条件を満足したことが一度でもあったかどうかを判定し(ステップS80、S81)、満足したことがなかった場合(ステップS81のNo)には、そのアクティビティを再開位置とし(ステップS82)、処理を終了する(ステップS78)。
また、アクティビティが終了条件を満足したことが一度でもあった場合(ステップS81のYes)には、そのアクティビティが最後のアクティビティであるかどうか判断し(ステップS83)、最後のアクティビティである場合(ステップS83のYes)には、プロセスが終了したと判定し(ステップS84)、処理を終了する(ステップS78)。
また、最後のアクティビティでない場合(ステップS83のNo)には、そのアクティビティに続くトランジションの取得(ステップS74)に戻って処理を継続する。
図27に戻り、プロセスの再開位置の決定(ステップS33)の後、ワークフローエンジン23はプロセスインスタンスデータベース24に対してプロセスインスタンスフローの更新を行い(ステップS34)、その応答を待って、ワークフローアプリケーション13はワークフローエンジン23に対してプロセスの再開を要求し(ステップS35)、ワークフローエンジン23はプロセスインスタンスデータベース24に対して、ステータス情報の更新を行うことで、決定された再開位置から再開を行う(ステップS36)。
次に、図35〜図40はプロセスインスタンスを複製して編集する場合の各テーブルの例を示す図である。すなわち、前述の動作では、プロセスを保留(SUSPENDED)することにより停止し、その状態で編集を行い、権限および整合性のチェックの後に再開するようにしていたが、プロセスインスタンスを中断(TERMINATED)し、その複製を作成し、その新しいプロセスインスタンスに編集を行い、権限および整合性のチェックの後に再開するようにしたものである。
図35では、プロセスID:1のプロセスを編集する場合に、プロセスID:1の状態を中断(TERMINATED)に変更し、プロセスID:1のデータを複製して新しいプロセスインスタンス(プロセスID:m+1)を作成した状態を示している。
図36では、プロセスID:1のアクティビティの情報を複製し、アクティビティIDとプロセスIDの情報だけ新しいIDにし、他の情報は引き継ぐようにしている。また、必要に応じてアクティビティを追加し、新しいプロセスID(ここでは“m+1”)のプロセスに所属させるようにしている。
図37では、プロセスID:1のトランジションを複製し、Fromアクティビティ、Toアクティビティを新しいアクティビティIDにしている。また、必要に応じてトランジションを追加・削除している。このとき、各トランジションの発火条件も必要に応じて変更する。状態は、発火条件とプロセス変数・アクティビティ変数の状態から自動的に判定する。
図38および図39では、プロセスID:1のプロセス変数、アクティビティ変数を複製し、プロセスID、アクティビティIDを新しいプロセス、アクティビティのIDにし、その他のデータは引き継ぐようにしている。また、必要に応じて新しいプロセスID、アクティビティIDを追加する。また、参照カウント、更新参照カウントが0のプロセス変数、アクティビティ変数を削除する。
図40では、プロセスID:1に含まれるアクティビティ、トランジションに関係する参照情報を複製し、新しいアクティビティ、トランジションのIDにし、その他の情報は引き継ぐようにしている。また、必要に応じて新しい参照情報を追加、あるいは、必要の無い参照情報は削除する。
次に、図41は再利用のためのプロセス定義の登録におけるプロセス定義ツールのグラフィカルユーザインタフェースの例を示す図である。すなわち、ユーザにより実際の仕事の進め方に合致した形に変更されたプロセスインスタンスフローからプロセス定義を生成することで、後に再利用できるようにしたものである。ここでは、次の手順によってプロセス定義の登録を行っている状態を示している。
(1)「インポート」メニュー11aからプロセスインスタンスフローを選択すると、右ペインがプロセスインスタンス一覧11bに変わる。
(2)プロセスインスタンス一覧11bから所望のプロセスインスタンスを選択し、「OK」ボタン11cを押すとプロセスインスタンスフローが左の「Flow View」ウィンドウ11dに表示され、プロセスインスタンス一覧11bは閉じる。
(3)「Flow View」ウィンドウ11dに表示されたプロセスインスタンスフローを必要に応じて編集した後、「追加」メニュー11eを選択し、プロセス定義としてプロセス定義管理部21を介してプロセス定義データベース22に登録処理を行う。
以上説明したように、本発明にあっては、プロセスを停止した上でプロセスを編集し、編集者の権限およびプロセスの整合性をチェックし、プロセスの再開位置を決定して再開するようにしているため、エンドユーザにより不適切にプロセスが変更されることを防止することができ、実行可能性を担保した上で実行中にプロセスを自由に変更することができる。
また、アクティビティの実行記録から、改善されたワークフローを作成し、再利用することができる。
更に、プロセスの進行をプロセス変数によって管理することにより、柔軟にモディファイ可能なプロセスの進行状況を統計的に管理することができる。すなわち、プロセス変数によってプロセス進行評価のためのチェックリストを作成することができる。
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
プロセスの構成要素を示す図である。 プロセスの状態遷移を示す図である。 アクティビティの状態遷移を示す図である。 トランジションの状態遷移を示す図である。 ワークフローシステムの構成例を示す図である。 クライアントおよびサーバのハードウェア構成の例を示す図である。 ワークフローシステムのソフトウェア構成例を示す図である。 プロセス定義テーブルの例を示す図である。 アクティビティ定義テーブルの例を示す図である。 トランジション定義テーブルの例を示す図である。 プロセス変数定義テーブルの例を示す図である。 アクティビティ変数定義テーブルの例を示す図である。 プロセス変数定義参照テーブルの例を示す図である。 アプリケーション定義テーブルの例を示す図である。 プロセスインスタンステーブルの例を示す図である。 アクティビティテーブルの例を示す図である。 トランジションテーブルの例を示す図である。 プロセス変数テーブルの例を示す図である。 アクティビティ変数テーブルの例を示す図である。 プロセス変数更新履歴テーブルの例を示す図である。 プロセス変数参照テーブルの例を示す図である。 プロセス定義のXML記述と各テーブル等との対応関係の例を示す図である。 プロセスオブジェクトに対するアクセスコントロールの例を示す図である。 アクセスコントロールリストテーブルの例を示す図である。 プロセスの実行開始時の処理例を示すシーケンス図である。 プロセスの変更の概念図である。 プロセスの変更の処理例を示すシーケンス図である。 アクティビティの追加におけるプロセス実行時変更ツールのグラフィカルユーザインタフェースの例を示す図である。 アクティビティ等の追加におけるシステム側の処理例を示すフローチャートである。 アクティビティ等の削除におけるシステム側の処理例を示すフローチャートである。 プロセスの整合性チェックの処理例を示すフローチャートである。 整合性チェックの詳細を示すフローチャートである。 整合性違反の例を示す図である。 プロセス再開位置を決定する処理例を示すフローチャートである。 プロセスインスタンスを複製して編集する場合のプロセスインスタンステーブルの例を示す図である。 プロセスインスタンスを複製して編集する場合のアクティビティテーブルの例を示す図である。 プロセスインスタンスを複製して編集する場合のトランジションテーブルの例を示す図である。 プロセスインスタンスを複製して編集する場合のプロセス変数テーブルの例を示す図である。 プロセスインスタンスを複製して編集する場合のアクティビティ変数テーブルの例を示す図である。 プロセスインスタンスを複製して編集する場合のプロセス変数参照テーブルの例を示す図である。 再利用のためのプロセス定義の登録におけるプロセス定義ツールのグラフィカルユーザインタフェースの例を示す図である。
符号の説明
1A〜1C クライアント
2A、2B サーバ
3 ネットワーク
100 バス
101 入力装置
102 表示装置
103 ドライブ装置
104 記録媒体
105 ROM
106 RAM
107 CPU
108 インタフェース装置
109 HDD
11 プロセス定義ツール
12 プロセス実行時編集ツール
13 ワークフローアプリケーション
21 プロセス定義管理部
22 プロセス定義データベース
23 ワークフローエンジン
24 プロセスインスタンスデータベース
25 プロセスオブジェクトACLデータベース
221 プロセス定義テーブル
222 アクティビティ定義テーブル
223 トランジション定義テーブル
224 プロセス変数定義テーブル
225 アクティビティ変数定義テーブル
226 プロセス変数定義参照テーブル
227 アプリケーション定義テーブル
241 プロセスインスタンステーブル
242 アクティビティテーブル
243 トランジションテーブル
244 プロセス変数テーブル
245 アクティビティ変数テーブル
246 プロセス変数更新履歴テーブル
247 プロセス変数参照テーブル

Claims (15)

  1. 個々の仕事であるアクティビティと当該アクティビティの処理の順序を規定するトランジションとから構成されるプロセスを実行するワークフローシステムであって、
    実行中の上記プロセスを停止する手段と、
    停止した上記プロセスを編集する手段と、
    編集された上記プロセスの整合性をチェックする手段と、
    編集された上記プロセスの再開位置を決定する手段と、
    編集された上記プロセスを上記再開位置から再開する手段とを備えたことを特徴とするワークフローシステム。
  2. 上記プロセスの整合性をチェックする手段は、上記アクティビティの参照もしくは更新するプロセス変数の有無および値、当該プロセス変数に対する業務遂行者の操作権限の有無により整合性をチェックすることを特徴とする請求項1に記載のワークフローシステム。
  3. 上記プロセスの整合性をチェックする手段は、トランザクションの場合、並行するトランザクションの発火条件のORをとった場合に全て可能なプロセス変数の場合を網羅しているかをチェックすることを特徴とする請求項2に記載のワークフローシステム。
  4. 上記プロセスの整合性をチェックする手段は、一つでも実行される可能性がないアクティビティが見つかった場合に警告を出し、編集完了を許さずに再編集を求めることを特徴とする請求項2に記載のワークフローシステム。
  5. 上記プロセスの整合性をチェックする手段は、終端のアクティビティに到達できない場合にエラーとし、編集完了を許さずに再編集を求めることを特徴とする請求項2に記載のワークフローシステム。
  6. 上記プロセスの再開位置を決定する手段は、上記プロセスを構成する最初のアクティビティからトランジションもしくはアクティビティをたどり、プロセス変数の変更履歴を参照してトランジションもしくはアクティビティの終了条件を満足したことが一度もない場合にそのトランジションもしくはアクティビティを再開位置とすることを特徴とする請求項1に記載のワークフローシステム。
  7. 上記プロセスの再開位置を決定する手段は、終了条件を満足したことが一度でもあるアクティビティが最後のアクティビティである場合にプロセスが終了したと判断することを特徴とする請求項6に記載のワークフローシステム。
  8. 上記プロセスを停止する手段は、上記プロセスの状態を保留にすることでプロセスを停止することを特徴とする請求項1に記載のワークフローシステム。
  9. 上記プロセスを停止する手段は、上記プロセスの状態を中断にすることでプロセスを停止することを特徴とする請求項1に記載のワークフローシステム。
  10. 上記プロセスを編集する手段は、アクティビティの追加、削除、順序の変更、プロセス変数の追加、削除、プロセスの終了条件の変更、プロセス変数の値の変更を含む、プロセスの全ての構成要素の変更を含むことを特徴とする請求項1に記載のワークフローシステム。
  11. 上記プロセスを編集する手段は、アクティビティもしくはトランジションの追加の場合に当該アクティビティもしくはトランジションが参照もしくは更新するプロセス変数のカウント値をインクリメントし、アクティビティもしくはトランジションの削除の場合に当該アクティビティもしくはトランジションが参照もしくは更新していたプロセス変数のカウント値をデクリメントし、カウント値がゼロになったプロセス変数を削除することを特徴とする請求項1に記載のワークフローシステム。
  12. 編集者の権限をチェックする手段を備え、上記プロセスを構成するオブジェクト毎に編集を行えるユーザもしくはグループと操作権限を示すアクセスコントロールとを含むアクセスコントロールリストに従って権限をチェックすることを特徴とする請求項1に記載のワークフローシステム。
  13. 編集が行われ実体化されたプロセスインスタンスフローをプロセス定義に変換し、当該プロセス定義を再利用のために登録する手段を備えたことを特徴とする請求項1に記載のワークフローシステム。
  14. 個々の仕事であるアクティビティと当該アクティビティの処理の順序を規定するトランジションとから構成されるプロセスを実行するワークフローシステムにおける処理方法であって、
    実行中の上記プロセスを停止する工程と、
    停止した上記プロセスを編集する工程と、
    編集された上記プロセスの整合性をチェックする工程と、
    編集された上記プロセスの再開位置を決定する工程と、
    編集された上記プロセスを上記再開位置から再開する工程とを備えたことを特徴とするワークフロー処理方法。
  15. 個々の仕事であるアクティビティと当該アクティビティの処理の順序を規定するトランジションとから構成されるプロセスを実行するワークフローシステムにおける処理プログラムであって、
    実行中の上記プロセスを停止する手順と、
    停止した上記プロセスを編集する手順と、
    編集された上記プロセスの整合性をチェックする手順と、
    編集された上記プロセスの再開位置を決定する手順と、
    編集された上記プロセスを上記再開位置から再開する手順とを、コンピュータに実行させることを特徴とするワークフロー処理プログラム。
JP2006130553A 2005-05-26 2006-05-09 ワークフローシステム、ワークフロー処理方法およびワークフロー処理プログラム Expired - Fee Related JP4903012B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006130553A JP4903012B2 (ja) 2005-05-26 2006-05-09 ワークフローシステム、ワークフロー処理方法およびワークフロー処理プログラム
US11/435,747 US20070006123A1 (en) 2005-05-26 2006-05-18 Work flow system, work flow processing method and work flow processing program
EP06252696A EP1727083A1 (en) 2005-05-26 2006-05-24 Work flow system, work flow processing method and work flow processing program

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005154261 2005-05-26
JP2005154261 2005-05-26
JP2006130553A JP4903012B2 (ja) 2005-05-26 2006-05-09 ワークフローシステム、ワークフロー処理方法およびワークフロー処理プログラム

Publications (2)

Publication Number Publication Date
JP2007004776A true JP2007004776A (ja) 2007-01-11
JP4903012B2 JP4903012B2 (ja) 2012-03-21

Family

ID=36648674

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006130553A Expired - Fee Related JP4903012B2 (ja) 2005-05-26 2006-05-09 ワークフローシステム、ワークフロー処理方法およびワークフロー処理プログラム

Country Status (3)

Country Link
US (1) US20070006123A1 (ja)
EP (1) EP1727083A1 (ja)
JP (1) JP4903012B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010086460A (ja) * 2008-10-02 2010-04-15 Fuji Xerox Co Ltd 作業管理装置、作業管理プログラム
JP2010286999A (ja) * 2009-06-10 2010-12-24 Ricoh Co Ltd タスク管理システム
JP2011034492A (ja) * 2009-08-05 2011-02-17 Canon Software Inc 情報処理装置、情報処理システム、情報処理方法、プログラム、および記録媒体。
JP2012118693A (ja) * 2010-11-30 2012-06-21 Hitachi Omron Terminal Solutions Corp ガイダンスフロー編集ツール
JP2014010654A (ja) * 2012-06-29 2014-01-20 Fujitsu Ltd 管理装置,管理プログラム,管理方法
JP2014154120A (ja) * 2013-02-14 2014-08-25 Nci Systems Integration Inc ワークフローシステム
JP2018196036A (ja) * 2017-05-19 2018-12-06 日本電信電話株式会社 管理装置、および、ネットワークサービス管理方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008225769A (ja) * 2007-03-12 2008-09-25 Ricoh Co Ltd ワークフロー管理システム
JP5167662B2 (ja) * 2007-03-19 2013-03-21 株式会社リコー ワークフロー管理システム
JP5084355B2 (ja) * 2007-06-07 2012-11-28 キヤノン株式会社 フロー処理実行装置、フロー処理実行方法及びプログラム
US8150541B2 (en) 2007-11-13 2012-04-03 Fisher-Rosemount Systems, Inc. Methods and apparatus to modify a recipe process flow associated with a process control system during recipe execution
US8825189B2 (en) * 2007-11-13 2014-09-02 Fisher Rosemount Systems, Inc. Methods and apparatus to execute an auxiliary recipe and a batch recipe associated with a process control system
US8555206B2 (en) * 2007-12-21 2013-10-08 Fisher-Rosemount Systems, Inc. Methods and apparatus to present recipe progress status information
US20090199179A1 (en) * 2008-01-31 2009-08-06 Embarq Holdings Company Llc System and method for terminating workflow instances in a workflow application
JP5274203B2 (ja) * 2008-10-31 2013-08-28 キヤノン株式会社 データ処理装置、方法、プログラム、並びに、データ処理システム
CN102043682B (zh) * 2011-01-27 2013-04-10 中国农业银行股份有限公司 一种工作流异常处理方法和系统
CN105183447A (zh) * 2015-07-13 2015-12-23 国云科技股份有限公司 一种轻量级的流程引擎实现方法
US20180225765A1 (en) * 2015-08-03 2018-08-09 Finmason, Inc. Financial Risk Management Assessment System and Method for Assessing Financial Risk
US11087259B2 (en) * 2018-07-12 2021-08-10 Nintex UK Ltd. Business designer

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07334572A (ja) * 1994-06-06 1995-12-22 Fuji Xerox Co Ltd 情報処理システム
JPH113216A (ja) * 1997-06-11 1999-01-06 Fujitsu Ltd シナリオに基づくオブジェクト指向分析設計支援方法および支援装置
JP2003208501A (ja) * 2002-01-11 2003-07-25 Hitachi Ltd ビジネスプロセス定義表示方法およびプログラム
JP2004246457A (ja) * 2003-02-12 2004-09-02 Ricoh Co Ltd プロセス管理装置、プロセス管理方法及びデータ構造

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155720B2 (en) * 2001-10-26 2006-12-26 Hewlett-Packard Development Company, L.P. Dynamic task assignment in workflows
US20030233374A1 (en) * 2002-03-14 2003-12-18 Ulrich Spinola Dynamic workflow process
US7885840B2 (en) * 2003-01-07 2011-02-08 Sap Aktiengesellschaft System and method of flexible workflow management
US20040162741A1 (en) * 2003-02-07 2004-08-19 David Flaxer Method and apparatus for product lifecycle management in a distributed environment enabled by dynamic business process composition and execution by rule inference
US8170901B2 (en) * 2004-10-01 2012-05-01 Microsoft Corporation Extensible framework for designing workflows

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07334572A (ja) * 1994-06-06 1995-12-22 Fuji Xerox Co Ltd 情報処理システム
JPH113216A (ja) * 1997-06-11 1999-01-06 Fujitsu Ltd シナリオに基づくオブジェクト指向分析設計支援方法および支援装置
JP2003208501A (ja) * 2002-01-11 2003-07-25 Hitachi Ltd ビジネスプロセス定義表示方法およびプログラム
JP2004246457A (ja) * 2003-02-12 2004-09-02 Ricoh Co Ltd プロセス管理装置、プロセス管理方法及びデータ構造

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010086460A (ja) * 2008-10-02 2010-04-15 Fuji Xerox Co Ltd 作業管理装置、作業管理プログラム
JP2010286999A (ja) * 2009-06-10 2010-12-24 Ricoh Co Ltd タスク管理システム
JP2011034492A (ja) * 2009-08-05 2011-02-17 Canon Software Inc 情報処理装置、情報処理システム、情報処理方法、プログラム、および記録媒体。
JP2012118693A (ja) * 2010-11-30 2012-06-21 Hitachi Omron Terminal Solutions Corp ガイダンスフロー編集ツール
JP2014010654A (ja) * 2012-06-29 2014-01-20 Fujitsu Ltd 管理装置,管理プログラム,管理方法
JP2014154120A (ja) * 2013-02-14 2014-08-25 Nci Systems Integration Inc ワークフローシステム
JP2018196036A (ja) * 2017-05-19 2018-12-06 日本電信電話株式会社 管理装置、および、ネットワークサービス管理方法

Also Published As

Publication number Publication date
EP1727083A1 (en) 2006-11-29
JP4903012B2 (ja) 2012-03-21
US20070006123A1 (en) 2007-01-04

Similar Documents

Publication Publication Date Title
JP4903012B2 (ja) ワークフローシステム、ワークフロー処理方法およびワークフロー処理プログラム
JP4400059B2 (ja) ポリシー設定支援ツール
JP4986418B2 (ja) プロジェクトデータのキャッシュおよび同期をとる方法およびシステム
US7590669B2 (en) Managing client configuration data
US20050222969A1 (en) Centralized configuration data management for distributed clients
JP2006011936A (ja) 共有ファイル管理システムおよびサーバー
US20120297363A1 (en) Inferred and shared source control integration across mulitiple program development tools
US20080147841A1 (en) Annotation management program, device, and method
JP6654255B2 (ja) ファイル管理方法及びこれを利用したファイル管理装置{method for managing files and apparatus using the same}
JP2007109182A (ja) ワークフローシステムおよびオブジェクト生成装置
WO2018078902A1 (ja) プログラム動作監視制御装置、分散オブジェクト生成管理装置、記録媒体、及びプログラム動作監視システム
US9870359B2 (en) System and method for dynamic document retention
JP2020502699A (ja) コンピュータファイルメタデータの収集および表示を実施するためのアーキテクチャ、方法および装置
US20040194011A1 (en) Cooperative processing apparatus and cooperative processing method
JP2007041640A (ja) ドキュメント作成支援・管理システム及びドキュメント作成支援・管理方法及びドキュメント作成支援・管理プログラム
JP5224839B2 (ja) 文書管理システム、文書管理装置、文書管理方法及びプログラム
JP2005190221A (ja) キャッシュ制御装置およびその方法ならびにコンピュータプログラム
JP2008059035A (ja) ワークフローシステム及びプログラム
JP6133832B2 (ja) レシピid管理サーバ、レシピid管理システム、および端末装置
JP2007193549A (ja) 共有ファイルの部分編集管理方法およびシステム
JP2007233635A (ja) 情報管理システム及び情報管理方法、並びにコンピュータ・プログラム
JP2004110691A (ja) ファイル管理システム、ファイル管理方法
JP4006167B2 (ja) ワークフロー管理システム
JP2004078535A (ja) 排他制御装置、方法及びプログラム
JP2019128867A (ja) 設計情報管理システム、設計情報管理方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110627

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111206

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120104

R150 Certificate of patent or registration of utility model

Ref document number: 4903012

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150113

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees