JP2006120040A - ワークフローシステムおよびワークフロー連携方法およびプログラムおよび記録媒体 - Google Patents

ワークフローシステムおよびワークフロー連携方法およびプログラムおよび記録媒体 Download PDF

Info

Publication number
JP2006120040A
JP2006120040A JP2004309197A JP2004309197A JP2006120040A JP 2006120040 A JP2006120040 A JP 2006120040A JP 2004309197 A JP2004309197 A JP 2004309197A JP 2004309197 A JP2004309197 A JP 2004309197A JP 2006120040 A JP2006120040 A JP 2006120040A
Authority
JP
Japan
Prior art keywords
workflow
node
definition
cooperative
information
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.)
Pending
Application number
JP2004309197A
Other languages
English (en)
Inventor
Atsushi Matsuda
松田  淳
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.)
Canon IT Solutions Inc
Original Assignee
Canon Software Inc
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 Canon Software Inc filed Critical Canon Software Inc
Priority to JP2004309197A priority Critical patent/JP2006120040A/ja
Publication of JP2006120040A publication Critical patent/JP2006120040A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】既存ワークフローの定義を流用して連携ワークフローの定義を行うにあたり、ユーザは各既存ワークフローの入出力や、既存のワークフローの変更を意識することなく、容易に連携ワークフローを定義可能にすること。
【解決手段】ワークフロー制御部105が、システム1で稼動する第1のワークフローを構成するノードとシステム2で稼動する第2のワークフローを構成するノードとで定義される連携ワークフロー定義を連携ワークフロー定義DB111に格納しておき、連携ワークフローの起動要求に応じて、連携ワークフロー定義DB111で定義される各ノードに対応するノードの情報をプロセス定義DB108に記憶されるプロセス情報およびシステム2より取得し、該取得したノード間に各ノード間の帳票データの受け渡しを中継する仮想中継ノードを配置するように、連携ワークフローのプロセス情報を生成させて連携ワークフローの実行を制御する構成を特徴とする。
【選択図】図1

Description

