(57)【要約】【課題】ワークフロー処理システムの開発効率の向上を可能とする。【解決手段】ユーザの端末から受信したデータに基づき、特定の伝票についてのワークフロープロセスにおける、状態と当該状態間の状態遷移とのいずれかであるポジションを特定するステップと、ポジションに関連する伝票のフォーム・データを取得するステップと、ワークフローの定義に基づき、特定されたポジションに関連してユーザにより指示させることの可能な状態遷移のデータを取得するステップと、少なくとも伝票のフォーム・データから電子フォーム表示用のデータを、状態遷移のデータからボタン表示用のデータを生成し、出力するステップとを含む。【選択図】  図１
2004295516.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの端末から受信したデータに基づき、特定の伝票についてのワークフロープロセスにおける、状態と当該状態間の状態遷移とのいずれかであるポジションを特定するポジション特定ステップと、
前記ポジションに関連する伝票のフォーム・データを取得し、記憶装置に格納する伝票フォーム・データ取得ステップと、
ワークフローの定義に基づき、特定された前記ポジションに関連して前記ユーザにより指示させることの可能な状態遷移のデータを取得し、記憶装置に格納する状態遷移データ取得ステップと、
少なくとも前記伝票のフォーム・データから電子フォーム表示用のデータを、前記状態遷移のデータからボタン表示用のデータを生成し、出力する表示用データ生成ステップと、を含み、コンピュータにより実行されるワークフロー処理方法。
【請求項２】
特定されたポジションが状態遷移である場合、少なくとも当該状態遷移と当該状態遷移に関連する伝票とにより特定されるプログラムを起動するプログラム起動ステップをさらに含み、
前記表示用データ生成ステップにおいて、前記プログラムからのデータをさらに用いて前記電子フォーム表示用のデータを生成することを特徴とする請求項１記載のワークフロー処理方法。
【請求項３】
前記ポジション特定ステップにおいて所定の状態遷移を特定した場合、当該特定の状態遷移の遷移前の状態に関連する前記電子フォームに入力されたデータ及び前記特定の状態遷移の遷移先の状態に関するデータを、ワークフロー実行制御情報として登録するステップと、をさらに含む請求項１又は２記載のワークフロー処理方法。
【請求項４】
前記ポジション特定ステップが、
前記ユーザの端末から特定のワークフロープロセスの識別データを受信した場合、前記特定のワークフロープロセスの識別データに基づき、対応するワークフロー実行制御情報を特定するステップと、
前記対応するワークフロー実行制御情報により現在の状態を特定するステップと、を含む請求項３記載のワークフロー処理方法。
【請求項５】
ユーザの端末から受信したデータに基づき、特定の伝票についてのワークフロープロセスにおける、状態と当該状態間の状態遷移とのいずれかであるポジションを特定するポジション特定ステップと、
前記ポジションに関連する伝票のフォーム・データを取得し、記憶装置に格納する伝票フォーム・データ取得ステップと、
ワークフローの定義に基づき、特定された前記ポジションに関連して前記ユーザにより指示させることの可能な状態遷移のデータを取得し、記憶装置に格納する状態遷移データ取得ステップと、
少なくとも前記伝票のフォーム・データから電子フォーム表示用のデータを、前記状態遷移のデータからボタン表示用のデータを生成し、出力する表示用データ生成ステップと、をコンピュータに実行させる、プログラム。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、ワークフローの処理技術に関する。
【０００２】
【従来の技術】
ワークフロー処理システムの開発には従来多大な労力が必要とされてきた。ワークフロー上取り扱われる伝票を表示する伝票画面の各フィールドは、伝票自体のワークフローの進行状況（現在地）に応じて、同一伝票内の同一フィールドであっても、入力フィールドや表示フィールドまたは非表示フィールドに変化し、更に入力フィールドのチェック・ロジック（フォーマット・チェック、マスタ・チェック、固有なビジネス・ロジックなど）や表示フィールドの表示ロジック（マスタ参照、計算ロジック、フォーマット変換ロジックなど）も変化する。
【０００３】
また、伝票画面でのワークフローのプログラミングも、同じくワークフローの進行状況及び定義されたワークフローに応じて、申請や可決／否決、差戻、取戻し他、ワークフローの進行状況（現在地）に応じてどのワークフロー機能（申請、可決などの、伝票画面に設けられたボタンなど）が有効であるのかを判定し、ユーザの操作により選ばれたワークフロー機能を実行してワークフローを進めてゆかなければならない。
【０００４】
このように、ワークフローの進行状況（現在地）に応じた伝票画面は、各ワークフロー定義におけるワークフローの進行状況（現在地）のバリエーションに対し、各伝票様式とのコンビネーションからなる相当数のバリエーションを有することになる。
【０００５】
このような状況において、伝票様式（伝票種類）毎に伝票フィールドのプログラミングと伝票画面でのワークフローのプログラミングとの整合を適切に行うため、開発分担は伝票様式（伝票種類）毎のワークフロー付き伝票画面となる。プログラム開発者は、ワークフロー付き伝票画面の開発においては、以下の事項を全て理解する必要があった。（１）画面デザイン、（２）ワークフロー制御、（３）伝票フィールドのロジック、（４）（１）乃至（３）の連携（ある伝票様式とそれが用いられるワークフロー定義におけるワークフローの進行状況（現在地）に応じたプログラミング。）従って、例えば、起票時点における（１ａ）伝票画面のデザイン、（２ａ）利用できるワークフロー機能（申請など）の判定とワークフロー実行、（３ａ）伝票の各入出力フィールドについてのロジック、及び（４ａ）（１ａ）乃至（３ａ）を連携させる為のプログラミングをプログラム開発者一人一人が行わなければならない。これでは、Ｎ人で開発しても開発期間の短縮ができないという問題があった。
【０００６】
また例えば特開２００１−１３４６８１号公報には、以下のような技術が開示されている。すなわち、電子帳票を処理するワークフロー上の作業者毎、実行できるアクションを定義する。各作業者が電子帳票を操作するに際し、操作画面上の帳票イメージに、その作業者に指定されたアクションに対応したボタンなどのオブジェクトが表示される。そのオブジェクトを操作することにより、そのアクションが実行される。現在処理しようとしているのがワークフロー上のどのノードか、また、そのノードに有効なものとして定義されているのはどのアクションか、処理の結果遷移した帳票の状態は、どのようになるかといった情報は、サーバー・プログラムにより、電子帳票がノードを移動する度に現在の帳票情報としてセットされる。クライアント・サービス・プログラムはこれに従って適切な表示を行う。この技術では、ボタンの生成方法については述べられているが、電子帳票との関連で、開発効率を向上させるための工夫については開示されていない。
【０００７】
【特許文献１】
特開２００１−１３４６８１号公報
【０００８】
【発明が解決しようとする課題】
以上のように、従来のワークフロー処理システムにおいては、伝票様式数分のワークフロー付き伝票画面を開発しなければならないため開発負担が大きく、プログラム開発者にとってはシステム理解に時間を要し、プログラム開発者の一人一人による逐次開発なので開発期間及び保守時間の短縮ができず、システムの一部変更時も全体の見直しが必要となるなど問題が多かった。これは、ワークフローの伝票回送制御と伝票画面のプログラミングとを混在させた開発方式を取らざるを得なかったことが、以上のような問題を生み出した大きな原因である。
【０００９】
従って、本発明の目的は、ワークフロー処理システムの開発・保守効率の向上を可能とするための技術を提供することである。
【００１０】
【課題を解決するための手段】
本発明に係るワークフロー処理方法は、ユーザの端末から受信したデータに基づき、特定の伝票についてのワークフロープロセスにおける、状態と当該状態間の状態遷移とのいずれかであるポジションを特定するポジション特定ステップと、ポジションに関連する伝票のフォーム・データを取得し、記憶装置に格納する伝票フォーム・データ取得ステップと、ワークフローの定義に基づき、特定されたポジションに関連してユーザにより指示させることの可能な状態遷移のデータを取得し、記憶装置に格納する状態遷移データ取得ステップと、少なくとも伝票のフォーム・データから電子フォーム表示用のデータを、状態遷移のデータからボタン表示用のデータを生成し、出力する表示用データ生成ステップとを含む。さらに、保守時においても修正を最小限度にすることが可能となる。
【００１１】
このように、特定されたポジションに関連する伝票のフォーム・データから電子フォーム表示用のデータを、ワークフローの定義に基づき且つユーザにより指示させることの可能な状態遷移のデータからボタン表示用のデータを生成するようにしているため、伝票のフォーム・データに関する開発作業とワークフローに関する開発作業とを分離することができるようになった。従って、開発の並列性が向上し、プログラム開発者一人一人の負担も減らすことができるようになる。
【００１２】
また、本発明において、特定されたポジションが状態遷移である場合、少なくとも当該状態遷移と当該状態遷移に関連する伝票とにより特定されるプログラムを起動するプログラム起動ステップをさらに含み、上で述べた表示用データ生成ステップにおいて、プログラムからのデータをさらに用いて電子フォーム表示用のデータを生成するようにすることも可能である。このように伝票及び状態遷移に関連して実行されるべきプログラムについても状態遷移に応じて起動されるようにしたため、電子フォーム表示用のデータからは分離して開発できるようになる。従って、開発の効率が向上している。
【００１３】
さらに、本発明において、上で述べたポジション特定ステップにおいて所定の状態遷移を特定した場合、当該特定の状態遷移の遷移前の状態に関連する電子フォームに入力されたデータ及び特定の状態遷移の遷移先の状態に関するデータを、ワークフロー実行制御情報として登録するステップとをさらに含むようにしてもよい。さらに、上で起動されたプログラムからの戻り値を登録するようにしても良い。ワークフローの定義情報とワークフロー実行制御情報にてワークフローの回送制御を行うようになっており、伝票のフォーム・データとは独立して処理される。
【００１４】
さらに、上で述べたポジション特定ステップが、ユーザの端末から特定のワークフロープロセスの識別データを受信した場合、特定のワークフロープロセスの識別データに基づき、対応するワークフロー実行制御情報を特定するステップと、対応するワークフロー実行制御情報により現在の状態を特定するステップとを含むようにしても良い。例えば、特定の権限を有するユーザが申請に対して承認を行う場合の処理である。
【００１５】
なお、上述の方法はプログラム及びコンピュータにて実施することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークなどを介してデジタル信号として配信される場合もある。尚、中間的な処理結果はメモリに一時保管される。
【００１６】
【発明の実施の形態】
本発明の一実施の形態に係るシステム概要図を図１に示す。例えばＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）であるネットワーク１には、例えばパーソナルコンピュータでウェブ（Ｗｅｂ）ブラウザ機能を有する１又は複数のユーザ端末３と、周知のＷｅｂサーバ機能５１を有し且つ本実施の形態における主要な処理を実施するワークフロー処理システム５とが接続されている。なお、ネットワーク１には、開発者又は保守担当者が操作し且つ例えばパーソナルコンピュータである開発者端末７が接続されている場合もある。
【００１７】
ワークフロー処理システム５は、ユーザ端末３からの要求に応じてＷｅｂページ・データ（ＨＴＭＬ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）ファイルと埋め込まれる画像ファイルなど）を生成しユーザ端末３に送信すると共にユーザ端末３からの入力データ等を受信して伝票コンテナ５３に出力するＷｅｂサーバ機能５１と、Ｗｅｂサーバ機能５１とデータのやり取りを行い且つ本実施の形態における主要な処理を実施する伝票コンテナ５３と、伝票コンテナ５３から参照される定義情報を格納した定義情報ＤＢ５５と、伝票コンテナ５３により起動され且つ所定の処理を実施するプログラムである複数のアクション部品５７と、従来から利用されている各種マスタファイルを管理し且つアクション部品５７とのデータのやり取りを行うバックグランドシステム５９と、個々のワークフロープロセス実行における制御情報であるワークフロー実行制御情報を格納するワークフロー実行制御情報格納部５８とを含む。
【００１８】
伝票コンテナ５３は、電子フォーム制御部５３１と、ワークフロー制御部５３２と、イベント制御部５３３と、ワークフローデータ処理部５３４とを含む。伝票コンテナ５３の詳細な処理については以下で説明する。また、バックグランドシステム５９は、所属マスタファイル５９１、社員マスタファイル５９３、各種業務マスタファイル５９５などを有している。なお、バックグランドシステム５９については従来のシステムと変わりないので、これ以上詳しく説明しない。
【００１９】
アクション部品５７は、プログラムであって、例えばＥＪＢ（Ｅｎｔｅｒｐｒｉｓｅ  Ｊａｖａ  Ｂｅａｎｓ：ＪａｖａはＳｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ社の商標）で構成されている。
【００２０】
図２に示すように、開発者端末７には、電子フォームデザイナ７１及び関連するプロパティ設定部７３とが含まれている。開発者は、開発者端末７を操作して、電子フォームデザイナ７１により電子伝票の画面デザインを、提供されるＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）に従って行う。電子伝票のフィールド名及び型などの属性情報については、プロパティ設定部７３により、各フィールドについて設定を行う。また、電子伝票全体についての属性情報についても、プロパティ設定部７３により設定する。電子フォームデザイナ７１により生成された画面デザインのデータ（フォーム・データ）と共に、各フィールド及び電子伝票全体についてプロパティ設定部７３により設定された電子フォーム定義５５１は、定義情報ＤＢ５５に登録され、伝票コンテナ５３により参照される。電子フォーム定義５５１の一例を図３に示す。図３に示したテーブルでは、伝票名の列３０１と、フィールド名の列３０２と、型の列３０３とを含み、電子伝票に設けられるフィールド毎に型等の属性情報を登録するようになっている。
【００２１】
また、プロパティ設定部７３により、当該電子伝票についてどのようなイベント（状態遷移）の際にどのようなアクション部品５７を起動してバックグランドシステム５９に対する処理を行うかということも規定する。図２では、イベント／アクションのタブを選択して、特定のフィールド（例えば残日数）について起動すべきアクション部品５７を規定するようになっている。但し、伝票全体についても起動すべきアクション部品５７を規定する。図２の例では、イベント入力部７３１においてイベントを特定し、アクション部品入力部７３２においてアクション部品を特定し、パラメタ項目名特定部７３３においてパラメタ項目名を特定し、パラメタ入力部７３４においてパラメタを特定する。なお、イベント入力部７３１は、イベント定義６０１から選択肢をコンボボックス形式で示すようになっている。イベント定義６０１の一例を図４に示す。図４に示したテーブルは、イベント名の列３１１と、説明の列３１２とを含み、本ワークフロー処理システム５において出現するイベントの一覧となっている。本実施の形態では、予め図４のようなイベント定義６０１を用意しておき、開発作業において参照するようになっている。イベント入力部７３１では、図４のイベント名の列３１１のデータにより、コンボボックスが構成される。
【００２２】
また、アクション部品入力部７３２は、業務ロジック部品定義６０２から選択肢をコンボボックス形式で示すようになっている。業務ロジック部品定義６０２の一例を図５に示す。図５に示したテーブルは、アクション部品名の列３２１と、パラメタ数の列３２３と当該パラメタ数に対応する数のパラメタ項目名の列３２４とを含む部品への入力情報の列３２２とを有しており、アクション部品毎にパラメタ数とデータを入力すべきパラメタ項目名とが規定されている。本実施の形態では、予め図５のような業務ロジック部品定義６０２を用意しておき、開発作業において参照するようになっている。また、アクション部品５７は、業務ロジック部品定義６０２に従って作成されており、アクション部品名に記されているような機能を実現するものである。アクション部品入力部７３２では、図５のアクション部品名３２１のデータにより、コンボボックスが構成される。なお、アクション部品入力部７３２において特定のアクション部品５７が選択されると、図５のパラメタ数の列３２３の値から当該特定のアクション部品５７についての列数が決定され、プロパティ設定部７３におけるパラメタ項目特定部７３３（図２）の表示が列方向に展開されるようになっている。「年次休暇残日数取得」についてはパラメタ数が１であるが、「年次休暇申請期間・日数チェック」についてはパラメタ数が２であるから、プロパティ設定部７３におけるパラメタ項目特定部７３３の表示が２列に自動的に展開される。
【００２３】
さらにパラメタ項目名特定部７３３については、アクション部品入力部７３２において選択されたアクション部品名に基づき業務ロジック部品定義６０２から自動的に指定される。例えば、「年次休暇残日数取得」についてはパラメタが１つであるから「対象年度」が自動的に指定される。「年次休暇申請期間・日数チェック」についてはパラメタ数が２であるから、プロパティ設定部７３における表示が２列に渡って「対象年度」と「申請期間」が指定される。
【００２４】
パラメタ入力部７３４については、図３において特定されている電子フォーム定義５５１に含まれるフィールド名のデータ及びシステム変数（％当年度など）を選択肢として、コンボボックス形式で提示するようになっている。
【００２５】
このようにプロパティ設定部７３により表示される画面に従って、イベント、アクション部品、パラメタ項目及びパラメタを特定して、項目ロジック指示定義５５２として登録する。項目ロジック指示定義５５２の一例を図６に示す。図６に示したテーブルは、伝票名の列３３１と、イベント名の列３３２と、フィールド名の列３３３と、アクション部品の列３３４と、パラメタ項目名とパラメータを含むパラメータ情報の列３３５とを含み、伝票及びイベントの組み合わせ毎にアクション部品が特定される。なお、フィールド名３３３の列には値が登録されない場合もあり、その場合には伝票全体としてアクション部品が規定される場合である。
【００２６】
このようにワークフローに関連するイベント定義６０１と業務ロジック部品定義６０２とがあれば、ワークフローのデータなしに電子伝票の開発を進めることができる。従って、開発効率を向上させることができる。また、保守においてもワークフローに影響を与えずに画面デザインを変更することも可能となる。
【００２７】
また、図７に示すように、開発者端末７には、ワークフロープロセス設定部７５も含まれており、開発者は、開発者端末７を操作して、ワークフロープロセス設定部７５によりワークフローの設計を、提供されるＧＵＩに従って行う。例えば、開始及び終了についての端子４０１と、ワークフロー内の状態を表すアクティビティ４０３と、端子４０１とアクティビティ４０３の間又はアクティビティ間の状態遷移を表すイベント４０２とを用いて、端子４０１とアクティビティ４０３とをイベント４０２で接続することにより、ワークフローは定義される。なお、イベント４０２については、イベント定義６０１（図４）において定義されているため、イベント名（例えば「起票」）を指定する際には、例えば右クリックすることによりイベント定義６０１に従った選択肢が提示され、選択できるようになっている。開発者は、ワークフロープロセス設定部７５により、ワークフロー処理システム５において取り扱う全てのワークフローについて定義を行って、ワークフロープロセス定義５５３として定義情報ＤＢ５５に登録する。図８にワークフロープロセス定義５５３のデータの一例を示す。図８に示したテーブルは、ワークフロープロセス名の列３４１と、アクティビティ名の列３４２と、イベント名の列３４３と、遷移先アクティビティ名の列３４４とを含み、各ワークフロープロセスについて、移動元のアクティビティからどのようなイベントでどの遷移先アクティビティに移行するかを特定している。一つのアクティビティから多数のアクティビティに遷移する場合もあるため、１つのワークフロープロセスであっても同一アクティビティについてのレコードが複数登録されている場合もある。
【００２８】
このようにワークフローを定義する際には、イベント定義６０１については参照するが、それ以外のデータを用いなくともよくなっている。従って、開発効率を向上させることができる。また、保守においても小規模なワークフローの変更は電子フォーム定義５５１に影響しない。
【００２９】
定義情報ＤＢ５５には、さらに伝票定義５５４が登録されている。伝票定義５５４の一例を図９に示す。図９に示したテーブルは、業務カテゴリ名の列３５１と、伝票名の列３５２と、フォーム名の列３５３と、ワークフロープロセス名の列３５４と、アクティビティ名の列３５５と、イベントの列３５６とを含む。例えば、特定のワークフロープロセスにおけるアクティビティ名が識別された場合や特定のワークフロープロセスにおけるイベント名が特定された場合、使用する電子伝票のフォーム・データを特定することができるようになる。
【００３０】
このように定義情報ＤＢ５５には、電子フォーム定義５５１と、項目ロジック指示定義５５２と、ワークフロープロセス定義５５３と、伝票定義５５４とが登録されており、伝票コンテナ５３は、これらの定義情報とアクション部品５７とワークフロー実行制御情報格納部５８に格納されたワークフロー実行制御情報を用いて処理を行うようになっている。
【００３１】
以下図１０乃至図１８を用いてワークフロー処理システム５の処理フローを説明する。なお、図１０の処理の前に、ユーザはワークフロー処理システム５に自らのユーザＩＤにてログインしているか又は他の方法にてユーザＩＤが特定されているものとする。まず、申請処理の処理フローについて説明する。ユーザは、ユーザ端末３を操作して、ワークフロー処理についてのメニューページにアクセスさせる（ステップＳ１）。ワークフロー処理システム５のＷｅｂサーバ機能５１は、ユーザ端末３からのアクセスに応じて、メニューページのデータをユーザ端末３に送信する（ステップＳ３）。ユーザ端末３は、ワークフロー処理システム５からメニューページ・データを受信し、表示装置に表示する（ステップＳ５）。ユーザは、メニューページに含まれる各種業務の各種伝票の中から、例えば「就業」カテゴリの「年次休暇申請」を選択し、クリックしたものとする。ユーザ端末３は、ユーザによる「年次休暇申請」の選択入力を受け付け（ステップＳ７）、当該「年次休暇申請」の選択データをワークフロー処理システム５に送信する（ステップＳ９）。ワークフロー処理システム５のＷｅｂサーバ機能５１は、ユーザ端末３から「年次休暇申請」の選択データを受信して一旦記憶装置に格納し（ステップＳ１１）、起票イベント処理を実施する（ステップＳ１３）。起票イベント処理については、図１１を用いて説明する。
【００３２】
ワークフロー処理システム５のＷｅｂサーバ機能５１は、上で述べたように「年次休暇申請」の選択データを受信すると、「年次休暇申請」の起票イベントとしてイベント制御部５３３に通知する（図１１：ステップＳ３１）。イベント制御部５３３は、Ｗｅｂサーバ機能５１から「年次休暇申請」の起票イベントを受信して一旦記憶装置に格納すると共に、電子フォーム制御部５３１とワークフロー制御部５３２に通知する（ステップＳ３３）。
【００３３】
電子フォーム制御部５３１は、イベント制御部５３３から「年次休暇申請」の起票イベントを受信し、一旦記憶装置に格納する（ステップＳ３５）。そして、伝票定義５５４（図９）を参照して、「年次休暇申請」に対応するフォーム名を特定し、当該フォーム名により電子フォーム定義５５１から対応するフォーム・データを抽出する（ステップＳ３７）。また、「年次休暇申請」の起票イベントに従って項目ロジック指示定義５５２を参照して、当該起票イベントに関係するアクション部品５７を特定し、当該アクション部品５７を起動する（ステップＳ３９）。なお、項目ロジック指示定義５５２にパラメータが規定されている場合には、当該パラメータのデータをアクション部品５７に出力する。そして、各アクション部品５７は、規定された処理を例えばバックスランドシステム５９に対して行う。例えば社員マスタファイル５９３に登録されている休暇残日数のデータを読み出すなどの処理を行う。
【００３４】
そして、電子フォーム制御部５３１は、アクション部品５７から戻り値を受信し（ステップＳ４１）、当該アクション部品５７からの戻り値と電子フォーム定義５５１から読み出したフォーム・データとを用いて、電子フォーム部のデータを生成し、一旦記憶装置に格納する（ステップＳ４３）。例えば図１２（ａ）に示すような画面のためのデータを生成する。図１２（ａ）の例では、年次休暇の取得期間の始期入力欄３６１と、年次休暇の取得期間の終期入力欄３６２と、アクション部品５７からの戻り値が埋め込まれている残日数表示欄３６３と、休暇理由選択コンボボックス３６４とが設けられている。このような電子フォーム部のデータが生成される。電子フォーム制御部５３１は、当該電子フォーム部のデータをＷｅｂサーバ機能５１に出力する（ステップＳ４５）。
【００３５】
ワークフロー制御部５３２は、イベント制御部５３３から「年次休暇申請」の起票イベントを受信し、一旦記憶装置に格納する（ステップＳ４７）。そして、ワークフロープロセス定義５５３（図８）を参照し、「年次休暇申請」の起票イベントの遷移先アクティビティを特定すると共に、当該遷移先アクティビティを遷移元とする次イベントのデータを抽出する（ステップＳ４９）。図８の例では「申請」イベントが抽出される。そして、当該次イベントのデータに基づきワークフロー部のデータを生成し、一旦記憶装置に格納する（ステップＳ５１）。例えば図１２（ｂ）に示すような画面のためのデータを生成する。図１２（ｂ）の例では、「申請」イベントが抽出されたので、申請ボタン３６５が設けられている。申請ボタン３６５は、「年次休暇申請」の申請イベントを発生させるためのボタンである。このようなワークフロー部のデータが生成される。ワークフロー制御部５３２は、当該ワークフロー部のデータをＷｅｂサーバ機能５１に出力する（ステップＳ５３）。
【００３６】
Ｗｅｂサーバ機能５１は、電子フォーム制御部５３１から電子フォーム部のデータを受信し、ワークフロー制御部５３２からワークフロー部のデータを受信し、一旦記憶装置に格納する（ステップＳ５５）。そして、図１０の処理に戻る。Ｗｅｂサーバ機能５１は、電子フォーム部のデータ及びワークフロー部のデータを用いて、申請フォーム・データを生成し、ユーザ端末３に送信する（ステップＳ１５）。ユーザ端末３は、ワークフロー処理システム５から申請フォーム・データを受信し、表示装置に表示する（ステップＳ１７）。例えば図１２（ｃ）のような画面が表示される。すなわち、上段には電子フォーム部３６６が、下段にはワークフロー部３６７が設けられている。上段と下段のレイアウトを逆転することも可能である。また、ワークフロー部３６７のボタンはボタンではなく、リンク等のクリック可能な他のものであってもよい。
【００３７】
ユーザは、図１２のような画面の場合には電子フォーム部３６６に休暇始期と休暇終期とを入力し、休暇理由を選択して、申請ボタンをクリックする。ユーザ端末３は、ユーザによる「年次休暇申請」の入力データ及び申請指示を受け付け（ステップＳ１９）、当該入力データ及び申請指示を表すデータをワークフロー処理システム５に送信する（ステップＳ２１）。ワークフロー処理システム５のＷｅｂサーバ機能５１は、ユーザ端末３から「年次休暇申請」の入力データ及び申請指示を表すデータを受信し、一旦記憶装置に格納する（ステップＳ２３）。
そして、申請イベント処理を実施する（ステップＳ２５）。
【００３８】
申請イベント処理については図１３を用いて説明する。ワークフロー処理システム５のＷｅｂサーバ機能５１は、「年次休暇申請」の入力データ及び申請指示を表すデータを、当該入力データ及び申請イベント発生としてイベント制御部５３３に通知する（図１３：ステップＳ６１）。イベント制御部５３３は、Ｗｅｂサーバ機能５１から「年次休暇申請」の入力データ及び申請イベント発生の通知を受信し、電子フォーム制御部５３１とワークフロー制御部５３２とに通知する（ステップＳ６３）。
【００３９】
電子フォーム制御部５３１は、イベント制御部５３３から「年次休暇申請」の入力データ及び申請イベント発生の通知を受信すると（ステップＳ６５）、項目ロジック指示定義５５２を参照し、当該申請イベントに関連するアクション部品５７を起動する（ステップＳ６７）。アクション部品５７には、「年次休暇申請」の入力データの少なくとも一部がパラメータとして渡される。起動されたアクション部品５７は、例えば取得始期及び取得終期に問題がないか確認するなど予め決められた処理を実施する。なお、図では示していないが、回送先の上司（承認者）のユーザＩＤについては申請者が申請時点で指定し、例えば「年次休暇申請」の入力データとして取り扱われるものとする。さらに、上司のメールアドレスを抽出し、承認の処理を行うため申請が上げられたことを通知するようにしても良い。そして、アクション部品５７は、処理結果に基づき戻り値を電子フォーム制御部５３１に出力する。電子フォーム制御部５３１は、アクション部品５７から戻り値を受信する（ステップＳ６９）。例えば「年次休暇申請」の入力データについて問題がない場合には、当該入力データ及びアクション部品５７からの戻り値などを、ワークフロー制御部５３２に出力する（ステップＳ７１）。なお、「年次休暇申請」の入力データについて所定の処理を実施する場合もある。
【００４０】
ワークフロー制御部５３２は、イベント制御部５３３から申請イベント発生の通知を受信すると（ステップＳ７７）、申請イベントに従ってワークフロープロセス定義５５３を参照し、遷移元アクティビティ名と遷移先アクティビティ名を特定する（ステップＳ７９）。そして、電子フォーム制御部５３１から「年次休暇申請」の入力データ等を受信し（ステップＳ８１）、ワークフロープロセス定義５５３から特定されたデータと共に登録用データとしてワークフローデータ処理部５３４に出力する（ステップＳ８３）。ワークフローデータ処理部５３４は、ワークフロー制御部５３２から登録用データを受信し（ステップＳ８５）、ワークフロー実行制御情報格納部５８に登録する。
【００４１】
ワークフロー実行制御情報の一例を図１４に示す。図１４（ａ）に示したテーブルは、１つの特定の伝票を処理するワークフロープロセスを特定するためのワークフロープロセスＩＤの列３７１と、アクティビティ名の列とイベント名の列とを含むワークフロー履歴の列３７２と、各ワークフロープロセスにつき現在の状態を示すための現在地アクティビティの列３７３と、伝票名の列３７４と、伝票内容の列３７５と、関連するユーザのユーザＩＤの列３７６とを含む。図１４（ａ）の例にも示すように、本実施の形態ではワークフロー実行制御情報としては、同一ワークフロープロセスＩＤにつき複数のレコードが登録され、現在地アクティビティの列３７３におけるフラグにて、最新状態を表すレコードを特定するようになっている。すなわち、最新のレコード以外のレコードの現在地アクティビティの列３７３のフラグはＯＦＦとなっている。
【００４２】
申請イベントの際には、起票イベントにおいてワークフロープロセス定義５５３に登録を行わないため、ワークフロープロセスＩＤを発行し、ワークフロープロセスＩＤの列３７１に登録する。そして、ワークフロー履歴の列３７２に、遷移元のアクティビティ名として「申請」及び発生イベント名として「申請」を登録する。また、伝票名の列３７４に「年次休暇申請」を登録し、伝票内容の列３７５に「年次休暇申請」の伝票データを登録する。さらに、申請者のユーザＩＤをユーザＩＤの列３７６に登録する。上でも述べたが、起票イベントの際にワークフロープロセス定義５５３に登録を行わないので、さらにもう１つのレコードを登録する。そのレコードには、遷移先のアクティビティ（承認１）と、現在地アクティビティのＯＮフラグ（図１４（ａ）では丸印）と、伝票名（年次休暇申請）と、ユーザＩＤ（上司のユーザＩＤ）とが含まれる。それ以外のデータについては次のイベントが発生した際に登録する。ここまで処理を実行するとワークフロー実行制御情報は図１４（ａ）の状態になる。
【００４３】
ワークフローデータ処理部５３４は、処理が終了すると、処理終了通知をワークフロー制御部５３２に通知する（ステップＳ８７）。ワークフロー制御部５３２は、ワークフローデータ処理部５３４から処理終了通知を受信すると、さらにＷｅｂサーバ機能５１に通知する（ステップＳ８９）。なお、申請イベント発生時には、申請者に対して続けて何からのイベントを発生させるためのボタンを提示することはないので、ワークフロー部のデータを生成することはない。但し、ボタンを含まないワークフロー部のデータを生成し、Ｗｅｂサーバ機能５１に出力するようにしてもよい。
【００４４】
一方、電子フォーム制御部５３１は、アクション部品５７による戻り値において問題がなければ、例えば「申請は終了しました」という内容や「＊＊＊＊という内容で申請は終了しました」といった電子フォーム部のデータを生成する。なお、申請イベント発生時に用いる電子フォーム定義５５１を規定しておき、伝票定義５５４を参照して、当該電子フォーム定義５５１を特定するようにしても良い。そして、電子フォーム制御部５３１は、生成した電子フォーム部のデータを、Ｗｅｂサーバ機能５１に出力する（ステップＳ７５）。そして、Ｗｅｂサーバ機能５１は、電子フォーム制御部５３１から電子フォーム部のデータを受信する（ステップＳ９１）。また、Ｗｅｂサーバ機能５１は、ワークフロー制御部５３２から処理終了通知も受信する。
【００４５】
なお、アクション部品５７からの戻り値が適切でない申請であることを表す値である場合には、電子フォーム制御部５３１の処理は中断され、処理はステップＳ１５（図１０）に移行する。また、アクション部品５７からの戻り値が適切でない申請であることを表す値である場合には、電子フォーム制御部５３１はステップＳ７１で、ワークフロー制御部５３２に対してステップＳ１５（図１０）に移行する旨のデータを出力する。そうするとワークフロー制御部５３２の処理は中断され、処理はステップＳ１５（図１０）に移行する。そして、Ｗｅｂサーバ機能５１は、保持している申請フォーム・データをユーザ端末３に送信する。
【００４６】
図１０の処理に戻って、Ｗｅｂサーバ機能部５１は、受信した電子フォーム部のデータ（場合によってはボタンのないワークフロー部のデータ）を用いて申請受け付け通知ページのデータを生成し、ユーザ端末３に送信する（ステップＳ２７）。ユーザ端末３は、ワークフロー処理システム５から申請受け付け通知ページ・データを受信し、表示装置に表示する（ステップＳ２９）。
【００４７】
このようにしてユーザは「年次休暇申請」を行うことができる。但し、年次休暇申請だけではなく、他の申請処理についても同様の処理にて行われる。上で述べたように、電子フォーム定義５５１及び項目ロジック指示定義５５２と、アクション部品５７と、ワークフロープロセス定義５５３とは別々に開発されるが、伝票コンテナ５３がこれらを有機的に結びつけて処理を実施するため、ユーザは何らの問題を感じることなく申請などの処理を行うことができるようになる。なお、伝票コンテナ５３においても、ワークフロープロセス定義５５３に関連する処理と、電子フォーム定義５５１及び項目ロジック指示定義５５２に関連する処理とはほぼ分離されているが、全体としてはユーザ所望の伝票についてのワークフロープロセス定義５５３に従った処理がなされるようになっている。
【００４８】
次に、図１５乃至図１７を用いて承認処理の処理フローについて説明する。なお、ここでもログインなどによりワークフロー処理システム５はユーザＩＤを既に把握済みであるものとする。例えば、承認権限のあるユーザがユーザ端末３を操作し、承認処理を行うための承認ページへアクセスさせる（ステップＳ１０１）。ワークフロー処理システム５のＷｅｂサーバ機能５１は、ユーザ端末３から承認ページへのアクセスを受信すると（ステップＳ１０３）、伝票コンテナ５３のワークフロー制御部５３２に対してログインＩＤを含む、承認についての照会要求を出力する。
【００４９】
ワークフロー制御部５３２は、ログインＩＤを含む、承認についての照会要求を受信すると、ワークフローデータ処理部５３４に出力する。ワークフローデータ処理部５３４は、ログインＩＤを検索キーとしてワークフロー実行制御情報格納部５８を検索し、現在地アクティビティの列３７３にＯＮのフラグがセットされているレコードであってログインＩＤがユーザＩＤとして登録されており且つ現在のアクティビティが「承認」となっているレコードを特定する。そして、当該特定されたレコードについてのワークフロープロセスのデータを読み出す（ステップＳ１０５）。読み出されるワークフロープロセスのデータは、例えばワークフロープロセスＩＤ、伝票名、申請を行ったユーザのユーザＩＤなどである。場合によっては、他のデータベースからユーザＩＤに対応するユーザ名などを抽出する場合もある。このワークフロープロセスのデータは、ワークフロー制御部５３２に出力される。ワークフロープロセス制御部５３２は、Ｗｅｂサーバ機能５１に、ワークフロープロセスのデータを出力する。そして、Ｗｅｂサーバ機能５１は、ワークフロープロセスのデータをワークフロー制御部５３２から受信すると、ワークフロープロセスＩＤや伝票名などのデータを含む承認対象選択メニューページのデータを生成し、ユーザ端末３に送信する（ステップＳ１０７）。
ユーザ端末３は、ワークフロー処理システム５から承認対象選択メニューページのデータを受信し、表示装置に表示する（ステップＳ１０９）。
【００５０】
ユーザは、当該承認対象選択メニューの内容を見て、いずれの伝票（ワークフロープロセス）を処理するのか判断する。そして、いずれか１つの伝票（ワークフロープロセス）を選択し、当該伝票に対応するボタンなどをクリックする。ユーザ端末３は、ユーザからの承認対象選択入力を受け付け（ステップＳ１１１）、承認対象選択データ（ワークフロープロセスＩＤ）をワークフロー処理システム５に送信する（ステップＳ１１３）。ワークフロー処理システム５のＷｅｂサーバ機能５１は、承認対象選択データ（ワークフロープロセスＩＤ）をユーザ端末３から受信し、一旦記憶装置に格納する（ステップＳ１１５）。そして、承認アクティビティ開始処理を実施する（ステップＳ１１７）。
【００５１】
承認アクティビティ開始処理については図１６を用いて説明する。Ｗｅｂサーバ機能５１は、受信した承認対象ワークフロープロセスＩＤをイベント制御部５３３に出力する（ステップＳ１４１）。イベント制御部５３３は、Ｗｅｂサーバ機能５１から承認対象ワークフロープロセスＩＤを受信すると、電子フォーム制御部５３１とワークフロー制御部５３２とに当該承認対象ワークフロープロセスＩＤを通知する（ステップＳ１４３）。電子フォーム制御部５３１は、イベント制御部５３３から承認対象ワークフロープロセスＩＤを受信する（ステップＳ１４５）。ワークフロー制御部５３２は、イベント制御部５３３から承認対象ワークフロープロセスＩＤを受信し（ステップＳ１４７）、ワークフローデータ処理部５３４に出力する（ステップＳ１４８）。ワークフローデータ処理部５３４は、ワークフロー制御部５３２から承認対象ワークフロープロセスＩＤを受信すると（ステップＳ１４９）、ワークフロー実行制御情報格納部５８を当該承認対象ワークフロープロセスＩＤで検索し、関連データを抽出し、ワークフロー制御部５３２に出力する（ステップＳ１５１）。関連データは、例えば現在のアクティビティ名、ワークフロープロセス名、以前のイベントにより登録された伝票の内容などである。
【００５２】
ワークフロー制御部５３２は、ワークフローデータ処理部５３４から承認対象ワークフロープロセスＩＤに対応するワークフロー実行制御情報の関連データを受信すると、さらに電子フォーム制御部５３１に出力する（ステップＳ１５３）。電子フォーム制御部５３１は、承認対象ワークフロープロセスＩＤに対応するワークフロー実行制御情報の関連データを受信する（ステップＳ１５５）。そして、当該受信したデータに含まれるワークフロープロセス名及び現在アクティビティ名に基づき伝票定義５５４を参照し、対応する電子フォーム定義５５１を特定する（ステップＳ１５７）。当該電子フォーム定義５５１及びワークフロー制御部５３２から受信したデータ（例えば以前の伝票の内容など）を用いて、電子フォーム部のデータを生成し、一旦記憶装置に格納する（ステップＳ１５９）。
最後に、電子フォーム制御部５３１は電子フォーム部のデータをＷｅｂサーバ機能５１に出力する（ステップＳ１６１）。
【００５３】
ワークフロー制御部５３２は、承認対象ワークフロープロセスＩＤに対応するワークフロー実行制御情報の関連データに含まれるワークフロー名及び現在アクティビティ名に基づきワークフロープロセス定義５５３を参照し、現在アクティビティから発生し得るイベント（次イベント）の情報を特定する（ステップＳ１６３）。そして、当該次イベントの情報を用いてワークフロー部のデータを生成し、一旦記憶装置に格納する（ステップＳ１６５）。そして、生成したワークフロー部のデータをＷｅｂサーバ機能５１に出力する（ステップＳ１６７）。
【００５４】
Ｗｅｂサーバ機能５１は、電子フォーム制御部５３１から電子フォーム部のデータを、ワークフロー制御部５３２からワークフロー部のデータを受信する（ステップＳ１６９）。例えば、「可決」のボタンと「否決」のボタンとを表示するためのデータが生成される。
【００５５】
図１５の処理に戻って、Ｗｅｂサーバ機能５１は、受信した電子フォーム部のデータ及びワークフロー部のデータを用いて、承認指示ページ・データを生成し、ユーザ端末３に送信する（ステップＳ１１９）。ユーザ端末３は、ワークフロー処理システム５から承認指示ページ・データを受信し、表示装置に表示する（ステップＳ１２１）。
【００５６】
ユーザは、当該承認指示ページを参照して、承認すべきか判断する。承認すべきと判断した場合には承認すべき理由などを入力の後「可決」ボタンをクリックし、承認すべきではないと判断した場合には否決理由などを入力して「否決」ボタンをクリックする。理由の入力については行わない場合もある。また、別のデータを入力しなければならない場合もある。ユーザ端末３は、ユーザによる入力データ及び指示入力を受け付け（ステップＳ１２３）、当該入力データ及び指示入力をワークフロー処理システム５に送信する（ステップＳ１２５）。
【００５７】
ワークフロー処理システム５のＷｅｂサーバ機能５１は、ユーザ端末３から承認指示ページにおける入力データ及び指示入力のデータを受信し、一旦記憶装置に格納する（ステップＳ１２７）。そして、指示入力イベント処理を実施する（ステップＳ１２９）。この指示入力イベント処理については図１７を用いて説明する。
【００５８】
ワークフロー処理システム５のＷｅｂサーバ機能５１は、承認指示ページにおける入力データ及び指示入力のデータを、当該入力データ及び指示入力イベント発生（例えば「可決」イベント又は「否決」イベント（場合によっては「差戻」イベント））としてイベント制御部５３３に通知する（図１７：ステップＳ１７１）。イベント制御部５３３は、Ｗｅｂサーバ機能５１から承認指示ページの入力データ及び指示入力イベント発生の通知を受信し、電子フォーム制御部５３１とワークフロー制御部５３２とに通知する（ステップＳ１７３）。
【００５９】
電子フォーム制御部５３１は、イベント制御部５３３から承認指示ページにおける入力データ及び指示入力イベント発生の通知を受信すると（ステップＳ１７５）、項目ロジック指示定義５５２を参照し、当該指示入力イベントに関連するアクション部品５７を起動する（ステップＳ１７７）。アクション部品５７には、承認指示ページにおける入力データの少なくとも一部がパラメータとして渡される場合もある。起動されたアクション部品５７は、例えば再度承認権限を確認するなど予め決められた処理を実施する。また、さらに上位の承認者のユーザＩＤをバックグランドシステム５９の所属マスタファイル５９１から読み出すといった処理が含まれる場合もある。さらに、更に上位の承認者のメールアドレスを抽出し、通知を行うようにしても良い。そして、アクション部品５７は、処理結果に基づき戻り値を電子フォーム制御部５３１に出力する。電子フォーム制御部５３１は、アクション部品５７から戻り値を受信する（ステップＳ１７９）。例えば指示入力イベントに問題がない場合には、当該承認指示ページにおける入力データ及びアクション部品５７からの戻り値などを、ワークフロー制御部５３２に出力する（ステップＳ１８１）。なお、承認指示ページにおける入力データについて所定の処理を実施する場合もある。
【００６０】
ワークフロー制御部５３２は、イベント制御部５３３から指示入力イベント発生の通知を受信すると（ステップＳ１８５）、指示入力イベントに従ってワークフロープロセス定義５５３を参照し、遷移元アクティビティ名と遷移先アクティビティ名を特定する（ステップＳ１８７）。そして、電子フォーム制御部５３１から承認指示ページにおける入力データ等を受信し（ステップＳ１８９）、ワークフロープロセス定義５５３から特定されたデータと共に登録用データとしてワークフローデータ処理部５３４に出力する（ステップＳ１９１）。ワークフローデータ処理部５３４は、ワークフロー制御部５３２から登録用データを受信し（ステップＳ１９３）、ワークフロー実行制御情報格納部５８に登録する。
【００６１】
ワークフロー実行制御情報格納部５８への登録を、図１４（ａ）及び図１４（ｂ）を用いて説明する。現在地アクティビティの列３７３（図１４（ａ））においてＯＮフラグがセットされているのは、ワークフロープロセスＩＤが００００１で、アクティビティ名が「承認１」の行である。遷移元アクティビティ名「承認」を確認の上、「可決」イベントであれば、イベント名の列に「可決」を登録し、伝票内容の列３７５に承認指示ページにおける入力データを承認１伝票データとして登録する。「否決」イベントでも同じである。さらに、遷移先アクティビティを登録するため、新たな行を生成して、ワークフロープロセスＩＤの列３７１に「００００１」を、ワークフロー履歴の列３７２のアクティビティ名の列に「承認２」を、現在地アクティビティの列３７３にＯＮフラグを、伝票名の列３７４に「年次休暇申請」を、そしてユーザＩＤの列３７６に上位の承認者のユーザＩＤを登録する。この際アクティビティ名「承認１」でイベント名「可決」の行における現在地アクティビティのＯＮフラグをリセットする。ここまで処理を実行するとワークフロー実行制御情報は図１４（ｂ）の状態になる。「否決」イベントの場合には、遷移先アクティビティは「申請」であり、ユーザＩＤの列３７６に申請者のユーザＩＤを登録する。なお、例えば「承認２」で「否決」とされた場合の状態を図１４（ｃ）に示す。図１４（ｃ）では、アクティビティ名「承認２」の行において、イベント名の列に「否決」が登録され、伝票内容の列３７５に承認指示頁における入力データを承認２伝票データとして登録する。例えば否決の理由などのデータが含まれる。そして、当該アクティビティ名「承認２」の行における現在地アクティビティのＯＮフラグをリセットし、アクティビティ名「申請」の行を新たに追加する。このアクティビティ名「申請」の行には、伝票名の列３７４に「年次休暇申請」が、そしてユーザＩＤの列３７６に申請者のユーザＩＤが登録される。そして、当該行の現在地アクティビティの列に、ＯＮフラグがセットされる。
【００６２】
ワークフローデータ処理部５３４は、処理が終了すると、処理終了通知をワークフロー制御部５３２に通知する（ステップＳ１９５）。ワークフロー制御部５３２は、ワークフローデータ処理部５３４から処理終了通知を受信すると、Ｗｅｂサーバ機能５１に通知する（ステップＳ１９７）。なお、「可決」イベント発生時には、今回の承認者に対して続けて何からのイベントを発生させるためのボタンを提示することはないので、ワークフロー部のデータを生成することはない。但し、ボタンを含まないワークフロー部のデータを生成し、Ｗｅｂサーバ機能５１に出力するようにしてもよい。
【００６３】
一方、電子フォーム制御部５３１は、アクション部品５７による戻り値において問題がなければ、例えば「「可決」は登録されました」という内容や「＊＊＊＊という理由で「可決」されました」といった電子フォーム部のデータを生成する。なお、可決イベント発生時に用いる電子フォーム定義５５１を規定しておき、伝票定義５５４を参照して、当該電子フォーム定義５５１を特定するようにしても良い。そして、電子フォーム制御部５３１は、生成した電子フォーム部のデータを、Ｗｅｂサーバ機能５１に出力する（ステップＳ１８３）。そして、Ｗｅｂサーバ機能５１は、電子フォーム制御部５３１から電子フォーム部のデータを受信する（ステップＳ１９９）。Ｗｅｂサーバ機能５１は、ワークフロー制御部５３２から処理終了通知を受信する。
【００６４】
なお、アクション部品５７からの戻り値が問題が発生したこと又は問題を検出したことを表す値である場合には、電子フォーム制御部５３１の処理を中断し、処理はステップＳ１１９（図１５）に移行する。また、アクション部品５７からの戻り値が適切でないことを表す値である場合には、電子フォーム制御部５３１はステップＳ１８１において、ステップＳ１１９（図１５）に移行する旨のデータをワークフロー制御部５３２に出力する。そうするとワークフロー制御部５３２の処理は中断され、処理はステップＳ１１９に移行する。
【００６５】
図１５の処理に戻って、Ｗｅｂサーバ機能部５１は、受信した電子フォーム部のデータ（場合によってはボタンのないワークフロー部のデータ）を用いて指示完了通知ページのデータを生成し、ユーザ端末３に送信する（ステップＳ１３１）。ユーザ端末３は、ワークフロー処理システム５から指示完了通知ページ・データを受信し、表示装置に表示する（ステップＳ１３３）。
【００６６】
このようにして承認者たるユーザは承認処理を行うことができる。但し、年次休暇申請だけではなく、他の申請処理についても同様の処理にて行われる。さらに、「可決」「否決」のほかに「差戻」という判断を行うことができる場合には、ワークフロー部において「差戻」ボタンが設けられる。その場合にも、基本的には図１７の処理が行われる。但し、差し戻しであることを前の承認者（及び／又は申請者）に通知するアクション部品５７が起動されたり、ワークフロー実行制御情報において、差し戻しが登録され、現在地アクティビティも「承認＊（＊は１つ前の承認アクティビティの番号を表す）」と登録される。この際においてもさらにレコードの追加を行うことで履歴を登録する。差し戻し後においては、「承認＊」アクティビティから開始する点において同じである。
【００６７】
図１８にワークフローの典型例及び画面遷移について概説しておく。図１８上段に示すように、開始から起票イベントにより申請アクティビティに遷移し、申請アクティビティから申請イベントにより承認１アクティビティに遷移し、承認１アクティビティから可決イベントにより承認２アクティビティに遷移し、承認２アクティビティから可決イベントにより最終承認アクティビティに遷移し、最終承認アクティビティから可決イベントにより終了する。また、承認１アクティビティ、承認２アクティビティ又は最終承認アクティビティから否決イベントにより申請アクティビティに遷移する。承認２アクティビティから差戻イベントにより承認１アクティビティに遷移し、最終承認アクティビティから差戻イベントにより承認２アクティビティに遷移する。このようなワークフローにおいて申請アクティビティでは図１８下段に示すように、電子フォーム部には申請の電子フォームが、ワークフロー部には発生しうるイベントである「申請」ボタンが含まれるＷｅｂページが構成される。また承認１アクティビティでは、電子フォーム部には承認１の電子フォームが、ワークフロー部には発生しうるイベントである「可決」及び「否決」ボタンが含まれるＷｅｂページが構成される。承認２アクティビティでは、電子フォーム部には承認２の電子フォームが、ワークフロー部には発生しうるイベントである「可決」「否決」及び「差戻」ボタンが含まれるＷｅｂページが構成される。最終承認アクティビティでは、電子フォーム部には最終承認の電子フォームが、ワークフロー部には発生しうるイベントである「可決」「否決」及び「差戻」ボタンが含まれるＷｅｂページが構成される。上で述べたように、電子フォーム部は電子フォーム制御部５３１が、ワークフロー部はワークフロー制御部５３２がそれぞれ生成するようになっており、電子フォーム制御部５３１とワークフロー制御部５３２とはデータのやり取りを行うことはあるが、基本的には別々に開発された電子フォーム定義５５１及び項目ロジック指示定義５５２とワークフロープロセス定義５５３とを別々に用いて、ワークフロープロセス定義５５３に従って適切な画面表示を行うことができる。
【００６８】
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、定義情報ＤＢ５５に登録されている定義データのフォーマットについては上で述べたものだけではなく、同様のデータ又は付加データを含む他のフォーマットにて登録される場合もある。また、ワークフロー処理システム５内の機能ブロック分けについても一例であって、図示したとおりにプログラム・モジュールが作成されない場合もある。特に、ワークフロー制御部５３２とワークフローデータ処理部５３４については１つのモジュールとして作成される場合もある。
【００６９】
また、アクション部品５７からの戻り値については、電子フォーム制御部５３１からワークフロー制御部５３２に通知する構成を示したが、直接アクション部品５７からワークフロー制御部５３２に通知しても良い。その場合には、入力データ等についてはイベント制御部５３３から通知すれば、ワークフロー制御部５３２と電子フォーム制御部５３１との通信を減らすことができる。
【００７０】
さらに、ワークフロー実行制御情報格納部５８の参照については、ワークフロー制御部５３２及びワークフローデータ処理部５３４を介して行うような構成を示したが、電子フォーム制御部５３１が直接ワークフローデータ処理部５３４に要求するような構成とすることも可能である。
【００７１】
（付記１）
ユーザの端末から受信したデータに基づき、特定の伝票についてのワークフロープロセスにおける、状態と当該状態間の状態遷移とのいずれかであるポジションを特定するポジション特定ステップと、
前記ポジションに関連する伝票のフォーム・データを取得し、記憶装置に格納する伝票フォーム・データ取得ステップと、
ワークフローの定義に基づき、特定された前記ポジションに関連して前記ユーザにより指示させることの可能な状態遷移のデータを取得し、記憶装置に格納する状態遷移データ取得ステップと、
少なくとも前記伝票のフォーム・データから電子フォーム表示用のデータを、前記状態遷移のデータからボタン表示用のデータを生成し、出力する表示用データ生成ステップと、を含み、コンピュータにより実行されるワークフロー処理方法。
【００７２】
（付記２）
特定されたポジションが状態遷移である場合、少なくとも当該状態遷移と当該状態遷移に関連する伝票とにより特定されるプログラムを起動するプログラム起動ステップをさらに含み、
前記表示用データ生成ステップにおいて、前記プログラムからのデータをさらに用いて前記電子フォーム表示用のデータを生成することを特徴とする付記１記載のワークフロー処理方法。
【００７３】
（付記３）
前記プログラムからのデータに基づいて前記状態遷移データ取得ステップの実施を判断するステップをさらに含む付記２記載のワークフロー処理方法。
【００７４】
（付記４）
前記伝票フォーム・データ取得ステップが、
特定されたポジションに基づき伝票定義情報格納部に格納された伝票定義情報を検索し、対応する伝票を特定するステップと、
特定された伝票に基づき電子フォーム定義情報格納部に格納された電子フォーム定義情報を検索し、対応するフォーム・データを特定するステップと、を含む付記１乃至３のいずれか１つ記載のワークフロー処理方法。
【００７５】
（付記５）
前記プログラム起動ステップが、
項目ロジック指示定義情報格納部に格納された項目ロジック指示定義情報を前記ポジションである状態遷移と当該状態遷移に関連する伝票とに基づき検索し、起動すべきプログラム及び当該プログラムに出力すべきパラメータのデータを抽出するステップを含む付記２記載のワークフロー処理方法。
【００７６】
（付記６）
前記ポジション特定ステップにおいて所定の状態遷移を特定した場合、当該特定の状態遷移の遷移前の状態に関連する前記電子フォームに入力されたデータ及び前記特定の状態遷移の遷移先の状態に関するデータを、ワークフロー実行制御情報として登録するステップと、をさらに含む付記１乃至５のいずれか１つ記載のワークフロー処理方法。
【００７７】
（付記７）
前記ポジション特定ステップが、
前記ユーザの端末から特定のワークフロープロセスの識別データを受信した場合、前記特定のワークフロープロセスの識別データに基づき、対応するワークフロー実行制御情報を特定するステップと、
前記対応するワークフロー実行制御情報により現在の状態を特定するステップと、を含む付記６記載のワークフロー処理方法。
【００７８】
（付記８）
前記項目ロジック指示定義情報には、前記状態遷移に関連する伝票のフィールドに対応して起動すべきプログラム及び当該プログラムに出力すべきパラメータのデータとが規定されていることを特徴とする付記５記載のワークフロー処理方法。
【００７９】
（付記９）
ユーザの端末から受信したデータに基づき、特定の伝票についてのワークフロープロセスにおける、状態と当該状態間の状態遷移とのいずれかであるポジションを特定するポジション特定ステップと、
前記ポジションに関連する伝票のフォーム・データを取得し、記憶装置に格納する伝票フォーム・データ取得ステップと、
ワークフローの定義に基づき、特定された前記ポジションに関連して前記ユーザにより指示させることの可能な状態遷移のデータを取得し、記憶装置に格納する状態遷移データ取得ステップと、
少なくとも前記伝票のフォーム・データから電子フォーム表示用のデータを、前記状態遷移のデータからボタン表示用のデータを生成し、出力する表示用データ生成ステップと、をコンピュータに実行させる、プログラム。
【００８０】
（付記１０）
ユーザの端末から受信したデータに基づき、特定の伝票についてのワークフロープロセスにおける、状態と当該状態間の状態遷移とのいずれかであるポジションを特定するポジション特定手段と、
前記ポジションに関連する伝票のフォーム・データを取得し、記憶装置に格納する伝票フォーム・データ取得手段と、
ワークフローの定義に基づき、特定された前記ポジションに関連して前記ユーザにより指示させることの可能な状態遷移のデータを取得し、記憶装置に格納する状態遷移データ取得手段と、
少なくとも前記伝票のフォーム・データから電子フォーム表示用のデータを、前記状態遷移のデータからボタン表示用のデータを生成し、出力する表示用データ生成手段と、を有するワークフロー処理装置。
【００８１】
【発明の効果】
以上述べたように、ワークフロー処理システムの開発・保守効率の向上を可能とすることができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態における機能ブロックを示す図である。
【図２】電子フォームデザイナ及びプロパティ設定部における処理を説明するための図である。
【図３】電子フォーム定義の一例を示す図である。
【図４】イベント定義の一例を示す図である。
【図５】業務ロジック部品定義の一例を示す図である。
【図６】項目ロジック指示定義の一例を示す図である。
【図７】ワークフロープロセス設定部における処理を説明するための図である。
【図８】ワークフロープロセス定義の一例を示す図である。
【図９】伝票定義の一例を示す図である。
【図１０】申請時の処理フローを示す図である。
【図１１】起票イベント処理の処理フローを示す図である。
【図１２】（ａ）は電子フォーム部の一例を、（ｂ）はワークフロー部の一例を、（ｃ）は画面表示の一例を示す図である。
【図１３】申請イベント処理の処理フローを示す図である。
【図１４】ワークフロー実行制御情報の一例を示す図である。
【図１５】承認時の処理フローを示す図である。
【図１６】承認アクティビティ開始処理の処理フローを示す図である。
【図１７】指示入力イベント処理の処理フローを示す図である。
【図１８】ワークフローと画面遷移の関係を示す図である。
【符号の説明】
１  ＬＡＮ    ３  ユーザ端末    ５  ワークフロー処理システム
７  開発者端末
５１  Ｗｅｂサーバ機能    ５３  伝票コンテナ
５５  定義情報ＤＢ    ５７  アクション部品
５８  ワークフロー実行制御情報格納部
５９  バックグランドシステム
５３１  電子フォーム制御部
５３２  ワークフロー制御部
５３３  イベント制御部
５３４  ワークフローデータ処理部
５９１  所属マスタファイル
５９３  社員マスタファイル
５９５  各種業務マスタファイル
【図１】
2004295516.tif 000003
【図２】
2004295516.tif 000004
【図３】
2004295516.tif 000005
【図４】
2004295516.tif 000006
【図５】
2004295516.tif 000007
【図６】
2004295516.tif 000008
【図７】
2004295516.tif 000009
【図８】
2004295516.tif 000010
【図９】
2004295516.tif 000011
【図１０】
2004295516.tif 000012
【図１１】
2004295516.tif 000013
【図１２】
2004295516.tif 000014
【図１３】
2004295516.tif 000015
【図１４】
2004295516.tif 000016
【図１５】
2004295516.tif 000017
【図１６】
2004295516.tif 000018
【図１７】
2004295516.tif 000019
【図１８】
2004295516.tif 000020