(57)【要約】【課題】既存ワークフローの定義を流用して連携ワークフローの定義を行うにあたり、ユーザは各既存ワークフローの入出力や、既存のワークフローの変更を意識することなく、容易に連携ワークフローを定義可能にすること。【解決手段】ワークフロー制御部１０５が、システム１で稼動する第１のワークフローを構成するノードとシステム２で稼動する第２のワークフローを構成するノードとで定義される連携ワークフロー定義を連携ワークフロー定義ＤＢ１１１に格納しておき、連携ワークフローの起動要求に応じて、連携ワークフロー定義ＤＢ１１１で定義される各ノードに対応するノードの情報をプロセス定義ＤＢ１０８に記憶されるプロセス情報およびシステム２より取得し、該取得したノード間に各ノード間の帳票データの受け渡しを中継する仮想中継ノードを配置するように、連携ワークフローのプロセス情報を生成させて連携ワークフローの実行を制御する構成を特徴とする。【選択図】図１
2006120040.tif 000002
【特許請求の範囲】
【請求項１】
サーバコンピュータと複数のクライアントコンピュータとが接続されて構成されるワークフローシステムであって、所定の通信媒体を介して他のワークフローシステムと接続可能なワークフローシステムにおいて、
このワークフローシステムで稼動する第１のワークフローを構成する各ノードと該各ノードで実施される処理内容を定義したプロセス定義情報を記憶する記憶手段と、
前記第１のワークフローを構成するノードと前記他のワークフローシステムで稼動する第２のワークフローを構成するノードとで定義される連携ワークフロー定義情報により、前記第１のワークフローと第２のワークフローの連携ワークフローを定義する定義手段と、
前記連携ワークフロー定義情報で定義される各ノードに対応するノードの情報を前記記憶手段に記憶されるプロセス情報および前記他のワークフローシステムより取得し、該取得したノード間に、前記各ノード間の帳票データの受け渡しを中継する仮想中継ノードを配置するように、前記連携ワークフローのプロセス情報を生成し、該生成されたプロセス情報に基づいて、前記連携ワークフローの実行を制御する制御手段と、
を有することを特徴とするワークフローシステム。
【請求項２】
前記記憶手段は、前記第１のワークフローの各ノード間で受け渡される帳票データの構造を定義した帳票定義情報をも記憶するものであり、
前記制御手段は、前記仮想中継ノードでの帳票データ中継時に、該仮想中継ノードの前後のノードに対応する帳票データの構造を前記帳票定義情報又は他のワークフローシステムより取得し、該取得した前後のノードに対応する帳票データの構造に基づいて、帳票データを変換して中継するマッピング処理を行うことを特徴とする請求項１記載のワークフローシステム。
【請求項３】
前記連携ワークフロー定義情報は、連携ワークフローの各ノードで実施される処理に付加する付加処理を定義する情報を含むものであり、
前記制御手段は、前記仮想中継ノードに対して、前記連携ワークフロー定義情報で定義された付加処理を付与するように、前記連携ワークフローのプロセス情報を生成することを特徴とする請求項１又は２記載のワークフローシステム。
【請求項４】
前記追加処理は、帳票データ値による経路判定処理，帳票データ値の演算処理，外部からのデータの取得処理を含むことを特徴とする請求項３記載のワークフローシステム。
【請求項５】
前記制御手段は、前記連携ワークフローのプロセス情報を、前記連携ワークフローの起動要求に応じて生成し、記憶手段に保持させ、前記連携ワークフローの全処理終了時に前記記憶手段から消去することを特徴とする請求項１〜４のいずれかに記載のワークフローシステム。
【請求項６】
サーバコンピュータと複数のクライアントコンピュータとが接続されて構成されるワークフローシステムであって、このワークフローシステムで稼動する第１のワークフローを構成する各ノードと該各ノードで実施される処理内容を定義したプロセス定義情報を記憶する記憶手段を有し、所定の通信媒体を介して他のワークフローシステムと接続可能なワークフローシステムにおけるワークフロー連携方法において、
前記第１のワークフローを構成するノードと前記他のワークフローシステムで稼動する第２のワークフローを構成するノードとで定義される連携ワークフロー定義情報により、前記第１のワークフローと第２のワークフローの連携ワークフローを定義する定義ステップと、
前記連携ワークフロー定義情報で定義される各ノードに対応するノードの情報を前記記憶手段に記憶されるプロセス情報および前記他のワークフローシステムより取得し、該取得したノード間に、前記各ノード間の帳票データの受け渡しを中継する仮想中継ノードを配置するように、前記連携ワークフローのプロセス情報を生成する生成ステップと、
該生成されたプロセス情報に基づいて、前記連携ワークフローの実行を制御するワークフロー実効制御ステップと、
を有することを特徴とするワークフロー連携方法。
【請求項７】
請求項６に記載されたワークフロー連携方法を実行するためのプログラム。
【請求項８】
請求項６に記載されたワークフロー連携方法を実行するためのプログラムをコンピュータが読み取り可能に記憶した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、既存のワークフローの定義を再利用して連携ワークフローを構築し制御するワークフローシステムおよびワークフロー連携方法およびプログラムおよび記録媒体に関する。
【背景技術】
【０００２】
企業等の組織において業務は１つの部門内や企業で完結するものでなく、複数の部門や企業の担当者が連携して作業を行い完結させるのが一般的となっている。そのため各作業者への作業の振り分けや作業者間での作業の受け渡しを広域に分散したロケーション間で行う必要がある。このやりとりを簡潔に行うため、各企業間や部門間に互いにデータのやりとりを行いながら業務処理を進める連携ワークフローが導入された。
【０００３】
連携ワークフローは、各企業や部門ごとに稼働している様々なワークフローの間でデータをやりとりし、業務処理を行うことができるワークフローであり、あたかも一つのワークフローで業務処理が行われているかのように使用することができる。
【０００４】
このように複数のワークフロー間でのデータのやりとりを行うことから、連携ワークフローの構築には既存のワークフローの定義を流用し、構築の作業を軽減したいという要求が生まれる。
【０００５】
しかし、従来の連携ワークフローの構築方法では、各部門（各企業）にある既存のワークフローの定義を連携ワークフローの構築に再利用できず、全ての定義を始めから行う必要があった。
【０００６】
この問題に対し、特許文献１（特開平１０−３０２００２号公報）の「統合ワークフロー定義・実行方法及びシステム及び統合ワークフロー定義・実行プログラムを格納した記憶媒体」では、異なるワークフローの定義からワークフローの一連の業務処理を構成する処理の単位であるノードを一元的に定義し、その定義から連携ワークフローで実行するノード定義部分をとりだして、実行可能な形式に変更し、実行することが提案されている。
【０００７】
これにより、連携ワークフロー用に新たな定義を作成することなく、既存のワークフローの定義を再利用して、連携ワークフローを構築することができるようになった。
【特許文献１】特開平１０−３０２００２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記特許文献１に記載のワークフローシステムでは、既存のワークフローの定義に変更があった場合の対応について何ら考慮されていない。
【０００９】
上記特許文献１における連携ワークフローの定義方法は、複数の既存ワークフローから定義を集めて作成するため、連携ワークフロー内の１つの定義が複数の連携ワークフローで使用されていることが考えられる。
【００１０】
このとき、既存のワークフローの定義に、帳票項目の追加などの仕様変更が生じた場合、データの整合性を保つために、そのノード定義と帳票を使用して構築されている全ての連携ワークフローの構成や定義を見直す必要がある。
【００１１】
例えば、商品の発注を行うノードを複数の連携ワークフローが使用している環境で、ノードで処理される帳票に、ユーロ単価など新しい項目を追加した場合、このノードを使用して連携ワークフローを構成しているシステムでは、連携部分で、ノード間の帳票データの入出力が整合しなくなり、使用されている帳票の構成を全て見直す必要が生じてしまう。
【００１２】
このため、定義の流用によるワークフロー構築作業の負担軽減効果は、著しく低くなってしまうという問題があった（第１の問題点）。
【００１３】
また、業務によっては、帳票の値により次に進むべきノードを自動的に選択させたり、ワークフロー以外の外部システムとのやりとりをする処理を追加したい場合があるが、連携ワークフローに、このような処理の追加を行う場合、上記特許文献１では、既存のワークフローに処理を追加しなければならない。よって、連携ワークフローに、容易に処理の追加をすることができないという問題点があった（第２の問題点）。
【００１４】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、サーバコンピュータと複数のクライアントコンピュータとが接続されて構成されるワークフローシステムであって、このワークフローシステムで稼動する第１のワークフローを構成する各ノードと該各ノードで実施される処理内容を定義したプロセス定義情報を記憶する記憶手段を有し、所定の通信媒体を介して他のワークフローシステムと接続可能なワークフローシステムにおいて、前記第１のワークフローを構成するノードと前記他のワークフローシステムで稼動する第２のワークフローを構成するノードとで定義される連携ワークフロー定義情報により、前記第１のワークフローと第２のワークフローの連携ワークフローを定義し、この連携ワークフローの起動要求に応じて、前記連携ワークフロー定義情報で定義される各ノードに対応するノードの情報を前記記憶手段に記憶されるプロセス情報および前記他のワークフローシステムより取得し、該取得したノード間に、前記各ノード間の帳票データの受け渡しを中継する仮想中継ノードを配置するように、前記連携ワークフローのプロセス情報を生成し、該生成されたプロセス情報に基づいて、前記連携ワークフローの実行を制御することにより、ユーザが意識的に定義することなく生成される仮想中継ノードにより、既存のワークフローの定義を流用して連携ワークフローの定義を行うにあたり、ユーザは各既存ワークフローの入出力や変更を意識することなく容易に連携ワークフローを定義でき、また、起票時に毎回連携ワークフローを再構築するため、既存のワークフローに仕様変更があった場合でも、連携ワークフローの定義の変更を行う必要が無いため、既存のワークフローの流用を効率よく行うことができ、さらに、帳票の種類や項目の値による分岐機能や帳票項目の演算などの処理機能を、既存のワークフローの定義を変更することなく連携ワークフローに追加できるため、柔軟な業務処理を構築できる連携ワークフローを実現することができるワークフローシステムおよびワークフロー連携方法およびプログラムおよび記録媒体を提供することである。
【課題を解決するための手段】
【００１５】
本発明は、サーバコンピュータと複数のクライアントコンピュータとが接続されて構成されるワークフローシステムであって、所定の通信媒体を介して他のワークフローシステムと接続可能なワークフローシステムにおいて、このワークフローシステムで稼動する第１のワークフローを構成する各ノードと該各ノードで実施される処理内容を定義したプロセス定義情報を記憶する記憶手段と、前記第１のワークフローを構成するノードと前記他のワークフローシステムで稼動する第２のワークフローを構成するノードとで定義される連携ワークフロー定義情報により、前記第１のワークフローと第２のワークフローの連携ワークフローを定義する定義手段と、前記連携ワークフロー定義情報で定義される各ノードに対応するノードの情報を前記記憶手段に記憶されるプロセス情報および前記他のワークフローシステムより取得し、該取得したノード間に、前記各ノード間の帳票データの受け渡しを中継する仮想中継ノードを配置するように、前記連携ワークフローのプロセス情報を生成し、該生成されたプロセス情報に基づいて、前記連携ワークフローの実行を制御する制御手段とを有することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、サーバコンピュータと複数のクライアントコンピュータとが接続されて構成されるワークフローシステムであって、このワークフローシステムで稼動する第１のワークフローを構成する各ノードと該各ノードで実施される処理内容を定義したプロセス定義情報を記憶する記憶手段を有し、所定の通信媒体を介して他のワークフローシステムと接続可能なワークフローシステムにおいて、前記第１のワークフローを構成するノードと前記他のワークフローシステムで稼動する第２のワークフローを構成するノードとで定義される連携ワークフロー定義情報により、前記第１のワークフローと第２のワークフローの連携ワークフローを定義し、この連携ワークフローの起動要求に応じて、前記連携ワークフロー定義情報で定義される各ノードに対応するノードの情報を前記記憶手段に記憶されるプロセス情報および前記他のワークフローシステムより取得し、該取得したノード間に、前記各ノード間の帳票データの受け渡しを中継する仮想中継ノードを配置するように、前記連携ワークフローのプロセス情報を生成し、該生成されたプロセス情報に基づいて、前記連携ワークフローの実行を制御するので、ユーザが意識的に定義することなく生成される仮想中継ノードにより、既存ワークフローの定義を流用して連携ワークフローの定義を行うにあたり、ユーザは各既存ワークフローの入出力を意識することなく容易に連携ワークフローを定義できる。
【００１７】
また、起票時に毎回連携ワークフローを再構築するため、既存のワークフローに仕様変更があった場合でも、連携ワークフローの定義の変更を行う必要が無いため、既存のワークフローの流用を効率よく行うことができる。
【００１８】
さらに、帳票の種類や項目の値による分岐機能や帳票項目の演算などの処理機能を、既存のワークフローの定義を変更することなく連携ワークフローに追加できる等の効果を奏する。
【発明を実施するための最良の形態】
【００１９】
まず、ワークフローとは、一つ以上のノードを組み合わせて業務処理を実行させるものであり、ノードをどのような順序で処理するかを定義したものを経路と呼び、ノードと経路を合わせた定義をワークフロープロセスと呼ぶ（単に、プロセスともいう）。
【００２０】
以下、図１，図２を参照して、本発明のワークフローシステムを適用可能なシステムの全体構成、及び、連携ワークフロー概念について説明する。
【００２１】
まず、システム構成について説明する。
【００２２】
図１は、本発明の一実施形態を示すワークフローシステムを適用可能なシステム全体の構成を示す図である。
【００２３】
図１に示すように、本発明のワークフローシステムを適用可能なシステムは、ＬＡＮやＷＡＮやＷＷＷ等を単体もしくは複合されて構成されるネットワーク１００を介して、既存の複数のワークフローシステム（図１に示した例では、システム１，システム２のみしか示していないが３つ以上のシステムであってもよい）が通信可能に接続されたものである。
【００２４】
本発明の連携ワークフローは、これら既存の複数のワークフローシステムであるシステム１，システム２を連携させて、新しい連携ワークフローを仮想的に構築するものである。
【００２５】
また、図１に示すように、システム１は、ＬＡＮやＷＡＮやＷＷＷ等を単体もしくは複合されて構成されるネットワーク１０１に、ワークフロークライアント１０２や、ワークフローサーバ１０４として機能する複数のコンピュータを接続して構成されている。なお、各コンピュータのハードウェア構成については後述する図３に示す。
【００２６】
ワークフロークライアント１０２は、ユーザインタフェース１０３をもち、ユーザの指示によりワークフローにおける帳票（タスク）の起票（生成）や承認処理を行う。
【００２７】
ワークフローサーバ（単に、サーバともいう）１０４は、帳票の値を保管した帳票データＤＢ１０７（図６），ワークフローのプロセスを保管したプロセス定義ＤＢ１０８（図８，図９），帳票の構成を定義した帳票定義ＤＢ１０９（図５），既存のワークフローのノード定義をノードブロックとして定義したノードブロック定義ＤＢ１１０（図１２），連携ワークフローのプロセスを定義した連携ワークフロー定義ＤＢ１１１（図１３）という情報を保持する。また、サーバ１０４は、ワークフロー制御部１０５，仮想中継ノード制御部１０６，連携ワークフロー制御部１１２という制御部を有している。
【００２８】
ワークフロー制御部１０５は、所謂ワークフローエンジンであり、ワークフロー全体を統制し、起票、タスクの処理、遷移などの制御を行う。連携ワークフロー制御部１１２は、連携ワークフローの起票が行われると、プロセス定義ＤＢ１０８，ノードブロック定義ＤＢ１１０，連携ワークフロー定義ＤＢ１１１、及びシステム２から必要なデータを取得し、各定義に基づいて、ノードを再構築して連携ワークフローを作成し、ワークフロー制御部１０５が実行可能な状態に変換する機能を有する。
【００２９】
仮想中継ノード制御部１０６は、ノードブロック定義ＤＢ１１０，連携ワークフロー定義ＤＢ１１１，帳票定義ＤＢ１０９の情報に基づいて、連携ワークフロー制御部１１２で再構築された連携ワークフローに含まれる仮想中継ノードの制御を行う。なお、仮想中継ノードとは、構築された連携ワークフローのノード間に自動的に配置されるものであり、各ノード間において、帳票項目マッピングを行う機能（異なるワークフローのノード間でやり取りするデータを変換する機能）と、帳票項目の値による経路の自動判定や演算機能等を有する。
【００３０】
なお、システム２は、システム１と同様の構成を有するものであり、システム１と同様に、ネットワーク２０１に、ワークフロークライアント２０２や、ワークフローサーバ２０４として機能する複数のコンピュータを接続して構成されている。しかし、システム２のワークフローサーバ２０４は、必ずしも、連携ワークフロー定義ＤＢ１１１，連携ワークフロー制御部１１２，仮想中継ノード制御部１０６を備えている必要はなく、該構成は、連携ワークフローの起票を行う側のシステムのみが備えていればよい。本実施形態では、一例として、システム１側で起票する連携ワークフローについて説明する。
【００３１】
図２は、図１に示したワークフローシステムの連携ワークフロー概念を示した模式図である。
【００３２】
図２に示すように、既存のワークフローとして、システム１とシステム２があり、この２つのシステムを連携させて新しい連携ワークフローを構築する。
【００３３】
システム１に存在するノード１７０１〜１７０３は、３つで１つの機能１７０８を実現しており、同じようにシステム２に存在するノード１７０６，１７０７も２つで１つの機能１７０９を実現している。
【００３４】
本発明のワークフローシステムでは、図１のように、ノードの情報をノードブロックとして仮想的に管理可能であり、図示すると１７１０のようになる。
【００３５】
１７１０に示す様にノードブロックの定義を組み合せることで、１７１１に示すような連携ワークフローを構築することができる。なお、ノードブロックのみでなく、２つのシステムのノードを組み合わせてワークフローを構築してもよい。
【００３６】
さらに、構築した連携ワークフロー１７１１の各ノード間には、１７１２〜１７１５に示すような仮想中継ノードと呼ばれる仮想中継ノード（ＷＳＰ）が自動的に（ユーザに意識させることなく）付与される。
【００３７】
仮想中継ノード（ＷＳＰ）は、異なるワークフローのノード間、この例では、ノードＣ（１７０３）とノード２（１７０６）の間で、データをやりとりする場合に、データを変換するデータ項目マッピング機能を有する。このデータ項目マッピング機能とは、図１に示した仮想中継ノード制御部１０６により実行される機能であり、各システムで回覧する伝票データの違いを、仮想中継ノードにて変換して他のシステムに渡す（中継する）機能である。
【００３８】
以下、図３参照して、図１に示したクライアント１０２，ワークフローサーバ１０４に適用可能なコンピュータの構成について説明する。
【００３９】
図３は、図１に示したクライアント１０２，サーバ１０４に適用可能なコンピュータの構成の一例を示すブロック図である。
【００４０】
図３において、２１００はクライアント１０２，サーバ１０４に適用可能なコンピュータである。２１０１はＣＰＵである。このＣＰＵ２１０１は、ＲＯＭ２１０３又は外部記憶装置２１０４（例えば、ハードディスク，フレキシブルディスク，ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭ等どのような記憶装置であってもよい）に格納されたプログラムをＲＡＭ２１０２上にロードして実行することにより、コンピュータ２１００全体を制御する。ＲＡＭ２１０２は、ＣＰＵ２１０１の作業領域として使用される。
【００４１】
２１０８は通信インタフェースで、ネットワーク１０１への接続を可能とする。２１０６は入力装置で、キーボードやマウス等のポインティングデバイス等に相当する。２１０７は表示装置で、ＣＲＴ，ＬＣＤ等で構成される。
【００４２】
以下、図１に示したシステムの各構成要素の実装について図３を用いて説明する。
【００４３】
まず、図１に示したユーザインタフェース１０３は、クライアント１０２のＣＰＵが、外部記憶装置等に格納されたプログラムをＲＡＭ上にロードして実行することにより実装されるものであり、クライアント１０２のＣＰＵは、サーバ１０４等から受け取った（、クライアント１０２で生成された、又は、外部記憶装置から読み出した）入力画面をクライアント１０２の表示装置に表示制御し、該入力画面へのクライアント１０２の入力装置を用いた入力制御を行う。
【００４４】
また、図１に示したワークフロー制御部１０５，仮想中継ノード制御部１０６，連携ワークフロー制御部１１２は、サーバ１０４のＣＰＵが、外部記憶装置等に格納されたプログラムをＲＡＭ上にロードして実行することにより実装される。
【００４５】
さらに、図２に示した帳票データＤＢ１０７，プロセス定義ＤＢ１０８，帳票定義ＤＢ１０９，ノードブロック定義ＤＢ１１０，連携ワークフロー定義ＤＢ１１１は、全て、サーバ１０４の外部記憶装置に構築される。
【００４６】
以下、図４を参照して、図１に示したシステムを機能的な視点から捉え、機能間のデータのやりとりを説明する。
【００４７】
図４は、図１に示したシステムを機能的な視点から捉え、機能間のデータのやりとりを説明するブロック図である。
【００４８】
まず、各ＤＢ１０７〜１１１の各種情報について説明する。
【００４９】
＜帳票定義ＤＢ１０９＞
帳票定義ＤＢ１０９は、ワークフロー上で使用される帳票の構成を定義したものである。帳票定義ＤＢ１０９をモデル化したものが図５である。
【００５０】
図５は、図２に示した帳票定義ＤＢ１０９のデータ構成を示すデータ構成図である。
【００５１】
図５において、７０１は、システム１の帳票定義ＤＢに格納される既存のワークフローの帳票定義を示す。７０３は、システム２の帳票定義ＤＢに格納される既存のワークフローの帳票定義を示す。
【００５２】
既存のワークフローの帳票定義７０１，７０３の行２は、システムＩＤを示し、システムＩＤは、プロセス定義ＤＢ１０８内のワークフロープロセスに紐付けられている。即ち、１つのワークフロープロセスに１つの帳票の組合せになる。
【００５３】
そして、帳票は、起票されると、ワークフロー制御部１０５により、この帳票定義ＤＢ１０９の項目に基づいて、帳票データＤＢ１０７に新たなレコードとして生成される。
【００５４】
また、連携ワークフローの場合、既存の帳票を変換して使用する。既存のワークフローの帳票定義７０１，７０３から変換を行ったものが７０２であるが、既存のワークフローの帳票定義７０１，７０３からの変更箇所は、行２で、システムＩＤがルートＩＤに変更されている。このルートＩＤは、連携ワークフロー定義ＤＢ内の連携ワークフロー定義に紐付けされている。なお、連携ワークフローの帳票定義７０２は、帳票定義ＤＢ１０９に格納されるものではなく、クライアント１０２から既存のワークフローを連携した連携ワークフローを起票するための起票画面の要求があると、サーバ１０４は、対応する既存のワークフローの帳票定義７０１，７０３から変換し、この連携ワークフローの帳票定義７０２の項目で構成される帳票の起票画面をクライアント１０２に送る。そして、クライアント１０２から起票の指示と帳票データがサーバ１０４に送られると、サーバ１０４は、クライアント１０２から受け取ったデータを帳票データＤＢ１０７に新たなレコードとして格納する。
【００５５】
＜帳票データＤＢ１０７＞
帳票データＤＢ１０７は、ユーザより起票された帳票に入力された値やワークフロー処理内容等を格納しておくためのＤＢである。
【００５６】
なお、既存のワークフローを組み合わせて構築された連携ワークフロー（再構築プロセス）を使用する帳票の場合、帳票データに、対象となる帳票に再構築プロセスを使用するという情報として、帳票データＤＢの列２にルートＩＤが付与される。この帳票データＤＢ１０７をモデル化すると図６の様になる。
【００５７】
図６は、図２に示した帳票データＤＢ１０７のデータ構成を示すデータ構成図であり、ここでは、特に図５に示した連携ワークフロー用の帳票定義７０２の項目に対応した帳票データを示している。
【００５８】
図６に示すように、帳票データＤＢ１０７の列１は、帳票ごとに連番が割り当てられた帳票番号である。列２にルートＩＤが設定されていると、再構成プロセスを使用する帳票（連携ワークフロー用の帳票）に対応するものと判断され、連携ワークフロー定義ＤＢ１１１を、ルートＩＤで検索し、同一のルートＩＤが定義された情報（例えば、後述する図１３に示す連携ワークフロー定義）を取得する。
【００５９】
列３〜列１１は、帳票の項目を表しており、ユーザが帳票に値を入力するとこの項目に値が保存される。列１２のステータスは、帳票の処理状態を表すものであり、ユーザが起票中であることを示す「起票」と承認を行っていることを示す「承認」と全てのプロセスを終了したことを示す「最終承認」がある。
【００６０】
図６に示した帳票データＤＢの情報を、帳票の形式で表すと図７に示すようになる。
【００６１】
図７は、本発明のワークフローシステムにおける帳票の一例を示す模式図であり、クライアント１０２のユーザインタフェース１０３によりクライアント１０２のモニタに表示される。
【００６２】
図７において、四角で囲まれた部分１４０１〜１４０４が入力欄であり、１４０５，１４０６に示す項目の「＄為替」や「購入額」は、入力されたデータに基づいてシステムが算出し表示する項目である。
【００６３】
＜プロセス定義ＤＢ１０８＞
プロセス定義ＤＢ１０８は、ワークフローのノードや経路や表示条件を管理するための定義情報である。
【００６４】
システム２，システム１のプロセス定義ＤＢに格納されるプロセス定義情報をそれぞれモデル化すると図８，図９のようになる。また、連携ワークフロープロセス定義情報をモデル化すると図１０のようになる。さらに、システム２のプロセス定義情報（図７），システム１のプロセス定義情報（図９），連携ワークフロープロセス定義（図１０）をそれぞれプロセスマップ化したものが図１１（ａ），（ｃ），（ｂ）である。
【００６５】
図８は、図１に示したシステム２のプロセス定義ＤＢ１０８のデータ構成を示すデータ構成図である。
【００６６】
図９は、図１に示したシステム１のプロセス定義ＤＢのデータ構成を示すデータ構成図である。
【００６７】
図１０は、図２に示したサーバ１０４の外部記憶装置に一時的に記憶される連携ワークフロープロセス定義のデータ構成を示すデータ構成図であり、帳票の処理が全て終了すると、消去される。
【００６８】
図１１は、図８に示したシステム２のプロセス定義，図９に示したシステム１のプロセス定義，図１０に示した連携ワークフロープロセス定義をそれぞれプロセスマップ化した図である。
【００６９】
なお、図８，図１１（ｃ）は図５に７０１で示したシステム２の帳票に対応し、図９，図１１（ａ）は図５に７０３で示したシステム１の帳票に対応し、図１０，図１１（ｂ）は図５に７０２で示した連携ワークフローシステムの帳票に対応する。
【００７０】
まず、図８〜図１０において、列１はプロセスを識別するシステムＩＤで、列２はプロセスに含まれるノードの識別ＩＤである。列３の経路はプロセス上で分岐があるときに記述される。列４，列５はノードで行う処理の内容を記述したものである。
【００７１】
また、ワークフローの処理は、列６の処理順位の通りに行われる。なお、処理順位が同じものは並列して処理されることを示す。さらに、列７のルートＩＤは、定義されているプロセスが連携ワークフローの時に設定され、連携ワークフローのプロセス取得のために使用される。列８の「ＷＳＰ−ＩＤ」は、仮想中継ノードごとにユニークに割り当てられた識別ＩＤである。
【００７２】
列９以降の項目は、そのプロセスで使用される帳票の表示項目を表している。表示項目はノードごとに画面に表示するか、しないかの定義がなされている。これら列９以降の項目に「１」が設定されているものは表示する項目であることを示し、「０」が設定されているものは非表示とする項目であることを示す。
【００７３】
また、図１１（ｃ）のノード１２０３，ノード１２０４のように分岐しているものは、図１１（ｃ）に対応する図８の行３〜５で定義されているように、ノード別に定義され行５の列３でどのノードをまとめるかを定義している。
【００７４】
なお、図１０，図１１（ｂ）に示した連携ワークフローのプロセス定義は、図８，図９に示した既存のプロセス定義および後述する図１３に示す連携ワークフロー定義ＤＢ１１１に基づいて、連携ワークフロー制御部１１２により生成される。この生成方法については後述する。
【００７５】
＜ノードブロック定義ＤＢ１１０＞
ノードブロック定義ＤＢ１１０は、プロセス内に含まれるノードをノードブロックとして定義したものである。
【００７６】
例えば、Ａ，Ｂ，Ｃ，Ｄ，Ｅというノードで構成されたプロセス（例えば、経理の処理）があった場合、Ｃ，Ｄ，Ｅがそれぞれ係長承認，課長承認，部長承認だとすると、それらのノードをまとめて「経理承認」といった名前を付けて定義しておくことができる。この定義を利用すると複数のノードを使用する処理を連携ワークフローで実行させようとした場合の定義が容易になる。このノードブロック定義を格納するノードブロック定義ＤＢ１１０をモデル化したものが図１２である。
【００７７】
図１２は、図２に示したノードブロック定義ＤＢ１１０のデータ構成を示すデータ構成図である。
【００７８】
図１２に示すように、ノードブロック定義ＤＢ１１０の列１は機能名を示しており、複数のノードをまとめて扱うためのキーとなる。列２，列３，列４はノードの情報を示している。
【００７９】
＜連携ワークフロー定義ＤＢ１１１＞
連携ワークフロー定義ＤＢ１１１は、連携ワークフローの構成の定義をしたものである。この連携ワークフロー定義ＤＢ１１１をモデル化すると図１３の様になる。
【００８０】
図１３は、図２に示した連携ワークフロー定義ＤＢ１１１のデータ構成を示すデータ構成図である。
【００８１】
この連携ワークフロー定義ＤＢ１１１は、帳票定義ＤＢ１０９のルートＩＤ（図５に示した連携ワークフローの帳票定義７０２の行２）に関連付けられ、図１３に示すように、連携ワークフロー定義ＤＢ１１１の列１は、ルートＩＤを示す。
【００８２】
列２，列３は、プロセスの再構築時に定義を流用するシステムの情報を示し、列５は、ステップの順番を示す。
【００８３】
なお。列３に「仮想中継ノード」と定義されているものは、仮想中継ノードに付加機能をつけることを意味し、列４にその付加機能が定義されている。また、列３に「機能」と定義されているものは、ノード情報をノードブロック定義ＤＢ１１０から取り込むことを示している。また、列５は連携ワークフローでの処理の順番を示す。
【００８４】
以下、図１０に示した連携ワークフロープロセス定義情報の生成方法の概要について説明する。
【００８５】
クライアント１０２から起票の処理が行われると、サーバ１０４において、ワークフロー制御部１０５が既存のワークフローか連携ワークフローか判断し、連携ワークフローの場合、連携ワークフロー制御部１１２が、連携ワークフロー定義ＤＢ１１１，ノードブロック定義ＤＢ１１０を読み込み（他のシステムのノードブロック定義ＤＢについては他のシステムに要求して取得し）、図１３に示した連携ワークフロー定義ＤＢ１１１の列３ノードＩＤに設定されているノードの情報をプロセス定義ＤＢ１０８から読み取り（他のシステムのプロセス定義ＤＢについては他のシステムに要求して取得し）、連携ワークフロー制御部１１２が、連携ワークフロー定義ＤＢに定義されている順番で連携ワークフローのワークフロープロセスを再構築する。
【００８６】
同時に、連携ワークフロー制御部１１２は、再構築した連携ワークフローのノード間に、ノード間の入出力のデータを互換するための仮想中継ノード（図１１（ｂ）の各ＷＳＰ）を設置する。また、分岐処理など新規に作られた処理機能（連携ワークフロー定義ＤＢ１１１の列４の付加機能に記載されている）を仮想中継ノードに機能追加する。
【００８７】
そして、連携ワークフロー制御部１１２は、再構成されたプロセス（連携ワークフローのワークフロープロセス）を実行可能な状態に変換し（ＲＡＭ上に読み出し）、ワークフロー制御部１０５が、該プロセスを実行する。
【００８８】
以下、各制御動作について詳細に説明する。
【００８９】
＜ユーザが入力した帳票データの受け取り動作＞
ユーザインタフェース１０３は、ユーザからの処理要求をワークフロー制御部１０５に送信し、該処理要求をワークフロー制御部１０５が受け付ける。該処理要求が起票の場合、起票をするノードからのデータ入力を受け付ける。ワークフロー制御部１０５は、入力された帳票の情報を帳票データＤＢ１０７に書き込む。
【００９０】
＜ワークフロープロセスの管理と再構築動作＞
連携ワークフロー制御部１１２は、連携された既存のワークフローのプロセスを定義したプロセス定義ＤＢ１０８に基づいて連携ワークフローを制御している。
【００９１】
連携ワークフロー制御部１１２は、新規構築される連携ワークフローの構成を定義している連携ワークフロー定義ＤＢ１１１を読み込み、プロセス定義ＤＢ１０８から既存のプロセスから必要なノードの情報を抜き出し（他のプロセス定義ＤＢについては他のシステムに要求して取得し）、再構築して実行可能なワークフローに変換する機能を持つ。
【００９２】
また、連携ワークフロー制御部１１２は、上記の再構築したワークフローのノード間に、仮想中継ノードを自動的に配置する機能を有している。仮想中継ノードは、各ノードの入出力情報をプロセス定義ＤＢ１０８から受け取り、前後のノード間でやりとりをする帳票の項目のマッピングを行うものである。なお、仮想中継ノードには、帳票の項目の値による経路の自動判定や項目の演算処理を行う機能を追加することができる。この仮想中継ノードの機能制御は、仮想中継ノード制御部１０６が行う。
【００９３】
＜仮想中継ノードの制御と管理の流れ＞
仮想中継ノード制御部１０６は、仮想中継ノードに関する制御を行う。仮想中継ノード制御部１０６は、連携ワークフロー制御部１１２やワークフロー制御部１０５からの指示により、連携ワークフロー定義ＤＢ１１１から連携ワークフローの構成情報を取得し、ノード間に自動的に配置されている仮想中継ノードに帳票項目マッピング機能を追加する。マッピング機能に関しては、後述する図１９に示す。
【００９４】
また、仮想中継ノード制御部１０６は、連携ワークフロー定義ＤＢ１１１の定義より仮想中継ノードに追加された機能（外部システムとの送受信機能（データのやりとり）やプロセスの分岐機能、帳票のデータの演算機能など）を実行制御する。
【００９５】
なお、外部システムとのデータのやりとりは、本実施形態ではＸＭＬを利用して行っている。Ｗｅｂサービス用のＸＭＬの記述例を図１４に示す。なお、本発明は、ＸＭＬ以外にもＣＳＶなど様々な形式で外部システムとのデータのやりとりに対応しており、この形式に限定されるものではない。
【００９６】
図１４は、本発明のワークフローシステムにおける外部システムとのデータ送受信機能の一例を示すＸＭＬデータの構成を示す模式図である。
【００９７】
なお、このＸＭＬデータは、対応する仮想中継ノードに紐付けられてサーバ１０４の外部記憶装置に格納されているものとする。
【００９８】
＜ワークフローの進行管理＞
ワークフロー制御部１０５は、プロセス定義ＤＢ１０８や連携ワークフロー定義ＤＢ１１１を参照しタスクが次に進むべきノードを検索し、タスクの遷移を行う。プロセスが既存のプロセスを組み合わせて構築された連携ワークフローであった場合、ワークフロー制御部１０５は、連携ワークフロー制御部１１２により再構成された連携ワークフローの定義と仮想中継ノードの処理定義（図１０示した連携ワークフロープロセス定義）を受け取り、ワークフローの処理を実行する。
【００９９】
以下、図１５，図１６を参照して、本発明のワークフローシステムのワークフロープロセス全体の流れを説明する。
【０１００】
図１５は、本発明のワークフローシステムにおける帳票選択画面の一例を示す模式図であり、クライアント１０２のユーザインタフェース１０３によりクライアント１０２のモニタに表示される。
【０１０１】
本実施形態では、クライアント１０２のモニタに表示される図１５に示すような画面からユーザが処理したい帳票を選択する。
【０１０２】
帳票は、連携ワークフローを使用した帳票と使用しない帳票を起票する処理と、既に起票された帳票に対し承認などの処理を行う承認処理がある。
【０１０３】
図１５において、２００１は起票処理を行う場合に、起票する帳票の種類を選択するための起票処理選択欄である。２００２は起票された帳票に対して承認処理等を行う場合に、処理を選択するための承認処理選択欄である。
【０１０４】
以下、図１６のフローチャートを用いて起票処理を行う場合について説明する。
【０１０５】
図１６は、本発明のワークフローシステムにおける第１の制御処理の一例を示すフローチャートである。なお、図中、Ｓ１９０１〜Ｓ１９１０はサーバ１０４側のステップに対応し、サーバ１０４のＣＰＵが外部記憶装置等に格納されるプログラムをＲＡＭ上にロードして実行することにより実現される。なお、このフローチャートの実行前に、図１３に示した連携ワークフロー定義ＤＢ１１１の情報が作成され、連携ワークフロー定義ＤＢ１１１に格納されているものとする。
【０１０６】
まず、ステップＳ１９０１において、ワークフロー制御部１０５（サーバ１０４のＣＰＵにより実行されるワークフロー制御部）は、ユーザインタフェース１０３（クライアント１０２のＣＰＵにより実行されるユーザインタフェース１０３）で起票処理として入力された帳票データを、ユーザインタフェース１０３から受け取り、ステップＳ１９０２において、ワークフロー制御部１０５は、ユーザインタフェース１０３から受け取った帳票データにルートＩＤが定義されているか否かを判定する。
【０１０７】
ステップＳ１９０２で、ワークフロー制御部１０５が、ユーザインタフェース１０３から受け取った帳票データ内にルートＩＤが定義されていないと判定した場合には、ステップＳ１９０３において、ユーザインタフェース１０３から受け取った帳票データに定義されているシステムＩＤに基づいて、プロセス定義ＤＢ１０８の情報（図９に示したプロセス定義情報）を読み込み、ステップＳ１９０５に処理を進める。
【０１０８】
一方、ステップＳ１９０２で、ワークフロー制御部１０５が、ユーザインタフェース１０３から受け取った帳票データ内にルートＩＤが定義されていると判定した場合には、ステップＳ１９０４において、ワークフロー制御部１０５は、連携ワークフロー生成処理（後述する図１７に示す）を連携ワークフロー制御部１１２に実行させ、ステップＳ１９０５に処理を進める。
【０１０９】
次に、ステップＳ１９０５において、ワークフロー制御部１０５は、ステップＳ１９０３で取得したプロセス定義情報（図９）、又は、ステップＳ１９０４で生成した連携ワークフロープロセス定義情報（図１０）内の帳票項目の表示項目の情報（列９以降）を読み込む。これによりユーザが操作する画面に帳票のどの項目を表示するかを制御する。なお、連携ワークフローの場合、異なるワークフローの帳票データが入り交じるため、画面表示制御により不必要なデータを表示しないための機能となる。また、カレントのノードの列８のＷＳＰ−ＩＤに仮想中継ノードＩＤが格納されているノード（即ち仮想中継ノード）の場合には、ワークフロー制御部１０５は、ユーザインタフェース１０３への画面表示は行わないように制御する。
【０１１０】
次に、ステップＳ１９０６において、ワークフロー制御部１０５は、ステップＳ１９０３で取得したプロセス定義情報（図９）、又は、ステップＳ１９０４で生成した連携ワークフロープロセス定義情報（図１０）の処理内容の定義をもとにワークフローの処理を行う。なお、カレントのノードが仮想中継ノードの場合には、仮想中継ノード制御部１０６に仮想中継ノードの制御処理を実行させる。
【０１１１】
そして、ステップＳ１９０６の処理が終了したら、ステップＳ１９０７において、ワークフロー制御部１０５は、処理内容を帳票データＤＢ１０７に反映する。なお、連携ワークフローで且つカレントのノードが既存のワークフローのノードの場合には、処理内容のデータをサーバ１０４の外部記憶装置内に格納しておく。そして、この外部記憶装置内に格納されたデータは、次の仮想中継ノードに処理が移ったときに、該仮想中継ノード内で読み出され、その次のノードの項目に対応して変換されて、該その次のノードに渡されることとなる。また、連携ワークフローで且つカレントの仮想中継ノードの場合には、処理内容のデータを複数のワークフローの項目を統合する構成（図５の７０２）で、帳票データＤＢ１０７に反映する。
【０１１２】
次に、ステップＳ１９０８において、ワークフロー制御部１０５は、次の処理順位を、ステップＳ１９０３で取得したプロセス定義情報（図９）、又は、ステップＳ１９０４で生成した連携ワークフローのプロセス定義情報（図１０）から検索し情報（列６）を読み込む。
【０１１３】
次に、ステップＳ１９０９において、ワークフロー制御部１０５は、現在の処理が最終処理であるか否かを、ステップＳ１９０８で取得した処理順位の情報により判定し、最終処理でない（まだ、次の処理順位の情報があった）と判定した場合には、ステップＳ１９１０において、次のノードへの移行処理を行い、ステップＳ１９０５の処理に戻り、再び帳票の処理を行う。なお、次のノードが、他のシステム（システム２）に属する場合には、他のシステムに対して、データを渡して次のノードの処理を依頼し、他のシステムからの終了通知とデータの返信を待機する。
【０１１４】
一方、ステップＳ１９０９において、ワークフロー制御部１０５はが、現在の処理が最終処理である（次の処理順位の情報がなかった）と判定した場合には、そのまま処理を終了する。
【０１１５】
＜連携ワークフローの生成＞
以下、図１７，図１８を参照して、図１６のステップＳ１９０４の連携ワークフロー生成処理について説明する。
【０１１６】
図１７は、本発明のワークフローシステムにおける第２の制御処理の一例を示すフローチャートであり、連携ワークフロー生成処理に対応する。なお、図中、Ｓ４０１〜Ｓ４０３はサーバ１０４側のステップに対応し、サーバ１０４のＣＰＵが外部記憶装置等に格納されるプログラムをＲＡＭ上にロードして実行することにより実現される。
【０１１７】
まず、ステップＳ４０１において、連携ワークフロー制御部１１２（サーバ１０４のＣＰＵにより実行される連携ワークフロー制御部１１２）は、図１６のステップＳ１９０１でクライアント１０２から受け取った帳票データ内のルートＩＤをキーに、連携ワークフローの構成を定義した連携ワークフロー定義ＤＢ１１１（図１３）を検索し、連携ワークフローの構成情報を取得し、取得した情報をもとに連携ワークフローを構築し（プロセス定義ＤＢ１０８，ノードブロック定義ＤＢ１１０から取得した（他のシステムに属するプロセス定義，ノードブロック定義は他のシステムに要求して取得した）ノードの情報を、連携ワークフロー定義ＤＢ１１１の順序（列５）通りに並べた連携ワークフロープロセス定義を生成し）、サーバ１０４のＲＡＭ内に保持する。即ち、この連携ワークフロープロセス定義の情報には、まだ仮想中継ノードは含まれない。
【０１１８】
次に、ステップＳ４０２において、連携ワークフロー制御部１１２は、ステップＳ４０１で構築した連携ワークフローのノード間に、仮想中継ノードを配置するため、仮想中継ノード生成処理（後述する図１８に示す）を行い、連携ワークフローのプロセス定義情報（図１０）を生成し、サーバ１０４の外部記憶装置に格納する。
【０１１９】
そして、ステップＳ４０３において、連携ワークフロー制御部１１２は、ステップＳ４０２で生成した連携ワークフローを実行可能な形式に変換して（サーバ１０４の外部記憶装置から連携ワークフロープロセス定義を読み出し、ワークフロー制御部１０５で実行可能なようにサーバ１０４のＲＡＭ内に保持させる）、処理を終了する。
【０１２０】
＜仮想中継ノードの生成処理＞
本発明における仮想中継ノードは、本発明の連携ワークフローに含まれるノード間の帳票項目マッピング機能を有している。仮想中継ノードは、連携ワークフローが生成される過程でノード間に自動的に配置される（ユーザが意図的に配置することなくサーバ１０４により配置される）。
【０１２１】
また、仮想中継ノードには、帳票の種類や項目の値によって次に進むノードを自動的に選択する経路判定機能や、項目の値を演算する演算機能や、Ｗｅｂサービスとやりとりを可能とする機能などを付加することができる。
【０１２２】
以下、図１８のフローチャートを参照して、図１７のステップＳ４０２の仮想中継ノードの生成処理について説明する。
【０１２３】
図１８は、本発明のワークフローシステムにおける第３の制御処理の一例を示すフローチャートであり、図１７のステップＳ４０２の仮想中継ノード生成処理に対応する。なお、図中、Ｓ５０１〜Ｓ５１２はサーバ１０４側のステップに対応し、サーバ１０４のＣＰＵが外部記憶装置等に格納されるプログラムをＲＡＭ上にロードして実行することにより実現される。
【０１２４】
まず、ステップＳ５０１において、連携ワークフロー制御部１１２（サーバ１０４のＣＰＵにより実行される連携ワークフロー制御部１１２）は、図１７のステップＳ４０１で取得した連携ワークフロー定義ＤＢ１１１の情報を取得する。
【０１２５】
次に、ステップＳ５０２において、連携ワークフロー制御部１１２は、ステップＳ５０１で取得した連携ワークフロー定義ＤＢ１１１（図１３）の列３のノードＩＤの値を判定する。
【０１２６】
ステップＳ５０２で、連携ワークフロー制御部１１２が、ノードＩＤの値が「機能」と判定した場合（例えば、図１３の行７の場合）には、ステップＳ５０３において、連携ワークフロー制御部１１２は、連携ワークフロー定義ＤＢの列２のシステムＩＤから機能名（例えば、図１３の行７の場合「部品発注」）を取得し、この機能名をキーにして既存のワークフローのノードをノードブロックとして定義しているノードブロック定義ＤＢ１１０を検索し、該ノードブロックのノード構成を取得し、ステップＳ５０９に処理を移行させる。
【０１２７】
以下、ノードブロックのノード構成情報の取得手順について説明する。
【０１２８】
ノードブロックのノード構成情報の取得手順は、まず連携ワークフロー定義ＤＢ１１１の列２のシステムＩＤを取得する。システムＩＤには、ノードブロック定義ＤＢ１１１を検索するためのキーである機能名が定義されている。取得したシステムＩＤでノードブロック定義ＤＢ１１０（図１２）の列１の機能名を検索する。機能名には既存のワークフロー取得したノード情報が複数紐付いている。
【０１２９】
図１２の例では、部品発注という機能名で「Ｃ１」，「Ｃ２」，「Ｄ」というノードをまとめて管理している。列４の順番は、処理の順番を示しており、同位のものは並行して処理されることを示している。また、ノードブロック定義ＤＢで記述されているノードの処理はプロセス定義ＤＢに記述されており、列２のシステムＩＤと列３のノードＩＤでプロセス定義ＤＢを検索すればその定義を見つけることができる。ノードブロック定義ＤＢ１１０から取得した情報は、連携ワークフロー構築時にノード単位に分解され構築に使用される。
【０１３０】
以下、フローチャートの説明に戻る。
【０１３１】
また、ステップＳ５０２で、連携ワークフロー制御部１１２が、ノードＩＤの値が「機能」，「仮想中継ノード」以外が定義されていると判定した場合（即ち、ノードの情報が定義されている。例えば、図１３の行２，行３，行５，行６，行８，行９の場合）には、ステップＳ５０５において、連携ワークフロー定義ＤＢの列２のシステムＩＤと列３のノードＩＤからプロセス定義ＤＢ１０８のノード定義情報を取得し（他のシステムに属するノードのプロセス定義の場合には、他のシステムに依頼して取得し）、ステップＳ５０９に処理を移行させる。
【０１３２】
次に、ステップＳ５０９において、連携ワークフロー制御部１１２は、ステップＳ５０３又はステップＳ５０５で取得した情報から仮想中継ノードの情報（図１０のレコード構成と同様のデータ構成）を生成し、サーバ１０４のＲＡＭ内に保持し、ステップＳ５１０に処理を移行させる。なお、ここで生成される仮想中継ノードの情報は、プロセス定義情報と同一のデータ構成とし、項目の構成は、現ノード（ステップＳ５０２でノードＩＤを判定したノード）のシステムＩＤをキーにしてプロセス定義ＤＢから取得した現ノードのプロセス定義情報に対応するものとなる。
【０１３３】
なお、ここで生成される仮想中継ノードは、再構築されるプロセスに含まれるノード間に生成されるものであり、該生成される仮想中継ノードには、ノード間の帳票項目マッピング機能がデフォルトで付加される。
【０１３４】
また、ステップＳ５０２で、連携ワークフロー制御部１１２が、ノードＩＤの値が「仮想中継ノード」と判定した場合（例えば、図１３の行４，行１０の場合）には、ステップＳ５０４において、連携ワークフロー制御部１１２は、連携ワークフロー定義ＤＢの列２のシステムＩＤ，列４の付加機能から機能の種類，処理内容を取得し、ステップＳ５０６に処理を移行させる。なお、ノードＩＤの値に「仮想中継ノード」と設定されている場合、生成される仮想中継ノードにデフォルトで付与されている帳票項目マッピング機能の他に、帳票の経路の分岐や帳票項目の値の演算など新たな機能を追加する定義であることを示している。
【０１３５】
以下、この追加される機能について説明する。
【０１３６】
この追加される機能については、図１３の列２のシステムＩＤに機能の種類が設定され、列４の付加機能の項目に処理内容に関する定義が設定されており、これら二つの情報から追加機能が生成される。
【０１３７】
処理の種別は、Ｗｅｂサービスとのやりとりを行う機能を生成する「ＷＷＷ」や帳票の処理結果に応じて次に進むべきノードを自動的に選択する「分岐」や帳票の項目を演算する「演算」がある。
【０１３８】
処理内容の定義方法は以下の通りである。
【０１３９】
例えば、図１３の行４の定義ではシステムＩＤに「ＷＷＷ」と定義されている。これは外部のＷｅｂサービスとデータのやりとりをすることを示している。処理内容は、列４の付加機能に定義されており、「ｇｅｔＤａｔａ」という情報を取得する命令が記述され（ｗｗｗ.ｋａｗａｓｅ.ｎｅｔ，$為替）と引数が記述されている。これは、「ｗｗｗ.ｋａｗａｓｅ.ｎｅｔ」のサイトにアクセスし、得た情報を帳票の「＄為替」という帳票の項目に設定することを表している。
【０１４０】
また、行１０の定義ではシステムＩＤに「分岐」と定義されている。これは帳票の項目の値によって、タスクが次に行くノードを自動的に選択する機能が付与されることを示している。
【０１４１】
列４の処理内容には「ｉｆ」という命令が記述され引数として（（購入額＞５０００００），否認，承認）が記述されている。これは（購入額＞５０００００）という記述が項目の比較をしており、帳票の「購入額」という項目に設定されている値が「５０００００」より大きかった場合に真とし、そうでなかった場合は偽とすることを表している。次に、後ろに続く（否認，承認）という記述は、前述の条件比較で真だった場合は「否認」の処理を実行し、偽だった場合は「承認」の処理を行うことを示している。
【０１４２】
例えば、ノード「Ａ」−「仮想中継ノード」−ノード「Ｂ」という構成のプロセスの場合、仮想中継ノードで帳票の項目をチェックする。「５０００００」より大きい場合は自動的にノード「Ａ」に帳票が送り返される。小さかった場合はそのままノード「Ｂ」に進むというように、タスクの進むべきノードを自動的に選択できる。
【０１４３】
以下、フローチャートの説明に戻る。
【０１４４】
次に、ステップＳ５０６において、連携ワークフロー制御部１１２は、ステップＳ５０１で取得した連携ワークフロー定義ＤＢ（図１３）の列５の順番の値を判定し、順番の値が定義されていると判定した場合（例えば、図１３の行４の場合）には、テップＳ５０８において、連携ワークフロー制御部１１２は、ステップＳ５０４で取得した機能の種類，処理内容の情報から特定の仮想中継ノードに付与する追加機能を示す情報を生成し、対応する仮想中継ノード（列５の順番の値が１小さいノードに対応して生成された仮想中継ノード）に付与し（仮想中継ノードの情報の列５の「処理内容」に格納し）、ステップＳ５１０に処理を移行させる。
【０１４５】
一方、ステップＳ５０６で、サーバ１０４のＣＰＵが、ステップＳ５０１で取得した連携ワークフロー定義ＤＢ（図１３）の列５の順番の値に順番が定義されていないと判定した場合（例えば、図１３の行１０の場合）には、ステップＳ５０７において、サーバ１０４のＣＰＵは、ステップＳ５０４で取得した機能の種類，処理内容の情報に基づいて、帳票の項目に対して常に行う機能（全仮想中継ノードに付与する機能）の情報を生成し、ＲＡＭ内に保持し、ステップＳ５１０に進む。
【０１４６】
以下、ステップＳ５０７，Ｓ５０８で生成される追記機能について説明する。
【０１４７】
図１３に示した例では、行４のＷＷＷ取得の機能，分岐の機能が対象となる。ＷＷＷ取得の機能は、連携ワークフロー定義ＤＢ１１１の順位（列５）で「３」が設定されているので、順位で「２」を設定している行３の定義で、生成されるノードの次の仮想中継ノードに付与されることになる。一方、行１０の分岐の機能は、順位が設定されていないため、ステップＳ５０９で生成される仮想中継ノード全てに機能が付与されることになる。
【０１４８】
次に、ステップＳ５１０において、サーバ１０４のＣＰＵは、ステップＳ５０１で取得した連携ワークフロー定義ＤＢの全ての定義情報（レコード）に対してステップＳ５０２〜Ｓ５０９の処理を終了したか否かを判定し、まだ終了していないと判定した場合には、ステップＳ５０２の処理に戻り、一方、終了したと判定した場合には、ステップＳ５１１に処理に移行させる。
【０１４９】
次に、ステップＳ５１１において、サーバ１０４のＣＰＵは、ステップＳ５０７で生成した全仮想中継ノードに付与する機能（追加機能）がある場合には、該追加機能の情報をＲＡＭから読み出し、全ての仮想中継ノードに付与する（仮想中継ノードの情報の列５の「処理内容」に格納する）。
【０１５０】
次に、ステップＳ５１２において、サーバ１０４のＣＰＵは、図１７のステップＳ４０１で構築されサーバ１０４のＲＡＭ内に保持された連携ワークフローの情報（プロセス定義ＤＢとノードブロック定義ＤＢから取得したノードを連携ワークフロー定義ＤＢ１１１の順序（列５）通りに並べたのも）のノード間に仮想中継ノードの情報を連携ワークフロー定義ＤＢ１１１の順序（列５）通りに配置することにより、順序通りにノードと仮想中継ノードを並べ、サーバ１０４の外部記憶装置に格納し、処理を終了する。これにより、例えば、図１に示した１７１１のように、ノード間に仮想中継ノード（ＷＳＰ）が配置された連携ワークフローが構築される。
【０１５１】
この状態をテーブル形式で表したものが、図１０に示した連携ワークフロープロセス定義である。この連携ワークフロープロセス定義ＤＢの構成は、プロセス定義ＤＢ１０８と同じ構成になっており、処理の実行も同一のワークフローエンジンで可能となっている。なお、この連携ワークフロープロセス定義は、一時的に生成され、サーバ１０４の外部記憶装置上に記憶されるもので、帳票の処理が全て終了すると（図１６のステップＳ１９０９でＹＥＳの場合に）、ワークフロー制御部１０６により、サーバ１０４の外部記憶装置上から消去される。
【０１５２】
以下、図１９，図２０を参照して、図１６のステップＳ１９０６においてカレントのノードが仮想中継ノードの場合に仮想中継ノードの処理に一部として実行されるマッピング処理機能について説明する。このマッピング処理機能は、仮想中継ノードにデフォルトで付加されている機能であり、全ての仮想中継ノードの処理で実行される。
【０１５３】
図１９は、本発明のワークフローシステムにおける第４の制御処理の一例を示すフローチャートであり、図１６のステップＳ１９０６においてカレントのノードが仮想中継ノードの場合に仮想中継ノードの処理に一部として実行されるマッピング処理機能に対応する。なお、図中、Ｓ１７０１〜Ｓ１７０３はサーバ１０４側のステップに対応し、サーバ１０４のＣＰＵが外部記憶装置等に格納されるプログラムをＲＡＭ上にロードして実行することにより実現される。
【０１５４】
まず、連携ワークフロー上のノードから仮想中継ノードにタスクが移ると、処理が開始され、ステップＳ１７０１において、仮想中継ノード制御部１０６（サーバ１０４のＣＰＵで実行される仮想中継ノード制御部１０６）は、前ノード（現ノードである仮想中継ノードの前に帳票が処理されたノード）と、次ノード（帳票が次に移るノード）の情報（システムＩＤ）を連携ワークフロー定義ＤＢから取得し、該取得したシステムＩＤから帳票定義ＤＢを検索し、帳票項目の構成を取得する（他のシステムに属するノードの帳票定義は他のシステムに要求して取得する）。
【０１５５】
次に、ステップＳ１７０２において、仮想中継ノード制御部１０６は、ステップＳ１７０１で取得した前ノードと次ノードの帳票の構成情報を項目名で比較し、項目の構成に差異があるか否かを判定する。
【０１５６】
そして、ステップＳ１７０２で、仮想中継ノード制御部１０６が、前ノードと次ノードの帳票の項目の構成に差異があると判定した場合には、ステップＳ１７０３において、前ノードと次ノードの互いの帳票を項目名で統合する。これにより、帳票を次ノードに転送する際には、前ノードに含まれる項目で次ノードの帳票に含まれていない項目のデータについては取り除かれる。但し、次ノードの帳票に含まれていない項目についても値を保持し、保持した値は帳票データＤＢ１０７に保管され、適時使用される。即ち、帳票データＤＢ１０７には、前ノードの項目構成と次ノードの項目構成を包含するような項目構成（論理和となるような項目構成）で、データが保管されている。一方、前ノードに含まれていない項目で次ノードの帳票に含まれる項目のデータについては、帳票データＤＢ１０７から取得され、次ノードに転送される。
【０１５７】
一方、ステップＳ１７０２で、仮想中継ノード制御部１０６が、前ノードと次ノードの帳票の項目の構成に差異がないと判定した場合には、そのまま処理を終了する。これにより、帳票を次ノードに転送する際には、前ノードの帳票の項目構成となる。
【０１５８】
以上の帳票マッピング処理の状態を図２０に示す。
【０１５９】
図２０は、図１９に示した帳票マッピング処理状態を示す模式図である。
【０１６０】
例えば、図２０に示すように、帳票１の項目Ａ１６０１と帳票２の項目Ａ１６０２は、同じ項目名であるので、仮想中継ノード帳票の項目Ａ１６０３として統合する。項目Ｂに関しても同様である。
【０１６１】
また、帳票１と帳票２で項目名が異なる項目は、統合せずに、それぞれ独立して保持するようにする。
【０１６２】
例えば、帳票１，２には、項目Ｃ，Ｄがそれぞれ存在するが、これらは項目名が違うため結合できない。その場合、仮想中継ノード帳票は１６０７，１６０８の様に独立して値を保持することになる。そして、この方法で統合した帳票を仮想中継ノード帳票として帳票データＤＢに保存する。
【０１６３】
また、項目の変換ルールを定義したデータ（連携ワークフロー定義）を用意しておけば、上記の変換ルール以外の変換も可能である。例えば、名前の違う項目を同一の項目と見なして統合することが可能である。具体的には、連携ワークフロー定義情報の列２を「項目名同一視」，列３を「仮想中継ノード」，列４を「項目名１＝項目名２」，列５を未定義としたレコードを、連携ワークフロー定義情報に含める。
【０１６４】
＜実行例＞
以下、図１１を参照して、連携ワークフローの実行例について説明する。
【０１６５】
まず、既存のワークフローシステムとして図１１（ａ）のシステム１と、図１１（ｃ）のシステム２が存在する。
【０１６６】
システム１のプロセス定義ＤＢは図９に示してある。
【０１６７】
システム１のプロセス定義ＤＢでは、行がそれぞれのノードを定義しており、システム１のプロセス定義ＤＢは、行１が起票の処理を行い、行２が承認を行う。行３はやはり承認を行うが、列５の処理内容に示されているとおり、帳票の希望購入金額と購入額を比較して購入希望金額の方が大きかった場合に承認され、そうでなかった場合は否認される処理となる。
【０１６８】
また、システム２のプロセス定義ＤＢは図８に示してある。
【０１６９】
システム１のプロセス定義ＤＢでは、それぞれが起票と承認の役割を担っており、システム２のプロセス定義ＤＢは、行２のノードＢでは、列５の処理内容に単価入力，承認と定義されている。これは、帳票の単価項目にその値段を入力してから承認を行うことを示している。また、行５の列３の経路ＩＤの定義は、ノードＤがノードＣ１，Ｃ２の処理が終了してから実行されることを示している。
【０１７０】
図１１（ｂ）のワークフローは、上記図１１（ａ），図１１（ｃ）のシステム１，システム２を連携させて構築した連携ワークフローであり、この連携ワークフローのプロセス定義は、図１３に示した連携ワークフロー定義ＤＢで行っている。即ち、図１６のステップＳ１９０４の連携ワークフロー生成処理で図１３の連携ワークフロー定義ＤＢ１１１から生成されたものである。
【０１７１】
図１３の連携ワークフロー定義ＤＢ１１１の行２，５，６，８，９は、システム１のプロセス定義ＤＢ（図９）から対応するノード定義を取得して構成されている。図１３の連携ワークフロー定義ＤＢ１１１の行３は、システム２のプロセス定義ＤＢ（図８）から行２の定義を取得している。
【０１７２】
図１３の連携ワークフロー定義ＤＢ１１１の行７の定義は、列３のノードＩＤが機能と設定されているため図１２のノードブロック定義ＤＢから定義を取得している。
【０１７３】
ノードブロック定義ＤＢには、システム２のノードＣ１，Ｃ２，Ｄが１つの機能として定義されており、この情報からシステム２のプロセス定義ＤＢ（図８）の行３〜５の定義情報を取得している。この情報を連携ワークフロー定義ＤＢが受け取り、ノード単位に展開して連携ワークフローの構築を行う。
【０１７４】
図１１（ｃ）の１２１２が、ノードブロック定義ＤＢの機能を表したものであり、これを図１１（ｂ）の連携ワークフローに取り込んだものが１３１８である。
【０１７５】
また、図１３の連携ワークフロー定義ＤＢの行４で定義されている仮想中継ノードは、図１１（ｂ）の１３０４であり、１３０５のＷＷＷサービス（ｗｗｗ.ｋａｗａｓｅ.ｎｅｔ）からデータを受け取り、帳票の「$為替」の項目に受け取ったデータを設定する。
【０１７６】
図１３の連携ワークフロー定義ＤＢ１１１の連携ワークフロー定義の行１０で定義されている仮想中継ノードは、帳票の「購入額」という項目が「５０００００」より大きかった場合には、自動的に帳票を否認し前ノードに帳票を返す。一方、帳票の購入額という項目が「５０００００」より大きくなかった場合には、次のノードに進むことを許可する承認を行う。この判定機能は、図１１（ｂ）の中に存在する全ての仮想中継ノード（ＷＳＰ）に付与されている。
【０１７７】
また、仮想中継ノード（ＷＳＰ）は、図１１（ｂ）に示すように、全てのノード間に存在し、既存の帳票の定義に基づいて、データの互換を維持する機能を有している。
【０１７８】
このように生成された連携ワークフローで、帳票が処理されることで、異なるワークフローの業務処理を連携させ、効率的な業務を遂行することが可能となる。
【０１７９】
以上説明したように、複数のワークフローで定義されるノード定義情報（ノードブロックとして管理されるノード定義も含む）を組み合わせて連携ワークフローを構築する際、データ項目のマッピングを行う仮想中継ノードを、システムが自動で（ユーザに意識させることなく）追加することにより、仮想中継ノードが帳票項目の差を吸収するため、ユーザはノード間の帳票データの入出力を意識する必要なく、連携ワークフローを定義でき、連携ワークフローの定義作業の負担を軽減させることができる。
【０１８０】
また、連携ワークフローは、起票の度に、システムにより再構築されるので、既存のワークフローに仕様の変更があったとしても、再度連携ワークフローの定義を行う必要が無く、連携ワークフローの定義を再利用することができる。
【０１８１】
さらに既存のワークフローに含まれていない機能を要求された場合でも、その要求に沿った機能を仮想中継ノードに追加できるため、柔軟な業務処理を構築できる連携ワークフローを実現することができる。
【０１８２】
従って、既存ワークフローの定義を流用して連携ワークフローを構築する機能にあって、既存のワークフローに仕様変更があった場合でも、連携ワークフローの定義を変更することなく対応でき、従来の問題点（問題点１）を解決することができる。
【０１８３】
また、帳票の種類や項目の値による分岐機能，帳票項目の演算等の処理機能，判定機能，Ｗｅｂサービス等の外部システムとの連携を行う機能等を、既存のワークフローの定義を変更することなく連携ワークフローに組み込むことができ、従来の問題点（問題点２）を解決することができる。
【０１８４】
従って、現実に稼働する複数のワークフローからノードを抽出定義し、新たな業務プロセスを仮想的に再構成して連携ワークフローを実現することができる。
【０１８５】
なお、本実施形態では、システム１とシステム２の２つのワークフローを連携する場合を例にして説明したが、連携するワークフローは２つのシステムのみではなく、３つ以上のワークフローシステムを連携する構成も本発明に含まれるものである。この場合も、連携ワークフロー定義ＤＢ１１１の列２の「システムＩＤ」にシステム名を記載するだけで、上記２つのワークフローシステムの連携と全く同様に行うことができる。
【０１８６】
なお、本実施形態では、各ＤＢがサーバ１０４の外部記憶装置上に構築される場合について説明したが、記憶場所は限定されるものではなく、サーバ１０４がアクセス可能な記憶装置であればどのような記憶装置上に構成されてもよい。
【０１８７】
さらに、各ＤＢの各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０１８８】
なお、上述した実施形態の各変形例を組み合わせた構成も全て本発明に含まれるものである。
【０１８９】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１９０】
以下、図２１に示すメモリマップを参照して本発明に係るワークフローサーバで読み取り可能なデータ処理プログラムの構成について説明する。
【０１９１】
図２１は、本発明に係るワークフローサーバで読み取り可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【０１９２】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１９３】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１９４】
本実施形態における図１６，図１７，図１８，図１９に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１９５】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１９６】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１９７】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＤＶＤ−ＲＯＭ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ，シリコンディスク等を用いることができる。
【０１９８】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１９９】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２００】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０２０１】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ，データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【図面の簡単な説明】
【０２０２】
【図１】本発明の一実施形態を示すワークフローシステムを適用可能なシステム全体の構成を示す図である。
【図２】図１に示したワークフローシステムの連携ワークフロー概念を示す模式図である。
【図３】図１に示したクライアント，サーバに適用可能なコンピュータの構成の一例を示すブロック図である。
【図４】図１に示したシステムを機能的な視点から捉え、機能間のデータのやりとりを説明するブロック図である。
【図５】図２に示した帳票定義ＤＢのデータ構成を示すデータ構成図である。
【図６】図２に示した帳票データＤＢのデータ構成を示すデータ構成図である。
【図７】本発明のワークフローシステムにおける帳票の一例を示す模式図である。
【図８】図１に示したシステム１のプロセス定義ＤＢのデータ構成を示すデータ構成図である。
【図９】図１に示したシステム２のプロセス定義ＤＢのデータ構成を示すデータ構成図である。
【図１０】図２に示したサーバの外部記憶装置に一時的に記憶される連携ワークフロープロセス定義ＤＢのデータ構成を示すデータ構成図である。
【図１１】図８に示したシステム２のプロセス定義，図９に示したシステム１のプロセス定義情報，図１０に示した連携ワークフロープロセス定義をそれぞれプロセスマップ化した図である。
【図１２】図２に示したノードブロック定義ＤＢのデータ構成を示すデータ構成図である。
【図１３】図２に示した連携ワークフロー定義ＤＢのデータ構成を示すデータ構成図である。
【図１４】本発明のワークフローシステムにおける外部システムとのデータ送受信機能の一例を示すＸＭＬデータの構成を示す模式図である。
【図１５】本発明のワークフローシステムにおける帳票選択画面の一例を示す模式図である。
【図１６】本発明のワークフローシステムにおける第１の制御処理の一例を示すフローチャートである。
【図１７】本発明のワークフローシステムにおける第２の制御処理の一例を示すフローチャートである。
【図１８】本発明のワークフローシステムにおける第３の制御処理の一例を示すフローチャートである。
【図１９】本発明のワークフローシステムにおける第４の制御処理の一例を示すフローチャートである。
【図２０】図１９に示した帳票マッピング処理状態を示す模式図である。
【図２１】本発明に係るワークフローサーバで読み取り可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【符号の説明】
【０２０３】
１０１    ネットワーク
１０２    クライアント
１０３    ユーザインタフェース
１０４    サーバ
１０５    ワークフロー制御部
１０６    仮想中継ノード制御部
１０７    帳票データＤＢ
１０８    プロセス定義ＤＢ
１０９    帳票定義ＤＢ
１１０    ノードブロック定義ＤＢ
１１１    連携ワークフロー定義ＤＢ
１１２    連携ワークフロー制御部
【図１】
2006120040.tif 000003
【図２】
2006120040.tif 000004
【図３】
2006120040.tif 000005
【図４】
2006120040.tif 000006
【図５】
2006120040.tif 000007
【図６】
2006120040.tif 000008
【図７】
2006120040.tif 000009
【図８】
2006120040.tif 000010
【図９】
2006120040.tif 000011
【図１０】
2006120040.tif 000012
【図１１】
2006120040.tif 000013
【図１２】
2006120040.tif 000014
【図１３】
2006120040.tif 000015
【図１４】
2006120040.tif 000016
【図１５】
2006120040.tif 000017
【図１６】
2006120040.tif 000018
【図１７】
2006120040.tif 000019
【図１８】
2006120040.tif 000020
【図１９】
2006120040.tif 000021
【図２０】
2006120040.tif 000022
【図２１】
2006120040.tif 000023