本発明は、既存のワークフローの定義を再利用して連携ワークフローを構築し制御するワークフローシステムおよびワークフロー連携方法およびプログラムおよび記録媒体に関する。
企業等の組織において業務は1つの部門内や企業で完結するものでなく、複数の部門や企業の担当者が連携して作業を行い完結させるのが一般的となっている。そのため各作業者への作業の振り分けや作業者間での作業の受け渡しを広域に分散したロケーション間で行う必要がある。このやりとりを簡潔に行うため、各企業間や部門間に互いにデータのやりとりを行いながら業務処理を進める連携ワークフローが導入された。
連携ワークフローは、各企業や部門ごとに稼働している様々なワークフローの間でデータをやりとりし、業務処理を行うことができるワークフローであり、あたかも一つのワークフローで業務処理が行われているかのように使用することができる。
このように複数のワークフロー間でのデータのやりとりを行うことから、連携ワークフローの構築には既存のワークフローの定義を流用し、構築の作業を軽減したいという要求が生まれる。
しかし、従来の連携ワークフローの構築方法では、各部門(各企業)にある既存のワークフローの定義を連携ワークフローの構築に再利用できず、全ての定義を始めから行う必要があった。
この問題に対し、特許文献1(特開平10−302002号公報)の「統合ワークフロー定義・実行方法及びシステム及び統合ワークフロー定義・実行プログラムを格納した記憶媒体」では、異なるワークフローの定義からワークフローの一連の業務処理を構成する処理の単位であるノードを一元的に定義し、その定義から連携ワークフローで実行するノード定義部分をとりだして、実行可能な形式に変更し、実行することが提案されている。
これにより、連携ワークフロー用に新たな定義を作成することなく、既存のワークフローの定義を再利用して、連携ワークフローを構築することができるようになった。
特開平10−302002号公報
しかしながら、上記特許文献1に記載のワークフローシステムでは、既存のワークフローの定義に変更があった場合の対応について何ら考慮されていない。
上記特許文献1における連携ワークフローの定義方法は、複数の既存ワークフローから定義を集めて作成するため、連携ワークフロー内の1つの定義が複数の連携ワークフローで使用されていることが考えられる。
このとき、既存のワークフローの定義に、帳票項目の追加などの仕様変更が生じた場合、データの整合性を保つために、そのノード定義と帳票を使用して構築されている全ての連携ワークフローの構成や定義を見直す必要がある。
例えば、商品の発注を行うノードを複数の連携ワークフローが使用している環境で、ノードで処理される帳票に、ユーロ単価など新しい項目を追加した場合、このノードを使用して連携ワークフローを構成しているシステムでは、連携部分で、ノード間の帳票データの入出力が整合しなくなり、使用されている帳票の構成を全て見直す必要が生じてしまう。
このため、定義の流用によるワークフロー構築作業の負担軽減効果は、著しく低くなってしまうという問題があった(第1の問題点)。
また、業務によっては、帳票の値により次に進むべきノードを自動的に選択させたり、ワークフロー以外の外部システムとのやりとりをする処理を追加したい場合があるが、連携ワークフローに、このような処理の追加を行う場合、上記特許文献1では、既存のワークフローに処理を追加しなければならない。よって、連携ワークフローに、容易に処理の追加をすることができないという問題点があった(第2の問題点)。
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、サーバコンピュータと複数のクライアントコンピュータとが接続されて構成されるワークフローシステムであって、このワークフローシステムで稼動する第1のワークフローを構成する各ノードと該各ノードで実施される処理内容を定義したプロセス定義情報を記憶する記憶手段を有し、所定の通信媒体を介して他のワークフローシステムと接続可能なワークフローシステムにおいて、前記第1のワークフローを構成するノードと前記他のワークフローシステムで稼動する第2のワークフローを構成するノードとで定義される連携ワークフロー定義情報により、前記第1のワークフローと第2のワークフローの連携ワークフローを定義し、この連携ワークフローの起動要求に応じて、前記連携ワークフロー定義情報で定義される各ノードに対応するノードの情報を前記記憶手段に記憶されるプロセス情報および前記他のワークフローシステムより取得し、該取得したノード間に、前記各ノード間の帳票データの受け渡しを中継する仮想中継ノードを配置するように、前記連携ワークフローのプロセス情報を生成し、該生成されたプロセス情報に基づいて、前記連携ワークフローの実行を制御することにより、ユーザが意識的に定義することなく生成される仮想中継ノードにより、既存のワークフローの定義を流用して連携ワークフローの定義を行うにあたり、ユーザは各既存ワークフローの入出力や変更を意識することなく容易に連携ワークフローを定義でき、また、起票時に毎回連携ワークフローを再構築するため、既存のワークフローに仕様変更があった場合でも、連携ワークフローの定義の変更を行う必要が無いため、既存のワークフローの流用を効率よく行うことができ、さらに、帳票の種類や項目の値による分岐機能や帳票項目の演算などの処理機能を、既存のワークフローの定義を変更することなく連携ワークフローに追加できるため、柔軟な業務処理を構築できる連携ワークフローを実現することができるワークフローシステムおよびワークフロー連携方法およびプログラムおよび記録媒体を提供することである。
本発明は、サーバコンピュータと複数のクライアントコンピュータとが接続されて構成されるワークフローシステムであって、所定の通信媒体を介して他のワークフローシステムと接続可能なワークフローシステムにおいて、このワークフローシステムで稼動する第1のワークフローを構成する各ノードと該各ノードで実施される処理内容を定義したプロセス定義情報を記憶する記憶手段と、前記第1のワークフローを構成するノードと前記他のワークフローシステムで稼動する第2のワークフローを構成するノードとで定義される連携ワークフロー定義情報により、前記第1のワークフローと第2のワークフローの連携ワークフローを定義する定義手段と、前記連携ワークフロー定義情報で定義される各ノードに対応するノードの情報を前記記憶手段に記憶されるプロセス情報および前記他のワークフローシステムより取得し、該取得したノード間に、前記各ノード間の帳票データの受け渡しを中継する仮想中継ノードを配置するように、前記連携ワークフローのプロセス情報を生成し、該生成されたプロセス情報に基づいて、前記連携ワークフローの実行を制御する制御手段とを有することを特徴とする。
本発明によれば、サーバコンピュータと複数のクライアントコンピュータとが接続されて構成されるワークフローシステムであって、このワークフローシステムで稼動する第1のワークフローを構成する各ノードと該各ノードで実施される処理内容を定義したプロセス定義情報を記憶する記憶手段を有し、所定の通信媒体を介して他のワークフローシステムと接続可能なワークフローシステムにおいて、前記第1のワークフローを構成するノードと前記他のワークフローシステムで稼動する第2のワークフローを構成するノードとで定義される連携ワークフロー定義情報により、前記第1のワークフローと第2のワークフローの連携ワークフローを定義し、この連携ワークフローの起動要求に応じて、前記連携ワークフロー定義情報で定義される各ノードに対応するノードの情報を前記記憶手段に記憶されるプロセス情報および前記他のワークフローシステムより取得し、該取得したノード間に、前記各ノード間の帳票データの受け渡しを中継する仮想中継ノードを配置するように、前記連携ワークフローのプロセス情報を生成し、該生成されたプロセス情報に基づいて、前記連携ワークフローの実行を制御するので、ユーザが意識的に定義することなく生成される仮想中継ノードにより、既存ワークフローの定義を流用して連携ワークフローの定義を行うにあたり、ユーザは各既存ワークフローの入出力を意識することなく容易に連携ワークフローを定義できる。
また、起票時に毎回連携ワークフローを再構築するため、既存のワークフローに仕様変更があった場合でも、連携ワークフローの定義の変更を行う必要が無いため、既存のワークフローの流用を効率よく行うことができる。
さらに、帳票の種類や項目の値による分岐機能や帳票項目の演算などの処理機能を、既存のワークフローの定義を変更することなく連携ワークフローに追加できる等の効果を奏する。
まず、ワークフローとは、一つ以上のノードを組み合わせて業務処理を実行させるものであり、ノードをどのような順序で処理するかを定義したものを経路と呼び、ノードと経路を合わせた定義をワークフロープロセスと呼ぶ(単に、プロセスともいう)。
以下、図1,図2を参照して、本発明のワークフローシステムを適用可能なシステムの全体構成、及び、連携ワークフロー概念について説明する。
まず、システム構成について説明する。
図1は、本発明の一実施形態を示すワークフローシステムを適用可能なシステム全体の構成を示す図である。
図1に示すように、本発明のワークフローシステムを適用可能なシステムは、LANやWANやWWW等を単体もしくは複合されて構成されるネットワーク100を介して、既存の複数のワークフローシステム(図1に示した例では、システム1,システム2のみしか示していないが3つ以上のシステムであってもよい)が通信可能に接続されたものである。
本発明の連携ワークフローは、これら既存の複数のワークフローシステムであるシステム1,システム2を連携させて、新しい連携ワークフローを仮想的に構築するものである。
また、図1に示すように、システム1は、LANやWANやWWW等を単体もしくは複合されて構成されるネットワーク101に、ワークフロークライアント102や、ワークフローサーバ104として機能する複数のコンピュータを接続して構成されている。なお、各コンピュータのハードウェア構成については後述する図3に示す。
ワークフロークライアント102は、ユーザインタフェース103をもち、ユーザの指示によりワークフローにおける帳票(タスク)の起票(生成)や承認処理を行う。
ワークフローサーバ(単に、サーバともいう)104は、帳票の値を保管した帳票データDB107(図6),ワークフローのプロセスを保管したプロセス定義DB108(図8,図9),帳票の構成を定義した帳票定義DB109(図5),既存のワークフローのノード定義をノードブロックとして定義したノードブロック定義DB110(図12),連携ワークフローのプロセスを定義した連携ワークフロー定義DB111(図13)という情報を保持する。また、サーバ104は、ワークフロー制御部105,仮想中継ノード制御部106,連携ワークフロー制御部112という制御部を有している。
ワークフロー制御部105は、所謂ワークフローエンジンであり、ワークフロー全体を統制し、起票、タスクの処理、遷移などの制御を行う。連携ワークフロー制御部112は、連携ワークフローの起票が行われると、プロセス定義DB108,ノードブロック定義DB110,連携ワークフロー定義DB111、及びシステム2から必要なデータを取得し、各定義に基づいて、ノードを再構築して連携ワークフローを作成し、ワークフロー制御部105が実行可能な状態に変換する機能を有する。
仮想中継ノード制御部106は、ノードブロック定義DB110,連携ワークフロー定義DB111,帳票定義DB109の情報に基づいて、連携ワークフロー制御部112で再構築された連携ワークフローに含まれる仮想中継ノードの制御を行う。なお、仮想中継ノードとは、構築された連携ワークフローのノード間に自動的に配置されるものであり、各ノード間において、帳票項目マッピングを行う機能(異なるワークフローのノード間でやり取りするデータを変換する機能)と、帳票項目の値による経路の自動判定や演算機能等を有する。
なお、システム2は、システム1と同様の構成を有するものであり、システム1と同様に、ネットワーク201に、ワークフロークライアント202や、ワークフローサーバ204として機能する複数のコンピュータを接続して構成されている。しかし、システム2のワークフローサーバ204は、必ずしも、連携ワークフロー定義DB111,連携ワークフロー制御部112,仮想中継ノード制御部106を備えている必要はなく、該構成は、連携ワークフローの起票を行う側のシステムのみが備えていればよい。本実施形態では、一例として、システム1側で起票する連携ワークフローについて説明する。
図2は、図1に示したワークフローシステムの連携ワークフロー概念を示した模式図である。
図2に示すように、既存のワークフローとして、システム1とシステム2があり、この2つのシステムを連携させて新しい連携ワークフローを構築する。
システム1に存在するノード1701〜1703は、3つで1つの機能1708を実現しており、同じようにシステム2に存在するノード1706,1707も2つで1つの機能1709を実現している。
本発明のワークフローシステムでは、図1のように、ノードの情報をノードブロックとして仮想的に管理可能であり、図示すると1710のようになる。
1710に示す様にノードブロックの定義を組み合せることで、1711に示すような連携ワークフローを構築することができる。なお、ノードブロックのみでなく、2つのシステムのノードを組み合わせてワークフローを構築してもよい。
さらに、構築した連携ワークフロー1711の各ノード間には、1712〜1715に示すような仮想中継ノードと呼ばれる仮想中継ノード(WSP)が自動的に(ユーザに意識させることなく)付与される。
仮想中継ノード(WSP)は、異なるワークフローのノード間、この例では、ノードC(1703)とノード2(1706)の間で、データをやりとりする場合に、データを変換するデータ項目マッピング機能を有する。このデータ項目マッピング機能とは、図1に示した仮想中継ノード制御部106により実行される機能であり、各システムで回覧する伝票データの違いを、仮想中継ノードにて変換して他のシステムに渡す(中継する)機能である。
以下、図3参照して、図1に示したクライアント102,ワークフローサーバ104に適用可能なコンピュータの構成について説明する。
図3は、図1に示したクライアント102,サーバ104に適用可能なコンピュータの構成の一例を示すブロック図である。
図3において、2100はクライアント102,サーバ104に適用可能なコンピュータである。2101はCPUである。このCPU2101は、ROM2103又は外部記憶装置2104(例えば、ハードディスク,フレキシブルディスク,CD−ROM,DVD−ROM等どのような記憶装置であってもよい)に格納されたプログラムをRAM2102上にロードして実行することにより、コンピュータ2100全体を制御する。RAM2102は、CPU2101の作業領域として使用される。
2108は通信インタフェースで、ネットワーク101への接続を可能とする。2106は入力装置で、キーボードやマウス等のポインティングデバイス等に相当する。2107は表示装置で、CRT,LCD等で構成される。
以下、図1に示したシステムの各構成要素の実装について図3を用いて説明する。
まず、図1に示したユーザインタフェース103は、クライアント102のCPUが、外部記憶装置等に格納されたプログラムをRAM上にロードして実行することにより実装されるものであり、クライアント102のCPUは、サーバ104等から受け取った(、クライアント102で生成された、又は、外部記憶装置から読み出した)入力画面をクライアント102の表示装置に表示制御し、該入力画面へのクライアント102の入力装置を用いた入力制御を行う。
また、図1に示したワークフロー制御部105,仮想中継ノード制御部106,連携ワークフロー制御部112は、サーバ104のCPUが、外部記憶装置等に格納されたプログラムをRAM上にロードして実行することにより実装される。
さらに、図2に示した帳票データDB107,プロセス定義DB108,帳票定義DB109,ノードブロック定義DB110,連携ワークフロー定義DB111は、全て、サーバ104の外部記憶装置に構築される。
以下、図4を参照して、図1に示したシステムを機能的な視点から捉え、機能間のデータのやりとりを説明する。
図4は、図1に示したシステムを機能的な視点から捉え、機能間のデータのやりとりを説明するブロック図である。
まず、各DB107〜111の各種情報について説明する。
<帳票定義DB109>
帳票定義DB109は、ワークフロー上で使用される帳票の構成を定義したものである。帳票定義DB109をモデル化したものが図5である。
図5は、図2に示した帳票定義DB109のデータ構成を示すデータ構成図である。
図5において、701は、システム1の帳票定義DBに格納される既存のワークフローの帳票定義を示す。703は、システム2の帳票定義DBに格納される既存のワークフローの帳票定義を示す。
既存のワークフローの帳票定義701,703の行2は、システムIDを示し、システムIDは、プロセス定義DB108内のワークフロープロセスに紐付けられている。即ち、1つのワークフロープロセスに1つの帳票の組合せになる。
そして、帳票は、起票されると、ワークフロー制御部105により、この帳票定義DB109の項目に基づいて、帳票データDB107に新たなレコードとして生成される。
また、連携ワークフローの場合、既存の帳票を変換して使用する。既存のワークフローの帳票定義701,703から変換を行ったものが702であるが、既存のワークフローの帳票定義701,703からの変更箇所は、行2で、システムIDがルートIDに変更されている。このルートIDは、連携ワークフロー定義DB内の連携ワークフロー定義に紐付けされている。なお、連携ワークフローの帳票定義702は、帳票定義DB109に格納されるものではなく、クライアント102から既存のワークフローを連携した連携ワークフローを起票するための起票画面の要求があると、サーバ104は、対応する既存のワークフローの帳票定義701,703から変換し、この連携ワークフローの帳票定義702の項目で構成される帳票の起票画面をクライアント102に送る。そして、クライアント102から起票の指示と帳票データがサーバ104に送られると、サーバ104は、クライアント102から受け取ったデータを帳票データDB107に新たなレコードとして格納する。
<帳票データDB107>
帳票データDB107は、ユーザより起票された帳票に入力された値やワークフロー処理内容等を格納しておくためのDBである。
なお、既存のワークフローを組み合わせて構築された連携ワークフロー(再構築プロセス)を使用する帳票の場合、帳票データに、対象となる帳票に再構築プロセスを使用するという情報として、帳票データDBの列2にルートIDが付与される。この帳票データDB107をモデル化すると図6の様になる。
図6は、図2に示した帳票データDB107のデータ構成を示すデータ構成図であり、ここでは、特に図5に示した連携ワークフロー用の帳票定義702の項目に対応した帳票データを示している。
図6に示すように、帳票データDB107の列1は、帳票ごとに連番が割り当てられた帳票番号である。列2にルートIDが設定されていると、再構成プロセスを使用する帳票(連携ワークフロー用の帳票)に対応するものと判断され、連携ワークフロー定義DB111を、ルートIDで検索し、同一のルートIDが定義された情報(例えば、後述する図13に示す連携ワークフロー定義)を取得する。
列3〜列11は、帳票の項目を表しており、ユーザが帳票に値を入力するとこの項目に値が保存される。列12のステータスは、帳票の処理状態を表すものであり、ユーザが起票中であることを示す「起票」と承認を行っていることを示す「承認」と全てのプロセスを終了したことを示す「最終承認」がある。
図6に示した帳票データDBの情報を、帳票の形式で表すと図7に示すようになる。
図7は、本発明のワークフローシステムにおける帳票の一例を示す模式図であり、クライアント102のユーザインタフェース103によりクライアント102のモニタに表示される。
図7において、四角で囲まれた部分1401〜1404が入力欄であり、1405,1406に示す項目の「$為替」や「購入額」は、入力されたデータに基づいてシステムが算出し表示する項目である。
<プロセス定義DB108>
プロセス定義DB108は、ワークフローのノードや経路や表示条件を管理するための定義情報である。
システム2,システム1のプロセス定義DBに格納されるプロセス定義情報をそれぞれモデル化すると図8,図9のようになる。また、連携ワークフロープロセス定義情報をモデル化すると図10のようになる。さらに、システム2のプロセス定義情報(図7),システム1のプロセス定義情報(図9),連携ワークフロープロセス定義(図10)をそれぞれプロセスマップ化したものが図11(a),(c),(b)である。
図8は、図1に示したシステム2のプロセス定義DB108のデータ構成を示すデータ構成図である。
図9は、図1に示したシステム1のプロセス定義DBのデータ構成を示すデータ構成図である。
図10は、図2に示したサーバ104の外部記憶装置に一時的に記憶される連携ワークフロープロセス定義のデータ構成を示すデータ構成図であり、帳票の処理が全て終了すると、消去される。
図11は、図8に示したシステム2のプロセス定義,図9に示したシステム1のプロセス定義,図10に示した連携ワークフロープロセス定義をそれぞれプロセスマップ化した図である。
なお、図8,図11(c)は図5に701で示したシステム2の帳票に対応し、図9,図11(a)は図5に703で示したシステム1の帳票に対応し、図10,図11(b)は図5に702で示した連携ワークフローシステムの帳票に対応する。
まず、図8〜図10において、列1はプロセスを識別するシステムIDで、列2はプロセスに含まれるノードの識別IDである。列3の経路はプロセス上で分岐があるときに記述される。列4,列5はノードで行う処理の内容を記述したものである。
また、ワークフローの処理は、列6の処理順位の通りに行われる。なお、処理順位が同じものは並列して処理されることを示す。さらに、列7のルートIDは、定義されているプロセスが連携ワークフローの時に設定され、連携ワークフローのプロセス取得のために使用される。列8の「WSP−ID」は、仮想中継ノードごとにユニークに割り当てられた識別IDである。
列9以降の項目は、そのプロセスで使用される帳票の表示項目を表している。表示項目はノードごとに画面に表示するか、しないかの定義がなされている。これら列9以降の項目に「1」が設定されているものは表示する項目であることを示し、「0」が設定されているものは非表示とする項目であることを示す。
また、図11(c)のノード1203,ノード1204のように分岐しているものは、図11(c)に対応する図8の行3〜5で定義されているように、ノード別に定義され行5の列3でどのノードをまとめるかを定義している。
なお、図10,図11(b)に示した連携ワークフローのプロセス定義は、図8,図9に示した既存のプロセス定義および後述する図13に示す連携ワークフロー定義DB111に基づいて、連携ワークフロー制御部112により生成される。この生成方法については後述する。
<ノードブロック定義DB110>
ノードブロック定義DB110は、プロセス内に含まれるノードをノードブロックとして定義したものである。
例えば、A,B,C,D,Eというノードで構成されたプロセス(例えば、経理の処理)があった場合、C,D,Eがそれぞれ係長承認,課長承認,部長承認だとすると、それらのノードをまとめて「経理承認」といった名前を付けて定義しておくことができる。この定義を利用すると複数のノードを使用する処理を連携ワークフローで実行させようとした場合の定義が容易になる。このノードブロック定義を格納するノードブロック定義DB110をモデル化したものが図12である。
図12は、図2に示したノードブロック定義DB110のデータ構成を示すデータ構成図である。
図12に示すように、ノードブロック定義DB110の列1は機能名を示しており、複数のノードをまとめて扱うためのキーとなる。列2,列3,列4はノードの情報を示している。
<連携ワークフロー定義DB111>
連携ワークフロー定義DB111は、連携ワークフローの構成の定義をしたものである。この連携ワークフロー定義DB111をモデル化すると図13の様になる。
図13は、図2に示した連携ワークフロー定義DB111のデータ構成を示すデータ構成図である。
この連携ワークフロー定義DB111は、帳票定義DB109のルートID(図5に示した連携ワークフローの帳票定義702の行2)に関連付けられ、図13に示すように、連携ワークフロー定義DB111の列1は、ルートIDを示す。
列2,列3は、プロセスの再構築時に定義を流用するシステムの情報を示し、列5は、ステップの順番を示す。
なお。列3に「仮想中継ノード」と定義されているものは、仮想中継ノードに付加機能をつけることを意味し、列4にその付加機能が定義されている。また、列3に「機能」と定義されているものは、ノード情報をノードブロック定義DB110から取り込むことを示している。また、列5は連携ワークフローでの処理の順番を示す。
以下、図10に示した連携ワークフロープロセス定義情報の生成方法の概要について説明する。
クライアント102から起票の処理が行われると、サーバ104において、ワークフロー制御部105が既存のワークフローか連携ワークフローか判断し、連携ワークフローの場合、連携ワークフロー制御部112が、連携ワークフロー定義DB111,ノードブロック定義DB110を読み込み(他のシステムのノードブロック定義DBについては他のシステムに要求して取得し)、図13に示した連携ワークフロー定義DB111の列3ノードIDに設定されているノードの情報をプロセス定義DB108から読み取り(他のシステムのプロセス定義DBについては他のシステムに要求して取得し)、連携ワークフロー制御部112が、連携ワークフロー定義DBに定義されている順番で連携ワークフローのワークフロープロセスを再構築する。
同時に、連携ワークフロー制御部112は、再構築した連携ワークフローのノード間に、ノード間の入出力のデータを互換するための仮想中継ノード(図11(b)の各WSP)を設置する。また、分岐処理など新規に作られた処理機能(連携ワークフロー定義DB111の列4の付加機能に記載されている)を仮想中継ノードに機能追加する。
そして、連携ワークフロー制御部112は、再構成されたプロセス(連携ワークフローのワークフロープロセス)を実行可能な状態に変換し(RAM上に読み出し)、ワークフロー制御部105が、該プロセスを実行する。
以下、各制御動作について詳細に説明する。
<ユーザが入力した帳票データの受け取り動作>
ユーザインタフェース103は、ユーザからの処理要求をワークフロー制御部105に送信し、該処理要求をワークフロー制御部105が受け付ける。該処理要求が起票の場合、起票をするノードからのデータ入力を受け付ける。ワークフロー制御部105は、入力された帳票の情報を帳票データDB107に書き込む。
<ワークフロープロセスの管理と再構築動作>
連携ワークフロー制御部112は、連携された既存のワークフローのプロセスを定義したプロセス定義DB108に基づいて連携ワークフローを制御している。
連携ワークフロー制御部112は、新規構築される連携ワークフローの構成を定義している連携ワークフロー定義DB111を読み込み、プロセス定義DB108から既存のプロセスから必要なノードの情報を抜き出し(他のプロセス定義DBについては他のシステムに要求して取得し)、再構築して実行可能なワークフローに変換する機能を持つ。
また、連携ワークフロー制御部112は、上記の再構築したワークフローのノード間に、仮想中継ノードを自動的に配置する機能を有している。仮想中継ノードは、各ノードの入出力情報をプロセス定義DB108から受け取り、前後のノード間でやりとりをする帳票の項目のマッピングを行うものである。なお、仮想中継ノードには、帳票の項目の値による経路の自動判定や項目の演算処理を行う機能を追加することができる。この仮想中継ノードの機能制御は、仮想中継ノード制御部106が行う。
<仮想中継ノードの制御と管理の流れ>
仮想中継ノード制御部106は、仮想中継ノードに関する制御を行う。仮想中継ノード制御部106は、連携ワークフロー制御部112やワークフロー制御部105からの指示により、連携ワークフロー定義DB111から連携ワークフローの構成情報を取得し、ノード間に自動的に配置されている仮想中継ノードに帳票項目マッピング機能を追加する。マッピング機能に関しては、後述する図19に示す。
また、仮想中継ノード制御部106は、連携ワークフロー定義DB111の定義より仮想中継ノードに追加された機能(外部システムとの送受信機能(データのやりとり)やプロセスの分岐機能、帳票のデータの演算機能など)を実行制御する。
なお、外部システムとのデータのやりとりは、本実施形態ではXMLを利用して行っている。Webサービス用のXMLの記述例を図14に示す。なお、本発明は、XML以外にもCSVなど様々な形式で外部システムとのデータのやりとりに対応しており、この形式に限定されるものではない。
図14は、本発明のワークフローシステムにおける外部システムとのデータ送受信機能の一例を示すXMLデータの構成を示す模式図である。
なお、このXMLデータは、対応する仮想中継ノードに紐付けられてサーバ104の外部記憶装置に格納されているものとする。
<ワークフローの進行管理>
ワークフロー制御部105は、プロセス定義DB108や連携ワークフロー定義DB111を参照しタスクが次に進むべきノードを検索し、タスクの遷移を行う。プロセスが既存のプロセスを組み合わせて構築された連携ワークフローであった場合、ワークフロー制御部105は、連携ワークフロー制御部112により再構成された連携ワークフローの定義と仮想中継ノードの処理定義(図10示した連携ワークフロープロセス定義)を受け取り、ワークフローの処理を実行する。
以下、図15,図16を参照して、本発明のワークフローシステムのワークフロープロセス全体の流れを説明する。
図15は、本発明のワークフローシステムにおける帳票選択画面の一例を示す模式図であり、クライアント102のユーザインタフェース103によりクライアント102のモニタに表示される。
本実施形態では、クライアント102のモニタに表示される図15に示すような画面からユーザが処理したい帳票を選択する。
帳票は、連携ワークフローを使用した帳票と使用しない帳票を起票する処理と、既に起票された帳票に対し承認などの処理を行う承認処理がある。
図15において、2001は起票処理を行う場合に、起票する帳票の種類を選択するための起票処理選択欄である。2002は起票された帳票に対して承認処理等を行う場合に、処理を選択するための承認処理選択欄である。
以下、図16のフローチャートを用いて起票処理を行う場合について説明する。
図16は、本発明のワークフローシステムにおける第1の制御処理の一例を示すフローチャートである。なお、図中、S1901〜S1910はサーバ104側のステップに対応し、サーバ104のCPUが外部記憶装置等に格納されるプログラムをRAM上にロードして実行することにより実現される。なお、このフローチャートの実行前に、図13に示した連携ワークフロー定義DB111の情報が作成され、連携ワークフロー定義DB111に格納されているものとする。
まず、ステップS1901において、ワークフロー制御部105(サーバ104のCPUにより実行されるワークフロー制御部)は、ユーザインタフェース103(クライアント102のCPUにより実行されるユーザインタフェース103)で起票処理として入力された帳票データを、ユーザインタフェース103から受け取り、ステップS1902において、ワークフロー制御部105は、ユーザインタフェース103から受け取った帳票データにルートIDが定義されているか否かを判定する。
ステップS1902で、ワークフロー制御部105が、ユーザインタフェース103から受け取った帳票データ内にルートIDが定義されていないと判定した場合には、ステップS1903において、ユーザインタフェース103から受け取った帳票データに定義されているシステムIDに基づいて、プロセス定義DB108の情報(図9に示したプロセス定義情報)を読み込み、ステップS1905に処理を進める。
一方、ステップS1902で、ワークフロー制御部105が、ユーザインタフェース103から受け取った帳票データ内にルートIDが定義されていると判定した場合には、ステップS1904において、ワークフロー制御部105は、連携ワークフロー生成処理(後述する図17に示す)を連携ワークフロー制御部112に実行させ、ステップS1905に処理を進める。
次に、ステップS1905において、ワークフロー制御部105は、ステップS1903で取得したプロセス定義情報(図9)、又は、ステップS1904で生成した連携ワークフロープロセス定義情報(図10)内の帳票項目の表示項目の情報(列9以降)を読み込む。これによりユーザが操作する画面に帳票のどの項目を表示するかを制御する。なお、連携ワークフローの場合、異なるワークフローの帳票データが入り交じるため、画面表示制御により不必要なデータを表示しないための機能となる。また、カレントのノードの列8のWSP−IDに仮想中継ノードIDが格納されているノード(即ち仮想中継ノード)の場合には、ワークフロー制御部105は、ユーザインタフェース103への画面表示は行わないように制御する。
次に、ステップS1906において、ワークフロー制御部105は、ステップS1903で取得したプロセス定義情報(図9)、又は、ステップS1904で生成した連携ワークフロープロセス定義情報(図10)の処理内容の定義をもとにワークフローの処理を行う。なお、カレントのノードが仮想中継ノードの場合には、仮想中継ノード制御部106に仮想中継ノードの制御処理を実行させる。
そして、ステップS1906の処理が終了したら、ステップS1907において、ワークフロー制御部105は、処理内容を帳票データDB107に反映する。なお、連携ワークフローで且つカレントのノードが既存のワークフローのノードの場合には、処理内容のデータをサーバ104の外部記憶装置内に格納しておく。そして、この外部記憶装置内に格納されたデータは、次の仮想中継ノードに処理が移ったときに、該仮想中継ノード内で読み出され、その次のノードの項目に対応して変換されて、該その次のノードに渡されることとなる。また、連携ワークフローで且つカレントの仮想中継ノードの場合には、処理内容のデータを複数のワークフローの項目を統合する構成(図5の702)で、帳票データDB107に反映する。
次に、ステップS1908において、ワークフロー制御部105は、次の処理順位を、ステップS1903で取得したプロセス定義情報(図9)、又は、ステップS1904で生成した連携ワークフローのプロセス定義情報(図10)から検索し情報(列6)を読み込む。
次に、ステップS1909において、ワークフロー制御部105は、現在の処理が最終処理であるか否かを、ステップS1908で取得した処理順位の情報により判定し、最終処理でない(まだ、次の処理順位の情報があった)と判定した場合には、ステップS1910において、次のノードへの移行処理を行い、ステップS1905の処理に戻り、再び帳票の処理を行う。なお、次のノードが、他のシステム(システム2)に属する場合には、他のシステムに対して、データを渡して次のノードの処理を依頼し、他のシステムからの終了通知とデータの返信を待機する。
一方、ステップS1909において、ワークフロー制御部105はが、現在の処理が最終処理である(次の処理順位の情報がなかった)と判定した場合には、そのまま処理を終了する。
<連携ワークフローの生成>
以下、図17,図18を参照して、図16のステップS1904の連携ワークフロー生成処理について説明する。
図17は、本発明のワークフローシステムにおける第2の制御処理の一例を示すフローチャートであり、連携ワークフロー生成処理に対応する。なお、図中、S401〜S403はサーバ104側のステップに対応し、サーバ104のCPUが外部記憶装置等に格納されるプログラムをRAM上にロードして実行することにより実現される。
まず、ステップS401において、連携ワークフロー制御部112(サーバ104のCPUにより実行される連携ワークフロー制御部112)は、図16のステップS1901でクライアント102から受け取った帳票データ内のルートIDをキーに、連携ワークフローの構成を定義した連携ワークフロー定義DB111(図13)を検索し、連携ワークフローの構成情報を取得し、取得した情報をもとに連携ワークフローを構築し(プロセス定義DB108,ノードブロック定義DB110から取得した(他のシステムに属するプロセス定義,ノードブロック定義は他のシステムに要求して取得した)ノードの情報を、連携ワークフロー定義DB111の順序(列5)通りに並べた連携ワークフロープロセス定義を生成し)、サーバ104のRAM内に保持する。即ち、この連携ワークフロープロセス定義の情報には、まだ仮想中継ノードは含まれない。
次に、ステップS402において、連携ワークフロー制御部112は、ステップS401で構築した連携ワークフローのノード間に、仮想中継ノードを配置するため、仮想中継ノード生成処理(後述する図18に示す)を行い、連携ワークフローのプロセス定義情報(図10)を生成し、サーバ104の外部記憶装置に格納する。
そして、ステップS403において、連携ワークフロー制御部112は、ステップS402で生成した連携ワークフローを実行可能な形式に変換して(サーバ104の外部記憶装置から連携ワークフロープロセス定義を読み出し、ワークフロー制御部105で実行可能なようにサーバ104のRAM内に保持させる)、処理を終了する。
<仮想中継ノードの生成処理>
本発明における仮想中継ノードは、本発明の連携ワークフローに含まれるノード間の帳票項目マッピング機能を有している。仮想中継ノードは、連携ワークフローが生成される過程でノード間に自動的に配置される(ユーザが意図的に配置することなくサーバ104により配置される)。
また、仮想中継ノードには、帳票の種類や項目の値によって次に進むノードを自動的に選択する経路判定機能や、項目の値を演算する演算機能や、Webサービスとやりとりを可能とする機能などを付加することができる。
以下、図18のフローチャートを参照して、図17のステップS402の仮想中継ノードの生成処理について説明する。
図18は、本発明のワークフローシステムにおける第3の制御処理の一例を示すフローチャートであり、図17のステップS402の仮想中継ノード生成処理に対応する。なお、図中、S501〜S512はサーバ104側のステップに対応し、サーバ104のCPUが外部記憶装置等に格納されるプログラムをRAM上にロードして実行することにより実現される。
まず、ステップS501において、連携ワークフロー制御部112(サーバ104のCPUにより実行される連携ワークフロー制御部112)は、図17のステップS401で取得した連携ワークフロー定義DB111の情報を取得する。
次に、ステップS502において、連携ワークフロー制御部112は、ステップS501で取得した連携ワークフロー定義DB111(図13)の列3のノードIDの値を判定する。
ステップS502で、連携ワークフロー制御部112が、ノードIDの値が「機能」と判定した場合(例えば、図13の行7の場合)には、ステップS503において、連携ワークフロー制御部112は、連携ワークフロー定義DBの列2のシステムIDから機能名(例えば、図13の行7の場合「部品発注」)を取得し、この機能名をキーにして既存のワークフローのノードをノードブロックとして定義しているノードブロック定義DB110を検索し、該ノードブロックのノード構成を取得し、ステップS509に処理を移行させる。
以下、ノードブロックのノード構成情報の取得手順について説明する。
ノードブロックのノード構成情報の取得手順は、まず連携ワークフロー定義DB111の列2のシステムIDを取得する。システムIDには、ノードブロック定義DB111を検索するためのキーである機能名が定義されている。取得したシステムIDでノードブロック定義DB110(図12)の列1の機能名を検索する。機能名には既存のワークフロー取得したノード情報が複数紐付いている。
図12の例では、部品発注という機能名で「C1」,「C2」,「D」というノードをまとめて管理している。列4の順番は、処理の順番を示しており、同位のものは並行して処理されることを示している。また、ノードブロック定義DBで記述されているノードの処理はプロセス定義DBに記述されており、列2のシステムIDと列3のノードIDでプロセス定義DBを検索すればその定義を見つけることができる。ノードブロック定義DB110から取得した情報は、連携ワークフロー構築時にノード単位に分解され構築に使用される。
以下、フローチャートの説明に戻る。
また、ステップS502で、連携ワークフロー制御部112が、ノードIDの値が「機能」,「仮想中継ノード」以外が定義されていると判定した場合(即ち、ノードの情報が定義されている。例えば、図13の行2,行3,行5,行6,行8,行9の場合)には、ステップS505において、連携ワークフロー定義DBの列2のシステムIDと列3のノードIDからプロセス定義DB108のノード定義情報を取得し(他のシステムに属するノードのプロセス定義の場合には、他のシステムに依頼して取得し)、ステップS509に処理を移行させる。
次に、ステップS509において、連携ワークフロー制御部112は、ステップS503又はステップS505で取得した情報から仮想中継ノードの情報(図10のレコード構成と同様のデータ構成)を生成し、サーバ104のRAM内に保持し、ステップS510に処理を移行させる。なお、ここで生成される仮想中継ノードの情報は、プロセス定義情報と同一のデータ構成とし、項目の構成は、現ノード(ステップS502でノードIDを判定したノード)のシステムIDをキーにしてプロセス定義DBから取得した現ノードのプロセス定義情報に対応するものとなる。
なお、ここで生成される仮想中継ノードは、再構築されるプロセスに含まれるノード間に生成されるものであり、該生成される仮想中継ノードには、ノード間の帳票項目マッピング機能がデフォルトで付加される。
また、ステップS502で、連携ワークフロー制御部112が、ノードIDの値が「仮想中継ノード」と判定した場合(例えば、図13の行4,行10の場合)には、ステップS504において、連携ワークフロー制御部112は、連携ワークフロー定義DBの列2のシステムID,列4の付加機能から機能の種類,処理内容を取得し、ステップS506に処理を移行させる。なお、ノードIDの値に「仮想中継ノード」と設定されている場合、生成される仮想中継ノードにデフォルトで付与されている帳票項目マッピング機能の他に、帳票の経路の分岐や帳票項目の値の演算など新たな機能を追加する定義であることを示している。
以下、この追加される機能について説明する。
この追加される機能については、図13の列2のシステムIDに機能の種類が設定され、列4の付加機能の項目に処理内容に関する定義が設定されており、これら二つの情報から追加機能が生成される。
処理の種別は、Webサービスとのやりとりを行う機能を生成する「WWW」や帳票の処理結果に応じて次に進むべきノードを自動的に選択する「分岐」や帳票の項目を演算する「演算」がある。
処理内容の定義方法は以下の通りである。
例えば、図13の行4の定義ではシステムIDに「WWW」と定義されている。これは外部のWebサービスとデータのやりとりをすることを示している。処理内容は、列4の付加機能に定義されており、「getData」という情報を取得する命令が記述され(www.kawase.net,$為替)と引数が記述されている。これは、「www.kawase.net」のサイトにアクセスし、得た情報を帳票の「$為替」という帳票の項目に設定することを表している。
また、行10の定義ではシステムIDに「分岐」と定義されている。これは帳票の項目の値によって、タスクが次に行くノードを自動的に選択する機能が付与されることを示している。
列4の処理内容には「if」という命令が記述され引数として((購入額>500000),否認,承認)が記述されている。これは(購入額>500000)という記述が項目の比較をしており、帳票の「購入額」という項目に設定されている値が「500000」より大きかった場合に真とし、そうでなかった場合は偽とすることを表している。次に、後ろに続く(否認,承認)という記述は、前述の条件比較で真だった場合は「否認」の処理を実行し、偽だった場合は「承認」の処理を行うことを示している。
例えば、ノード「A」−「仮想中継ノード」−ノード「B」という構成のプロセスの場合、仮想中継ノードで帳票の項目をチェックする。「500000」より大きい場合は自動的にノード「A」に帳票が送り返される。小さかった場合はそのままノード「B」に進むというように、タスクの進むべきノードを自動的に選択できる。
以下、フローチャートの説明に戻る。
次に、ステップS506において、連携ワークフロー制御部112は、ステップS501で取得した連携ワークフロー定義DB(図13)の列5の順番の値を判定し、順番の値が定義されていると判定した場合(例えば、図13の行4の場合)には、テップS508において、連携ワークフロー制御部112は、ステップS504で取得した機能の種類,処理内容の情報から特定の仮想中継ノードに付与する追加機能を示す情報を生成し、対応する仮想中継ノード(列5の順番の値が1小さいノードに対応して生成された仮想中継ノード)に付与し(仮想中継ノードの情報の列5の「処理内容」に格納し)、ステップS510に処理を移行させる。
一方、ステップS506で、サーバ104のCPUが、ステップS501で取得した連携ワークフロー定義DB(図13)の列5の順番の値に順番が定義されていないと判定した場合(例えば、図13の行10の場合)には、ステップS507において、サーバ104のCPUは、ステップS504で取得した機能の種類,処理内容の情報に基づいて、帳票の項目に対して常に行う機能(全仮想中継ノードに付与する機能)の情報を生成し、RAM内に保持し、ステップS510に進む。
以下、ステップS507,S508で生成される追記機能について説明する。
図13に示した例では、行4のWWW取得の機能,分岐の機能が対象となる。WWW取得の機能は、連携ワークフロー定義DB111の順位(列5)で「3」が設定されているので、順位で「2」を設定している行3の定義で、生成されるノードの次の仮想中継ノードに付与されることになる。一方、行10の分岐の機能は、順位が設定されていないため、ステップS509で生成される仮想中継ノード全てに機能が付与されることになる。
次に、ステップS510において、サーバ104のCPUは、ステップS501で取得した連携ワークフロー定義DBの全ての定義情報(レコード)に対してステップS502〜S509の処理を終了したか否かを判定し、まだ終了していないと判定した場合には、ステップS502の処理に戻り、一方、終了したと判定した場合には、ステップS511に処理に移行させる。
次に、ステップS511において、サーバ104のCPUは、ステップS507で生成した全仮想中継ノードに付与する機能(追加機能)がある場合には、該追加機能の情報をRAMから読み出し、全ての仮想中継ノードに付与する(仮想中継ノードの情報の列5の「処理内容」に格納する)。
次に、ステップS512において、サーバ104のCPUは、図17のステップS401で構築されサーバ104のRAM内に保持された連携ワークフローの情報(プロセス定義DBとノードブロック定義DBから取得したノードを連携ワークフロー定義DB111の順序(列5)通りに並べたのも)のノード間に仮想中継ノードの情報を連携ワークフロー定義DB111の順序(列5)通りに配置することにより、順序通りにノードと仮想中継ノードを並べ、サーバ104の外部記憶装置に格納し、処理を終了する。これにより、例えば、図1に示した1711のように、ノード間に仮想中継ノード(WSP)が配置された連携ワークフローが構築される。
この状態をテーブル形式で表したものが、図10に示した連携ワークフロープロセス定義である。この連携ワークフロープロセス定義DBの構成は、プロセス定義DB108と同じ構成になっており、処理の実行も同一のワークフローエンジンで可能となっている。なお、この連携ワークフロープロセス定義は、一時的に生成され、サーバ104の外部記憶装置上に記憶されるもので、帳票の処理が全て終了すると(図16のステップS1909でYESの場合に)、ワークフロー制御部106により、サーバ104の外部記憶装置上から消去される。
以下、図19,図20を参照して、図16のステップS1906においてカレントのノードが仮想中継ノードの場合に仮想中継ノードの処理に一部として実行されるマッピング処理機能について説明する。このマッピング処理機能は、仮想中継ノードにデフォルトで付加されている機能であり、全ての仮想中継ノードの処理で実行される。
図19は、本発明のワークフローシステムにおける第4の制御処理の一例を示すフローチャートであり、図16のステップS1906においてカレントのノードが仮想中継ノードの場合に仮想中継ノードの処理に一部として実行されるマッピング処理機能に対応する。なお、図中、S1701〜S1703はサーバ104側のステップに対応し、サーバ104のCPUが外部記憶装置等に格納されるプログラムをRAM上にロードして実行することにより実現される。
まず、連携ワークフロー上のノードから仮想中継ノードにタスクが移ると、処理が開始され、ステップS1701において、仮想中継ノード制御部106(サーバ104のCPUで実行される仮想中継ノード制御部106)は、前ノード(現ノードである仮想中継ノードの前に帳票が処理されたノード)と、次ノード(帳票が次に移るノード)の情報(システムID)を連携ワークフロー定義DBから取得し、該取得したシステムIDから帳票定義DBを検索し、帳票項目の構成を取得する(他のシステムに属するノードの帳票定義は他のシステムに要求して取得する)。
次に、ステップS1702において、仮想中継ノード制御部106は、ステップS1701で取得した前ノードと次ノードの帳票の構成情報を項目名で比較し、項目の構成に差異があるか否かを判定する。
そして、ステップS1702で、仮想中継ノード制御部106が、前ノードと次ノードの帳票の項目の構成に差異があると判定した場合には、ステップS1703において、前ノードと次ノードの互いの帳票を項目名で統合する。これにより、帳票を次ノードに転送する際には、前ノードに含まれる項目で次ノードの帳票に含まれていない項目のデータについては取り除かれる。但し、次ノードの帳票に含まれていない項目についても値を保持し、保持した値は帳票データDB107に保管され、適時使用される。即ち、帳票データDB107には、前ノードの項目構成と次ノードの項目構成を包含するような項目構成(論理和となるような項目構成)で、データが保管されている。一方、前ノードに含まれていない項目で次ノードの帳票に含まれる項目のデータについては、帳票データDB107から取得され、次ノードに転送される。
一方、ステップS1702で、仮想中継ノード制御部106が、前ノードと次ノードの帳票の項目の構成に差異がないと判定した場合には、そのまま処理を終了する。これにより、帳票を次ノードに転送する際には、前ノードの帳票の項目構成となる。
以上の帳票マッピング処理の状態を図20に示す。
図20は、図19に示した帳票マッピング処理状態を示す模式図である。
例えば、図20に示すように、帳票1の項目A1601と帳票2の項目A1602は、同じ項目名であるので、仮想中継ノード帳票の項目A1603として統合する。項目Bに関しても同様である。
また、帳票1と帳票2で項目名が異なる項目は、統合せずに、それぞれ独立して保持するようにする。
例えば、帳票1,2には、項目C,Dがそれぞれ存在するが、これらは項目名が違うため結合できない。その場合、仮想中継ノード帳票は1607,1608の様に独立して値を保持することになる。そして、この方法で統合した帳票を仮想中継ノード帳票として帳票データDBに保存する。
また、項目の変換ルールを定義したデータ(連携ワークフロー定義)を用意しておけば、上記の変換ルール以外の変換も可能である。例えば、名前の違う項目を同一の項目と見なして統合することが可能である。具体的には、連携ワークフロー定義情報の列2を「項目名同一視」,列3を「仮想中継ノード」,列4を「項目名1=項目名2」,列5を未定義としたレコードを、連携ワークフロー定義情報に含める。
<実行例>
以下、図11を参照して、連携ワークフローの実行例について説明する。
まず、既存のワークフローシステムとして図11(a)のシステム1と、図11(c)のシステム2が存在する。
システム1のプロセス定義DBは図9に示してある。
システム1のプロセス定義DBでは、行がそれぞれのノードを定義しており、システム1のプロセス定義DBは、行1が起票の処理を行い、行2が承認を行う。行3はやはり承認を行うが、列5の処理内容に示されているとおり、帳票の希望購入金額と購入額を比較して購入希望金額の方が大きかった場合に承認され、そうでなかった場合は否認される処理となる。
また、システム2のプロセス定義DBは図8に示してある。
システム1のプロセス定義DBでは、それぞれが起票と承認の役割を担っており、システム2のプロセス定義DBは、行2のノードBでは、列5の処理内容に単価入力,承認と定義されている。これは、帳票の単価項目にその値段を入力してから承認を行うことを示している。また、行5の列3の経路IDの定義は、ノードDがノードC1,C2の処理が終了してから実行されることを示している。
図11(b)のワークフローは、上記図11(a),図11(c)のシステム1,システム2を連携させて構築した連携ワークフローであり、この連携ワークフローのプロセス定義は、図13に示した連携ワークフロー定義DBで行っている。即ち、図16のステップS1904の連携ワークフロー生成処理で図13の連携ワークフロー定義DB111から生成されたものである。
図13の連携ワークフロー定義DB111の行2,5,6,8,9は、システム1のプロセス定義DB(図9)から対応するノード定義を取得して構成されている。図13の連携ワークフロー定義DB111の行3は、システム2のプロセス定義DB(図8)から行2の定義を取得している。
図13の連携ワークフロー定義DB111の行7の定義は、列3のノードIDが機能と設定されているため図12のノードブロック定義DBから定義を取得している。
ノードブロック定義DBには、システム2のノードC1,C2,Dが1つの機能として定義されており、この情報からシステム2のプロセス定義DB(図8)の行3〜5の定義情報を取得している。この情報を連携ワークフロー定義DBが受け取り、ノード単位に展開して連携ワークフローの構築を行う。
図11(c)の1212が、ノードブロック定義DBの機能を表したものであり、これを図11(b)の連携ワークフローに取り込んだものが1318である。
また、図13の連携ワークフロー定義DBの行4で定義されている仮想中継ノードは、図11(b)の1304であり、1305のWWWサービス(www.kawase.net)からデータを受け取り、帳票の「$為替」の項目に受け取ったデータを設定する。
図13の連携ワークフロー定義DB111の連携ワークフロー定義の行10で定義されている仮想中継ノードは、帳票の「購入額」という項目が「500000」より大きかった場合には、自動的に帳票を否認し前ノードに帳票を返す。一方、帳票の購入額という項目が「500000」より大きくなかった場合には、次のノードに進むことを許可する承認を行う。この判定機能は、図11(b)の中に存在する全ての仮想中継ノード(WSP)に付与されている。
また、仮想中継ノード(WSP)は、図11(b)に示すように、全てのノード間に存在し、既存の帳票の定義に基づいて、データの互換を維持する機能を有している。
このように生成された連携ワークフローで、帳票が処理されることで、異なるワークフローの業務処理を連携させ、効率的な業務を遂行することが可能となる。
以上説明したように、複数のワークフローで定義されるノード定義情報(ノードブロックとして管理されるノード定義も含む)を組み合わせて連携ワークフローを構築する際、データ項目のマッピングを行う仮想中継ノードを、システムが自動で(ユーザに意識させることなく)追加することにより、仮想中継ノードが帳票項目の差を吸収するため、ユーザはノード間の帳票データの入出力を意識する必要なく、連携ワークフローを定義でき、連携ワークフローの定義作業の負担を軽減させることができる。
また、連携ワークフローは、起票の度に、システムにより再構築されるので、既存のワークフローに仕様の変更があったとしても、再度連携ワークフローの定義を行う必要が無く、連携ワークフローの定義を再利用することができる。
さらに既存のワークフローに含まれていない機能を要求された場合でも、その要求に沿った機能を仮想中継ノードに追加できるため、柔軟な業務処理を構築できる連携ワークフローを実現することができる。
従って、既存ワークフローの定義を流用して連携ワークフローを構築する機能にあって、既存のワークフローに仕様変更があった場合でも、連携ワークフローの定義を変更することなく対応でき、従来の問題点(問題点1)を解決することができる。
また、帳票の種類や項目の値による分岐機能,帳票項目の演算等の処理機能,判定機能,Webサービス等の外部システムとの連携を行う機能等を、既存のワークフローの定義を変更することなく連携ワークフローに組み込むことができ、従来の問題点(問題点2)を解決することができる。
従って、現実に稼働する複数のワークフローからノードを抽出定義し、新たな業務プロセスを仮想的に再構成して連携ワークフローを実現することができる。
なお、本実施形態では、システム1とシステム2の2つのワークフローを連携する場合を例にして説明したが、連携するワークフローは2つのシステムのみではなく、3つ以上のワークフローシステムを連携する構成も本発明に含まれるものである。この場合も、連携ワークフロー定義DB111の列2の「システムID」にシステム名を記載するだけで、上記2つのワークフローシステムの連携と全く同様に行うことができる。
なお、本実施形態では、各DBがサーバ104の外部記憶装置上に構築される場合について説明したが、記憶場所は限定されるものではなく、サーバ104がアクセス可能な記憶装置であればどのような記憶装置上に構成されてもよい。
さらに、各DBの各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
なお、上述した実施形態の各変形例を組み合わせた構成も全て本発明に含まれるものである。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
以下、図21に示すメモリマップを参照して本発明に係るワークフローサーバで読み取り可能なデータ処理プログラムの構成について説明する。
図21は、本発明に係るワークフローサーバで読み取り可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
本実施形態における図16,図17,図18,図19に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,DVD−ROM,磁気テープ,不揮発性のメモリカード,ROM,EEPROM,シリコンディスク等を用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ,データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
本発明の一実施形態を示すワークフローシステムを適用可能なシステム全体の構成を示す図である。 図1に示したワークフローシステムの連携ワークフロー概念を示す模式図である。 図1に示したクライアント,サーバに適用可能なコンピュータの構成の一例を示すブロック図である。 図1に示したシステムを機能的な視点から捉え、機能間のデータのやりとりを説明するブロック図である。 図2に示した帳票定義DBのデータ構成を示すデータ構成図である。 図2に示した帳票データDBのデータ構成を示すデータ構成図である。 本発明のワークフローシステムにおける帳票の一例を示す模式図である。 図1に示したシステム1のプロセス定義DBのデータ構成を示すデータ構成図である。 図1に示したシステム2のプロセス定義DBのデータ構成を示すデータ構成図である。 図2に示したサーバの外部記憶装置に一時的に記憶される連携ワークフロープロセス定義DBのデータ構成を示すデータ構成図である。 図8に示したシステム2のプロセス定義,図9に示したシステム1のプロセス定義情報,図10に示した連携ワークフロープロセス定義をそれぞれプロセスマップ化した図である。 図2に示したノードブロック定義DBのデータ構成を示すデータ構成図である。 図2に示した連携ワークフロー定義DBのデータ構成を示すデータ構成図である。 本発明のワークフローシステムにおける外部システムとのデータ送受信機能の一例を示すXMLデータの構成を示す模式図である。 本発明のワークフローシステムにおける帳票選択画面の一例を示す模式図である。 本発明のワークフローシステムにおける第1の制御処理の一例を示すフローチャートである。 本発明のワークフローシステムにおける第2の制御処理の一例を示すフローチャートである。 本発明のワークフローシステムにおける第3の制御処理の一例を示すフローチャートである。 本発明のワークフローシステムにおける第4の制御処理の一例を示すフローチャートである。 図19に示した帳票マッピング処理状態を示す模式図である。 本発明に係るワークフローサーバで読み取り可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
符号の説明
101 ネットワーク
102 クライアント
103 ユーザインタフェース
104 サーバ
105 ワークフロー制御部
106 仮想中継ノード制御部
107 帳票データDB
108 プロセス定義DB
109 帳票定義DB
110 ノードブロック定義DB
111 連携ワークフロー定義DB
112 連携ワークフロー制御部

