以下、本発明の実施の形態を、図面を参照して詳細に説明する。まず、本発明を実施するための一例として、ワークフローシステムの開発、およびエンドユーザによる簡単なアクティビティの追加について説明する。後述の説明の中で、上位オブジェクト(または親オブジェクト)はワークフローの経路情報を表示するための“経路情報オブジェクト”であり、下位オブジェクト(または子オブジェクト)は前記経路情報の中の各業務を表す“アクティビティ”であるとする。
図1は、本発明の実施形態に係わるシステム構成の一例を示す図である。
図1において、ワークフローシステムは、少なくとも1つのクライアント装置101(情報処理装置)とワークフローサーバ102がネットワーク104を介して接続されている。更に開発装置103もシステム構成に含まれ、ネットワーク104を介してクライアント装置101とワークフローサーバ102に接続されていてもよい。
ユーザは、例えばウェブブラウザやクライアントソフトウェアなどを利用して、クライアント装置101から、ワークフローサーバ102に対して、ワークフロー進行の要求などを行う。
ワークフローサーバ102は、要求に応じた処理、管理をおこない、必要があればクライアント装置101に対して結果などを送信する。
開発者は、例えばウェブブラウザやクライアントソフトウェアなどを利用して、開発装置103から、ワークフローの定義などを行う。その際、開発操作は開発装置103のみで処理可能であり最終的な定義結果をワークフローサーバ102に格納してもよい。あるいは開発装置103とワークフローサーバ102が協調して開発のための動作をし、また定義結果を随時、ワークフローサーバ102に格納するような構成であってもよい。
ワークフローサーバ102、クライアント装置101、開発装置103の間の通信は、通常のHTTPのリクエストでもよいし、SOAPなどを利用したウェブサービスのリクエストでもよい。
クライアント装置101a、ワークフローサーバ102a、開発装置103aは、それぞれLANにおいて接続されてもよい。また、クライアント装置101b、ワークフローサーバ102b、開発装置103bは、それぞれインターネット上、クラウド上において構成されてもよい。前述の構成が混在するものであってもよい。
図2は、本発明の実施形態に係わるワークフローサーバ、クライアント装置、開発装置のハードウェア構成の一例を示すブロック図である。
図2に示すように、ワークフローサーバ102、クライアント装置101は、システムバス204を介してCPU(Central Processing Unit)201、RAM(Random Access Memory)202、ROM(Read Only Memory)203、入力コントローラ205、ビデオコントローラ206、メモリコントローラ207、通信I/Fコントローラ208等が接続された構成を採る。 CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
また、ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input/Output System)やOS(Operating System)や、各サーバあるいは各PCが実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。また、本発明を実施するために必要な情報が記憶されている。なお外部メモリはデータベースであってもよい。
RAM202は、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM203あるいは外部メモリ211からRAM202にロードし、ロードしたプログラムを実行することで各種動作を実現する。
また、入力コントローラ205は、キーボード(KB)209や不図示のマウス等のポインティングデバイス等からの入力を制御する。
ビデオコントローラ206は、ディスプレイ210等の表示器への表示を制御する。尚、表示器は液晶ディスプレイ等の表示器でもよい。これらは、必要に応じて管理者が使用する。
メモリコントローラ207は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶する外部記憶装置(ハードディスク(HD))や、フレキシブルディスク(FD)、あるいは、PCMCIA(Personal Computer Memory Card International Association)カードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
通信I/Fコントローラ208は、ネットワーク104を介して外部機器と接続・通信し、ネットワークでの通信制御処理を実行する。例えば、TCP/IP(Transmission Control Protocol/Internet Protocol)を用いた通信等が可能である。
尚、CPU201は、例えばRAM202内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ210上に表示することが可能である。また、CPU201は、ディスプレイ210上のマウスカーソル(図示しない)等によるユーザ指示を可能とする。
本発明を実現するための後述する各種プログラムは、外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。さらに、上記プログラムの実行時に用いられる定義ファイルおよび各種情報テーブル等も、外部メモリ211に格納されており、これらについての詳細な説明についても後述する。
図3は、本発明の実施形態に係わるワークフローシステムにおけるソフトウェア構成の一例を示すブロック図である。
ワークフローシステムのユーザが、クライアント装置101においてワークフローシステムのクライアント画面を起動した後、ユーザの指示により処理待ち案件一覧要求送信部301により、処理待ち案件の一覧をワークフローサーバ102に要求する。処理待ち案件の一覧とは、承認者が、申請者から何らかの申請がされているか確認する場合や、あるいは申請者が、何らかの申請に対して承認者により否認されているか確認する場合の、案件がリストアップされているものである。
処理待ち案件一覧要求受信部312は、処理待ち案件一覧要求送信部301から送信された処理待ち案件一覧の要求を受信し、処理待ち案件一覧画面データ生成部313に画面データの生成を指示する。
処理待ち案件一覧画面データ生成部313は、アクティビティ情報記憶部322とワークフロー実行記憶部323から、前記ユーザが処理すべき処理待ちのアクティビティ情報とワークフローの実行中の情報を取得し、これらの情報に基づき処理待ち案件一覧の画面データを生成する。また、生成された画面データの各処理待ち案件には、その処理待ち案件がユーザにより選択された場合に、いずれの画面データを表示すべきかを示す画面IDまたはそれらを導出するためのデータが含まれている。
生成された処理待ち案件一覧画面データは、処理待ち案件一覧画面データ送信部314により、ワークフローサーバ102から、クライアント装置101送信される。
処理待ち案件一覧画面データ受信部302は、ワークフローサーバ102から送信された処理待ち案件一覧画面データを受信し、処理待ち案件一覧画面データ表示制御部303に渡し、クライアント装置101に表示させる。
ここで、ユーザが新たに電子帳票の起票を使用とする場合には、複数ある申請内容からいずれの申請(交通費申請、出張申請など)をするか選択するための申請内容の一覧が表示される。表示画面に一覧として表示されてもよいし、メニューなどに列挙されてもよい。
処理対象選択部304は、処理待ち案件一覧からユーザが選択した処理対象、または前記申請内容の一覧(メニューでもよい)からユーザが選択した申請内容を受け付け、処理対象送信部305に渡される。
処理対象送信部305は、前記選択された処理対象をワークフローサーバ102に送信し、処理対象受信部315が受信する。受信した処理対象は、画面データ生成部316に渡される。
画面データ生成部316は、処理対象が、申請内容の一覧(またはメニュー)から選択された申請内容である場合には、各申請内容に画面IDまたそれらを導出するためのデータ(画面ID等情報)が含まれており、その画面ID等情報に対応するレイアウトに基づき、必要な情報を設定するなどして画面データを生成する。
また、処理対象が、処理待ち案件である場合には、前述の通り、処理待ち案件一覧の処理待ち案件毎に、対応する画面IDまたそれらを導出するためのデータ(画面ID等情報)が含まれている。その画面ID等情報に対応するレイアウトに基づき、処理待ち案件(案件IDなどで特定されている)に対応する必要な情報を設定するなどして画面データを生成する。
画面を生成するに当たり、アクティビティ情報記憶部322やワークフロー実行記憶部323、更に業務データベースを参照することは可能であるが、それは各画面IDに対応する画面生成ロジックとして処理が定義されている。
画面データ受信部306は、ワークフローサーバ102から送信された画面データを受信し、表示制御部307に渡し、クライアント装置101に表示させる。
クライアント装置101において、経路編集受付部308は、ユーザが経路編集をする操作を受け付ける。ユーザが指定した操作が、アクティビティの追加、削除、または更新かに応じて処理し、フローウィジェット上のアクティビティのデータを変更する。変更結果は、表示制御部307に渡され、表示画面に反映される。
また電子帳票に対してユーザの入力などが完了し、申請、承認などの処理が行われると(例えば申請ボタン、承認ボタンが押下されると)、帳票情報送信部309が、入力結果等を帳票情報としてワークフローサーバ102に送信する。ワークフローサーバ102においては、帳票情報受信部318が、帳票情報を受信する。受信した帳票情報から、処理されたアクティビティでの入力情報などの情報を取得し、ユーザが行った処理に応じて各アクティビティのステータスを変更し、アクティビティ情報登録部319によりアクティビティ情報記憶部322及びワークフロー実行記憶部323に登録する。
クライアント装置101において、保存指示部310は、ユーザが利用しているワークフロー定義に対して、経路編集をした結果を後に再利用するため、ワークフローサーバ102に格納する指示を受け付け、ワークフロー定義送信部311に渡す。
ワークフロー定義送信部311は、経路編集されたワークフロー定義を、ワークフローサーバ102に送信する。ワークフローサーバ102においては、ワークフロー定義受信部320が、ワークフロー定義を受信する。受信したワークフロー定義は、ワークフロー定義登録部321により、ワークフロー定義記憶部324に登録される。
なお、301〜321のそれぞれの機能部が、図3の通り、クライアント装置101とワークフローサーバ102において構成されるのは一例であり、その他の構成であってもよい。例えば経路編集受付部308で受け付けた編集内容は、ワークフローサーバ102に送信され、ワークフローサーバ102において画面データが再生成され、その結果をクライアント装置101に送り返し、表示制御部307で表示を編集してもよい。本構成は、あくまで一例である。
また、図3には示していないが、処理済み(あるいはこれから処理待ちになる予定)の案件に対して、案件の処理状況を追跡できるために、ユーザが自己に関連している案件の一覧を表示する画面、その案件の内容を確認できる画面の画面データ取得要求、表示制御があってもよい。
次に、図4から図7を用いて、ワークフローシステムが開発者に開発装置103を操作させ、ワークフローの各種定義体を作成する処理(以降、簡単に「開発者に定義させる」という場合がある)を説明する。
図4は、開発者がワークフローを開発する処理の一例を示すフローチャートである。図4のフローチャートの各ステップは、開発装置103上のCPU201で実行される。各ステップは、開発者による操作を受け付けて必要な定義体を構成していく。図4のフローチャートでは、ワークフローの定義結果は最後にまとめてワークフローサーバ102に格納するものとしている。実際には、フローチャートの処理においては、必要に応じてワークフローサーバ102と通信を行い、定義したワークフローの定義体をワークフローサーバ102の記憶部に随時格納するように実装してもよい。
ステップS401からS412においては、作成しようとするワークフローの定義に現れる1つのアクティビティに対応する各種定義体の定義を行う。すなわち、ワークフローの定義に現れるアクティビティの数だけ、ステップS401からS412が繰り返される。ただし、実際には複数のアクティビティで再利用可能なアクティビティもあり、必ずしも全てのステップでの定義体を開発者に作成させる必要はない。
ステップS401においては、アクティビティにおいてユーザが使用する画面のレイアウトを開発者に作成させる。具体的には、画面のベースとなるコンテナを新規に生成し、例えばアクティビティの名称を表示するためのテキストオブジェクト、ユーザに必要な情報を入力させるためのテキストボックスオブジェクト、申請や承認、確認を行い、次のアクティビティに進むときに押下するボタンオブジェクトなどを開発者に配置させる。これらの画面が、ユーザがワークフローを利用する際の帳票画面となる。1つのレイアウトの例を図5により簡単に説明する。
なお、以降「押下」とは、マウスによって対象となるオブジェクトをクリックすること、キーボード操作で対象となるオブジェクトにフォーカスさせエンターキーを押すなど、何らかの操作で対象となるオブジェクトを選択することを含む。
図5は、ワークフローを開発する際に定義する定義体の関連図の一例である。図5では、1つのアクティビティで必要な定義体の例を示すものであるが、前述の通り下記で説明する各定義体は、他のアクティビティを定義する際に再利用可能なものもあるため、必ずしも全てを定義する必要はない。あくまで一例である。
図5の501は開発画面のベースとなるコンテナ、502はワークフロー「回覧板」を定義する際の最初の「回覧板(申請)」の画面を定義する例である。レイアウト上には、このアクティビティ名と、申請ボタン505、その他の入力項目レイアウトを開発者に定義させる。なお、アクティビティ名には、「回覧板(申請)」と定義されているが、この文字列は固定で定義してもよいし、後述するアクションで画面表示をする際に動的に定義するようにしてもよい。
ステップS402においては、前述の画面レイアウト上にワークフローにおける経路(アクティビティの並び)を配置するための経路情報オブジェクトを、開発者に配置させる。図5においては、経路情報オブジェクト504が開発者によって配置された例を示している。
ステップS403においては、前述において作成したアクティビティに対応する画面が表示される際に実行されるアクションを、開発者に定義される。図5においては、503において例が示されている。503において、「回覧板(申請)」画面に対応するアクションとして、「ログインユーザ名を取得しアクティビティの画面内に表示する」、「経路情報をワークフロー定義B(後述)からアクティビティ情報を読み込み、経路情報オブジェクト504に設定する」などの処理を記載する。また、外部データベース(業務関係DB、人事関係DB)などと連携した処理を記載してもよい。例えば、経路情報オブジェクト504における申請者以外の承認者などを、人事データベースにおける上司を設定する処理を定義してもよい。本例(「回覧板」)では、申請者の上司である「課長」「部長」を自動的に設定するようアクションを定義したとする。
ステップS404においては、申請/確認/承認など、ワークフローを次のアクティビティに進めるために押下するボタンに対応するアクションを、開発者に定義させる。図5においては、申請ボタン505に対応するアクション(507)を定義させる。例えば、「クライアント装置101の帳票画面でユーザが入力した内容のエラーチェックを行う」、「ワークフローが初期に申請されたものであればフローIDを付与する」、「入力結果などをアクティビティ情報記憶部(後述)などに登録する」などの処理である。
ステップS405においては、経路情報オブジェクト504が押下された場合のアクションを開発者に定義させる。図5の508が対応するアクションの例である。まず、アクティビティが1つ(例えば「申請」)だけであれば、「申請」アクティビティの後に他のアクティビティを追加するための「追加確認ダイアログ」を表示させる処理を定義させる。また、それ以外の場合であれば「追加/削除/更新確認ダイアログ」を表示させる処理を定義させる。
ステップS406においては、「追加確認ダイアログ」(図5の509)のレイアウトを開発者に定義させる。このダイアログでは、経路情報オブジェクト504上で選択されたアクティビティ(実行中のアクティビティとは異なってもよい)の後ろに新たなアクティビティを追加することをユーザに確認させるための画面である。
ステップS407においては、「追加/削除/更新確認ダイアログ」(図5の510)のレイアウトを開発者に定義させる。このダイアログでは、経路情報オブジェクト504上で選択されたアクティビティ(実行中のアクティビティとは異なってもよい)の後ろに新たなアクティビティを追加する、または選択されたアクティビティを削除/更新することをユーザに確認させるための画面である。
ステップS408においては、ステップS406、S407において定義したダイアログ(図5の509、510)の追加ボタン511、削除ボタン513、更新ボタン514が押下された際のアクション(図5の515)を、開発者に定義させる。本例では1つのアクションとしているが、追加、削除、更新のそれぞれに分かれていてもよい。このアクションには、追加ボタン511が押下された場合には追加ダイアログ516を表示、削除ボタン513が押下された場合には経路情報オブジェクト504から選択されたオブジェクトを削除、更新ボタン514が押下された場合には更新ダイアログ522を表示するための処理を開発者に定義させる。
ステップS409においては、アクティビティの追加処理をユーザにさせるための追加ダイアログ(516)のレイアウトを開発者に定義させる。
ステップS410においては、追加ダイアログ(516)のOKボタン(520)押下時に、ユーザが設定した値を、経路情報オブジェクト504に反映させるための処理などをアクションとして開発者に定義させる。例えば、「経路情報オブジェクトにアクティビティを追加する」、「アクティビティ名を追加したアクティビティに設定する」、「処理するユーザのユーザ名を設定する」などである。また、図5の追加ダイアログ(516)では、追加するアクティビティに対応する画面を指定する方法はないが、複数の画面をリストボックスなどで指定できるようにし、ステップS410においては、ユーザが指定した画面との対応付けをアクティビティに設定するようにしてもよい。
ステップS411においては、アクティビティの更新処理をユーザにさせるための更新ダイアログ(522)のレイアウトを開発者に定義させる。
ステップS412においては、更新ダイアログ(522)のOKボタン(524)押下時に、ユーザが設定した値を、経路情報オブジェクト504に反映させるための処理などをアクションとして開発者に定義させる。例えば、「選択したアクティビティの名称を更新する」、「処理するユーザのユーザ名を更新する」などである。
ステップS413においては、開発者にアクティビティ及び関連する定義体を更に定義するか確認する。更に定義する場合(YESの場合)、ステップS401に進む。定義を完了する場合(NOの場合)、ステップS414に進む。
なお、後述するワークフローとしては、「回覧板」ワークフローとして、「回覧申請」、「課長確認」、「部長確認」の3つのアクティビティを標準で定義されたものを例として利用する。ただし、「課長確認」と「部長確認」については、アクティビティ名とユーザ名が異なる(表示する際にアクションにより異なる表示をする)だけであり、定義体は同一のものを呼び出すものとする。また、追加ダイアログ(516)により追加されるアクティビティも「課長確認」、「部長確認」と同一の定義体に関連付けられるものとする。
すなわち、例として「回覧板」ワークフローの実体は、最初のアクティビティに「回覧申請」、それ以降のアクティビティ(追加するアクティビティも含め)として「確認」の2種類の定義体で構成されるワークフローとなる。
また、ステップS405〜ステップS412で定義される画面レイアウトの509、510、516、522、及びアクションの508、515、517、523の全て、または一部は、経路情報オブジェクト504に関連する定義体として、あらかじめ標準で定義されていてもよい。
以上のステップでワークフローの定義体の定義に関する処理の説明を完了する。続くステップにより、これらの定義体が呼び出される処理を、開発者に定義させる。
ステップS414においては、開発者に初期画面の呼出を定義させる。すなわち上記のフローチャートの例では、経路情報として最初の定義体である「回覧板(申請)」に対応する画面をメニュー(図5の506)に登録させる。より詳細には図6を用いて説明する。
図6は、ワークフローの起票示のメニューと、処理待ち案件一覧を開発する際に定義する定義体の関連図の一連である。図5のメニュー506と図6のメニュー506は同一のものである。メニュー506には、例えば既に3つの項目(「交通費申請」など)が登録されている。ステップS414では、開発者に、前述のステップまでにおいて定義した「回覧板」ワークフローをユーザが実行できるようにメニュー506に「回覧板」を登録させる(実際には601のように文字列として「回覧板」を対応付ける)。
ステップS415においては、601から登録した項目が選択された場合の処理を、開発者にアクションとして定義させる。前述の「回覧板」の例では、「回覧板(申請)」の画面を表示させるアクションを定義させる(602)。
ステップS416において、処理待ち案件一覧画面(603)を表示する際のアクション(604)を開発者に定義させる。具体的には、例として、ログインユーザを取得し、後述するアクティビティ情報記憶部322から、当該ログインユーザが処理すべき処理待ちアクティビティ情報を処理待ち案件一覧の画面レイアウトに埋め込む処理を定義させる。詳細な情報としては、前記処理待ち案件であるワークフロー名(例えば「回覧板」など)、アクティビティ名(「課長確認」など)を起動時に表示させる処理を定義させる。その他、次のステップで定義させるアクションで使用する情報は、処理待ち案件一覧画面(603)にあらかじめ埋め込むよう定義させる。さらに各表示項目とその表示項目が選択された場合のアクション(605)を定義させる。すなわち、処理待ち案件として表示された情報や、そのステータス(申請が初めてか、却下された後の再申請か、など)などにより、表示する画面が異なる可能性があるため、選択された処理待ち案件に応じて、画面(画面ID)を特定し、当該画面の呼出表示処理をアクションとして定義させる。
また、処理待ち一覧画面自体が定義されていない場合(最初のワークフローを定義する際)には、処理待ち案件一覧の画面レイアウト自体を開発者に定義させるステップも必要である(不図示)。
以上のように、処理待ち案件一覧画面(603)から、ユーザが処理待ち案件を選択したときに、ワークフローシステムにおいて実行される処理は、604、605に記載されている。特に、604には、開発者により、次に遷移する画面条件と、その画面(画面ID)が対応付けられて実装されている。あるいは、画面IDが直接埋め込まれていなくとも、ワークフロー定義の種類とアクティビティの種類の2次元データ構成のテーブルに画面IDを登録しておき、例外的な画面遷移以外は、そのテーブルを参照するなど、様々な方式が考えられる。いずれにしても、604のアクションに従って処理待ち案件一覧画面が生成される。
すなわち、後述するユーザの利用時において、経路情報オブジェクト504にアクティビティを追加、更新、削除しても、604のアクションで次の画面IDがされ、画面自体は、画面ID(例えば501)と画面データを生成するためのアクション(例えば503)で処理が定義されている。
この構成により、ユーザは、経路情報の前後関係におけるアクティビティの整合性を意識することなく、容易にアクティビティの追加、更新、削除を行うことができるという効果が得られる。
ステップS417においては、前述のステップで作成したワークフローの定義体、メニューや処理待ち案件一覧に関連する定義の内容を、開発装置103からワークフローサーバ102に送信し、格納するよう要求する。
ワークフローサーバ102においては、この要求に従って、各種定義をワークフロー定義記憶部324および関連する画面レイアウト記憶部(不図示)、アクション記憶部(不図示)に記憶する。
次に、ステップS417でワークフローサーバ102に格納要求した定義体のうち、ワークフローサーバ102のワークフロー定義記憶部324に記憶するワークフロー定義について図7を用いて説明する。
図7は、ワークフロー定義を格納するデータベース構成の一例である。例として、前述のワークフローとして「回覧板」、その経路情報には3つのアクティビティ「回覧申請」、「課長確認」、「部長確認」が定義されている。
ワークフロー定義A700は、ワークフローの案件自体の情報(ワークフローの情報)を格納するテーブルの一例である。ワークフローが起票される際に、後述するワークフロー実行記憶部を構成するための定義であり、定義時点ではヘッダ(データ項目)のみ定義されており、中にデータが格納されていなくともよい。また、説明する画面の例として後述の図8、図10が対応する。
isse_id701は、ワークフローの起票時にユーザが、またはシステムが自動的に付与する発行IDに対応する項目である。本例では、検索キーとして任意に付与する。
title702は、起票したワークフローの件名をユーザが入力するテキストボックスに対応する項目である。
body703は、「回覧申請」に係る内容をユーザが入力する本文のテキストボックスに対応する項目である。
comment704は、「回覧」の内容の確認者が、確認事項などを自由に記載するコメントに対応する項目である。図8では表示されないが、図10で表示されている。図8と図10の違いは、異なるアクティビティにおいて、異なる画面レイアウトを定義するか、または同一の画面レイアウトではあるが、画面を表示する際のアクションにより、コメントの項目を表示するか否かを制御することにより実現する。
flow_id705は、ワークフローを特定するためのキーとなるIDであり、一意的に付与される。ワークフロー定義記憶部のテーブル構成が、ワークフロー定義毎に分かれている場合には、同一のテーブル構成の中で一意的であればよい。ワークフロー実行結果のデータとして、後述するワークフロー定義B710(アクティビティの定義を格納)と対応付けるために用いる(図11参照)。
ワークフロー定義B710は、アクティビティの定義を格納するデータ構成の一例であり、前述の通りflow_id(705、711)によりワークフロー定義A700のデータ構成と対応付けられている。
act_id712は、アクティビティを特定するための一意的なIDである。本例では、定義した順に1から番号を付与している。
act_name713は、アクティビティ名である。例えば図8〜図10の経路情報オブジェクト504(a〜g)に表示される。
act_no714は、アクティビティの実行順序である。従って、実行時にアクティビティが追加、削除された場合には、定義順にかかわらず、実際に実行されるべき順に1から番号を付与する。例えば図8〜図10の経路情報オブジェクト504に表示されるアクティビティの順番に一致する。
user_id715は、実行予定または実行結果としてのユーザIDである。
user_name716は、実行予定または実行結果としてのユーザ名である。
state717は、アクティビティの状態である。例えば、「todo」は、対応するuser_id715(またはuser_name716)のユーザにとって、該当するアクティビティが処理待ち状態であることを示す。ただし、最初のアクティビティのみは、起票前には「todo」とする。「done」は、該当するアクティビティが既に処理済みであることを示す。「wait」は、未処理であり、対応するユーザにとってまだ処理待ちにもなっていない状態である。
execution_date718は、該当するアクティビティの処理が完了した日時である。
flow_state719は、ワークフローの実行状態である。ワークフロー定義体においては、「initial」が格納される。またワークフローの実行中は、「active」、全てのアクティビティが処理され完了状態となった場合には「complete」が格納される。
これにより図4〜図7の説明を完了する。すなわち、図4のフローチャートによるワークフローシステムが開発者に開発装置103を操作させ、ワークフローの各種定義体を作成する処理の説明を完了する。
次に図8から図11を用いて、ユーザがクライアント装置101において、ワークフロー(例として「回覧板」)を申請、確認する操作と、実行時のデータを管理する記憶部のデータの状態を説明する。
図8は、ユーザがワークフローの申請時に利用する画面の一例である。ユーザとして「鈴木一郎」がログインして操作している(803)。申請はメニュー506を押下し、さらに601のワークフローの一覧からいずれかを選択することで開始する。例では「回覧板」(802)を選択したとして説明する。
「回覧板」を選択すると804の画面が表示される(ただし各テキストボックスは未入力の状態である)。起票時における画面表示のアクション(図5の503)定義により、最初のアクティビティ名「回覧申請」が表示される(805)。また、同アクションによりワークフロー定義B710(図7)から3つのアクティビティ名を読み込んで、act_no714で指定された順番に経路情報オブジェクト504aに表示する。「回覧申請」のユーザ名はログインユーザ名、「課長確認」、「部長確認」のユーザ名は、前述の通り人事データベースなどから組織情報を取得して、「鈴木一郎」の上司の氏名を当てはめた結果である。現在処理しているアクティビティは協調などにより分かりやすく表示することが可能である。
さらに表示後に、ユーザが、発行ID806に「101−003」、件名807に「資料回覧」、本文808に「ご覧ください。」と入力した結果であるが804の状態である。入力が終わった後、ユーザによる申請ボタン505の押下により、申請処理は終了し、ワークフローは次のアクティビティに進む。この時点で、処理結果がワークフローサーバ102に登録されるので、図11を用いて説明する。
図11は、ワークフロー実行記憶部とアクティビティ情報記憶部のデータベース構成の一例である。各期億部の構成については、ワークフロー実行記憶部323はワークフロー定義A700(図7)と同一、またアクティビティ情報記憶部322はワークフロー定義B710と同一であるため、詳細のデータ項目の説明は省略する。
ワークフロー実行記憶部323aには、アクティビティ「回覧申請」において入力した、発行ID806の「101−003」はissue_idに、件名807の「資料回覧」はtitleに、本文808の「ご覧ください。」はbodyに登録される。commentは、アクティビティ「回覧申請」では入力用のテキストボックスが表示されないため、何も格納されない。またflow_idには自動的に「186」が付与され、格納される。
また、アクティビティ情報記憶部322aに登録されるアクティビティの情報について説明する。アクティビティ「回覧申請」において、経路情報オブジェクト504上のアクティビティが編集されていないため、アクティビティの構成は同一である。そこで図7のワークフロー定義B710と違いがあるデータ項目のみ説明する。
flow_idには、ワークフロー実行記憶部323aのflow_idと同一の値が格納される。
user_id、user_nameについては、アクティビティ「回覧申請」の画面が表示された時点でアクションにより決定されているので、その値が各アクティビティに格納される。
stateについては、アクティビティ「回覧申請」の処理が完了しているため、「回覧申請」に対しては「done」へ変更された上で格納される。一方、アクティビティ「課長申請」が処理待ちの状態に変わるので「todo」へ変更された上で格納される。
execution_dateについては、処理が完了したアクティビティ「回覧申請」についてのみ、実際に処理した日時が格納される。
flow_stateについては、ワークフロー処理が実行中であるため、3つのアクティビティに対して全て「active」が格納される。
以上で、アクティビティ「回覧申請」の処理の結果を完了した時点のデータベースの状態について説明を完了する。
次にアクティビティ「課長確認」について、図9を用いて説明する。アクティビティ「回覧申請」の処理が完了した段階で、ユーザ「山田二郎」に対して、発行ID「101−003」のワークフローのアクティビティ「課長確認」が処理待ち案件となる。
図9は、ユーザがワークフローの確認時に利用し、アクティビティの追加/更新の操作をする画面の一例である。まず、「山田二郎」がワークフローの「処理待ち案件一覧」を確認するための画面(901)を表示する。
処理待ち案件一覧の画面(901)には、「鈴木一郎」が申請した「資料回覧」の処理待ち案件が1つ表示されている。この画面は、処理待ち案件一覧のレイアウト(603)上に、アクション(604)に基づいて例えばアクティビティ情報記憶部322(図11の322a)、ワークフロー実行記憶部323(図11の323a)からログインユーザである「山田二郎」が処理すべき情報を検索して生成する。前記処理すべき情報とは、具体的には、user_id715、state717などにより検索される。
処理待ち案件一覧の画面(901)の発行ID「101−003」の行(処理待ち案件)を押下すると、対応付けられた、回覧板のアクティビティ「課長確認」の画面を表示する(903)。この画面は、不図示の「課長確認」画面のレイアウトと、当該画面の表示時に呼び出されるアクションにより生成される。
経路情報オブジェクト504bでは、現在処理中のアクティビティ「課長確認」が強調表示されている。また、ユーザ「山田二郎」は、コメント905「読みました。」を入力したとする。
ここで、経路情報オブジェクト504bにアクティビティを追加する例を説明する。2つめのアクティビティ「課長確認」の直後に、他の課長に回覧したいとする。この時、アクティビティ「課長確認」をフォーカスして押下すると、追加/削除/更新確認のダイアログ(510)が表示される。ここで追加ボタン(511)を押下すると、追加内容を入力するダイアログ(516)が表示される。追加ダイアログ(516)で、アクティビティ名(518)に「課長確認2」、ユーザ名((519)に「清水四郎」を入力し、OKボタン(520)を押下すると、経路情報オブジェクト504cの通りになる。すなわち、フォーカスしていたアクティビティ「課長確認」の次に、新しいアクティビティ「課長確認2」が追加された。
同様にアクティビティ「課長確認2」をフォーカスして、アクティビティ名「課長確認3」、ユーザ名「斉藤五郎」のアクティビティを追加する。またアクティビティ「部長確認」(908)をフォーカスして、アクティビティ名「営業確認」、ユーザ名「営業太郎」のアクティビティを追加する。結果は、経路情報オブジェクト504dの通りになる。
以上の説明の通り、ユーザは、例えばワークフロー「回覧板」を使用しているときに、設計者(開発者)の定義の意図や、上司/部下などの経路の定義にとらわれることがない。すなわち資料の回覧をすべきと判断した他部門の管理職、あるいは図示していないが、他部門の一般社員であってもワークフローの経路情報に動的で柔軟な追加が可能であるという効果を得ることができる。
また図6でも述べたように、ユーザは、経路情報の前後関係におけるアクティビティの整合性を意識することなく、容易にアクティビティの追加を行うことができるという効果が得られる。
次に直前に追加したアクティビティを更新する例について説明する。アクティビティ「営業確認」をフォーカスして、追加/削除/更新確認のダイアログ(510)を表示させ、更新ボタン(514)を押下すると、図5の更新ダイアログ522が表示される。ここで、アクティビティ名「部長確認2」、ユーザ名「田中六郎」としてOKボタン(524)を押下すると、経路情報オブジェクト504eの通りになる(最後のアクティビティが909の通りになる)。
以上の説明の通り、ユーザは、例えば設計者(開発者)の定義の意図や、上司/部下などの経路の定義、あるいは他のユーザの経路情報の編集にとらわれることがなく、誤って作成、または異動などによりアクティビティは必要だが、ユーザ名を変更したいようなアクティビティについて、動的で柔軟な更新が可能であるという効果を得ることができる。
また図6でも述べたように、ユーザは、経路情報の前後関係におけるアクティビティの整合性を意識することなく、容易にアクティビティの更新を行うことができるという効果が得られる。
ユーザ(「山田二郎」課長)が、課長確認アクティビティの画面(903)で、「確認」ボタン(906)を押下すると確認処理は終了し、ワークフローは次のアクティビティに進む。この時点で、処理結果がワークフローサーバ102に登録されるので、再度図11を用いて説明する。
アクティビティ「回覧申請」と「課長確認」の結果として登録された内容については説明済みなので、アクティビティ「回覧申請」と「課長確認」の結果として登録される内容の違いについて述べる。
ワークフロー実行記憶部323bには、図9の905で「山田二郎」が入力した「読みました。」が新たに登録されている。
アクティビティ情報記憶部322aにおいては、もともと3つのみ登録されていたアクティビティが6つになっている。これは図9の経路情報オブジェクト504eに対応する順番に並んでいる。ただし、act_idは定義された順(または登録された順)になるため、「課長確認2」が“4”、「課長確認3」が“5”、「部長確認2」が“6”となっている。
act_nameには、新たに追加されたアクティビティも含め、そのアクティビティの名称が図9で定義されたとおりに登録されている。
act_noは、アクティビティを実行する順番であるため、定義順であるact_idとは異なり、図9の経路情報オブジェクト504eに並んでいる順に番号付けられており、そのため、アクティビティ情報記憶部322aとは番号が変わっているアクティビティもある。
user_idおよびuser_nameには、新たに追加されたアクティビティも含め、ユーザIDとユーザ名が、図9の経路情報オブジェクト504eに並んでいる通りに登録される。
stateは、「山田二郎」(アクティビティ名「課長確認」)においては、処理が完了したため「done」となっている。一方、次のアクティビティ(新たに追加されたアクティビティ)である「清水四郎」(アクティビティ名「課長確認2」)が「todo」となり、処理待ち案件であることを示す。
また、「山田二郎」(アクティビティ名「課長確認」)のexecution_dateに処理時刻が登録される。
以上により、図9のアクティビティを完了した時点でのデータベース内の状態について説明を完了する。
次にアクティビティ「部長確認」について、図10を用いて説明する(「課長確認2」、「課長確認3」は完了したものと見なす)。アクティビティ「課長確認3」の処理が完了した段階で、ユーザ「佐藤三郎」に対して、発行ID「101−003」のワークフローのアクティビティ「部長確認」が処理待ち案件となる。この時点で、アクティビティの情報については、アクティビティ情報記憶部322cの通りになっているとする。
図10は、ユーザがワークフローの確認時に利用し、アクティビティの削除の操作をする画面の一例である。まず、「佐藤三郎」がワークフローの「処理待ち案件一覧」を確認するための画面(1001)を表示する。
処理待ち案件一覧の画面(1001)には、「鈴木一郎」が申請した「資料回覧」の処理待ち案件が1つ表示されている。この画面は、処理待ち案件一覧のレイアウト(603)上に、アクション(604)に基づいて例えばアクティビティ情報記憶部322(図11の322b)、ワークフロー実行記憶部323(図11の323b)からログインユーザである「佐藤三郎」が処理すべき情報を検索して生成する。
処理待ち案件一覧の画面(1001)の発行ID「101−003」の行(処理待ち案件)を押下すると、対応付けられた、回覧板のアクティビティ「部長確認」の画面を表示する(1003)。この画面は、不図示の「部長確認」画面のレイアウトと、当該画面の表示時に呼び出されるアクションにより生成される。
経路情報オブジェクト504fでは、現在処理中のアクティビティ「部長確認」が強調表示されている。
ここで、経路情報オブジェクト504f上のアクティビティを削除する例を説明する。最後のアクティビティ「部長確認2」(909)を削除したいとする。この時、アクティビティ「部長確認2」をフォーカスして押下すると、追加/削除/更新確認のダイアログ(510)が表示される。ここで削除ボタン(513)を押下すると、アクティビティ名「部長確認2」が削除された経路情報オブジェクト504gが表示される。
ユーザ(「佐藤三郎」部長)が、部長確認アクティビティの画面(1003)で、「確認」ボタン(906)を押下すると確認処理は終了し、ワークフローは次のアクティビティに進む。この時点で、処理結果がワークフローサーバ102に登録されるので、再度図11を用いて説明する。
アクティビティ情報記憶部322dにおいては、アクティビティ情報記憶部322cで6つ登録されていたアクティビティが5つになっている。これは図10の経路情報オブジェクト504gに対応する(「田中六郎」(アクティビティ名「部長確認2」)が削除されている)。
以上の説明の通り、ユーザは、例えば設計者(開発者)の定義の意図や、上司/部下などの経路の定義、あるいは他のユーザの経路情報の編集にとらわれることがなく、(例えば「回覧」することが)不適切であると判断されたアクティビティについての動的で柔軟な削除が可能であるという効果を得ることができる。
また図6でも述べたように、ユーザは、経路情報の前後関係におけるアクティビティの整合性を意識することなく、容易にアクティビティの削除を行うことができるという効果が得られる。
全てのアクティビティの処理が完了したため、全てのstateは「done」、flow_stateが「complete」となっている。
また「佐藤三郎」(アクティビティ名「部長確認」)のexecution_dateに処理時刻が登録される。
以上により、図10のアクティビティを完了した時点でのデータベース内の状態について説明を完了する。
これにより図8から図11の説明を完了する。すなわち、ユーザがクライアント装置101において、ワークフロー(例として「回覧板」)を申請、確認する操作と、実行時のデータを管理する記憶部のデータの状態の説明を完了する。
次に図12から図13により、ワークフローシステムの動作について説明する。
図12は、ワークフローの実行処理の一例を示すフローチャートである。図12のフローチャートのステップS1201からS1210は、クライアント装置101上のCPU201で実行される。またステップS1211からS1220は、ワークフローサーバ102上のCPU201で実行される。
ステップS1201においては、ユーザからワークフローの処理対象の選択を受け付ける。ここで処理対象とは、申請時にメニューから選ばれる場合と、承認者/確認者などが処理待ち案件一覧から実行中且つログインユーザが処理すべき処理待ち案件を選択する場合がある。前者の場合、例えば図8のメニュー506からワークフローの一覧(601)が表示された場合には、ユーザが申請したい項目(例えば「回覧板」802)が選択され、ワークフロー「回覧板」の最初のアクティビティ「回覧申請」)を処理対象として受け付ける。一方、後者の場合、例えば図9の処理待ち案件一覧(901)から処理待ち案件(ワークフロー「回覧板」)のアクティビティ「課長確認」を処理対象として受け付ける。
ステップS1202においては、前記処理対象をユーザに操作させるために、ワークフローサーバ102に前述の処理対象を処理要求として送信する。
ステップS1211においては、クライアント装置101から送信された処理要求を受信する。
ステップS1212においては、処理要求に基づいて、画面データを生成する。具体的には、処理要求として、生成すべき画面の指定(画面レイアウトのID)が特定されており、当該画面レイアウトに対応するアクションにより、ワークフロー実行記憶部323、アクティビティ情報記憶部322の情報を利用して画面データを生成する。
ステップS1213においては、生成した画面データをクライアント装置101に送信する。
ステップS1203においては、ワークフローサーバ102から送信された画面データを受信する。
ステップS1204においては、画面データをクライアント装置101に接続された表示装置に表示し、ユーザからの電子帳票に対する入力処理、経路情報の編集処理、申請/承認/確認などのボタン押下による次のアクティビティへの進むための操作を受け付ける。電子帳票に対する入力処理についてはステップS1204の中で行われているものとして、以降の説明では省略する。
ステップS1205においては、操作内容による条件分岐を行う。具体的には、ユーザから受け付けた操作が、経路情報オブジェクト504において、アクティビティの編集を指示されたものである場合には、ステップS1206に進む。また、次のアクティビティへの進むための操作である場合には、ステップS1210に進む。
ステップS1206においては、経路情報オブジェクト504におけるユーザの操作内容による条件分岐を行う。具体的には、ユーザから受け付けた操作が、アクティビティの追加または更新の指示である場合には、ステップS1207に進む。アクティビティの削除の指示である場合には、ステップS1208に進む。
ステップS1207においては、アクティビティの追加/更新をするためのユーザ操作を受け付け、操作の結果を経路情報オブジェクト504に反映する。詳細については図13において説明する。アクティビティの追加/更新の処理が完了したら、ステップS1204に進む。
ステップS1208においては、ユーザにより指定されたアクティビティを削除する。
ステップS1209においては、アクティビティが削除された結果を経路情報オブジェクト504に反映する。
ステップS1210においては、ユーザにより電子帳票に入力された内容、経路情報オブジェクト504などを、帳票情報としてワークフローサーバ102に送信する。
ステップS1214においては、クライアント装置101から送信された帳票情報を受信する。
ステップS1215においては、帳票情報に含まれる経路情報オブジェクト504の現アクティビティに対するstateを「done」に変更する。
ステップS1216においては、次アクティビティに対するstateを「todo」とし、次アクティビティに対応するユーザにとっての「処理待ち案件」として指定する。
ステップS1217においては、処理中のワークフローにフローIDが付与されているか否かを判定する。ワークフローが起票された新しいものであれば、前述の帳票情報はクライアント装置101から初めて送信されてきたものであり、ワークフローサーバ102においてフローIDはまだ付与されていない場合があるからである。フローIDが付与されていなければ(“NO”の場合)には、ステップS1218に進む。フローIDが付与されていれば(“YES”の場合)には、ステップS1220に進む。
ステップS1218においては、帳票情報にフローIDを付与する。
ステップS1219においては、帳票情報を、ワークフロー実行記憶部323、アクティビティ情報記憶部322に新規に格納する。
ステップS1220においては、フローIDに基づき、ワークフロー実行記憶部323、アクティビティ情報記憶部322に既に格納されている情報と、前述の帳票情報を比較して、必要があれば書き換える。本願における「書き換える」とは、比較の結果としてアクティビティが編集されている場合(増減、更新、およびこれらの組み合わせ)の差分を反映すること、および既存の情報のうち、変更がある部分を書き換えることを含む。また、実際には差分のみ書き換えてもよいし、一度全て削除した上で、帳票情報を新たに格納し直す方法、その他いずれの方法であってもよい。これらいずれの方法であっても、本願における「書き換える」ものである。
以上で、図12におけるフローチャートの処理の説明を完了する。次に、図12のステップS1207に対応する処理の詳細を、図13を用いて説明する。
図13は、ワークフローの実行処理においてアクティビティの追加/更新をする処理の一例を示すフローチャートである。図13のフローチャートのステップS1301からS1309は、クライアント装置101上のCPU201で実行される。またステップS1310からS1313は、ワークフローサーバ102上のCPU201で実行される。
ステップS1301においては、経路情報オブジェクト504におけるユーザの操作内容による条件分岐を行う。具体的には、ユーザから受け付けた操作が、アクティビティの追加である場合には、ステップS1302に進む。アクティビティの更新の指示である場合には、ステップS1303に進む。
ステップS1302においては、アクティビティを追加するための情報をユーザに入力させるため(図5の516)、画面データをワークフローサーバ102に要求する。
ステップS1303においては、アクティビティを更新するための情報をユーザに入力させるため(図5の522)、画面データをワークフローサーバ102に要求する。
ステップS1311においては、クライアント装置101から画面データの要求を受け付ける。
ステップS1312においては、要求がアクティビティの「追加」か「更新」かに応じて、画面データの生成を行う。
ステップS1313においては、生成した画面データをクライアント装置101に送信する。要求が「追加」であった場合(追加画面データを生成した場合)には、ステップS1304に進む。要求が「更新」であった場合(更新画面データを生成した場合)には、ステップS1307に進む。
ステップS1304においては、アクティビティを追加するための画面データを受信する。
ステップS1305においては、アクティビティを追加するための画面をクライアント装置101の表示装置に表示し、ユーザに必要な情報を入力させる。例として、図9のダイアログ(追加画面データに基づき生成した画面)516のアクティビティ名(518)、ユーザ名(519)に入力をさせて、受け付ける。
ステップS1306においては、前述のユーザ入力として受け付けた結果に基づき、経路情報オブジェクト504上に、アクティビティを追加する。以上により、追加処理の説明は完了する。
ステップS1307においては、アクティビティを更新するための画面データを受信する。
ステップS1308においては、アクティビティを更新するための画面に変更前のアクティビティ情報を設定して、クライアント装置101の表示装置に表示し、ユーザに必要な情報を入力させる。
ステップS1309においては、前述のユーザ入力として受け付けた結果に基づき、経路情報オブジェクト504上においてユーザに選択されているアクティビティの情報を更新する。以上により、更新処理の説明は完了する。
以上で、図13におけるフローチャートの処理の説明を完了する。すなわち、図12から図13により、ワークフローシステムの動作についての説明を完了する。
以上の説明により、図6でも述べたように、ユーザは、経路情報の前後関係におけるアクティビティの整合性を意識することなく、容易にアクティビティの追加、更新、削除を行うことができるという効果が得られる。
次に図14から図17を用いて、本発明の実施形態における固定サイズの上位オブジェクトの中に、下位オブジェクトが表示される状態を説明する例である。前述で説明したように、本実施例では、ワークフローシステムのクライアント装置101に表示される経路情報オブジェクトに、1つまたは複数のアクティビティが表示されている。経路情報オブジェクトを本発明における「上位オブジェクト」(あるいは親オブジェクト)、アクティビティを本発明における「下位オブジェクト」(あるいは子オブジェクト)とする。
図14は、本発明の実施形態に係わる、経路情報オブジェクトとアクティビティが表示される状態を示す一例である。本例においては、経路情報オブジェクトは横方向に36単位の長さを持ち、アクティビティは標準で6単位の長さを持つ。504hでは、6つのアクティビティが経路情報オブジェクトに置かれているため、全てのアクティビティが標準である6単位のサイズで表示される。
図14の504iから504kの経路情報オブジェクトでは、アクティビティの数が1つ増えて7つとなった場合の表示方法を示している。表示方法は様々あってよいが、504iから504kの例では、後述する図16の拡大・縮小パターン記憶部D1621に記憶された縮小パターンに基づいて縮小した表示方法が決定される。まず、読みやすさの観点から「アクティビティやアクティビティに表示される文字はいくらでも小さくしてよいわけではない」ので、縮小パターンにおいては、アクティビティや文字の最小サイズを指定することができる。例えば、アクティビティは標準6単位のサイズだが、最小4単位のサイズとし、文字は標準10ポイントだが、最小7ポイントとする、などである。
504iでは、選択状態にあるアクティビティ「課長確認2」以外の表示サイズが、全て5単位となっている(例:1402“課長確認4:下山敬子”)。このように選択状態にあるアクティビティの全てを同じ割合で縮小し、7つのアクティビティ全てを表示する方法がある。この方法は、選択されていない他のアクティビティも可能な限り見やすくする、という効果がある。
次に504jでは、選択状態にあるアクティビティ「課長確認2」に近いアクティビティは、できるかぎり標準サイズ(選択されたアクティビティと同じ6単位)で表示する。504jにおいては、選択されたアクティビティの左隣1つと、右隣2つのアクティビティが標準のサイズである。一方、最左端の1つ、最右端の2つのアクティビティは、最小サイズで表示されている。選択したアクティビティの周囲の状況(周囲のアクティビティの前後関係)を知りたい場合が多いが、この方法により周囲の状況が見やすくなる、という効果がある。
次に、504kでは、選択状態にあるアクティビティ「課長確認2」に近いアクティビティから、離れるに従って、より縮小させる、という方法を表している。これは、504iと504jの中間的な方法であり、選択されたアクティビティの周囲のアクティビティをより見やすくする、という効果がある。
図15は、本発明の実施形態に係わる、経路情報オブジェクトとアクティビティが表示される状態を示す一例である。図14では、7つのアクティビティは、最小サイズにすれば経路情報オブジェクトに配置することができたが、図15の例は、選択されたアクティビティ以外、全てのアクティビティを最小サイズにしても、経路情報オブジェクトに収まらない例である。
経路情報オブジェクトのサイズは固定(例えば36単位)であり、アクティビティの最小サイズは4単位であるため、アクティビティの数が9個を超える場合、504lによると、選択されたアクティビティ以外を全て最小にしても1501の部分が経路情報オブジェクトに収まらない。そこで1502のように経路情報オブジェクトにスクロールバーを設定する。スクロールバーを設定することにより、ユーザは、経路情報オブジェクトに表示されていないアクティビティが存在することを知り、また、バーを移動することで、表示されていないアクティビティが表示されるように表示状態を変更することができる。
ここで、スクロールバーを表示してスクロールさせる方法はあくまで例である。その他の方法では、例えば近年スマートフォンのGUI(グラフィカルユーザインタフェース)などにおいて、スワイプ(スマートフォンのタッチパネルに指を当てて左右に滑らせる動作、以下“スライド移動”と呼ぶことにする)などによることもできる。この場合、経路情報オブジェクトには表示されていないアクティビティが存在することをユーザに認識させるため、経路情報オブジェクトの左端、右端に、何らかの表示をしてもよい。スクロールやスワイプにより経路情報オブジェクトの中に収められているアクティビティが多く、全てのアクティビティを1度に画面に表示できない場合であっても、“スライド移動”させて確認することが可能となる。すなわちスライドすることにより、経路情報オブジェクト(上位オブジェクト)に配置されたアクティビティ(下位オブジェクト)のうち、表示対象となるアクティビティを変更する。なお本実施形態においては、ワークフローのアクティビティを使用しているため、左側にあるアクティビティが時間的に前に処理されるものであるが、実際に左右の前後関係はあってもなくてもよいものとする。
また、以上の例では、選択されたアクティビティは拡大していないが、ユーザにより見やすくするため、選択されたアクティビティの拡大、およびアクティビティ内に記載された情報の拡大、またはアクティビティ内に記載されるべき情報量をより詳細にする、などとしてもよい。
図16は、経路情報オブジェクトにアクティビティを表示する際の表示制御処理の一例を示すフローチャートである。図16のフローチャートの各ステップは、クライアント装置101上のCPU201で実行される。
ステップS1601においては、クライアント装置は、ユーザの操作から経路情報オブジェクトの編集を受け付ける。すなわち、経路情報オブジェクトに対するアクティビティの追加、削除、または選択中のアクティビティの更新を受け付ける。
ステップS1602においては、拡大・縮小パターン記憶部D1621から、拡大パターン・縮小パターンに関する情報を取得する。拡大パターンには、選択されたアクティビティを拡大する場合のサイズ(最大サイズ)、アクティビティ内に表示する情報量と文字サイズ、縮小パターンには、選択されたアクティビティ以外を縮小する場合のパターン、最小サイズ、アクティビティ内に表示する情報量(アクティビティがどのサイズの場合に、アクティビティに関連付けられた情報のうち、どの程度の情報を表示するか)、文字の最小サイズ、などを含む。
ステップS1603においては、アクティビティの増減があった場合を含め、全アクティビティが経路情報オブジェクト504に標準サイズで配置可能か否かを判断する。標準サイズで配置可能(“YES”の場合)には、ステップS1610に進む。標準サイズで配置可能ではない場合(“NO”の場合)には、ステップS1603に進む。
ステップS1604においては、選択されたアクティビティ以外のアクティビティを、どのパターンで縮小するか判断する。ここでは、図14で説明した3つのパターンを例とするが、その他のパターンがあってもよい。選択されたアクティビティ以外を均等に縮小する旨、縮小パターンに設定されている場合(例:図14の504i)にはステップS1605に進む。標準サイズ(図14で説明したところの6単位のサイズ)となるアクティビティを最大数となるように設定されている場合(例:図14の504j)には、ステップS1606に進む。選択されたアクティビティから離れるに従い徐々に小さくする旨、縮小パターンに設定されている場合(例:図14の504k)には、ステップS1607に進む。
ステップS1605においては、選択されたアクティビティ以外を均等に縮小する。最小サイズにまで縮小しなくとも全てのアクティビティが経路情報オブジェクト504に表示可能な場合には、最小サイズにまで縮小しなくともよい。
ステップS1606においては、選択されたアクティビティ以外で標準サイズとなるアクティビティを最大数とする。それ以外のアクティビティティは、最小サイズにする。
ステップS1607においては、選択されたアクティビティから経路情報オブジェクトの最左端、最右端にかけて、アクティビティのサイズを徐々に小さくする。どの程度まで小さくするかは、最小サイズによるが、小さくしなくても(すなわち標準サイズでも)全てのアクティビティが経路情報オブジェクト504に表示可能な場合には、最小サイズにまで縮小しなくともよい。
ステップS1608においては、前記ステップS1605〜S1607でアクティビティを縮小した場合に、アクティビティ内に表示する情報(文字列など)を縮小パターンの設定に基づき一部省略するか、あるいはサイズ(文字サイズなど)を縮小するか、を判断する。省略・縮小しない場合(“NO”の場合)はステップS1610、省略・縮小する場合(“YES”の場合)はステップS1609に進む。ここで、表示内容のうち、省略・縮小するものについて、いずれの項目から省略あるいは縮小するかは、不図示のテーブル(設定ファイル)などで、優先順位が指定することが可能である。さらに、どの程度まで縮小するかということ、またそれ以上縮小できない場合には、省略する、などの設定も可能である。
ステップS1609においては、縮小パターンの設定に基づき、アクティビティ内の表示情報の省略、文字などのサイズを決定する。例えば、ワークフローの例によると、アクティビティサイズを複数の段階に区切り、一段階縮小すると“承認者”の名前を省略し、更に省略すると“アクティビティ名”の文字サイズを小さくするなどのパターンが考えられる。あるいは、いずれも省略せず、文字サイズの縮小のみで対応する、などのパターンが考えられる。このようなパターンが縮小パターンとして定義されており、アクティビティのサイズの縮小・拡大に伴って、縮小の場合には表示内容の省略・縮小し、また縮小したサイズから拡大する場合には、省略した表示内容を再表示し、またサイズの拡大などを制御する。
ステップS1610においては、選択されたアクティビティ(図9の907、図14の1401など太枠で記載されたアクティビティ)を標準サイズよりも拡大する。本ステップはなくともよい。すなわち縮小パターンのみがあり、拡大パターンは定義されていなくともよい。拡大パターンとしては、アクティビティの最大サイズ、表示内容(標準では表示していなかった承認時刻を表示するなど)、文字サイズなどがある。これらはあくまで例であり、他のパターンがあってもよい。
ステップS1611においては、前述の通り各アクティビティを縮小・拡大した結果として、全アクティビティが経路情報オブジェクト504に表示可能に収まるかを判定する。収まる場合(“YES”の場合)はステップS1613に進む。収まらない場合(“NO”の場合)はステップS1612に進む。
ステップS1612において、経路情報オブジェクト504にスクロールバーの付与、あるいはスワイプによって“スライド移動”することが可能となるように設定する。前述の通り、スクロールバーあるいはスワイプはあくまで一例であり、他の方法により“スライド移動”するものであってもよい。例えば、クライアント装置101のハードウェアとしてボタンなどが用意され、それらのボタンの押下により、イベントが発生し“スライド移動”が実行されてもよい。この場合、全てのアクティビティが経路情報オブジェクト504の表示領域内に表示される場合には、前記ボタンに対応する“スライド移動”のイベントは発生しないか、発生しても処理が実行されない。また、前述の“スワイプ”などの場合には、経路情報オブジェクト504上で“スワイプ”することにより実行されるため、可視的な意味ではスクロールバーのようなオブジェクトは表示されない場合があってもよい。いずれの場合も含めて、本発明の実施形態においては、“スライドイベントを処理可能とする”と表現する。
ステップS1613において、アクティビティが設定され、必要に応じてスクロールバーなどが設定された経路情報オブジェクト504がGUI上に表示される。
以上により、図16のフローチャートについての説明を完了する。
また、ワークフローにおける経路情報では、“申請”(最初のアクティビティ)と“最終承認”(最後のアクティビティ)は、特に重要な役割がある。このため、図16のフローチャートで示された処理における“縮小パターン”に対応する処理は実行せず、“標準サイズ”として表示してもよい。
一般的に、下位オブジェクトとしては、“配置指示受付部”で受け付け、“上位オブジェクト”に配置する場合に、最初と最後のオブジェクトには、“常に標準サイズで表示する”という属性を下位オブジェクトに設定してもよい。また、そのような属性を持たせるのではなく、図16のフローチャートで、最初のオブジェクトや最後のオブジェクトを判断して“標準サイズ”で表示するように処理してもよい。また、ユーザに属性を設定させるようにしてもよい。
図17は、本発明の実施形態に係わる、経路情報オブジェクトとアクティビティが表示される状態を示す一例である。前述の経路情報オブジェクトにおいては、アクティビティは全て横向きに並べられたが、縦向きに並べられてもよい(1701)。
また、上位オブジェクト(親オブジェクト)に対して、下位オブジェクト(子オブジェクト)は、縦横2次元に収められるようなものであってもよい(1702)。また、経路情報オブジェクトは、アクティビティに「処理順」という概念があるため、方向性があった。例えば左から右に、矢印が記載されていた。しかしながら、必ずしも方向性は必要ではない。単なる表であってもよく、1702はこの状態を表している。
なお、下位オブジェクトの配置は、アプリケーション(例えば前述のワークフローシステム)の開発時に開発者により実施されてもよいし、アプリケーションの実行時にエンドユーザにより実施されてもよい。いずれの場合も、本発明における“上位オブジェクトの表示領域内に下位オブジェクトを配置するようユーザから指示を受け付ける”ものである。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、本発明におけるプログラムは、図4、図12、図13、図16に示すフローチャートの処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体は図4、図12、図13、図16の処理方法をコンピュータが実行可能なプログラムが記憶されている。なお、本発明におけるプログラムは図4、図12、図13、図16の各装置の処理方法ごとのプログラムであってもよい。
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク、ソリッドステートドライブ等を用いることができる。
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。 さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。