JP3726903B2 - 情報処理システムおよび情報処理システムによる作業の流れ管理方法 - Google Patents

情報処理システムおよび情報処理システムによる作業の流れ管理方法 Download PDF

Info

Publication number
JP3726903B2
JP3726903B2 JP2002324635A JP2002324635A JP3726903B2 JP 3726903 B2 JP3726903 B2 JP 3726903B2 JP 2002324635 A JP2002324635 A JP 2002324635A JP 2002324635 A JP2002324635 A JP 2002324635A JP 3726903 B2 JP3726903 B2 JP 3726903B2
Authority
JP
Japan
Prior art keywords
work
routing
workflow
charge
person
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.)
Expired - Lifetime
Application number
JP2002324635A
Other languages
English (en)
Other versions
JP2003203148A (ja
Inventor
陽一 廣瀬
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2002324635A priority Critical patent/JP3726903B2/ja
Publication of JP2003203148A publication Critical patent/JP2003203148A/ja
Application granted granted Critical
Publication of JP3726903B2 publication Critical patent/JP3726903B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、情報を媒介にして連携する複数の作業工程からなる作業について、複数の作業工程の順序と、各作業工程の処理内容を定め、各作業工程の間での情報の受け渡しなど、作業の処理を支援する情報処理システムに関する。
【0002】
【従来の技術】
従来から、業務処理の効率化を図るために、コンピュータによる、いわゆるオフィスオートメーション化が提案されている。しかし、従来は、業務処理においては、個々の作業処理自体についての自動化が行なわれているだけであった。つまり、作業間の連携の部分については、従来のオフィスオートメーションでは考慮されていなかった。
【0003】
この作業間の連携部分を自動化して業務処理のトータルな効率化や迅速化を図ろうとするものとして、ワークフロー・オートメーションが提案されている。ワークフロー・オートメーションにおいては、作業対象となる情報を媒介にして連携する複数の作業工程はワークフローと呼ばれ、このワークフローを自動化するための支援システムはワークフローシステムと呼ばれる。
【0004】
ワークフローシステムは、ネットワーク化された分散処理環境などの処理環境において、業務処理における複数のユーザ間の情報の受け渡しと、情報を受けてから次の作業工程に渡すまでの間に処理すべき作業などのルールを、予め設計、定義することにより業務処理を自動化する情報処理システムである。
【0005】
このワークフローシステムは、次のような処理機能で構成される。
▲1▼業務処理の流れ、各業務におけるルールを定義するための編集機能
▲2▼テンプレート(定義されたワークフロー)を管理する機能
▲3▼処理すべき情報が配達されたことをユーザに知らせる通知機能
▲4▼配達された情報を管理するデータベース機能
▲5▼設定された業務の流れ、ルールに従って情報を次の作業工程に渡すルーティング機能
▲6▼作業の状況を管理するための進捗管理機能
▲7▼実行中のワークフローの維持管理を行なうためのシステム管理機能。
【0006】
このワークフローシステムの概要は、後述の非特許文献1に記載されている。
【0007】
ワークフローが定義された場合、そのワークフローの仕事の流れ(フロー)はグラフ構造によって表現される。図47は、この定義されたワークフローの流れの一例である。
【0008】
図47において、それぞれ四角で囲まれた各ノードは、作業の単位である作業工程(以下ステップと呼ぶ)を表している。各アーク(矢印)は仕事の流れ(つながり、作業の順番や因果関係)を定義しており、あるステップの後ろにステップがあるということは、前のステップが完了しないと、後ろのステップは開始できないことを意味する。逆に、前のステップが完了すると、自動的に後ろのステップが開始するということを意味する。
【0009】
ワークフローでは、各ステップでの実際の作業は人間が行なうが、以上のような作業の流れの管理は全てワークフローシステムが行なう。すなわち、ワークフローシステムは、定義されたワークフローを元に、各ステップの作業が終了すると、適宜、次のステップの作業を開始するようにして、作業全体の流れを管理する。
【0010】
上記のように、あるステップが完了した場合に別のステップを開始するような機能をルーティング機能と呼ぶ。あるステップの作業が終了したときに、後続のステップの作業を開始させることをそのステップに対してルーティングを行なうといい、後続のステップに仕事を流さない場合はルーティングを行なわないという。上述した文献には、このルーティングの方法の詳細については、記述されてない。
【0011】
【非特許文献1】
日経BP社発行の雑誌「日経情報ストラテジー」、1993年8月号、マイケル・D・カーン、安田誠寄稿、「ワークフロー管理技術とその可能性」P123〜P130。
【0012】
【発明が解決しようとする課題】
ところで、図47において四角で囲まれた各ノードを構成する作業工程に対しては、通常は、一つの単位作業が割り当てられる。このため、複雑で規模の大きい業務処理についてワークフローを定義するときには、ワークフローが非常に複雑になってしまう。
【0013】
例えば業務内容が階層的な構造を有していて、下位の業務が終了しないときには、上位の業務が開始できないような場合であっても、下位の業務および上位の業務を、それぞれ単位作業からなるノードを構成する作業工程に分け、それらの作業工程について、ワークフローを定義するようにする場合には、階層関係の考慮をしつつ、ワークフローを定義しなければならず、厄介であるとともに、ワークフローの運用が詳細に定義されたものに限定されて、柔軟性にかけてしまうという問題がある。
【0014】
この発明は、上記の点にかんがみ、ワークフローの作業の流れを階層的に定義および動作させることができ、柔軟な運用を行なえる情報処理システムを提供することを目的とする。
【0015】
【課題を解決するための手段】
上記課題を解決するため、この発明による情報処理システムは、
順序立てて処理すべき作業複数個の作業工程に分けられ、その複数個の作業工程の順序と、各作業工程の処理内容とを記憶する記憶手段と、
前記作業工程の開始通知および前記作業工程の終了通知を受け取る通知管理手段と、
前記通知管理手段を通じた前記作業工程の開始通知および前記作業工程の終了通知と、前記記憶手段に記憶された前記複数個の作業工程の順序にしたがって次に開始させる次作業工程を決定するルーティング管理手段と、
を備える情報処理システムにおいて、
前記ルーティング管理手段は、
前記次作業工程に、当該作業工程の作業を細分化した作業の単位と、その細分化した作業の単位の前後のつながりとからなるサブフローが結び付けられて定義されていると判断したときに、前記通知管理手段を通じた前記開始通知に基づき前記サブフローを起動するサブフロー起動手段と、
前記サブフロー起動手段により起動されたサブフローが結び付けられて定義されている前記次作業工程の前記終了通知を前記通知管理手段を通じて受けたときに、前記サブフローが実行中であるか否かを判別し、実行中でなく終了していると判別したときに、前記次作業工程を決定する処理を行なうルーティング手段と、
を備えることを特徴とする。
【0016】
【作用】
この発明の情報処理システムにおいては、ワークフロー中の適宜の作業工程において、サブフローが起動される。そして、このサブフローによる作業がすべて完了となった後に、このサブフローが起動された作業工程が作業終了可能となる。したがって、ワークフローの作業の流れを階層的に定義および動作させることができ、詳細で規模の大きいワークフローのみで運用する場合に比べて、より柔軟に対応する運用をすることができる作業の流れ管理方法を構築することができる。
【0017】
【発明の実施の形態】
以下、この発明による情報処理システムの一実施形態を、図を参照しながら説明する。
【0018】
図2は、この例の情報処理システムの全体の概要を示すもので、その機能をブロックとして示したものである。この情報処理システムは、前述したワークフローシステムの構成を有するものであって、システム部10と、ユーザインターフェース部20とからなっており、ワークフローを管理して支援すると共に、各作業工程(以下、作業工程をステップと呼ぶ)の担当者による処理を支援するための作業環境を提供する役割も有する。
【0019】
システム部10は、ファイル管理装置を内蔵する例えばサーバー装置の構成とすることができる。また、ユーザインターフェース部20は、例えばワークステーションなどの情報処理端末装置により構成することができ、そのディスプレイに各作業段階の作業環境を表示することができる。ユーザインターフェース部20は、複数の担当者が共通の1個を共有して使用するように構成することもできるし、担当者毎に設ける構成とすることもできる。そして、システム部10とユーザインターフェース部20とを、例えばLANなどのネットワークにより接続して、分散処理環境を構築することができる。なお、システム部10とユーザインターフェース部20とを同一の装置において構成することもできる。
【0020】
システム部10は、テンプレート管理部11と、ルーティング管理部12と、通知管理部13と、進捗情報管理部14と、ユーザ管理部15と、システム管理部16と、参照情報管理部17とを備える。また、ユーザインターフェース部20は、編集部21と、通知部22と、進捗管理部23と、インターフェースコントロール部24とを備える。
【0021】
ユーザインターフェース部20の編集部21では、ユーザにより設定入力された業務処理の流れ、各業務におけるルールによりワークフローを定義する。システム部10のテンプレート管理部11は、定義されたワークフロー(テンプレート)を管理する。
【0022】
システム部10のルーティング管理部12は、後で詳細に説明するように、設定された業務の流れ、ステップの担当者(ユーザ)による指定、あらかじめ定義されたルールにしたがって、このルーティングを行なう。
【0023】
システム部10の通知管理部13は、処理すべき情報の配達の、ユーザ(担当者)への通知を管理する。ユーザへの通知は、ユーザインターフェース部20の通知部22が行なう。
【0024】
システム部10の進捗情報管理部14は、作業の状況、作業の履歴を管理するための情報を管理する。ユーザインターフェース部20の進捗管理部23は、この情報を用いて作業の状況を管理する。
【0025】
ユーザ管理部15は、各ステップを担当するユーザを管理する。システム管理部16は、システム部10の全体を管理する。参照情報管理部17は、各ステップの担当者に与える、作業に必要な情報を管理する。
【0026】
[ワークフローシステムによるワークフローの流れの管理の概要]
この例のワークフローシステムにおいては、定義されたワークフローの各ステップを、以下のような5つの状態により、その遷移状態を管理する。
【0027】
▲1▼ステップがまだ作業を開始することができない開始不可状態(以下、この状態を「not ready」という)
▲2▼ステップの開始準備ができており、担当者の仕事の開始を待っている待機状態(以下、この状態を「ready」という)
▲3▼担当者が作業をしている実行状態(以下、この状態を「run」という)
▲4▼担当者が作業を終了した作業終了状態(以下、この状態を「complete」という)
▲5▼ルーティングが行なわれず、ワークフローから切り離された切り離し状態(以下、この状態を「isolate」という)
の5種である。
【0028】
後述するように、あるステップの後続のアークが複数個存在、すなわち、複数のステップに分岐がなされているときに、ルーティングが行なわれないステップがあるとき、そのルーティングが行なわれないステップが「isolate」の状態になる。
【0029】
以上のステップの状態遷移に応じてワークフローシステムは、基本的には、次のような動作を行ない、この動作が各ステップに対して繰り返されることにより、ワークフローは進行する。
【0030】
初期状態では、各ステップは、「not ready」の状態にされている。ワークフローの起動が行なわれると、最初のステップが「ready」にされる。また、後述するように、前ステップが終了したとき(「complete」および「isolate」の状態になったとき)に、ルーティング管理部により決定された次のステップの状態が「ready」とされる。
【0031】
ステップが「ready」になると、担当者に対して通知を行なうことにより作業の開始を促す。担当者が開始の合図をワークフローシステムに対して行なうと、ステップの状態は「run」となる。このとき、ワークフローシステムから担当者に対して、作業を行なうために必要な情報をひとまとめにしたデータの塊を送り返す。このデータの塊は、作業を行なうために必要な情報の実体と、その参照情報からなり、これを以下パケットと呼ぶ。
【0032】
担当者が指定された作業を終了すると、作業内容を反映させたパケットとともに、ワークフローシステムに対し、完了の合図を送る。この時、ステップの状態は「complete」となる。
【0033】
ワークフローシステムは各ステップが終了した時に、次に実行されるステップを決定し、当該ステップに対して、ルーティングを行なう。具体的には、当該ステップの状態を「ready」にすることによって、担当者に通知を送り、ワークフローを進行させる。
【0034】
[ルーティングの方法の概要]
上述したように、あるステップが終了すると次に実行されるステップがルーティング機能により決定される。この場合において、前述もしたように、当該終了したステップに対して、後続のステップが、分岐のように複数のステップがある場合には、そのうちのどれを開始するのか、あるいは全て開始しなければならないのかを決定しなければならない。この例においては、以下に説明するようにして、ワークフローの実行時に動的にしかも柔軟にルーティングが決定される。
【0035】
(1)担当者によるルーティングの指定方法
ルーティングの指定方法のひとつとして、この例では、ワークフロー中に分岐がある場合、分岐の手前のステップの担当者により、次のステップを指定させる方法を用いる。すなわち、この方法においては、ステップの担当者には、次ステップの候補が示され、担当者は、そのうちルーティングを行なわせたいステップを選ぶ。
【0036】
これを実現するために、この例においては、パケットにルーティング情報とよばれる情報のフィールドを追加する。ルーティング情報には、例えばそのステップの後続のステップの名前と真理値がペアになって含まれている。あるいは、ルーティング情報には、後続のアーク(例えばステップ1からステップ2のアークであればステップ1−2のように表現)と、その真理値のペアが記述される。
【0037】
真理値の値はシステムによって初期化されるが、ステップの担当者は、このルーティング情報の真理値を変更することができる。値が「真」であることはルーティングが行なわれることを意味し、値が「偽」であることはルーティングが行なわれないことを意味する。
【0038】
システムによって初期化された値は、担当者がルーティング情報を何も変更しなかった場合のデフォルトの値となる。担当者は送られてきたルーティング情報を参考に、目的を達成するために最も良いと判断されるように真理値を変える。具体的にはルーティングを行ないたいステップに対しては対応するルーティング情報の真理値を「真」にし、ルーティングを行ないたくないステップに対してはルーティング情報の対応する真理値を「偽」にする。これにより、ワークフローの実行中にルーティングをステップの担当ユーザの指示により柔軟かつ動的に決定することが可能となる。
【0039】
変更されたルーティング情報はパケットに含まれ、作業完了の合図とともに、ワークフローシステムに送り返される。システムはパケット中のルーティング情報を参照し、後続のステップに対応する真理値を調べ、「真」であるステップに対してはルーティングを行ない、「偽」であるステップに対しては、ルーティングを行なわない。
【0040】
(2)ワークフローシステムによるルーティングの指定方法
分岐の際のルーティングの決定は、場合によって担当者ではなく、ワークフローシステムによって自動的に行って欲しい場合もある。しかし、ワークフローシステムも何の情報もなしにルーティングは決定することはできない。そこで、この例では、前のステップの作業結果の情報を用いると共に、あらかじめ定義したルールなどの「約束事」を用いることによって、ワークフローシステムによるこの場合のルーティングの決定を実現する。この方法は、担当者に直接ルーティングは指定させたくないが、担当者が下した別の判断を材料にルーティングを決定する際に便利である。
【0041】
このワークフローシステムによるルーティングの指定方法の一つとしては、前述したルーティング情報フィールドを用いずにルーティングの決定を行なう方法がある。例えばルールのみを用いてルーティングを決定する方法である。すなわち、ルールなどの約束事の実行(評価)の結果、ルーティングを行なうと決定したときには、真理値として「真」を、ルーティングを行なわないと決定したときには、真理値として「偽」を、それぞれ評価結果として得る。そして、その評価結果を用いて、ワークフローシステムは、次の作業工程に対してルーティングを行なうか否かの決定をする。
【0042】
ワークフローシステムによるルーティングの指定方法の他の方法としては、ルールを用いてルーティング情報フィールドの内容を記述するようにする方法がある。この方法によれば、前述した担当者によるルーティングの決定方法と、このワークフローシステムによる自動のルーティングの決定方法とのいずれであっても、ルーティング情報フィールドの内容を参照することによりルーティングを決定することができるので、ルーティングの決定のためのソフトウエアを簡略化できる。
【0043】
[ルーティング決定方法の第1の例の説明]
以下に説明する第1の例は、ルーティング情報フィールドを用いて担当者が後続の作業工程に対してルーティングを行うか否かの指定を行えるようにすると共に、ルーティング情報フィールドを用いずにルールのみによりワークフローシステムがルーティングを決定することができるようにした例である。
【0044】
この第1の例の場合には、ワークフローの定義を行なう時に、定義者は、ワークフローシステムに自動的にルーティングを決めて欲しいステップに対してルールを記述する。実際的には、あるステップAの後が分岐であった場合、そのステップAの後続のすべてのアークに対してルールを記述する。
【0045】
例えば、あるステップAの担当者が出した見積りの金額によって、その次のステップを自動的に選ぶ場合の例を説明する。この場合、ルールとしては、例えば見積もり金額Sが所定の基準値Rより大きい場合には、後続の例えば2分岐のステップB、Cの内のステップBにのみルーティングを行ない、見積もり金額Sが所定の基準値Rより小さい場合には、後続の複数ステップの内のステップCにのみルーティングを行なうように定義したものを設定しておく。
【0046】
ステップAの担当者に渡すパケットには、担当者が見積もり金額を記述するための情報フィールドが追加される。担当者が終了の合図をワークフローシステムに送ってからワークフローシステムがルーティングの処理を開始するまでの間に、前述のように定義されたルールによって、パケットの情報中の見積もり金額Sが評価され、ルーティングが決定される。
【0047】
<機能ブロック図の説明>
図1は、この第1の例の場合の情報処理システムにおけるワークフローの流れの管理に関する部分の機能のブロック図である。
【0048】
テンプレート管理部11は、定義されたワークフローに関するデータを、記憶部11Mに記憶する。定義されたワークフローの仕事の流れは、前述したように、作業の単位であるステップと、各ステップ間をつなぐアーク(矢印)とからなるグラフ構造によって表現される。したがって、ワークフローに関するデータは、ワークフローがどのような複数のステップからなっているかを示すステップテーブルと、アークに関するデータであるステップの実行順序のテーブルとで構成することができる。
【0049】
また、前述したように、分岐のときのアークであって、当該分岐におけるルーティングをワークフローシステムによって決定させるときには、各アークに前述したようなルールが定義され、テンプレート管理部11の記憶部11Mに記憶される。
【0050】
ルーティング管理部12は、この場合、機能的には、ステップ状態管理部31と、ルーティング前処理部32と、ルーティング後処理部33と、ルール評価部34と、パケット管理部35とを備える。
【0051】
ルーティング前処理部32は、次ステップの担当者に渡すパケットにルーティング情報フィールドや見積もりなどのルーティングのために必要な付加情報フィールドを追加する処理を行なう。
【0052】
また、ルーティング後処理部33は、実際のルーティングの決定を行なう。ルーティング後処理部33は、分岐のときのようにルールがアークについていれば、そのルールの評価をルール評価部34に対して要求する。ルール評価部34は、テンプレート管理部11に記憶されているアーク毎のルールを実行してその評価結果をルーティング後処理部33に返す。
【0053】
ステップ状態管理部31が、テンプレート管理部11に登録されている定義されたワークフローの各ステップの状態を、前述の5種の状態により管理して、ワークフローの流れを管理する。このステップ状態管理部31は、定義されたワークフローの各ステップの状態データの記憶部31Mを備える。前述もしたように、初期時には、各ステップの状態は「not ready」となっている。
【0054】
ステップ状態管理部31は、ステップの状態が「not ready」から「ready」になるときに、ルーティング前処理部32に処理要求を出す。ワークフローの開始時においては、担当者によるワークフローの起動要求を受けたとき、最初のステップの状態が「not ready」から「ready」になる。また、ワークフローの実行中は、ステップ状態管理部31は、ルーティング後処理部33からの要求によって、ルーティングを行なうステップの状態を、「not ready」から「ready」にし、ルーティングを行なわないステップの状態を「isolate」にする。
【0055】
ステップが「not ready」から「ready」になるとき、ステップ状態管理部31は、通知管理部13に通知要求を出す。通知管理部13は、次ステップの担当者に対して通知を行なって担当者の作業の開始を促す。
【0056】
この通知に対して担当者が開始の合図をワークフローシステムに対して行なうと、この合図を通知管理部13が受け、ステップ状態管理部31にその旨を知らせる。ステップ状態管理部31は、これに応じてステップの状態を「ready」から「run」にする。
【0057】
そして、ステップ状態管理部31は、パケット管理部35にパケット送信要求を出して、このパケット管理部35より、担当者が作業を行なうために必要な情報をひとまとめにしたデータの塊であるパケットを担当者に対して送る。このパケットには、ルーティング前処理部32により付加されたルーティング情報や、その他のルーティングに必要な情報のフィールドが含まれている。
【0058】
パケットは参照情報管理部17により管理され、参照情報管理部17は、このパケットの記憶部17Mを有する。パケット管理部35は、参照情報管理部17に管理されている情報を用いて次にルーティングするパケットを形成する。また、ユーザから得たパケットを一時的に蓄え、そのルーティングに必要な情報フィールドのデータをルーティング後処理部33に送る。
【0059】
前述したように、ルーティング前処理部32は、パケット管理部35がパケットを担当者に送る前に、前述したルーティング情報や見積もりの情報などのフィールドを、当該担当者に送るパケットに追加する処理を行なう。
【0060】
担当者は、ワークフローシステムから配達されたパケットを元に作業を実行する。また、担当者は、パケットに追加された情報フィールドに、必要な情報、例えば後続のステップに関するルーティング情報の真理値や、ルール評価のための材料となる情報を記述する。
【0061】
指定された作業を終了すると、担当者は、適宜、必要な情報を記述したルーティング情報や作業結果の情報を含む、担当者の作業内容を反映させたパケットとともに、ワークフローシステムに対し、完了の合図を送る。このとき、ステップ状態管理部31は、当該ステップの状態を「run」から「complete」とする。
【0062】
ステップ状態管理部31は、ステップの状態が「run」から「complete」になるときに、ルーティング後処理部33に処理要求を出す。ルーティング後処理部33は、実際のルーティングの決定を行なう。すなわち、ルーティング情報が付加されていれば、それに基づいて次にルーティングを行なうステップを決定し、ステップ状態管理部31に通知する。また、当該ステップの後続のアークについてルールが定義されていれば、ルーティングのための情報中の前記ルール評価の材料となる情報フィールドの値をルール評価部34に送って、このルール評価部34に評価要求を出す。
【0063】
ルール評価部34は、テンプレート管理部11のワークフローデータ中のあらかじめ定義されたルールを用いて評価を実行し、その結果をルーティング後処理部33に送る。ルーティング後処理部33は、このルール評価部34からの評価結果に基づいてルーティングを行なうステップを決定し、ステップ状態管理部31に通知する。
【0064】
ステップ状態管理部31は、ルーティング後処理部33からの通知によりルーティングを行なうステップの状態を、「not ready」から「ready」にする。また、ルーティングを行なわないステップの状態を、「not ready」から「isolate」にする。以下、上述と同様の処理を繰り返して、ワークフローを進行させ、後続のステップがなくなるとワークフローの処理を終了する。
【0065】
<ルーティング前処理部32の動作の具体例>
図3は、前述したルーティング前処理部32で実行される処理ルーチンS0の一例を示すフローチャートである。
【0066】
ステップの状態が「not ready」から「ready」になると、ステップ状態管理部31から処理要求が到来して図3のルーティング前処理ルーチンS0が開始し、現在のステップ(「ready」の状態になったステップ)の後続アークのすべてを、ワークフローデータを参照して探す。また、その他の必要な情報フィールドを追加する(処理S1)。
【0067】
次に、そのステップに送るパケットに、後続アークの数だけルーティング情報フィールドを追加する(処理S2)。次に、前記後続アークの属性情報を調べ(処理S4)、ワークフローシステムにより設定されているデフォルトのルーティング情報があるか否か判別し(判断S5)、デフォルトのルーティング情報が存在すれば、そのルーティング情報で、前記追加したルーティング情報フィールドを初期化する(処理S6)。
【0068】
判断S5でデフォルトのルーティング情報がないと判断された場合、あるいは、処理S6の処理が終了した後には、ステップS3に進んで、前記後続のアークのすべてのアークについて処理S4〜S6の処理が終了したか否か判断し、終了していなければ、処理S4〜S6を繰り返し、すべてのアークについての処理が終了したときには、このルーティング前処理ルーチンは終了となる。
【0069】
<ルーティング後処理部33の動作の具体例>
図4は、前述したルーティング後処理部33で実行される処理の一例を示すフローチャートである。ステップの状態が「run」から「complete」になるときに、ステップ状態管理部31から処理要求が到来して図4のルーティング後処理ルーチンS10が開始する。
【0070】
まず、状態が「run」から「complete」になった現在のステップ(以下、このステップを現在ステップPSと称する)の後続のステップの処理は、終了しているか否か、つまり処理が終了していない後続ステップがあるか否か判断し(判断S11)、処理が終了していない後続のステップがなければこのルーチンS10を終了する。
【0071】
現在ステップPSに対して処理が終了していない後続のステップ(以下、このステップを後続ステップBSと称する)が存在する場合には、その後続ステップBSに至るアークにルールが定義されているか否か判断する(判断S12)。ルールが定義されていれば、ルール評価部34に対してルール評価処理の要求を出すと共に、現在ステップPSからのパケット中のルール評価のためのルーティング情報フィールドの情報を送って、ルール評価を実行させる(処理S13)。その後、判断S14に進む。
【0072】
そして、判断S14では、そのルール評価結果を受けて、その後続ステップBSにルーティングを行なうか否か判断する。また、判断S12でアークにルールが定義されていないと判断されたときには、そのまま判断S14に進んで、ルーティング情報フィールドのアークに関する真理値を参照して、その後続ステップBSにルーティングを行なうか否か判断する。
【0073】
判断S14で、ルーティングを行なうと判断したときには、判断S15に進み、ルーティングを行おうとする後続ステップBSにアークによってつながっている前ステップが複数あることを想定して、その前ステップはすべて終了となっているか否か判断する。この判断S15での前ステップの終了の判断は、前ステップが「complete」の状態になっているか、あるいは「isolate」の状態になっているかによって行なう。
【0074】
判断S15で、すべての前ステップが終了していると判断されたときには、当該後続ステップBSの状態を「not ready」から「ready」に変更する要求をステップ状態管理部31に出し、判断S11に戻って、現在ステップPSの他の後続ステップBSに関する上述の処理を行なう。
【0075】
また、判断S15において、ルーティングを行おうとする後続ステップBSの前記複数の前ステップのうちの一部が終了となっていないと判断されたときには、当該後続ステップBSの状態を「not ready」から「ready」にする要求は出さずに、この後続ステップBSに関してスタートフラグを立てる(処理S17)。そして、判断S11に戻って、前記現在ステップPSの他の後続ステップBSに関して上述の処理を行なう。
【0076】
また、判断S14において、後続ステップBSに対してルーティングを行なわないと判断された場合には、判断S18に進み、ルーティングを行なわない当該後続ステップBSの前ステップはすべて終了となっているか否か判断する。この判断S18での前ステップの終了の判断も、前述と同様に、前ステップが「complete」の状態になっているか、あるいは「isolate」の状態になっているかによって行なう。
【0077】
判断S18において、ルーティングを行なわない後続ステップBSの前の複数のステップのうちの一部が終了となっていないと判断されたときには、そのまま判断S11に戻って、前記現在ステップPSの他の後続ステップBSに関して上述の処理を行なう。
【0078】
また、判断S18において、ルーティングを行なわない後続ステップBSの前のステップがすべて終了であると判断されたときには、判断S19に進み、当該後続ステップBSにスタートフラグが立っているか否か判断する。スタートフラグが立っていれば、処理S16に進み、当該後続ステップBSの状態を「ready」とし、判断S11に戻る。
【0079】
すなわち、判断S19において、スタートフラグが立っている状態は、現在ステップからはルーティングを行なわない後続ステップBSに、現在ステップと異なる他のステップからのルーティングが行なわれることが決定されていて、そのルーティングが待ちの状態になっていることを示している。そして、当該後続ステップBSの前ステップはすべて終了であると判断S18で既に判断されているので、当該後続ステップへのルーティングが可能になる。このため、処理S16に進んで、「ready」の状態となる。
【0080】
また、判断S19において、スタートフラグが立っていないと判断されたときには、処理S20に進み、当該後続ステップBSの状態を「isolate」にする。次に、処理S21に進み、当該後続のステップBSの後続のステップに移行してそのステップに対して処理S18から処理S20までの処理を行なう。こうして、「isolate」の状態になったステップの後続のステップについて、処理S18から処理S20までの処理を再帰的に行なう。その後、判断S11に戻る。
【0081】
<第1の例が適用されたワークフローの具体例>
ワークフローの第1の具体例として、以下、図面作成処理のフローの場合の例について説明する。
【0082】
図5は、図面作成処理のフローの例を有向グラフにより現したものである。この例の図面作成処理のワークフローは、ステップ番号1のステップ(以下、ステップ1という)が「図面の作成」、ステップ番号2(以下、ステップ2という)と、ステップ番号3(以下、ステップ3という)とが「図面の検査」、ステップ番号4(以下、ステップ4という)が「図面の承認」の4つのステップからなり、ステップ1からステップ2またはステップ1からステップ3に分岐し、ステップ2およびステップ3からステップ4に合流するものとして定義されている。
【0083】
この例の場合、テンプレート管理部11で管理される、定義されたワークフロー(テンプレート)に関するデータは、図6に示すような、ワークフローがどのような複数のステップからなっているかを示すステップテーブルSTと、図7に示すような、ステップの実行順序の情報である実行順序テーブルOTとからなる。実行順序テーブルOTには、ステップ識別子としてのステップ番号を用いて前後のステップが記述されることによりアークが記述されることになる。なお、実行順序テーブルOTにおいて、ステップ番号「0」は、開始のステップ、ステップ番号「NULL」は、終了のステップを示している。
【0084】
この例の場合には、複数個のワークフローを同時に管理することを想定しているためステップテーブルSTと、実行順序テーブルOTには、ワークフロー識別子が付与されており、このワークフロー識別子により、いずれのワークフローであるかが一意に識別される。図の例のワークフロー識別子「1000」は、図面作成処理のワークフローを示している。
【0085】
この例の説明において、ステップ番号は各ステップの識別子となる。また、ステップ名は、各ステップで行なう作業内容を示す作業名である。担当者の欄には、各ステップの作業を実行するユーザ名が記述される。ユーザの代わりに、営業部門、設計部門などの担当部門が担当者として設定される場合や、図面作成者、検査者、承認者などの作業を実行する役割者名が記述される場合もある。担当ユーザ名の代わりに担当部門名や、役割者名が担当者の欄に記述される場合には、ユーザ管理部15で管理されている、個々のユーザと担当部門との対応や、個々のユーザと役割者名との対応に応じて実際に担当するユーザ名が決定される。
【0086】
前述したように、ワークフローを流れるデータを管理するために、パケットにワークフローを実行するための必要な様々な情報を含めて、各ステップから次ステップへと渡される。
【0087】
ワークフローにおけるパケットの流れと、その内容の変化と、パケットの情報フィールドを用いたルーティングの決定の仕方の例を、この例の図面作成のワークフローを用いて以下に説明する。
【0088】
(1)担当者によるルーティングの決定の場合
まず、ステップ1の担当者が、その後続のステップ2、3にどのようにルーティングするかを決定する場合について説明する。
【0089】
まず、起動者によってワークフローが起動される。起動する際に、起動者は、最初のステップの担当者宛てのメッセージがあれば、その通信文を書く。
【0090】
図8は、ステップ1が開始されるときに作成され、ステップ1の担当者に送られるパケットの内容の例であり、フィールド名と、そのフィールド値からなる。フィールド名「担当者」「作業名」「概要」の欄のフィールド値は、ワークフローを定義したときに定義されている値であり、ワークフローシステムがワークフローデータから転記する。
【0091】
フィールド名「コメント」の欄はワークフローを起動した者が、最初のステップの担当者宛ての通信欄として使用することができる。1回、ワークフローが起動されると、この「コメント」の欄は、前の担当者から次の担当者への連絡用に使われる。
【0092】
フィールド名「Date」「Current Step」の欄のフィールド値は、それぞれ当該パケットが送信された日付と、送信の宛先のステップ番号であり、ワークフローシステムが自動的に追加する。
【0093】
そして、ワークフローシステムは、起動者によるワークフローの起動を受けて、ステップ1の状態を「ready」にしたとき、前述したルーティング前処理を実行する。このルーティング前処理では、ステップ1の下流に、ステップ2とステップ3の二つのステップがあるため、ルーティングのための二つのフィールド「step−1−2」「step−1−3」を付加し、デフォルトのフィールド値として「真(図ではtrueと示した。以下同じ)」を挿入する。
【0094】
フィールド「step−1−2」は、ステップ1からステップ2へのアークを示し、フィールド「step−1−3」は、ステップ1からステップ3へのアークを示している。なお、前述もしたように、フィールド値の「真」は、ルーティングを行なうことを意味しており、「偽(図ではfalseと示す。以下同じ)」はルーティングを行なわないことを意味している。
【0095】
前述したように、ステップ1の状態が「ready」になった後、担当者から作業開始の合図が来ると、上述の図8のような内容の最初のパケットが、ステップ1の担当者に送られる。
【0096】
ステップ1の担当者は、受け取ったパケットの中身を見て、自分の仕事が図面作成であることを知り、図面作成の作業を行なう。作成した図面は、担当者がパケットに追加する。担当者は、また、必要に応じて次ステップの担当者に宛てたメッセージをパケットの「コメント」の欄に挿入する。
【0097】
また、ステップ1の担当者は、パケット内のルーティングの情報フィールドである二つのフィールド「step−1−2」「step−1−3」のフィールド値を書き換えることにより、後続の二つの検査のステップ2とステップ3に対するルーティングを決定することができる。この例では、デフォルトのフィールド値は、「真」であるので、フィールド値を書き換えることは、ルーティングを行なわないことを指示することに等しい。
【0098】
ステップ1の作業が終了したときのパケットの例を図9に示す。この図9のパケットでは、ステップ1の担当者によって、ステップ3にルーティングを行なわないように指示されている。
【0099】
なお、パケットの情報フィールドの欄の内、「担当者」や「Date」などのワークフローシステムが用いる欄は、担当者が勝手に変えることはできないように構成されている。
【0100】
ステップ1が終了すると、その終了の合図と共に、図9のパケットがワークフローシステムに返送されてくる。このパケットを受けると、ワークフローシステムは、前述したように、ルーティング後処理を開始する。
【0101】
すなわち、ワークフローシステムは、受け取ったパケットの中身を検査し、ルーティングの情報を用いて後続のステップに対するルーティングを行なうか否かの決定を行なう。この例の場合には、フィールド「step−1−2」の値が「真」であるので、ステップ2にはルーティングを行なう。しかし、フィールド「step−1−3」は「偽」であるので、ステップ3にはルーティングを行なわない。そして、ステップ2には、ルーティングを行なうので、その状態を「ready」にする。また、ステップ3には、ルーティングを行なわないので、その状態を「isolate」にする。
【0102】
そして、ルーティングを行なうステップ2にパケットを送るために、ワークフローシステムは、「担当者」「作業名」「概要」などのフィールドの値を入れ替え、また、ルーティング前処理を行って、フィールド「step−2−3」をパケットに付加し、そのフィールド値としてデフォルトの「真」を挿入し、そのパケットをステップ2の担当者に宛てて送る。ただし、このフィールド「step−2−3」のように、後続のステップが一つしかない場合には、そのデフォルトのフィールド値は、「担当者」や「Date」などの欄と同様に、担当者が勝手に書き換えることができないように構成されている。
【0103】
ステップ2の担当者は、受け取ったパケットの中身を見て、自分の仕事が図面検査であることを知り、図面検査の作業を行なう。検査後の図面は、担当者がパケットに戻す。担当者は、また、必要に応じて次ステップの担当者に宛てたメッセージをパケットの「コメント」の欄に挿入する。
【0104】
そして、ステップ2の作業が終了すると、終了の合図と共に、前記パケットがワークフローシステムに戻される。ワークフローシステムは、終了の合図によって、ステップ2の状態を「run」から「complete」にする。そして、ルーティング後処理を行ない、パケットのルーティング情報フィールド「step−2−3」の値が「真」であることから、ステップ4にルーティングを行なうことを決定するが、ステップ4には、前ステップとして、ステップ3の存在するので、ステップ2の状態だけでなく、ステップ3の状態をも参照する。このとき、ステップ3の状態は「isolate」になっているので、ステップ2の状態「complete」と合わせて、ステップ4の前ステップのすべてが終了したと判断して、前述と同様にしてステップ4にルーティングを実行する。
【0105】
(2)アークに付いたルールによるルーティングの決定の場合
この例の場合、ワークフローの定義時に、分岐のときのアークに対してルールを記述しておく。このルールの例を図10および図11に示す。図10は、ステップ1からステップ2へのアークに付いているルールの例であり、「ステップ1で計算された見積もり金額が10000円を越えた場合には、ステップ2にルーティングを行ない、ステップ3にはルーティングを行なわない、10000円以下の場合には、ステップ3にルーティングを行ない、ステップ2にはルーティングを行なわない」という内容である。
【0106】
また、図11は、ステップ1からステップ3へのアークに付いているルールの例であり、「ステップ1で計算された見積もり金額が10000円以下である場合には、ステップ2にルーティングを行ない、ステップ3にはルーティングを行なわない、10000円を越えた場合には、ステップ3にルーティングを行ない、ステップ2にはルーティングを行なわない」という内容である。
【0107】
この例の場合には、ステップ1にルーティングが行なわれるときに、ルーティング前処理により、そのステップ1の担当者に送られるパケットには、図12に示すように、ステップ1からステップ2へのアークおよびステップ1からステップ3へのアークに関するルーティング情報フィールド「step−1−2」「step−1−3」に加えて、「見積もり」のフィールドが追加される。
【0108】
ステップ1の担当者は、前述したようにして、図面作成の作業を行なうと共に、見積もり金額を計算し、その金額をパケットの「見積もり」のフィールドに、そのフィールド値として挿入する。例えば担当者は見積もり金額を「12000円」と決定した場合、その値「12000」をフィールド「見積もり」の値として挿入する。この場合のステップ1の終了時のパケットの例を図13に示す。
【0109】
ステップ1の担当者が作業を終了し、その合図をしたとき、図13のパケットがワークフローシステムに返送される。これを受けて、ワークフローシステムは、ルーティング後処理を開始する。この場合、ステップ1の後続のアークには、ルールが付いているので、パケットに追加されているルーティング情報の真理値を確認する代わりに、返送されてきた図13のパケットのフィールド「見積もり」の値を用いて、ステップ1に後続のアークに付いているルールをすべて評価し、その評価結果によりルーティングを決定する。
【0110】
前述したように、ルールの評価は、ルール評価部34で行なわれる。まず、ステップ1からステップ2へのアークに付いているルールが評価される。この例の場合には、パケットのフィールド「見積もり」の値が「12000」であるため、評価結果は「真」となる。したがって、ステップ2には、ルーティングが行なわれる。
【0111】
次に、同様にして、ステップ1からステップ3に向かうアークに付いているルールの評価が行なわれる。この例の場合には、パケットのフィールド「見積もり」の値が「12000」であるため、評価結果は「偽」となる。したがって、ステップ3には、ルーティングが行なわれない。
【0112】
以上のようにして、あらかじめアークに対して定義されたルールを用いることにより、前のステップの作業結果に応じて後のステップに対するルーティングをワークフローシステムが動的に決定することができる。この場合には、ルーティング情報フィールドを参照する必要はない。
【0113】
なお、以上の実施例では、ルールがアークに付いている場合に、パケットに含まれるルーティング情報フィールドに対してルールを優先としてルーティングを行なったが、ステップの担当者がルーティング情報フィールドの真理値を変更したときには、当該担当者により設定変更されたルーティング情報フィールドをルールに優先するようにしてもよい。
【0114】
[ルーティング決定方法の第2の例]
上述した第1の例においては、ワークフローシステムによるルーティングの指定方法はアークについて定義したルールを、ルーティング後処理において評価してルーティングを決定するようにしたが、第2の例においては、ステップの状態などについてルールを定義して、そのルールの評価結果として得られるルーティングに関する真理値を、システムがルーティング情報フィールドに書き込むようにする。
【0115】
この第2の例の場合には、ルーティング後処理においては、ルールの評価を行なう必要がないので、ルーティング後処理のルーチンは、図14のルーチンS100に示すように、図4のルーティング後処理のルーチンS10において、判断S12と、処理S13とを省略し、判断S11の判断結果が「NO」の場合には、判断S14に進むようにしたものとすることができ、ルーティング後処理のソフトウエアを簡略化できる。
【0116】
なお、第1の例においても、アークについて記述されているルールを、ルーティング後処理の前に必ず実行し、ルールの評価結果により、ルーティング情報フィールドの真理値を書き換えるようにしておくことにより、ルーティング後処理のソフトウエアを簡略化できる。
【0117】
[第2の例が適用されたワークフローの具体例]
第2の例が適用されたワークフローの具体例として、以下、設計変更処理のフローの場合の例について説明する。
【0118】
以下に説明するワークフローの実施例においては、ステップの状態について定義されたルールにより、ルーティングを決定するための情報の生成を行ない、後述する自動実行ステップによりルーティング情報フィールドに、ルーティングを行なうか否かを決定するための真理値を記入するようにしている。
【0119】
<自動実行ステップ>
この第2の例においては、ワークフロー中の作業の中には、人間よりも機械の方が向いている作業も存在することにかんがみ、特に担当ユーザを定めずに、自動的に作業の実行を行なうステップを創設する。以下、このタイプのステップを自動実行ステップと呼び、これと担当ユーザが実行するタイプの通常のステップとを区別する必要があるときは、担当ユーザが実行するステップを通常ステップと呼ぶことにする。
【0120】
自動実行ステップの作業は、この例ではワークフローシステム内で行なう作業として定義される。ワークフローシステムは、自動実行ステップの状態が「ready」になった時には通知を出さず、即座に「run」の状態へと移行させる。そして、予め定義された作業をワークフローシステム内で自動的に実行し、それが終了すると自動的に「complete」の状態として、次ステップに対するルーティングを行なう。
【0121】
なお、ワークフローシステム自身ではなく、ワークフローシステムの管理下にあるハードウエアに仕事をさせるようにしてもよい。
【0122】
人間が担当しない作業であっても、ワークフローシステム内ではない、あるいは、ワークフローシステムの管理下ではない他のシステムに作業の実行をさせるステップも考えられる。しかし、その場合には、当該ステップの作業を実行するシステムを担当者として、他のシステムを割り当てれば、通常ステップとして扱うことができる。すなわち、この場合、当該他のシステムは、ワークフローシステムから通知を受けると、即座に作業の開始の合図を送って作業を開始し、作業が終了すると終了の通知をワークフローシステムに送るように、ソフトウエアにより処理する。このようにすることにより、人間以外の機械を担当者として、ワークフローシステム外のネットワーク上に設定することもできる。
【0123】
<サブフロー>
また、この第2の例では、複雑で、規模の大きいワークフローを、より柔軟に、かつ、様々な局面に対応することができるようにするために、ワークフローを階層的に動作させることができるようにしている。
【0124】
すなわち、ワークフローを上位のメインフローと、その下位のサブフローとから構成する。サブフローは、メインフローの内の適宜の一つのステップに結び付いたものであって、その結び付いたステップの作業を細分化した複数のステップと、その複数のステップ間の前後のつながりをアークで定義したものである。サブフローが一つのステップに結び付いているということは、その結び付かれているステップは、サブフローが終了しないと終了できないことを意味している。
【0125】
サブフローは、一つのステップに対して、複数個、定義することもでき、その場合には、すべてのサブフローが終了しないと、それら複数のサブフローが結びついているステップは終了できない。
【0126】
この例の場合には、サブフローが結び付いているステップが「run」の状態になったときに、そのステップの担当者が、自分の作業をより詳細化し、その作業を実行するために相応しいと思われるサブフローを新たに定義して、起動する。サブフローの典型例をあらかじめ登録しておき、その中から起動するサブフローを、ステップの担当者が選ぶようにすることもできる。
【0127】
サブフローの各ステップは、すべて通常ステップで構成することもできるし、サブフローのすべてのステップを自動実行ステップで構成することもできる。また、サブフローの一部を自動実行ステップで構成することも、もちろんできる。
【0128】
また、サブフローをあらかじめ定義しておき、このサブフローが結び付いているステップが「ready」の状態になったら、自動的にサブフローを起動するようにすることもできる。その場合に、起動するサブフローは複数個あってもよい。また、当該複数個のサブフローのすべてを自動実行ステップで構成した場合には、一つのステップに対して自動で起動され、処理が自動で実行される複数の作業を容易に定義することが可能になる。
【0129】
このように、ステップの担当者がサブフローを定義して起動し、そのサブフローが終了しない限り、当該ステップが終了することができないようにすることにより、メインのワークフロー中には、当該サブフローが結び付いているステップの代わりに、そのサブフローの内容を詳細に定義する必要がなくなり、ワークフローの管理が容易になる。
【0130】
<設計変更プロセスと、そのワークフロー>
まず、この例の設計変更プロセスについて説明する。典型的な設計変更のプロセスは、例えば以下の手順のように行なわれる。
【0131】
1.設計変更の要求
2.要求の受け付け
3.変更のレビュー
4.実施の可否
5.設計変更
6.承認
7.配布。
【0132】
まず始めに設計変更の要求が上がる。これは必ずしも設計部門で起こるとは限らない。設計変更の詳細は文書化されて、設計部門の設計変更担当の窓口へと送られる。
【0133】
設計部門の窓口で設計変更の要求を受け取ると、その変更を実際に行なうかどうかを決定しなければならない。窓口では変更を行なうかどうかを判断するためのレビュワーを決定し、各レビュワーに対して、該当する図面と変更内容を伝え、実際に変更を行なうかどうかを決定して欲しい旨の依頼をする。
【0134】
各レビュワーは送られてきた図面と変更内容を吟味し、実際に変更を行なうかどうかを決定し、集計を行なう担当者に結果を報告する。集計を行なう担当者は各レビュワーから送られてきた結果を元に、実際に変更を行なうか行なわないかを決定する。通常は多数決もしくは全員一致により、変更が決定される。
【0135】
変更が行なわれないことが決定したら該当図面と変更要求内容を設計部門に送付し、実際の設計変更を依頼する。また、設計変更を行うことが決定したら該当図面と変更要求内容を設計部門に送付し、実際の設計変更を依頼する。
【0136】
設計部門では、該当図面と設計変更要求を受け取ると、設計変更を行なう担当者を決め、実際の設計変更を行なう。
【0137】
設計変更が終了すると、変更された図面と要求内容とともに、変更された内容などを記述した書面が添付され、設計部門長宛に送られる。設計部門長は送られてきた図面を承認する。承認を受けた図面は関係各部門に配布される。
【0138】
以上のような設計変更プロセスを定義したワークフローの例を図15を示す。各ステップの機能は以下のように、ワークフローの定義者により定義されている。
【0139】
「開始」のステップはワークフローの開始を表す。実際の業務と照らし合わせると、設計変更の要求を上げることに当たる。なお、「開始」のステップは、自動実行ステップの一種である。
【0140】
「要求受け付け」のステップは、設計変更を設計部門の窓口の担当者(事務局)が受け取ることを表す。ここで、受け付けられた設計変更の要求に対し、窓口の担当者は該当する図面を添付し、各レビュワーに配布する。
【0141】
「レビュー(1)」、「レビュー(2)」、「レビュー(3)」のステップは、それぞれ、設計部門において設計変更を行なうかどうかを判断するためのレビューを行なうステップである。ここでは各レビュワーは送られてきた図面と設計変更の要求を照らし合わせ、実際に設計変更を行なうか、行なわないかを、それぞれ決定する。
【0142】
「受理?」のステップは、各レビュワーの結論を集計し、実際に設計変更を行なうか行なわないかの決定を下す。この例では、この「受理?」のステップは、自動実行ステップで、ワークフローシステムが自動的に各レビュワーの結論を集計し、予め設定された規則にそって、設計変更要求を受理するかどうかを決定する。設計変更要求が受理された場合は「設計変更」のステップへと進む。受理されなかった場合は「要求却下」のステップへ進む。
【0143】
「要求却下」のステップは、設計変更要求が受理されなかった場合に事後処理を行なうステップである。
【0144】
「設計変更」のステップは、実際の設計変更を行なうステップであり、設計部門の担当者に送られる。実際の設計変更は、別のワークフロー、すなわち、サブフローを起動し、より詳細に作業を進めるようにしている。
【0145】
「承認」のステップは、設計変更された図面を承認するためのステップである。設計部門長が図面をチェックし、承認印を図面にいれる。
【0146】
「設計変更配布」のステップは、変更された図面を関係部門に配布するためのステップである。
【0147】
上述したワークフローの定義は、ワークフローシステムの編集機能により行われる。このワークフローの定義時の作業は大きく分けて、
▲1▼ステップの作成
▲2▼ステップの接続
▲3▼ルールの記述
の3つがある。各ステップの作成は各種属性、すなわち、ステップが通常ステップか、自動実行ステップかを表す「タイプ」、ステップの作業内容を示す「名前」、「担当者」(この例では、担当部門)のほか、ルールの設定も含む。この例における各ステップの初期属性値(定義時の属性値)を、図16から図26までに示す。
【0148】
各ステップを作成したら、流れにそって、前後のステップを接続していく。このステップの作成、接続の作業を繰り返すことによって、ワークフロー全体を作成する。
【0149】
必要に応じて、各ステップにはルールを記述する。ルールは、前述したようにアークについて定義することもできるし、また、ステップの各状態ごとに付けることもできる。
【0150】
この例では、「レビュー(1)」、「レビュー(2)」、「レビュー(3)」のステップの状態「run」のルールで、パケットに「投票($vote)」という名前のブール(boolean)型の変数「投票結果」(後述する図42参照)のフィールドを追加する。この「レビュー(1)」、「レビュー(2)」、「レビュー(3)」のステップの状態「run」のルールを図27に示す。各ステップ「レビュー(1)」、「レビュー(2)」、「レビュー(3)」の担当者は、その変数「投票結果」のフィールドの欄を埋める。
【0151】
ワークフローシステムは、各ステップ「レビュー(1)」、「レビュー(2)」、「レビュー(3)」の状態「complete」のルールでこれの集計を行なう。この「レビュー(1)」、「レビュー(2)」、「レビュー(3)」のステップの状態「complete」のルールを図28に示す。ワークフローシステムは、集計を行なった結果を元に、自動実行ステップである次のステップ「受理?」でルーティングを決定する。
【0152】
ステップ「受理?」で実行される内容は、図20において、属性「スクリプト」に示されている。図20の例の場合の「スクリプト」の内容は、「投票数が2以上のときには、ステップ「設計変更」にルーティングを行い、ステップ「要求却下」にはルーティングを行わず、投票数が2以上でなければ、ステップ「設計変更」にはルーティングを行わず、ステップ「要求却下」にルーティングを行なう」というものである。
【0153】
以上のようにしてワークフローの定義を終了したらワークフローの開始を宣言する。ワークフローの開始とは具体的には、定義したワークフローのワークフローシステムへの登録、登録されたワークフローの開始の2段階である。
【0154】
図29にワークフローの定義から起動までの起動者の処理の流れ図を示す。 まず、始めに、あらかじめ登録されている既存のワークフローを検索し(手順S21)、その中に、行おうとする業務に適応しているワークフローがあるか否か判断する(手順S22)。適応しているワークフローがあれば、そのワークフローが修正の必要があるか否か判断し(手順S23)、修正の必要があれば、その修正を行う(手順S24)。そして、修正が終了した後、あるいは、修正の必要がなければそのまま、ワークフローをワークフローシステムに登録する(手順S25)。
【0155】
また、手順S22で、あらかじめ登録されている既存のワークフローに、望みのワークフローがなかったときには、新しいワークフローを定義し(手順S26)、このワークフローをワークフローシステムに登録する(手順S25)。
【0156】
以上のようにしてワークフローシステムにワークフローが登録されると、ワークフローシステムは、自動的にワークフローの開始の作業に移る。まず始めに、必要な初期化を行ない、先頭のステップの作業を開始する。
【0157】
図30は、初期化の際のワークフローシステムの処理ルーチンS30の一例のフローチャートである。すなわち、まず、定義されたワークフローのすべてのステップの状態を、「not ready」に初期化する(処理S31)。次に、最初のステップを探し(処理S32)、その最初のステップの状態を「ready」にして、この処理ルーチンS30を終了する。
【0158】
こうして、ステップの状態が「not ready」から「ready」になるとき、ワークフローシステムは、状態「ready」時の処理ルーチンS40を実行する。図31に、この処理ルーチンS40の一例のフローチャートを示す。
【0159】
まず、「ready」の状態になったステップについて、「ready」においてのルールがあればそれを実行する(処理S41)。ルールの実行が済んだら、当該ステップは自動実行ステップか否か判断し(判断S42)、自動実行ステップでなく、通常ステップであれば、その担当者に対して、通知を送って(処理S43)、この処理ルーチン40を終了する。
【0160】
また、判断S42での判断の結果、自動実行ステップであると判断されたときには、処理S44に移って、通知をすることなくステップの状態を「run」にして、この処理ルーチン40を終了する。
【0161】
「ready」になったステップが通常ステップの場合には、前記通知に対して担当者が作業の開始を宣言するとステップは「run」の状態となる。自動実行ステップの場合には、前述のように、「ready」から即座に「run」の状態になる。ステップの状態が「run」になると、ワークフローシステムは、状態「run」時の処理ルーチンS50を実行する。図32は、この処理ルーチンS50の一例のフローチャートである。
【0162】
まず、担当者に送るパケットを作成する(処理S51)。そして、当該ステップに「run」状態についてのルールがあれば、それを実行する(処理S52)。ルールの実行が済んだら、当該ステップは自動実行ステップか否か判断し(判断S53)、自動実行ステップでなく、通常ステップであれば、その担当者に対して、パケットを送って(処理S54)、この処理ルーチン50を終了する。
【0163】
また、判断S53での判断の結果、自動実行ステップであると判断されたときには、処理S55に移って、パケットを送ることなくステップの状態を「complete」にして、この処理ルーチン50を終了する。
【0164】
ステップが通常ステップの場合には、担当者が終了を宣言すると「complete」状態になるが、サブフローが当該ステップで実行中は、担当者が終了宣言をしても、ステップの状態は「complete」にはならない。自動実行ステップの場合には、前述のように、自動実行の作業が終了すると、ワークフローシステム自身が「run」から「complete」の状態に移行させる。ステップの状態が「complete」になるとき、ワークフローシステムは、状態「complete」に関する処理ルーチンS60を実行する。図33は、この処理ルーチンS60の一例のフローチャートである。
【0165】
まず、サブフローが実行中か否か判断し(処理S61)、実行中であればこのルーチンS60をそのまま終了する。前述したように、サブフローが当該ステップで起動されているときには、当該ステップに結び付いているすべてのサブフローが終了しないと当該ステップは、終了できないからである。
【0166】
サブフローがすべて終了しているときには、処理S62に進んで、当該ステップの状態「complete」についてルールが定義されていればそのルールを実行する。ルールの実行が済んだら、当該ステップは自動実行ステップか否か判断し(判断S63)、自動実行ステップでなく、通常ステップであれば、前述したルーティング(ルーティング後処理およびルーティング前処理)を行い(処理S64)、この処理ルーチン60を終了する。
【0167】
また、判断S63での判断の結果、自動実行ステップであると判断されたときには、処理S65に移って、定義されているスクリプトを実行した後、処理S64に移行してルーティングを行った後、この処理ルーチンS60を終了する。以下、最後のステップの作業が終了するまで、以上と同様に繰り返す。
【0168】
次に、前述した設計変更のワークフローの例を用いてさらに詳細に説明する。
【0169】
<ワークフローの開始>
まず始めに、ワークフローの定義者がワークフローシステムに対して、定義したワークフローの登録を行なう。もしくはワークフローは予め定義されており、定義者とは異なる者によりワークフローが登録されることもある。
【0170】
この例では、予め定義されていたワークフローを用いて定義者とは異なる者がワークフローをワークフローシステムに登録したものとする。この登録した者は、実際的には設計変更の依頼を行なう人である。この設計変更の依頼者はワークフローの最初の担当者に対して、メッセージを送ることができる。この機能は通常の電子メールに類似の機能である。この例では、ワークフローの起動者は最初のステップの担当者(ここでは「要求受け付け」の担当者、すなわち事務局)に対して、
“部品Xの幅を1mm大きくして欲しいのですが。”
というメッセージを送ったものとする。
【0171】
登録が行なわれると、ワークフローシステムは初期化の作業を行なう。図16〜図26に示したように、定義されたばかりのステップは状態をもたないが、この初期化により、全てのステップの状態は「not ready」にされる(例えば図34参照)。
【0172】
ワークフローシステムの初期化が終了すると、先頭のステップが開始される。この例の場合、先頭のステップは「開始」である。「開始」のステップが開始されるということはすなわち、「開始」のステップが「ready」状態になるということである(図35)。
【0173】
ステップが「ready」状態になると、通常、ワークフローシステムはステップの担当者に通知を送る。しかし、「開始」は特殊なステップ(自動実行ステップの一種)であるために、通知は送られず、即座に「run」状態へと移行する。(図36)。
【0174】
自動実行ステップであれば、この「run」状態への移行により、定義時に指定された動作を行うのであるが、「開始」は開始を合図するための特殊なステップであるために、この定義がない。したがって、ここでは、何もせずに「complete」の状態へと移行する(図37)。
【0175】
ステップ「開始」の状態が「complete」になると、ワークフローシステムはルーティングを開始する。この場合、後続のステップは「要求受け付け」のみであるために、特別なことは行なわず、ステップ「要求受け付け」に対して、ルーティングが行なわれる。
【0176】
ステップ「要求受け付け」が「ready」状態になると、このステップの担当者に対して通知が送られる。担当者は、例えば電子メールを読むような感覚で通知を受け取る。この通知の例を図38に示す。
【0177】
この通知を受け取った担当者が開始の合図をワークフローシステムに対して送ると、ワークフローシステムからそのステップの作業を行なうために必要な情報などを織り込んだパケット(図39参照)が送り返される。このパケットには、後続の3つのステップ「レビュー(1)」「レビュー(2)」「レビュー(3)」へのルーティングを決定するためのルーティング情報が付加されている。
【0178】
担当者はパケットの中の情報を元に要求された作業を行なう。ステップ「要求受け付け」の作業は要求内容を確認し、設計変更を依頼された部品の図面を集め、設計部門のレビュー担当者に対して、レビューを依頼することである。この作業に関する記述は予めワークフローを定義した定義者によって定義されており、前記通知のなかの、図38の例では「Description:」フィールドに、作業内容として織り込まれている。通知には、この他に、ワークフローの起動者からのメッセージが、図38に示すように、「Comment:」フィールドに含まれている。
【0179】
「要求受け付け」の担当者は、「Description:」フィールドと、「Comment:」フィールドのふたつの記述を元に、必要な図面を集め、パケットに添付する。ここでは設計変更の要求は部品Xについてなので、担当者は部品Xの図面を探し出しパケットに加える。
【0180】
次にレビューを担当する担当者を決める。この例ではレビュー担当者は3人定義されている。通常は全員の投票によってレビューが行なわれるため、ステップ「要求受け付け」の担当者に送られるパケットに含まれているルーティング情報の各レビュワーに対応する真理値の値は、ワークフローシステムにより全て「真(true)」に初期化されている。
【0181】
今、例えばステップ「要求受け付け」の担当者が、特にレビュワーの変更の必要がないと判断した場合には、ルーティング情報の真理値は変更しない。このため、パケットのルーティング情報は、変更されずに、システムに送り返される。また、このとき、担当者は各レビュワーに送るコメントを記述し、パケットに含める。この例の場合の作業終了結果のパケットは図40に示すようなものとなる。
【0182】
ワークフローシステムは、このパケットを受け取ると、ルーティング情報をチェックする。この例では、ルーティング情報の中身は全て「真」であるため、全ての後続のステップに対してルーティングが行なわれる。
【0183】
「レビュー(1)」が「ready」状態になると「レビュー(1)」の担当者に対して、通知が送られる。この通知には「要求受け付け」の担当者が記入したコメントが書かれている(図41参照)。
【0184】
「レビュー(1)」の担当者は、この通知を読み、開始を宣言する。このとき、「レビュー(1)」のステップには、図27に例示したように、ルールが定義されているため、パケットを担当者に送信する前に、ワークフローシステムはそのルールを実行する。その結果、担当者に送られるパケットには、図42に示すように、投票用のフィールド「投票結果」が追加される。
【0185】
ルールの実行が終わると、ワークフローシステムより図42に示したパケットが送られる。このパケットの中には「要求受け付け」の担当者が追加した図面が含まれている。また、ステップ「レビュー(1)」の後ろにはひとつしかステップがないため、ルーティング情報は空になっている。すなわち、ステップ「レビュー(1)」の担当者はルーティングを指示することはできない。
【0186】
ステップ「レビュー(1)」の担当者は、ステップ「要求受け付け」の担当者からのコメントに従い、送られてきた図面と設計変更要求をチェックし、実際に設計変更を行なうべきか、行なわないべきかを決め、パケットの投票用のフィールド「投票結果」に自分の判断をyes/no形式で記入する。例えば、ステップ「レビュー(1)」の担当者が「yes」と投票し、所定のコメントを記述したとすると、パケットは、図43に示すようなものとなる。
【0187】
こうして作業が終了したステップ「レビュー(1)」の担当者は、自分の意見を含めたパケット(図43)とともに、作業の完了をワークフローシステムに通知する。この時、ステップ「レビュー(2)」とステップ「レビュー(3)」が、まだ終了していない場合には、ワークフローシステムは、ルーティング後処理において、次のステップ「受理?」について、スタートフラグを立てるだけで処理を終了する。
【0188】
また、このとき、ステップ「レビュー(1)」には、図28に例示したように、「complete」時のルールも定義されているため、これが実行される。実行された結果、「投票結果」のフィールドが「yes」であるため、「$vote」という変数がインクリメントされる。この結果「$vote」という変数の値は1となる。
【0189】
ステップ「レビュー(2)」の動作は、ステップ「レビュー(1)」と同様である。ただし、この例では、ステップ「レビュー(2)」の担当者は設計変更に非同意で、投票用のフィールド「投票結果」に「no」と記入し、コメントを付加したとする。このステップ「レビュー(2)」の終了時のパケットの例を図44に示す。
【0190】
作業が終了したステップ「レビュー(2)」の担当者は、自分の意見を含めたパケット(図44)とともに、作業の完了をワークフローシステムに通知する。ここで、未だ、ステップ「レビュー(3)」が終了していないとすると、ワークフローシステムは、図14に示したルーティング後処理の処理ルーチンS100において、「受理?」ステップのスタートフラグを立てる(実際にはすでに立っているが)だけで処理を終了する。
【0191】
また、ステップ「レビュー(2)」の「complete」時のルールが実行されるが、「投票結果」のフィールドが「no」であるため、変数「$vote」はインクリメントされず、その値は1のままである。
【0192】
ステップ「レビュー(3)」の動作も、ステップ「レビュー(1)」と同様である。ただし、この例では、ステップ「レビュー(3)」では担当者は設計変更に同意で、投票用のフィールド「投票結果」に「yes」を記入し、コメントを付加したものとする。
【0193】
作業が終了すると、ステップ「レビュー(3)」の担当者は、自分の意見を含めたパケットとともに、作業の完了をワークフローシステムに通知する。ここで、全てのレビューが終了したため、「受理?」ステップは作業を開始することが可能となる。すなわち、ワークフローシステムは、ルーティング後処理において、「受理?」ステップはスタートフラグが立っているため、状態「isolate」とはせずに、「ready」状態とする。
【0194】
また、ステップ「レビュー(3)」の「complete」時のルールが実行される。ここでは、「投票結果」のフィールド値が「yes」であったため、変数「$vote」はインクリメントされ、値は2となる。
【0195】
ステップ「受理?」は、この例では、自動実行ステップである。この例では、図20に例示したように、上流の3つのステップ「レビュー(1)」「レビュー(2)」「レビュー(3)」の投票結果を集計し、その結果によってルーティングを変更するためのスクリプトが予め定義してある。
【0196】
前述したように、ここで定義されているスクリプトは、上流の各レビュワーから返された投票結果を集計し、多数決を行なうもので、設計変更を行なうことに対し、「yes」が勝った場合は、ステップ「要求却下」にはルーティングを行なわずに、ステップ「設計変更」にルーティングを行ない、逆に「no」が勝った場合は、ステップ「要求却下」にルーティングを行ない、ステップ「設計変更」にルーティングを行なわないという内容である。
【0197】
具体的には、各レビュワーのステップの状態「complete」時に実行されたルールにより設定された変数「$vote」の値を参照し、2以上であればステップ「設計変更」に対するルーティング情報フィールドの真理値を「真」とし、ステップ「要求却下」に対するルーティング情報フィールドの真理値を「偽」とする。逆に、変数「$vote」の値が2未満の場合は、ステップ「設計変更」に対するルーティング情報フィールドの真理値を「偽」とし、ステップ「要求却下」に対するルーティング情報フィールドの真理値を「真」とする。
【0198】
この例の場合は、変数「$vote」の値は2であるために、ステップ「設計変更」に対するルーティング情報フィールドの真理値が「真」とされ、ステップ「要求却下」の真理値は「偽」とされる。
【0199】
スクリプトの実行が終了すると、ステップ「受理?」は、終了し、「complete」の状態になる。すると、図14に示したルーティング後処理のルーチンS100が実行され、ルーティング情報フィールドの真理値が参照されることにより、ステップ「受理?」のスクリプト通りのルーティング結果が得られる。すなわち、この例の場合には、ステップ「設計変更」は「ready」状態となり、ステップ「要求却下」は「isolate」状態となる。
【0200】
この例の場合、ステップ「設計変更」の担当者は自分の作業をより詳細化し、サブフローを起動する。すなわち、設計変更の担当者は要求されている設計変更を行なうためにもっともふさわしいと思われるワークフローを選び、または、新たに定義し、それを現在動いているワークフローのサブフローとして起動する。このサブフローが終了しない限り、「設計変更」ステップは終了することができない。
【0201】
このサブフローの例を図45に示す。この例のサブフローは、すべて通常ステップからなり、最初のステップは、設計変更のための「仕様作成」のステップであり、担当者は、設計リーダーである。次のステップは、実際に設計図を作成する「設計」のステップであり、担当者は設計者である。次のステップは、最後のステップであり、設計者の作成した設計図の検査する「検図」のステップである。
【0202】
このサブフローも、上述したワークフローと、まったく同様にして作業が行われてゆく。このサブフローの管理も、同じワークフローシステムで行ってもよいが、別のワークフローシステムにより、サブフローの実行管理を行わせるようにすることも、もちろんできる。サブフローの最後のステップが終了して、その最後のステップの担当者から作業終了の合図があったときに、これが結び付いているステップ「設計変更」を、担当者が終了として、ワークフローシステムにその通知をすることができる。なお、サブフローが複数個、ステップについて定義された場合には、すべてのサブフローが終了するまで、当該サブフローが結び付いているステップは作業を終了とすることができない。
【0203】
この例の場合には、ステップ「設計変更」の担当者は、自分が起動したサブフローが終了すると、サブフローにおいて実際に変更された図面をパケットに戻し、作業を終了する。
【0204】
ステップ「設計変更」の次のステップ「承認」では、変更された図面の承認を行なう。具体的には変更された図面に承認印を押す。
【0205】
次のステップ「設計変更配布」では、この実施例においては、「設計変更」と同様サブフローを起動する。こうすることにより、どのような配布形態をとるか柔軟に決定することができる。
【0206】
図46に、この例のステップ「設計変更配布」について定義されたサブフローの例を示す。この例のサブフローは、3つの自動実行ステップが、並行に実行されるワークフローである。自動実行ステップ「出図」は、例えばプリンタにより設計変更図面を印刷させて図面を出力させるものであり、自動実行ステップ「保管」は、設計変更図面をファイルに格納しておくものであり、自動実行ステップ「FAX」は、ファクシミリ装置によって、設計変更図面を所定の宛先に配送するものである。
【0207】
このように、あるステップで起動されるサブフローのすべてを、自動実行ステップで構成することによって、定型業務を大幅に改善することができる。
【0208】
この例のワークフローシステムは、これらの作業のためのハードウエアとしてのプリンタ、ファイリング装置、ファクシミリ装置を内蔵している。もっとも、LANなどのネットワークを通じて、それぞれのハードウエアに対してワークフローシステムより処理要求を出して、処理を行わせるようにすることも勿論できる。
【0209】
この場合、ステップ「設計変更配布」が「ready」状態になると、即座に「run」状態となり、図46のサブフローが起動されると、自動的に3つの自動実行ステップ「出図」「保管」「FAX」が開始して、それぞれの作業を自動的に行う。
【0210】
そして、すべての自動実行ステップの作業の終了を待って、ステップ「設計変更配布」の担当者「事務局」が終了の通知を出すと、このステップ「設計変更配布」の状態は「complete」になる。一方、ステップ「要求却下」は、前述したように、「isolate」になっているので、以上で、設計変更のワークフローは、終了する。
【0211】
なお、「受理?」のステップで、ステップ「設計変更」にはルーティングは行なわないと決定されたときには、ステップ「設計変更」の状態は、「isolate」の状態になり、かつ、図14のルーティング後処理のルーチンS100の処理S21として説明されているように、その後続のステップ「承認」、ステップ「設計変更配布」について、再帰的に「isolate」の状態に移行させる処理を行なう。
【0212】
したがって、ステップ「要求却下」の作業が終了して状態「complete」になったとき、ステップ「設計変更配布」の状態は、「isolate」になっているので、設計変更のワークフローは終了する。
【0213】
上述のように、この例の設計変更のワークフローにおいては、ステップ「要求受け付け」の担当者は、パケットに付加されているルーティング情報のフィールドの真理値を変更することができ、その変更により、その後続のステップ「レビュー(1)」「レビュー(2)」「レビュー(3)」のそれぞれに対してルーティングを行うか否かを決定することが可能である。ただし、上述の例では、ステップ「レビュー(1)」「レビュー(2)」「レビュー(3)」のすべてにルーティングを行うと担当者が決定したので、担当者によるルーティング情報の変更は行われず、デフォルトの真理値「真」はそのままとされた。
【0214】
また、この例の設計変更のワークフローにおいては、ステップ「受理?」を自動実行ステップで構成し、その作業内容をあらかじめ定義したスクリプトにより、ステップ「レビュー(1)」「レビュー(2)」「レビュー(3)」の担当者が、その状態「run」のルールで追加された投票用のフィールド「投票結果」に記入した投票結果を集計し、その結果によって下流のステップのルーティングを決定することができる。すなわち、前ステップの担当者が行った作業内容に基づいて演算を行うなどの比較的複雑なルーティングの決定が可能になる。
【0215】
また、「設計変更」のステップでは、担当者が自分の作業をより詳細化し、サブフローを起動して作業を実行するようにしたので、親のワークフロー中には、設計変更のプロセスを詳細に記述する必要がない。そして、担当者が起動するサブフローを定義することができるので、ワークフローの作業の流れを柔軟に設計することができる。
【0216】
さらに、上述の例のステップ「設計変更配布」のように、ステップをすべて自動実行ステップからなるサブフローで構成することにより、定型業務の作業負荷を大幅に改善することができる。
【0217】
また、前述もしたように、ルールは、各作業工程の状態や、自動実行ステップの処理内容(スクリプト)として定義されていて、各ステップの状態において実行されるので、第1の実施例の場合のように、ルーティング後処理においてルールを実行する必要がない。そして、図14に示したようなルーティング後処理の実行により、担当者によるルーティングの決定と、ワークフローシステムによるルーティングの決定とを、行なうことができる。
【0218】
なお、サブフローが結び付く親ワークフローのステップを自動実行ステップで構成し、その自動実行ステップで行う作業をソフトウエアで実行させると共に、そのソフトウエアによってサブフローを定義して、自動的にサブフローを起動させるようにすれば、親ワークフローの前記自動実行ステップにルーティングが行われたとき、サブフローが自動的に起動されてその作業が開始され、担当者がサブフローを起動する必要がない。
【0219】
なお、以上の例では、自動実行ステップでルーティング情報フィールドの真理値を書き換えて、後続のステップのルーティングを決定するようにしたが、ステップの状態が「ready」「run」「complete」になったときに実行されるルールによりパケットのルーティング情報フィールドの書き換えを行なうようにすることもできる。
【0220】
以上説明したように、第1の例のルーティング決定方法によれば、各作業工程に対して与える作業に必要な情報の塊の中に、その作業工程の後続の作業工程に作業を開始させるか否かを決定するための付加情報フィールドを追加し、この追加された付加情報フィールドの内容を用いて後続の作業工程に作業を開始させるか否かを決定するようにしたので、作業の分岐があったときに、分岐後のいずれの作業工程に仕事を開始させるかを容易に決定することができる。
【0221】
また、前記の後続の作業工程に作業を開始させるか否かを決定するために追加された付加情報フィールドには、作業工程の担当者が記入することができるので、後続の作業工程に仕事を開始させるか否かの決定に、作業担当者の要求を反映することができ、仕事の流れを作業担当者の要求に応じて柔軟に変更することができる。
【0222】
また、第2の例のルーティング決定方法によれば、作業工程について定義されたルールが実行されて、その結果により、前記付加情報フィールドに後続の作業工程に作業を実行させるか否かの情報が記述され、その付加情報フィールドの記述に従ってルーティングが決定されるので、情報処理システム自身が作業工程の作業結果を反映したルーティングの決定をすることができる。しかも、ルーティングのための付加情報フィールドの内容を参照するのは、担当者による場合も同じであり、ルーティングの決定のためのソフトウエアを簡略化することができる。
【0223】
また、上述の例によれば、あらかじめ定義された約束事などにより前の作業工程の処理結果の評価を行って、後続の作業工程に仕事を開始させるか否かを決定することが可能となり、作業工程における作業結果を、作業の流れ管理に反映させることができる。例えば作業工程で計算された見積もりに応じて後続の作業の流れを変更したりすることができる。この場合には、ルーティングのための特別の情報フィールドを参照する必要がない。
【0224】
また、上述の例によれば、分岐の作業工程があるときに、仕事が開始されなかった作業工程は、作業の流れから切り離されたことを示す切り離し状態として、その作業工程の終了状態を管理するようにしたので、分岐後の合流が支障なく、行なわれる。
【0225】
また、上述の例によれば、担当者を定めずに機械に作業を実行させる自動実行作業工程を定義し、この自動実行作業工程も、他の通常の担当者が定められる作業工程と同様に状態管理するようにしたので、この自動実行作業工程をワークフローの中に適宜挿入することができ、作業の効率化を計ることができる。
【0226】
【発明の効果】
以上説明したように、この発明によれば、各作業工程の担当者は、当該作業工程においてサブフローを定義して起動することができるので、作業の流れの定義時に各作業工程を詳細に定義する必要はない。また、サブフローを用いることにより、すべての作業工程を詳細に定義する場合に比べて、より柔軟に様々な局面に対して対応することが可能になる。
【図面の簡単な説明】
【図1】この発明による情報処理システムの一実施形態の要部の機能ブロック図である。
【図2】この発明による情報処理システムの一実施形態の概要を示すブロック図である。
【図3】この発明による情報処理システムの一実施形態における処理動作の例のフローチャートである。
【図4】この発明による情報処理システムの実施形態における処理動作の例のフローチャートである。
【図5】この発明による情報処理システムの実施形態が適用される作業の流れの例を示す図である。
【図6】図5の例の作業の流れを構成する各ステップに関するデータの例を示す図である。
【図7】図5の例の作業の流れを構成する各ステップのつながりを表すデータの例を示す図である。
【図8】図5の例のステップ1の担当者に送られるデータの塊の例を示す図である。
【図9】図5の例のステップ1の担当者からの作業結果のデータの塊の例を示す図である。
【図10】図5の例のステップ1からステップ2へのつながりについて定義されたルールの例を示す図である。
【図11】図5の例のステップ1からステップ3へのつながりについて定義されたルールの例を示す図である。
【図12】図5の例のステップ1の担当者に送られるデータの塊の他の例を示す図である。
【図13】図5の例のステップ1の担当者からの作業結果のデータの塊の他の例を示す図である。
【図14】この発明による情報処理システムの実施形態における処理動作の例のフローチャートである。
【図15】この発明による情報処理システムの実施形態が適用される作業の流れの例を示す図である。
【図16】図15の例のステップ「開始」の定義時の属性値の例を示す図である。
【図17】図15の例のステップ「要求受け付け」の定義時の属性値の例を示す図である。
【図18】図15の例のステップ「レビュー(1)」の定義時の属性値の例を示す図である。
【図19】図15の例のステップ「レビュー(2)」の定義時の属性値の例を示す図である。
【図20】図15の例のステップ「レビュー(3)」の定義時の属性値の例を示す図である。
【図21】図15の例のステップ「受理?」の定義時の属性値の例を示す図である。
【図22】図15の例のステップ「設計変更」の定義時の属性値の例を示す図である。
【図23】図15の例のステップ「承認」の定義時の属性値の例を示す図である。
【図24】図15の例のステップ「設計変更配布」の定義時の属性値の例を示す図である。
【図25】図15の例のステップ「要求却下」の定義時の属性値の例を示す図である。
【図26】図15の例のステップ「終了」の定義時の属性値の例を示す図である。
【図27】図15の例のステップ「レビュー(1)」の状態「run」のときのルールの例を示す図である。
【図28】図15の例のステップ「レビュー(1)」の状態「complete」のときのルールの例を示す図である。
【図29】この発明による情報処理システムの実施形態におけるワークフローの定義時の処理の流れの例を示すフローチャートである。
【図30】この発明による情報処理システムの実施形態におけるワークフローの初期化処理の流れの例を示すフローチャートである。
【図31】この発明による情報処理システムの実施形態において、ステップの状態が「ready」になったときの処理の流れの例を示すフローチャートである。
【図32】この発明による情報処理システムの実施形態において、ステップの状態が「run」になったときの処理の流れの例を示すフローチャートである。
【図33】この発明による情報処理システムの実施形態において、ステップの状態が「complete」になったときの処理の流れの例を示すフローチャートである。
【図34】図15の例のステップ「開始」の登録時の属性値の例を示す図である。
【図35】図15の例のステップ「開始」の開始時の属性値の例を示す図である。
【図36】図15の例のステップ「開始」の状態「run」時の属性値の例を示す図である。
【図37】図15の例のステップ「開始」の状態「complete」時の属性値の例を示す図である。
【図38】図15の例のステップ「要求受け付け」の担当者に対する通知の例を示す図である。
【図39】図15の例のステップ「要求受け付け」の開始の際に、担当者に対して与えられる情報の塊の例を示す図である。
【図40】図15の例のステップ「要求受け付け」の担当者から、その終了時に送られてくる情報の塊の例を示す図である。
【図41】図15の例のステップ「レビュー(1)」の担当者に対する通知の例を示す図である。
【図42】図15の例のステップ「レビュー(1)」の開始の際に、担当者に対して与えられる情報の塊の例を示す図である。
【図43】図15の例のステップ「レビュー(1)」の担当者から、その終了時に送られてくる情報の塊の例を示す図である。
【図44】図15の例のステップ「レビュー(2)」の担当者から、その終了時に送られてくる情報の塊の例を示す図である。
【図45】図15の例のステップ「設計変更」において起動されるサブフローの例を示す図である。
【図46】図15の例のステップ「設計変更配布」において起動されるサブフローの例を示す図である。
【図47】ワークフローの一例を示す図である。
【符号の説明】
10 ユーザインターフェース部
11 テンプレート管理部
12 ルーティング管理部
13 通知管理部
14 進捗情報管理部
15 ユーザ管理部
17 参照情報管理部
20 システム部
21 編集部
22 通知部
31 ステップ状態管理部
31M ステップ状態メモリ
32 ルーティング前処理部
33 ルーティング後処理部
34 ルール評価部

Claims (4)

  1. 順序立てて処理すべき作業複数個の作業工程に分けられ、その複数個の作業工程の順序と、各作業工程の処理内容とを記憶する記憶手段と、
    前記作業工程の開始通知および前記作業工程の終了通知を受け取る通知管理手段と、
    前記通知管理手段を通じた前記作業工程の開始通知および前記作業工程の終了通知と、前記記憶手段に記憶された前記複数個の作業工程の順序にしたがって次に開始させる次作業工程を決定するルーティング管理手段と、
    を備える情報処理システムにおいて、
    前記ルーティング管理手段は、
    前記次作業工程に、当該作業工程の作業を細分化した作業の単位と、その細分化した作業の単位の前後のつながりとからなるサブフローが結び付けられて定義されていると判断したときに、前記通知管理手段を通じた前記開始通知に基づき前記サブフローを起動するサブフロー起動手段と、
    前記サブフロー起動手段により起動されたサブフローが結び付けられて定義されている前記次作業工程の前記終了通知を前記通知管理手段を通じて受けたときに、前記サブフローが実行中であるか否かを判別し、実行中でなく終了していると判別したときに、前記次作業工程を決定する処理を行なうルーティング手段と、
    を備えることを特徴とする情報処理システム。
  2. 請求項1に記載の情報処理システムにおいて、
    前記ルーティング手段は、
    前記次作業工程に結び付けられて定義されている前記サブフローが複数個である場合には、前記複数のサブフローによる作業が全て完了したときに、前記次作業工程を決定する処理を行なう
    ことを特徴とする情報処理システム。
  3. 請求項1または請求項2に記載の情報処理システムにおいて、
    前記サブフローは、機械が作業を実行する自動実行ステップのみで構成されていることを特徴とする情報処理システム。
  4. 順序立てて処理すべき作業が複数個の作業工程に分けられ、その複数個の作業工程の順序と、各作業工程の処理内容とを記憶する記憶手段と、
    前記作業工程の開始通知および前記作業工程の終了通知を受け取る通知管理手段と、
    前記通知管理手段を通じた前記作業工程の開始通知および前記作業工程の終了通知と、前記記憶手段に記憶された前記複数個の作業工程の順序にしたがって次に開始させる次作業工程を決定するルーティング管理手段と、
    を備える情報処理システムによる作業の流れ管理方法において、
    前記ルーティング管理手段は、
    前記次作業工程に、当該次作業工程の作業を細分化した作業の単位と、その細分化した作業の単位の前後のつながりとからなるサブフローが結び付けられて定義されていると判断したときに、前記通知管理手段を通じた前記開始通知に基づき前記サブフローを起動するサブフロー起動工程と、
    前記サブフロー起動工程で起動されたサブフローが結び付けられて定義されている前記次作業工程の前記終了通知を前記通知管理手段を通じて受けたときに、前記サブフローが実行中であるか否かを判別し、実行中でなく終了していると判別したときに、前記次作業工程を決定する処理を行なうルーティング工程と、
    を備えることを特徴とする情報処理システムによる作業の流れ管理方法。
JP2002324635A 2002-11-08 2002-11-08 情報処理システムおよび情報処理システムによる作業の流れ管理方法 Expired - Lifetime JP3726903B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002324635A JP3726903B2 (ja) 2002-11-08 2002-11-08 情報処理システムおよび情報処理システムによる作業の流れ管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002324635A JP3726903B2 (ja) 2002-11-08 2002-11-08 情報処理システムおよび情報処理システムによる作業の流れ管理方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP13631494A Division JP3649345B2 (ja) 1994-05-26 1994-05-26 情報処理システム

Publications (2)

Publication Number Publication Date
JP2003203148A JP2003203148A (ja) 2003-07-18
JP3726903B2 true JP3726903B2 (ja) 2005-12-14

Family

ID=27655800

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002324635A Expired - Lifetime JP3726903B2 (ja) 2002-11-08 2002-11-08 情報処理システムおよび情報処理システムによる作業の流れ管理方法

Country Status (1)

Country Link
JP (1) JP3726903B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4434724B2 (ja) * 2003-12-26 2010-03-17 株式会社東芝 ワークフロー連携システム
JP4581404B2 (ja) * 2004-01-06 2010-11-17 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
JP4613600B2 (ja) * 2004-12-14 2011-01-19 富士ゼロックス株式会社 文書レビュー支援システム及び文書レビュー支援プログラム
JP2006215853A (ja) * 2005-02-04 2006-08-17 Ricoh Co Ltd ワークフロー支援システム
US8885812B2 (en) 2005-05-17 2014-11-11 Oracle International Corporation Dynamic customer satisfaction routing
US8583466B2 (en) * 2005-08-09 2013-11-12 Oracle International Corporation System and method for routing workflow items based on workflow templates in a call center
JP4839087B2 (ja) * 2006-01-11 2011-12-14 株式会社リコー ワークフロー管理システム
WO2010095418A1 (ja) * 2009-02-17 2010-08-26 国立大学法人大阪大学 設計ワークフロー構築装置、設計ワークフロー構築方法、設計システム、設計方法、設計ワークフロー構築プログラムおよびそれを記録したコンピュータ読み取り可能な記録媒体
JP5361470B2 (ja) 2009-03-16 2013-12-04 キヤノン株式会社 情報処理装置及びその制御方法
JP5482022B2 (ja) * 2009-08-26 2014-04-23 富士ゼロックス株式会社 作業状態判定プログラム及び作業状態判定装置
JP5501027B2 (ja) * 2010-02-22 2014-05-21 株式会社ジェイ・アイ・エム 管理システム、管理方法及び管理プログラム

Also Published As

Publication number Publication date
JP2003203148A (ja) 2003-07-18

Similar Documents

Publication Publication Date Title
JP3649345B2 (ja) 情報処理システム
US6799314B2 (en) Work flow management method and work flow management system of controlling a work flow
JP4020504B2 (ja) ワークフロー管理システム制御方法及びワークフロー管理システム
US20080046862A1 (en) Business task management
US7047177B1 (en) Thin client sizing tool for enterprise server farm solution configurator
EP0841627A2 (en) Task execution support system
US20010041999A1 (en) Method, process and system for optimized outcome driven workflow synthesis and reduction
JP2004062438A (ja) ワークフローシステム、ワークフローサーバ、ワークフローエンジン、ワークフロー処理集約方法、およびプログラム
JP2009532791A (ja) 顧客が設定可能なワークフローシステム
KR20060092816A (ko) 협력 애플리케이션에서의 워크플로우 연관화
JP3726903B2 (ja) 情報処理システムおよび情報処理システムによる作業の流れ管理方法
JP2001202408A (ja) 要素編成支援装置、要素編成支援方法及び記録媒体
CN115170048B (zh) 基于模型和规则的工作流实现方法、***和介质
JP5375627B2 (ja) 計算機システム、ワークフロー制御方法及びワークフロー制御プログラム
WO2022001355A1 (zh) 一种工作流程编排方法及装置
JP2001325413A (ja) コネクター志向ワークフロー管理システム及びワークフロー検出方法
US8719215B2 (en) Controlling the creation of process instances in workflow management systems
JP2015201103A (ja) 業務記述の管理プログラム、業務記述の管理方法、及び業務記述の管理装置
JP4997886B2 (ja) ワークフロー連携プログラムおよびワークフロー管理システム
JP5255796B2 (ja) 運用管理サポートシステム、プログラム
CN116308132A (zh) 一种基于工作流引擎的自动化办公方法和***
JPH1063751A (ja) ワークフローシステムおよびその作業分割方法
JP3225997B2 (ja) 情報処理システム
JP4055013B2 (ja) ワークフローシステムおよびワークフローシステムにおける作業分割方法
JP3225996B2 (ja) 情報処理システム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050413

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050610

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: 20050907

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050920

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20091007

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101007

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101007

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111007

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121007

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121007

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20131007

Year of fee payment: 8

EXPY Cancellation because of completion of term