Claims (8)

  1. サーバコンピュータと複数のクライアントコンピュータとが接続されて構成されるワークフローシステムであって、所定の通信媒体を介して他のワークフローシステムと接続可能なワークフローシステムにおいて、
    このワークフローシステムで稼動する第1のワークフローを構成する各ノードと該各ノードで実施される処理内容を定義したプロセス定義情報を記憶する記憶手段と、
    前記第1のワークフローを構成するノードと前記他のワークフローシステムで稼動する第2のワークフローを構成するノードとで定義される連携ワークフロー定義情報により、前記第1のワークフローと第2のワークフローの連携ワークフローを定義する定義手段と、
    前記連携ワークフロー定義情報で定義される各ノードに対応するノードの情報を前記記憶手段に記憶されるプロセス情報および前記他のワークフローシステムより取得し、該取得したノード間に、前記各ノード間の帳票データの受け渡しを中継する仮想中継ノードを配置するように、前記連携ワークフローのプロセス情報を生成し、該生成されたプロセス情報に基づいて、前記連携ワークフローの実行を制御する制御手段と、
    を有することを特徴とするワークフローシステム。
  2. 前記記憶手段は、前記第1のワークフローの各ノード間で受け渡される帳票データの構造を定義した帳票定義情報をも記憶するものであり、
    前記制御手段は、前記仮想中継ノードでの帳票データ中継時に、該仮想中継ノードの前後のノードに対応する帳票データの構造を前記帳票定義情報又は他のワークフローシステムより取得し、該取得した前後のノードに対応する帳票データの構造に基づいて、帳票データを変換して中継するマッピング処理を行うことを特徴とする請求項1記載のワークフローシステム。
  3. 前記連携ワークフロー定義情報は、連携ワークフローの各ノードで実施される処理に付加する付加処理を定義する情報を含むものであり、
    前記制御手段は、前記仮想中継ノードに対して、前記連携ワークフロー定義情報で定義された付加処理を付与するように、前記連携ワークフローのプロセス情報を生成することを特徴とする請求項1又は2記載のワークフローシステム。
  4. 前記追加処理は、帳票データ値による経路判定処理,帳票データ値の演算処理,外部からのデータの取得処理を含むことを特徴とする請求項3記載のワークフローシステム。
  5. 前記制御手段は、前記連携ワークフローのプロセス情報を、前記連携ワークフローの起動要求に応じて生成し、記憶手段に保持させ、前記連携ワークフローの全処理終了時に前記記憶手段から消去することを特徴とする請求項1〜4のいずれかに記載のワークフローシステム。
  6. サーバコンピュータと複数のクライアントコンピュータとが接続されて構成されるワークフローシステムであって、このワークフローシステムで稼動する第1のワークフローを構成する各ノードと該各ノードで実施される処理内容を定義したプロセス定義情報を記憶する記憶手段を有し、所定の通信媒体を介して他のワークフローシステムと接続可能なワークフローシステムにおけるワークフロー連携方法において、
    前記第1のワークフローを構成するノードと前記他のワークフローシステムで稼動する第2のワークフローを構成するノードとで定義される連携ワークフロー定義情報により、前記第1のワークフローと第2のワークフローの連携ワークフローを定義する定義ステップと、
    前記連携ワークフロー定義情報で定義される各ノードに対応するノードの情報を前記記憶手段に記憶されるプロセス情報および前記他のワークフローシステムより取得し、該取得したノード間に、前記各ノード間の帳票データの受け渡しを中継する仮想中継ノードを配置するように、前記連携ワークフローのプロセス情報を生成する生成ステップと、
    該生成されたプロセス情報に基づいて、前記連携ワークフローの実行を制御するワークフロー実効制御ステップと、
    を有することを特徴とするワークフロー連携方法。
  7. 請求項6に記載されたワークフロー連携方法を実行するためのプログラム。
  8. 請求項6に記載されたワークフロー連携方法を実行するためのプログラムをコンピュータが読み取り可能に記憶した記録媒体。
JP2004309197A 2004-10-25 2004-10-25 ワークフローシステムおよびワークフロー連携方法およびプログラムおよび記録媒体 Pending JP2006120040A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004309197A JP2006120040A (ja) 2004-10-25 2004-10-25 ワークフローシステムおよびワークフロー連携方法およびプログラムおよび記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004309197A JP2006120040A (ja) 2004-10-25 2004-10-25 ワークフローシステムおよびワークフロー連携方法およびプログラムおよび記録媒体

Publications (1)

Publication Number Publication Date
JP2006120040A true JP2006120040A (ja) 2006-05-11

Family

ID=36537847

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004309197A Pending JP2006120040A (ja) 2004-10-25 2004-10-25 ワークフローシステムおよびワークフロー連携方法およびプログラムおよび記録媒体

Country Status (1)

Country Link
JP (1) JP2006120040A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008065580A (ja) * 2006-09-07 2008-03-21 Fuji Xerox Co Ltd ワークフロー連携プログラムおよびワークフロー管理システム
JP2009265936A (ja) * 2008-04-24 2009-11-12 Canon Software Inc 外部システムからのフロー制御可能なワークフローシステム
JP2012243235A (ja) * 2011-05-24 2012-12-10 Mitsubishi Electric Corp データ統合システム
KR101282979B1 (ko) * 2011-12-20 2013-07-22 경기대학교 산학협력단 워크플로우 기반 협력 네트워크 분석방법 및 시스템
KR101312440B1 (ko) 2007-01-03 2013-09-27 삼성전자주식회사 워크플로우 시스템 및 그 제어방법
US20200134527A1 (en) * 2017-07-10 2020-04-30 Chengdu Qianniucao Information Technology, Ltd. Method for setting approval procedure based on base fields
CN112379921A (zh) * 2020-11-03 2021-02-19 中国直升机设计研究所 一种动态柔性流程自动生成和自完善系统及方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008065580A (ja) * 2006-09-07 2008-03-21 Fuji Xerox Co Ltd ワークフロー連携プログラムおよびワークフロー管理システム
KR101312440B1 (ko) 2007-01-03 2013-09-27 삼성전자주식회사 워크플로우 시스템 및 그 제어방법
JP2009265936A (ja) * 2008-04-24 2009-11-12 Canon Software Inc 外部システムからのフロー制御可能なワークフローシステム
JP2012243235A (ja) * 2011-05-24 2012-12-10 Mitsubishi Electric Corp データ統合システム
KR101282979B1 (ko) * 2011-12-20 2013-07-22 경기대학교 산학협력단 워크플로우 기반 협력 네트워크 분석방법 및 시스템
US20200134527A1 (en) * 2017-07-10 2020-04-30 Chengdu Qianniucao Information Technology, Ltd. Method for setting approval procedure based on base fields
CN112379921A (zh) * 2020-11-03 2021-02-19 中国直升机设计研究所 一种动态柔性流程自动生成和自完善系统及方法
CN112379921B (zh) * 2020-11-03 2024-04-02 北京索为系统技术股份有限公司 一种动态柔性流程自动生成和自完善系统及方法

Similar Documents

Publication Publication Date Title
Kalske et al. Challenges when moving from monolith to microservice architecture
US8621421B2 (en) Workflow visualization
Patel et al. Factors of collaborative working: A framework for a collaboration model
Zimmermann Architectural decisions as reusable design assets
CN102567839A (zh) 混合式的任务板和基于关键路径方法的项目应用
CN102567840A (zh) 基于混合任务板和关键路径方法的项目管理应用界面
CN1936943A (zh) 用于动态地配置基于角色的协作空间的方法和系统
CN101114355A (zh) 用于基于组件商业模型的企业组合管理的方法和系统
US20030074392A1 (en) Methods for a request-response protocol between a client system and an application server
CN102467701A (zh) 分布式订单编排系统中的基于事件的编排
AU2019201100B2 (en) Data modelling and flow engine for building automated flows within a cloud based developmental platform
CN110222106A (zh) 集成的工作流和数据库事务
JP2001202408A (ja) 要素編成支援装置、要素編成支援方法及び記録媒体
US20080004925A1 (en) Multi-site project management
Gunasekaran et al. Concurrent engineering: a multi‐disciplinary approach for construction
CN109214776A (zh) 一种火电epc工程总承包管理全过程全要素管控平台
JP2006120040A (ja) ワークフローシステムおよびワークフロー連携方法およびプログラムおよび記録媒体
JP5708715B2 (ja) ワークフロー管理サーバおよびワークフロー管理サーバの制御方法およびプログラムおよび記録媒体
CN116185242B (zh) 业务编排方法、装置和电子设备
Worren The matrix as a transitory form: the evolution of FMC technologies 2001–2016
JP6899340B2 (ja) 業務プロセス設計支援方法及び業務プロセス設計支援装置
US10831944B1 (en) System and method to facilitate the design, manufacturing and construction of structures
JP5311136B2 (ja) ワークフロー管理サーバおよびワークフロー管理サーバの制御方法およびプログラムおよび記録媒体
Yildiz et al. Towards decentralized service orchestrations
KR20230040312A (ko) 재건축 또는 재개발 등의 정비사업을 진행하는 조합의 조합원들을 위한 관리 서버 및 이의 작동 방법