図1は、本発明の一実施形態を示すワークフローシステムの全体構成を示すシステム構成図である。
図1に示すように、本実施形態のワークフローシステムは、クライアント端末101、クライアント端末102、ワークフローサーバ103、メールサーバ104、管理端末105がネットワーク100を通じて接続されている。
ユーザは、例えばウェブブラウザやクライアントソフトウェアなどを利用して、クライアント端末101(102)において案件の起案を行う、或いは、案件の承認を行うことによって、ワークフローサーバ103に対して、案件に対してワークフロー上の処理がしかるべき処理担当者においてなされるようにするため、ワークフローの進行の要求などを行う。
ワークフローサーバ103は、クライアント端末101(102)からのワークフローを進行させるために必要となる要求を受け付け、受け付けた処理(例えば、起案、承認などの処理)に応じて、案件がしかるべき次の処理担当者によって処理が行われるようにする。
ワークフローサーバ103によって、しかるべき次の処理担当者に処理が行われるように処理がされた案件は、次の処理担当者によってクライアント端末101(102)において作業が可能になる。また、ワークフローサーバ103より、次の処理担当者へ案件の処理依頼を、メールサーバ104を介してメールによって通知することを可能とする。
メールサーバ104は、ワークフローサーバ103からの指定された催促配信内容、配信する宛先の情報を受け取り、処理担当者が案件の処理を行うクライアント端末101(102)に対して、メール配信を行う。なお、本発明における1実施形態としてメールにより催促を行うことを例として挙げているため、メールサーバ104を構成としていれているが、あくまで一例であって、催促を行う手段としては、メール以外のメッセージ通知システムを用いても良いこととする。
管理端末105からは、案件をしかるべき処理担当者へ処理依頼が行えるようにするための、案件の処理担当者のルールを設定したプロセスや、ワークフローシステムを使用する処理担当者(ユーザ)、処理担当者(ユーザ)が所属する組織、あるいは、処理担当者(ユーザ)に紐付く役割(ロール)、或いは、ワークフローシステムを運営するために必要となる情報を登録、管理することを可能とする。また、処理担当者(ユーザ)に対し配送処理を行った場合にメールで処理担当者(ユーザ)に対し通知を行うための設定(例えば、メールを配信するか否か、メールの配信のタイミング、配信の文面等の設定)の登録、管理を行うことも可能とする。
次に、図2において、本発明の実施形態におけるハードウェア構成の一例を示す図について説明を行う。
図2は、図1に示したクライアント端末101、クライアント端末102、ワークフローサーバ103、メールサーバ104、管理端末105のハードウェア構成の一例を示す図である。
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。RAM203は、CPU201の主メモリ、ワークエリア等として機能する。
CPU201は、処理の実行に際して必要なプログラム等をRAM203にロードして、プログラムを実行することで各種動作を実現するものである。
また、入力コントローラ(入力C)205は、キーボード209や不図示のマウス等のポインティングデバイスからの入力を制御する。
ビデオコントローラ(VC)206は、CRTディスプレイ(CRT)210等の表示器への表示を制御する。表示器はCRTだけでなく、液晶ディスプレイでも構わない。これらは必要に応じて管理者が使用するものである。本発明には直接関係があるものではない。
メモリコントローラ(MC)207は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)やフロッピー(登録商標)ディスク或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
通信I/Fコントローラ(通信I/FC)208は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。
なお、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、CRT210上での表示を可能としている。また、CPU201は、CRT210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
本発明を実現するためのプログラムは外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。
次に、図3において、本発明の実施形態における機能構成図について説明をする。
ワークフローサーバ103は、宛先決定部311、催促取得部312、配信制御部313、平均処理時間算出部314、初回催促配信時期決定部315、催促配信間隔決定部316、配送部317からなる。
宛先決定部311は、未処理の案件が所定の時間処理されていない状態である場合に、案件の処理担当者、あるいは、処理担当者以外のユーザへ、催促を配信するための宛先を決定する。また、その宛先は、催促の回数、または、催促を行った時の案件の滞留時間に応じて異なるようにする。
催促取得部312は、未処理の案件が所定の時間処理されていない状態である場合に、案件の処理担当者、あるいは、処理担当者以外のユーザへ、催促を配信するための催促を取得する。
配信制御部313は、催促取得部312によって取得した催促を、宛先決定部311で決定した催促の宛先へ配信する。なお、催促の回数に応じて、催促を行う宛先を異なるようにする場合、初回催促配信時期決定部315において決定する初回に催促を配信する時期、催促配信間隔決定部316で決定する2回目以降に催促を配信する間隔、に応じて、メールを配信するタイミングを制御する。また、メールの配信回数に応じて、宛先決定部311で決定する催促の宛先を異なるように制御する。また、案件の滞留時間に応じて催促を行う宛先を異なるようにする場合は、案件が処理担当者の処理待ち状態になってから経過した時間を滞留時間算出部318によって算出し、滞留時間に応じて宛先決定部311で決定する催促の宛先を異なるように制御する。
平均処理時間算出部314は、案件の処理担当者が、案件の処理依頼を受け付けてから実際に処理を行った時間までの平均所要時間を算出する。
初回催促配信時期決定部315は、催促の回数に応じて、催促を行う宛先を異なるようにする場合、未処理の案件が所定の時間処理されていない状態である場合に、案件の処理担当者、あるいは、処理担当者以外のユーザへ、案件の処理依頼を受け付けてから初回の催促を行う時期を決定する。
催促配信間隔決定部316は、催促の回数に応じて、催促を行う宛先を異なるようにする場合、未処理の案件が所定の時間処理されていない状態である場合に、案件の処理担当者、あるいは、処理担当者以外のユーザへ、初回の催促を行った後、2回目以降の催促を行う間隔を決定する。
配送部317は、クライアント端末101の処理部302により、案件の処理が行われたことを受付、次の処理担当者に対し案件の情報を配送する。
滞留時間算出部318は、配送部317により処理担当者に配送された案件が、配送されてから処理担当者の処理待ち状態になってからの経過時間を算出する。
メールサーバ104は、メール配信部321からなる。メール配信部321は、ワークフローサーバ103の配信制御部313によって配信された、催促取得部312で取得された催促と、宛先決定部311で指定された宛先の情報を受け取り、クライアント端末101、クライアント端末102へ対し、催促を配信する。
クライアント端末101、クライアント端末102は、受信部301、処理部302からなる。
受信部301は、メールサーバ104によって配信された催促を受け付ける。
処理部302は、案件の処理を行い、次の処理担当者に対し案件の情報を配送する要求をワークフローサーバ103に対し行う。
管理端末105は、管理部331からなる。管理部331は、宛先決定部311で宛先を決定するために必要となる宛先情報のテーブル、催促取得部312で催促を取得するために必要となる催促の内容が登録されるテーブル、初回催促配信時期決定部315において初回に催促を配信する時期を決定するために必要となるテーブル、催促配信間隔決定部316で2回目以降に催促を配信する間隔を決定するために必要となるテーブルの情報、を管理する。
また、ワークフローシステムの処理担当者が所属する、組織情報(部門ID、ユーザID、ロールID)や、案件の処理を行う処理担当者と処理の順序のルールであるプロセスの定義を行いワークフローシステムにおいて案件が処理されるように管理する。
次に、本発明の実施例において使用する組織図と各種テーブルについて説明を行う。なお、このテーブルについては、ワークフローサーバ103上に構成しても良いし、他のデータベースサーバにおいて構成しても良いこととする。
図8のワークフロー組織情報800は、ワークフローの案件を処理するために処理担当者を決定するために必要となる組織情報を示す図である。図8の801から804は、部門に紐付く部門コードである。なお、図8の801から804で図示する箇所は、1組織単位であり、その全体を階層構造で図8は図示している。各801から804の横には、その組織に所属するユーザ(ワークフローシステムでいう処理担当者)とそのユーザに紐付くロール(課長、部長等の役割)記載しておくこととする。例えば、805は、部門IDがK002に所属するユーザ(大田:USER002)であって、ロールは、「一般ロール:ippan」が紐付いているユーザであることを示す。その他の部門に所属するユーザについても同様であるため他のユーザについては説明を省略する。
図9の案件管理テーブル900は、ワークフローシステムにおいて起案された案件が現在どの処理担当者に対して処理依頼がかかっているのか、現在の案件状態を管理するテーブルである。業務ID901は、起案された案件の業務を特定するためのIDが登録される。案件ID902は、起案された案件を特定するためのIDが登録される。ユーザID903は、案件ID902を処理する現在の処理担当者が登録される。部門ID904は、ユーザID903のユーザが所属する部署の部門IDが登録される。処理依頼日時905は、案件ID902の処理依頼がユーザID903に行われた日時が登録される。
図10のメール配信管理テーブル1000は、処理担当者に対し未処理の案件に関する処理の催促を行うためにメール配信を行うための、配信スタートのタイミング、メールの配信間隔、メールの配信回数、メールの配信日時、を管理するテーブルである。業務ID1001は、起案された案件の業務を特定するためのIDが登録される。案件ID1002は、起案された案件を特定するためのIDが登録される。ユーザID1003は、案件ID1002を処理する現在の処理担当者が登録される。配信スタートタイミング1004は、案件ID1002の処理が未処理の場合に初回のメール配信を行うタイミングが登録される。配信間隔1005は、案件ID1002の処理に初回のメール配信が行われた後に、さらに未処理状態が続いた場合に2回目以降にメール配信を行うための間隔が登録される。配信回数1006は、メールが配信された回数が登録される。
メール配信日時1007は、メールが配信された日時が登録される。
図11の処理履歴テーブル1100は、処理担当者ごとに案件の処理依頼を受けた日時と実際に案件の処理を行った日時を管理するテーブルである。業務ID1101は、起案された案件の業務を特定するためのIDが登録される。案件ID1102は、起案された案件を特定するためのIDが登録される。ユーザID1103は、案件ID1102を処理した処理担当者が登録される。処理依頼日時1104は、案件ID1102の案件が、ユーザID1103の処理担当者に処理依頼された日時が登録される。処理実行日時1105は、案件ID1102をユーザID1103の処理担当者が、実際に処理した日時が登録される。処理時間1106は、処理依頼日時1104から処理実行日時1105までの時間が登録される。
図12のワークフローユーザ情報テーブル1200は、ワークフローシステムにおいて案件を処理する処理担当者におけるメールアドレスを管理するテーブルである。ユーザID1201は、処理担当者のユーザIDが登録される。ユーザ名1202は、ユーザID1201に紐付くユーザ名が登録される。メールアドレス1203は、ユーザID1201に紐付くメールアドレスが登録される。
図13の初回メール配信タイミング管理テーブル1300は、処理担当者に処理依頼がされていて未処理の案件がある場合に、処理依頼を受けてから初回に処理の催促メールを配信するまでの時間を管理するテーブルである。業務ID1301は、起案された案件の業務を特定するためのIDが登録される。判定基準1302は、初回の催促のメールを配信するための基準が登録される。配信スタートタイミング1303は、案件の処理依頼を受けてから催促のメールを配信するまでの時間が登録される。すなわち、配信制御手段によって未処理の案件の処理担当者へ催促を最初に配信する時期は、処理担当者の平均処理時間に応じて異なるようにすることとする。なお、案件の処理担当者の平均処理時間が他の処理担当者の平均処理時間よりも長い場合は、他の処理担当者よりも、最初に配信する催促を早く配信するように値を設定しても良いこととする。
デフォルト使用フラグ1304は、配信スタートタイミングを利用するためにデフォルトのレコードとするための値を登録しておく項目である。
図14の催促メール配信間隔管理テーブル1400は、処理担当者に初回に処理の催促メールが配信されながらも未処理状態が続いた場合に、2回目以降にメールを配信する間隔を管理するテーブルである。業務ID1401は、起案された案件の業務を特定するためのIDが登録される。判定基準1402は、2回目以降の催促のメールを配信するために基準が登録される。配信間隔1403は、2回目以降の催促のメールを配信する間隔の時間が登録される。すなわち、最初に配信する催促が宛先に配信されてから、催促を、第1の宛先である案件の処理担当者が処理を行うまで定期的に配信する催促の配信間隔は、第1の宛先となる処理担当者の、案件が処理待ち状態となってから処理がなされたまでの時間の平均処理時間の長さに応じて異なるようにすることとする。なお、配信間隔は、案件の処理担当者の平均処理時間が他の処理担当者の平均処理時間よりも長い場合は、他の処理担当者よりも、短くすることを行っても良いこととする。デフォルト使用フラグ1304は、配信間隔を利用するためにデフォルトのレコードとするための値を登録しておく項目である。
なお図13と図14においては、実施例においては、業務単位で配信スタートタイミング、配信間隔を管理しているが、これはあくまでも一例であって、業務単位で管理しないでシステム全体で同一の管理を行う構成であっても良いこととする。
図15の宛先管理テーブル1500は、催促のメールを配信する場合に必要となる、宛先とメッセージを催促が行われた回数ごとに管理するテーブルである。業務ID1501は、起案された案件の業務を特定するためのIDが登録される。回数1502は、催促が行われる(1回目、2回目等の)回数が登録される。宛先ロールのルール1503は、催促のメールを処理担当者本人以外に配信する宛先のロールのルールが登録される。なお、値が無い場合は、処理担当者本人のみへ本人用メッセージ1504で指定されたメッセージを配信することになる。本人用メッセージ1504は、処理担当者本人に配信する催促のメッセージが登録される。本人以外用メッセージ1505は、処理担当者本人以外に配信する催促のメッセージが登録される。なお、本実施例においては、宛先決定手段は、未処理の案件の処理担当者の宛先に配信された催促の回数が増えることに応じて、催促を配信する処理担当者ではないユーザの宛先を増やすこととする。
図16のロール管理テーブル1600は、図15の宛先ロールのルールで指定されたロールを実際の処理担当者のロールを基準に相対的に管理したテーブルである。基点役割1601は、処理担当者のロールが登録される。1つ上の上位役割1602は、処理担当者のロールに対する1つ上の上位役割が登録される。2つ上の上位役割1603は、処理担当者のロールに対する2つ上の上位役割が登録される。3つ上の上位役割1604は、処理担当者のロールに対する3つ上の上位役割が登録される。なお、図15の宛先ロールのルール1503に登録されている値を元に、図16の1つ上の上位役割1602、2つ上の上位役割1603、3つ上の上位役割1604を参照することにより実際の催促メールの宛先となるユーザのロールの値を処理担当者ごとに抽出できるようにする。
図23のワークフロー組織情報2300は、ワークフローの案件を処理するために処理担当者を決定するために必要となる組織情報を示す図である。図23の2301から2306で図示する箇所は、部門に紐付く部門IDを記載している。なお、図23の2301から2306で図示する箇所は、1組織単位であり、その全体を階層構造で図23は図示している。各2301から2306の横には、その組織に所属するユーザ(ワークフローシステムでいう処理担当者)とそのユーザに紐付くロール(課長、部長等の役割)記載しておくこととする。例えば、2307は、部門IDがK001に所属するユーザ(山田:USER010)であって、ロールは、「課長ロール:kacho」が紐付いているユーザであることを示す。その他の部門に所属するユーザについても同様であるため他のユーザについては説明を省略する。
図24の宛先管理テーブル2400は、催促のメールを配信する場合に必要となる、宛先とメッセージを、催促が行われた回数ごとに管理するテーブルである。業務ID2401は、起案された案件の業務を特定するためのIDが登録される。回数2402は、催促が行われる(1回目、2回目等の)回数が登録される。宛先のルール2403は、催促のメールを処理担当者本人以外に配信する宛先のルールが、案件に紐づくプロセス定義に指定されている処理担当者の情報より登録される。なお、値が無い場合は、処理担当者本人のみへ本人用メッセージ2404で指定されたメッセージを配信することになる。本人用メッセージ2404は、処理担当者本人に配信する催促のメッセージが登録される。本人以外用メッセージ2405は、処理担当者本人以外に配信する催促のメッセージが登録される。
図25の宛先管理テーブル2500は、催促のメールを配信する場合に必要となる、宛先とメッセージを、催促が行われた回数ごとに管理するテーブルである。業務ID2501は、起案された案件の業務を特定するためのIDが登録される。回数2502は、催促が行われる(1回目、2回目等の)回数が登録される。宛先のルール2503は、催促のメールを処理担当者本人以外に配信する宛先のルールが、案件に紐づくプロセス定義のアクティビティの位置情報より登録される。なお、値が無い場合は、処理担当者本人のみへ本人用メッセージ2504で指定されたメッセージを配信することになる。本人用メッセージ2504は、処理担当者本人に配信する催促のメッセージが登録される。本人以外用のメッセージ2505は、処理担当者本人以外に配信する催促のメッセージが登録される。
図28の宛先管理テーブル2800は、催促のメールを配信する場合に必要となる、宛先とメッセージを、案件の処理待ち状態になってから経過した時間ごとに管理するテーブルである。業務ID2801は、起案された案件の業務を特定するためのIDが登録される。経過時間2802は、催促を行うための経過時間の範囲が登録される。宛先ロールのルール2803は、催促のメールを処理担当者本人以外に配信する宛先ロールのルールが登録される。なお、値が無い場合は、処理担当者本人のみへ本人用メッセージ2404で指定されたメッセージを配信することになる。本人用メッセージ2804は、処理担当者本人に配信する催促のメッセージが登録される。本人以外用メッセージ2805は、処理担当者本人以外に配信する催促のメッセージが登録される。
図33の案件期限管理テーブル3300は、案件の処理期限を管理するテーブルである。案件ID3301は、申請された案件の案件IDが登録される。案件の処理期限3302は、案件がワークフローにおいて最終の処理がなされるべき期限が登録される。なお、この期限については、案件の申請者が申請時に設定する方法、ワークフローの管理者が申請される案件に紐づく業務単位で期限を設定する方法、等によって行うことを可能とする。また、この方法については限定しない。
図35の宛先管理テーブル3500は、催促のメールを配信する場合に必要となる、宛先とメッセージを、催促が行われた回数ごとに管理するテーブルである。業務ID3501は、起案された案件の業務を特定するためのIDが登録される。回数3502は、催促が行われる(1回目、2回目等の)回数が登録される。宛先ロールのルール3503は、催促のメールを処理担当者本人以外に配信する宛先のロールのルールが登録される。なお、値が無い場合は、処理担当者本人のみへ本人用メッセージ3504で指定されたメッセージを配信することになる。本人用メッセージ3504は、処理担当者本人に配信する催促のメッセージが登録される。本人以外用メッセージ3505は、処理担当者本人以外に配信する催促のメッセージが登録される。
図38の追加宛先管理テーブル3800は、案件の処理期限までの残り時間が、案件の平均処理時間を切っている場合に催促を送る場合に、追加の宛先を取得するための宛先ロールのルールを管理するテーブルである。すなわち、催促を送る時から案件の処理期限までの時間が、第1の宛先に関する処理済みの案件の平均処理時間よりも短い場合に、催促を送信する所定の送信先を記憶する。また、追加の宛先に送る催促のメッセージも管理する。業務ID3801は、起案された案件の業務を特定するためのIDが登録される。回数3802は、催促が行われる(1回目、2回目等の)回数が登録される。宛先ロールのルール3803は、催促のメールを処理担当者本人以外に配信する宛先のロールのルールが登録される。本人以外用メッセージ3804は、処理担当者本人以外に配信する催促のメッセージが登録される。
<第1の実施形態>
次に、以下、図4〜7を参照して、第1の実施形態における本発明の催促メール配信処理について説明する。第1の実施形態では、催促を送る回数に応じて、催促を送る対象者を決定する方法において、本人以外に催促を送る対象者は、案件の処理担当者が所属する組織の情報から決定する実施形態について説明する。なお、図4、5、6は全てワークフローサーバ103のCPU201の処理であることとする。また図7においては、ステップS711、714はメールサーバ104のCPU201、ステップS712、713は、クライアント端末101のCPU201、ステップS715、716は、クライアント端末102のCPU201の処理であることとし、それ以外の処理はワークフローサーバ103のCPU201の処理とする。
図4は、催促メール配信処理のメインの処理である。なお、本処理は10分単位で処理を繰り返すことを前提とする。
ステップS401では、案件管理テーブル900を参照し、案件の件数を取得する。取得した案件数分以下ステップS402からステップS409までの処理を繰り返す。
ステップS402では、案件管理テーブル900を参照し、案件情報である、業務ID901、案件ID902、ユーザID903、部門ID904、処理依頼日時905の各項目を取得して、ステップS403へ処理を進める。
なお、本処理の説明を行うにあたって、ステップS402においては、図9の908のレコードの、業務ID901=G002、案件ID902=A004、ユーザID903=USER001、部門ID904=K001、処理依頼日時905=2014/05/22 15:30:05の値を取得することによって、ステップS403以降の処理の説明を行うこととする。
ステップS403では、処理中の案件に対して、本処理が初回の処理かどうかを判定する。メール配信管理テーブル1000を参照し、ステップ402で取得した値である、業務ID901=G002、案件ID902=A004、ユーザID903=USER001、をもとに対象となるレコードを取得する。その際、レコードの取得できなかった場合(ステップS403でNOの場合)、初回処理とみなしてステップS404へ処理を進める。レコードの取得が出来た場合(ステップS403でYESの場合)は2回目以降の処理とみなしてステップS408へ処理を進める。例として挙げている、図9の908のレコードの場合、業務ID901=G002、案件ID902=A004、ユーザID903=USER001、の値で、メール配信管理テーブル1000を参照すると、メール配信管理テーブル1000の1010のレコードが存在することとなるため、ステップS408へ処理を進める。また、該当の1010のレコードの配信回数1006が1となっているが、これは、過去にメールの配信が1回行われているという意味となる。
ステップS404では、案件に紐付いたユーザの処理速度の算出を行う。ステップS402で取得した、ユーザID903=USER001、をもとに、図11の処理履歴テーブル1100を参照し、例えば、処理依頼日時1104と処理実行日時1105が現在日付から1ヶ月以内に存在する該当のレコードを取得する。そのレコードの各処理時間1106を取得し、取得された処理時間1106の平均値を算出後、その値をユーザの平均処理時間として保持して、ステップS405へ処理を進める。例えば、例として挙げている、図9の908のレコードの業務ID901=G002、ユーザID903=USER001をもとに処理履歴テーブル1100を参照すると、1110、1111、1112のレコードが対象となり、これら全てが処理依頼日時1104と処理実行日時1105が現在日付から1ヶ月以内に存在すると仮定すると、この場合、平均処理時間の値は12時間となる。
なお、現在日付から1ヶ月以内という期間設定を行っているが、これに限定されることはなく、期間は任意に設定しても、すなわち、平均処理時間は、過去一定の期間(任意の期間)において算出することとしても、あるいは、過去の全ての処理履歴を対象とする場合は、その期間を設定しても良いこととする。また、処理履歴の対象範囲をユーザIDに紐付く全ての案件から抽出してもよいし、ユーザIDに紐付く中でも、処理対象となっている案件と同じ業務の過去の処理履歴から処理履歴を算出しても良いこととする。すなわち、平均処理時間は、ワークフローシステム単位、または、ワークフローシステムで起案可能な業務の業務単位において処理担当者ごとにおいて算出しても良いこととする。
ステップS405では、初回に配信するメールの配信タイミングを取得する処理を行う。取得方法については図5の初回メール配信タイミング取得処理において説明する。
ステップS406では、2回目以降に配信するメールの配信間隔を取得する処理を行う。取得方法については図6の催促メール配信間隔取得処理において説明する。
ステップS407では、初回のメール配信処理としてメールの配信回数を設定する。そのため、対象案件におけるメールの配信回数を0に設定して、ステップS409に処理を進める。
一方、ステップS408では、2回目以降の処理としてメールの配信回数を設定する。図9の908のレコードの場合、業務ID901=G002、案件ID902=A004、ユーザID903=USER001、の値で、メール配信管理テーブル1000を参照すると、メール配信管理テーブル1000の1010のレコードが該当のレコードとなり、そのレコードの配信回数1006の値の1を取得し、配信回数を1とする。その後ステップS409へ処理を進める。
ステップS409では、配信回数に応じた催促メールの宛先設定とメールの配信処理を行う。処理内容については、図7の催促メール配信処理の宛先設定及びメール配信の処理において説明する。
図5では、処理の担当者に配信する初回の催促メールについて、案件の処理依頼を受けてからどのぐらいのタイミングで配信するかを、案件に紐付いたユーザの平均処理時間に合わせて決定する初回メール配信タイミング取得処理について説明をする。
ステップS501では、初回メール配信のタイミングにデフォルト値を使用するかどうかを示したフラグをテーブルから取得する。初回メール配信タイミング管理テーブル1300を参照し、まず、業務ID1301がdefaultの値であるレコード(1305)のデフォルト使用フラグ1304の値を取得して、ステップS502へ処理を進める。なお、デフォルト使用フラグ1304の値がFALSEの場合は、このレコードの配信スタートタイミング1303の値は使わず、TRUEの場合は、このレコードの配信スタートタイミング1303の値を使うということになる。
ステップS502では、初回メール配信のタイミングにデフォルト値を使用するかどうか判定を行う。ステップS501で取得したデフォルト使用フラグ1304がTRUEの場合(ステップS502でYESの場合)はデフォルトのタイミングを使用するものとして、ステップS503へ処理を進める。デフォルト使用フラグ1304がFALSEの場合(ステップS502でNOの場合)は処理速度に応じた設定値を使用するものとして、ステップS504へ処理を進める。
ステップS503では、初回メール配信のタイミングにデフォルトの値を使用するものとして、初回メール配信タイミング管理テーブル1300を参照し、業務ID1301がdefaultのレコードの配信スタートタイミング1303の値を取得する。例えば図13の場合、配信スタートタイミング1303は24時間後ということになる。
一方、ステップS504では、処理速度に応じた設定値を使用することになるため、ステップ402で取得した業務ID901=G002を元に、初回メール配信タイミング管理テーブル1300を参照し、該当するレコード(1306)の判定基準1302とステップS404で取得した処理速度を用いて、該当する配信スタートタイミング1303を取得する。例えば、図9の908の案件の処理担当者となるユーザIDの平均処理時間が、ステップS404において算出した平均処理時間は12時間であるため、図13の該当のレコード(1306)の判定基準1302の条件に合致するため、配信スタートタイミング1303の17時間を配信スタートタイミングとして取得する。すなわち、第1の宛先となる処理担当者の、案件が処理待ち状態となってから処理がなされたまでの時間の平均処理時間に応じて、催促を前記宛先に最初に配信する時期を異なるようにすることが可能になる。
図6では、処理の担当者に繰り返し配信する2回目以降の催促メールについて、どれぐらいの間隔で繰り返して配信するのか、案件に紐付いたユーザの平均処理時間に合わせて取得する処理を記載する。
ステップS601では、配信間隔にデフォルト値を使用するかどうかを示したフラグをテーブルから取得する。催促メール配信間隔管理テーブル1400を参照し、業務ID1401がdefaultの値であるレコード(1405)のデフォルト使用フラグ1404の値を取得して、ステップS602へ処理を進める。なお、デフォルト使用フラグ1404の値がFALSEの場合は、このレコードの配信間隔1403の値は使わず、TRUEの場合は、このレコードの配信間隔1403の値を使うということになる。
ステップS602では、配信間隔にデフォルト値を使用するかどうかの判定を行う。ステップS601で取得したデフォルト使用フラグ1404の値がTRUEの場合(ステップS602でYESの場合)は、デフォルトのタイミングを使用するものとして、ステップS603へ処理を進める。デフォルト使用フラグ1404の値がFALSEの場合(ステップS602でNOの場合)は処理速度に応じた設定値を使用するものとして、ステップS604へ処理を進める。
ステップS603では、配信間隔にデフォルトの値を使用するものとして、催促メール配信間隔管理テーブル1400を参照し、業務ID1401がdefaultのレコード(1405)の配信間隔1403の値を取得する。例えば図14の場合、配信間隔1403は12時間後ということになる。
一方、ステップS604では、処理速度に応じた設定値を使用することになるため、ステップ402で取得した業務ID901=G002を元に、催促メール配信間隔管理テーブル1400を参照し、該当するレコード(1406)の判定基準1402とステップS404で取得した処理速度を用いて、該当する配信間隔1403を取得する。例えば、図9の908の案件の処理担当者となるユーザIDの平均処理時間が、ステップS404において算出した平均処理時間が、は12時間であるため、図14の該当のレコード(1406)の判定基準1402の条件に合致するため、配信間隔1403の6時間を配信間隔として取得する。
すなわち、第1の宛先となる処理担当者の、案件が処理待ち状態となってから処理がなされたまでの時間の平均処理時間の長さに応じて、定期的に配信する催促の配信間隔を異なるように催促を配信可能であることとする。
図7では、処理中の案件の催促メールの配信回数に応じて、宛先とメッセージの設定を行い、配信可能時刻になった場合に、メールを配信する処理について記載する。
ステップS701では、処理中の案件のメール配信が未実施か否かを判定する。具体的には、ステップS407または、ステップS408で取得した配信回数が0である場合、メール配信は未実施とみなしてステップS702へ処理を進める。ステップS407または、ステップS408で取得した配信回数が0でない場合、メール配信実施済みとみなしてステップS703へ処理を進める。
例えば、図9の908のレコード(業務ID901=G002、案件ID902=A004、ユーザID903=USER001、部門ID904=K001、処理依頼日時905=2014/05/22 15:30:05)の場合、ステップS408で配信回数は1回として取得しているため、メール配信は実施済みとなり、ステップS703へ処理を進める。
ステップS702では、メール配信未実施なので、現在日時が、処理依頼日と配信スタートタイミングで取得した時間から算出したメール配信予定日時に達しているかどうか判定する。ステップS402で取得した処理依頼日時905とステップS504またはステップS503で取得した配信スタートタイミングを加算して、その日時が現在日時を過ぎている場合(ステップS702でYESの場合)、既にメール配信予定日時になったとみなして、ステップS704へ処理を進める。その日時が現在日時を過ぎていない場合(ステップS702でNOの場合)、まだメール配信予定日時になっていないとみなして、ステップS710へ処理を進める。
例えば、図9の908のレコード(業務ID901=G002、案件ID902=A004、ユーザID903=USER001、部門ID904=K001、処理依頼日時905=2014/05/22 15:30:05)の場合、その処理依頼日時905に配信間隔スタートタイミングの値(図10の1010の配信スタートタイミング1004の値が17時間後であるため17時間)を足すと、2014/5/22 15:30:05+17時間=2014/5/23 08:30:05となる。その結果が、現在日時より過ぎている場合、ステップS704に処理を進める。また、その結果が現在日時より過ぎていないと場合は、ステップS710へ処理を進める。
一方、ステップS703では、メール配信が2回目以降なので、現在日時が、前回のメール配信日時と取得した配信間隔によって算出したメール配信予定日時に達しているかどうか判定する。
例えば、図9の908のレコード(業務ID901=G002、案件ID902=A004、ユーザID903=USER001、部門ID904=K001、処理依頼日時905=2014/05/22 15:30:05)の場合、ステップ402で取得した、業務ID901=G002、案件ID902=A004、ユーザID903=USER001をもとにメール配信管理テーブル1000を参照して、対象となるレコード(1010)のメール配信日時1007と配信間隔1005を取得する。メール配信日時1007と配信間隔1005(ステップS604またはステップS603で取得した配信間隔はステップS710でメール配信管理テーブル1000の配信間隔1005に登録されている)を加算して、その日時が現在日時を過ぎている場合(ステップS703でYESの場合)、既にメール配信予定日時になったとみなして、ステップS704へ処理を進める。ただし、その日時が現在日時を過ぎていない場合(ステップS703でNOの場合)、まだメール配信予定日時になっていないとみなして、本処理を終了する。図9の908のレコードの場合、メール配信管理テーブル1000の1010のレコードが対応するレコードとなり、その、メール配信日時1007に配信間隔1005を足すと、2014/5/23 08:30:05+6時間=2014/5/23 14:30:05となる。その結果が、現在日時を過ぎている場合は、ステップS704に処理を進める。また、その結果が現在日時を過ぎていない場合、本処理を終了する。
ステップS704では、処理中の案件の催促メール配信回数に応じて、宛先のロールのルールとメッセージの取得を行う。図9の908のレコードの業務ID901=G002をもとに、宛先管理テーブル1500を参照して、業務ID1501が同じレコードの中より、回数1502に、ステップS407またはステップS408で取得した配信回数に1加算した値と同じ値の回数が保持されたレコードを取得する。例えば、図9の908のレコード(業務ID901=G002、案件ID902=A004、ユーザID903=USER001、部門ID904=K001、処理依頼日時905=2014/05/22 15:30:05)の場合、現在のところメール配信管理テーブル1000の配信回数は1であるため、業務ID1501がG002で、回数1502は2の値のレコードを取得する(図15の1510)。次に、そのレコードの宛先ロールのルール1503、本人用メッセージ1504、本人以外用メッセージ1505を取得する。取得されたレコード(図15の1510)の場合、宛先ロールのルール1503は、「1つ上の上位役割、2つ上の上位役割」、本人用メッセージ1504は、「2回目催促:処理してください」、本人以外用メッセージ1505は「[ユーザ名]さんが1度目の催促を無視して[案件名]の処理をしていません。処理がされるように連絡してください。」、の値を取得する。その後、ステップS705に処理を進める。すなわち、未処理の案件の処理担当者の宛先に配信される処理の催促の回数に応じて、催促を配信する宛先を決定する(宛先決定手段)。宛先は、処理担当者、または、処理担当者と前記処理担当者ではないユーザのいずれかの宛先である。また、宛先決定手段で決定される宛先に対する催促を取得する(催促取得手段)。また、前記宛先決定手段で決定される宛先に、催促を宛先に配信するための配信制御を行う(配信制御手段)。
ステップS705では、ステップS704で取得した宛先ロールのルール1503に該当するユーザが、ワークフローの組織上のどのユーザに当たるのか解決し、ステップS704で取得した本人以外用メッセージ1505を送る人を特定する。
まず、宛先ロールのルール1503における、処理担当者の「1つ上の上位役割(2つ上の上位役割、3つ上位の役割)」については、処理担当者によって相対的に変わってくるため、役割の実際の値を特定するために、ロール管理テーブル1600に図示する、各ロールに対応した上位役割を参照し取得する。例えば、処理者のロールがUSER001(図18の807)の場合、基点役割1601がippan(1610)を参照し、1つ上の上位役割1602は、kacho(1602)となる。また、処理者のロールがUSER010(図18の808)の場合、基点役割1601がkacho(1620)を参照し、1つ上の上位役割1602は、bucho(1602)となる。すなわち、宛先決定手段によって決定される処理担当者ではないユーザは、処理担当者に指定された役割よりも上位の役割であることとする。
次に、その役割を持つものを、本実施例においては、ワークフローの処理担当者が所属する図8の組織の同一組織系列の部門から特定する方法によって特定することとする。例えば、図8、ワークフロー組織情報800のUSER001(807)のユーザの所属する組織は、本部001、部001、課001のそれぞれの階層に割り当てられた組織コードを連結すると、HB001B001K001で示すことが出来る。次に、同一系列階層においてUSER001のロール(ippan)の1つ上の上位役割(kacho)のユーザがいないかを判定する。USER001(807)の場合、まず同階層にkachoの役割をもつUSER010が存在するため、USER010(808)の山田を同一系列階層において1つ上の上位役割のユーザとして特定することが出来る。また、図8のUSER010が処理担当者である場合、USER010が所属する組織は、本部001、部001、課001のそれぞれの階層に割り当てられた組織コードを連結すると、HB001B001K001で示すことが出来る。次に、同一系列階層においてUSER010のロール(kacho)の1つ上の上位役割のユーザがいないかを判定する。USER010(808)の場合、1つ上の上位役割のbuchoの役割をもつ人がいるかを判定する。この場合同階層にはいないため、次に、1つ上の階層である、HB001B001の組織にbuchoの役割をもつユーザがいるかを探索する。この組織にはUSER020(809)が存在するため、USER020(809)の井上が同一系列階層において1つ上の上位役割を持つユーザとして特定することが出来る。すなわち、宛先決定手段によって決定される処理担当者ではないユーザは、処理担当者が所属する組織の同系列の階層に所属するユーザであることとする。
例えば、図9の908のレコードの場合、ユーザID903がUSER001、部門ID904がK001の値をもとに、ステップS704において、図15の1510のレコードが取得できているため、宛先ロールのルール1503の値は、「1つ上の上位役割、2つ上の上位役割」となる。
ユーザID903のUSER001は図8においてロールがippanであるため、1つ上の上位役割は、図16を参照するとkachoとなる。また、2つ上の上位役割は、図16を参照するとbuchoとなる。ユーザID903のUSER001は、図8の803に示す組織コードがK001に所属しているため、同一組織系列の階層におけるkachoは、USER010(808)の山田となる。また、同一組織系列の階層におけるbuchoは、USER020(809)の井上となる。したがって、この2人を本人以外用メッセージ1505を配信する人として特定することが出来る。
なお、本実施例においては、処理担当者以外に催促を配信するユーザを処理担当者の上位役割を持つユーザから取得するようにしているが、処理担当者との関係において上位の役割でなくてもよく、ある特定の役割のユーザから取得できるようにしても良いこととする。すなわち、宛先決定手段によって決定される処理担当者ではないユーザは、特定の役割を持つユーザであることとする。
また、本実施例においても説明したとおり、処理担当者以外に催促を配信するユーザを処理担当者の上位役割を持つユーザから取得するようにしているが、このユーザは、処理担当者が処理をする案件のプロセス定義上の処理担当者となっていなくても良いということである。すなわち、宛先決定手段によって決定される処理担当者ではないユーザは、処理担当者が処理する案件のプロセスの処理担当者ではなくても良いこととする。
なお、催促を送る宛先となる、処理待ち状態の案件を処理する予定を現在保持する処理担当者を第1の宛先とし、処理担当者以外に催促を送るユーザを第2の宛先と呼んでも良いこととする。
ステップS706では、ステップS705でメール配信対象として取得したワークフローのユーザ情報のメールアドレスを取得する。図12のワークフローユーザ情報テーブル1200を参照して、ステップS402で取得したユーザID903とステップS705で取得したユーザIDのそれぞれ対応するユーザID1201のメールアドレス1203を取得する。すなわち、催促は処理担当者へ配信される催促メールであり、宛先は催促メール配信するためのメールアドレスであることとする。
例えば、ステップS402で取得したユーザIDがUSER001で、ステップS705で取得したユーザIDがUSER010、USER020である場合、USER001@co.jpを本人用メッセージ1504の宛先として取得し、USER010@co.jpとUSER020@co.jpを本人以外用メッセージ1505の宛先として取得する。
ステップS707では、処理を遅延しているユーザ本人(第1の宛先)に、ステップS704で取得した、本人用メッセージ1504と、ステップS706で取得した、図9のレコード(908)の処理担当者(第1の宛先)であるUSER001のメールアドレスの情報を利用してメールサーバ104に対しメールの配信の依頼を行う。すなわち、催促取得手段で取得された催促を宛先に配信するための配信制御を行う(配信制御手段)。
ステップS708では本人以外のユーザに催促メールを配信する必要があるか、宛先ロールのルールの有無で判定する。ステップS704で取得した宛先ロールのルール1503に値が設定されている場合(ステップS708においてYESの場合)、本人以外への催促メールを配信する必要があるとみなして、ステップS709へ処理を進める。ステップS704で取得した宛先ロールのルール1503に値が設定されていなかった場合(ステップS708においてNOの場合)、本人以外への催促メールを配信する必要がないとみなして、ステップS710へ処理を進める。すなわち、宛先決定手段は、メールの配信回数が所定回数を下回るときは処理担当者ではないユーザの宛先設定しないこととする(図15、1506の宛先ロールのルール1503)。
図9の908のレコードの現在の状態においては、ステップS704では、宛先ロールのルール1503の値として「1つ上の上位役割、2つ上の上位役割」を取得しているため、ステップS709へ処理を進める。
ステップS709では、処理を遅延しているユーザ本人以外(第2の宛先)にステップS704で取得した、本人以外用メッセージ1505と、ステップS706で取得した、図9のレコード(908)の処理担当者であるUSER001以外のメールアドレスの情報(第2の宛先)を利用してメールサーバ104に対しメールの配信の依頼を行う。
ステップS710は、ステップ402で取得した業務ID901、案件ID902、ユーザID903をキーとしてメール配信管理テーブル1000登録処理または更新処理を行う。
登録処理となるのは、図7のメール配信の処理が案件に対して最初に行われた場合、すなわち、最初にステップS702でNOとなることで図7の処理が行われた場合、である。この場合、業務ID1001へはステップS402で取得した業務ID901の値、案件ID1002へはステップS402で取得した案件ID902、ユーザID1003へはステップS402で取得したユーザID903の値、配信スタートタイミング1004へはステップS503またはステップS504で取得した値、配信間隔1005へはステップS603またはステップS604で取得した値、配信回数はステップS710の処理よりも前の処理において取得された配信回数の値、を設定し登録する。
更新処理となる場合は、催促メールが配信場合である。この場合、業務ID1001、案件ID1002、ユーザID1003をキーとする、処理対象となっている案件に該当するレコードは既に登録されているため、業務ID1001、案件ID1002、ユーザID1003をキーとして、配信回数1006、メール配信日時1007を更新する。配信回数1006へは、ステップS405で取得した配信回数に1を加算した値で、メール配信日時1007へは、メールが配信された時刻の値で、更新する。
例えば、図9の908のレコード(業務ID901=G002、案件ID902=A004、ユーザID903=USER001、部門ID904=K001、処理依頼日時905=2014/05/22 15:30:05)の場合、初回の登録の場合、業務ID1001へはG002、案件ID1002へはA004、ユーザID1003へはUSER001、配信スタートタイミング1004へは17時間後、配信間隔1005へは6時間、配信回数へは0回、を値として設定し登録することになる。また登録後、1回目のメール配信がされた後は、配信回数1006へは1、メール配信日時1007へはメールの配信日時、を値として設定し該当のレコードを更新する(図10の1010)ことになる。
ステップS711において、メールサーバ104は、ステップS707においてワークフローサーバ103によって配信依頼を受けたメールの情報をもとに、クライアント端末101に対し、メールを配信する。
ステップS712において、クライアント端末101は、ステップS711でメールサーバ104より配信されたメールを受信する。
ステップS713において、クライアント端末101は、ステップS712においてクライアント端末101が受信したメールを表示画面において、表示する。なお、メールのイメージとしては、図17の1710に図示するようになる。メールの宛先にはステップS706で取得したUSER001のメールアドレスであるUSER001@co.jpが設定される(1711)。また、ステップS704で、本人用メッセージ1504として、「2回目催促:処理して下さい。」を取得しているため、その文言がメール本文に記載される(1712)。
ステップS714において、メールサーバ104は、ステップS709においてワークフローサーバ103によって配信依頼を受けたメールの情報をもとに、クライアント端末102に対し、メールを配信する。
ステップS715において、クライアント端末102は、ステップS714で配信されたメールを受信する。ステップS706で取得したメールアドレスによって配信されるクアライアント端末の数分の宛先分クライアント端末において、配信されたメールを受信する。
ステップS716において、クライアント端末102は、ステップS715でクライアント端末102が受信したメールを表示画面において、表示する。
なお、メールのイメージとしては、図17に図示するようになる。ステップS704で、本人以外用メッセージ1505として、「[ユーザ名]さんが1度目の催促を無視して[案件名]の処理をしていません。処理がされるように連絡してください。」を取得しているため、[ユーザ名]の部分には、処理対象として説明を行っている図9、908のレコードのユーザID903の値=USER001の値を入れ、[案件名]の部分には、処理対象として説明を行っている図9、908のレコードの案件ID902の値=A004を代入してメッセージを作成している(1722、1732)。また、メールの宛先にはステップS706で取得した、処理対象として説明を行っている図9、908のレコードのユーザID903であるUSER001、の1つ上の役割(kacho)を持つユーザ(USER010)に紐付くメールアドレスであるUSER010@co.jpと、の2つ上の役割(bucho)を持つユーザ(USER020)に紐付くメールアドレスであるUSER020@co.jpと、が設定される(1721、1731)。
すなわち、催促を第1の宛先と第2の宛先に送信する場合、第1の宛先を第1の宛先に送信する催促の宛先へ、第2の宛先を第2の宛先に送信する催促の宛先へそれぞれ設定することにより、第1の宛先に送信する催促と第2の宛先に送信する催促を個別に配信可能であることとする。
なお、図9の908のレコードにおける1回目の催促メールは、宛先管理テーブル1500の1509のレコードを元に配信を依頼するため、処理担当者本人用の催促メールは図20の2010となり、処理担当者本人以外のユーザへ配信される催促メールは2020のみとなる。
続いて、本発明の第1の実施形態における、案件の処理期限がある場合の催促の配信の方法について説明を行う。これまでの説明では、どの案件も、案件に対する催促を行う宛先については、配信の回数に応じた宛先を、宛先管理テーブル1500よりの宛先のルールを取得することにより決定していた。したがって、初回に催促を送る場合には、どのような案件でも必ず、初回(回数の値が1)に設定されている宛先に対して催促が送られることになる。これから説明する方法は、案件に処理の期限が設定されていることが前提であるとし、催促を配信する時に、案件の処理期限までの時間が、処理担当者の案件の平均処理時間をきっていて、かつ、かつ、現在保持する配信回数に対応する、案件を処理すべき処理担当者以外の宛先、が宛先管理テーブルから取得できなかった場合に、初回に催促の送信を送る宛先を、宛先管理テーブルより決定される初回の宛先ではなく、次の2回目に決定される宛先に催促を送信するという方法である。なお、宛先管理テーブルに、初回に催促が送られる宛先は、案件を処理すべき処理担当者のみの設定であって、2回目以降に催促が送られる宛先は、案件を処理すべき処理担当者以外の宛先が設定されていることを前提とする。
なお、この方法について図34を用いて説明を行う。なお、図34においては、第1の実施形態の図7の同様の処理となる処理が存在し、その処理については、図7と、同じステップの番号を付与することとする。また、第1の実施形態の図7の処理と同様の動作をするものについては、説明を省略し、異なる動作となる処理について説明を行う。また、図34の処理は、第1の実施形態の図4のステップS409のメール配信処理であることとする。
図34の、ステップS3401、ステップS3402、ステップS3403はワークフローサーバ103のCPU201の処理とする。
ステップS3401において、案件の処理期限までの残り時間が、ユーザの平均処理時間をきり、かつ、現在保持する配信回数に対応する、案件を処理すべき処理担当者以外の宛先、が宛先管理テーブルから取得できたか否かを判断する。
ステップS3401において、案件の処理期限までの残り時間がユーザの平均処理時間をきり、かつ、現在保持する配信回数に対応する、案件を処理すべき処理担当者以外の宛先、が宛先管理テーブルから取得できた場合は、ステップS704へ処理を進める。ステップS3401において、案件の処理期限までの残り時間がユーザの平均処理時間をきり、かつ、現在保持する配信回数に対応する、案件を処理すべき処理担当者以外の宛先、が宛先管理テーブルから取得できなかった場合は、ステップS3402へ処理を進める。
なお、処理期限までの残り時間と平均処理時間の比較は、具体的には、図33の案件期限管理テーブル3300から取得した案件の処理期限までの時間と、対象案件の処理担当者の平均処理時間と比較することで行う。
例えば、図9の908のレコード(業務ID901=G002、案件ID902=A004、ユーザID903=USER001、部門ID904=K001、処理依頼日時905=2014/05/22 15:30:05)の案件の処理期限を、図33の案件期限管理テーブル3300から、案件ID=A004の値をもとに検索すると、案件ID3301が「A001」のレコードの案件の処理期限3302は、「2014/05/22 23:59:59」であるため(図33、3310)、期限は、2014/05/22 23:59:59となる(処理期限取得手段)。
また、図9の908のレコード(案件)の処理担当者である「USER001」の、業務IDが「G002」における案件の平均処理時間が、図11の処理履歴テーブル1100より12時間であるとする。
ステップS3401が行われた時刻(メール配信を行う直前の時刻)が、「2014/05/22 15:31:00」だとすると、その時刻から、「2014/05/22 23:59:59」までの時間は、8時間28分59秒となる。この時間を、平均処理時間である12時間と比較すると、既に、案件の処理期限までの残り時間が、ユーザの平均処理時間をきっていることになる。
次に、現在保持する配信回数に対応する、案件を処理すべき処理担当者以外の宛先、が宛先管理テーブルから取得できたか否かの確認については、以下の通り確認を行う。例えば、初回の催促の配信において、すなわち、配信回数がステップS3401の段階で「1」である場合、宛先管理テーブル3500においては、例えば、業務ID3501がG002で、回数3502は「1」の値のレコードを取得したとする(図35の3509)。取得されたレコード(図35の3509)の宛先ロールのルール3503は値が存在しないため、この場合、案件を処理すべき処理担当者以外の他の宛先を取得することができない、ということになる。
このような場合は、案件の処理期限までの残り時間がユーザの平均処理時間をきり、かつ、現在保持する配信回数に対応する、案件を処理すべき処理担当者、ではない宛先、が宛先管理テーブルから取得できていないため、ステップS3402へ処理を進める。
なお、案件の処理期限までの残り時間がユーザの平均処理時間をきっていたとしても、例えば、取得されたレコード(図35の3509)の宛先ロールのルール3503に、他の宛先となる値が存在した場合は、案件を処理すべき処理担当者以外の他の宛先を取得できているため、ステップS3401はNOとなり、ステップS3402の処理は行わず、現在保持する配信回数のままステップS704の処理へ進める。
ステップS3402において、対象案件が現在保持する配信回数の値に「1」を加算して、ステップS704に処理を進める。
その他、図34の他の処理については、図7の同一ステップと同じ動作とする。なお、図34のステップS3403のメール配信管理テーブルへの更新の値については、以下の通りとする。
ステップS3403は、ステップ402で取得した業務ID901、案件ID902、ユーザID903をキーとしてメール配信管理テーブル1000登録処理または更新処理を行う。
登録処理となるのは、図34の処理が案件に対して最初に行われた場合(すなわち最初の処理において、ステップS702でNOとなった場合)である。この場合、業務ID1001へはステップS402で取得した業務ID901の値、案件ID1002へはステップS402で取得した案件ID902、ユーザID1003へはステップS402で取得したユーザID903の値、配信スタートタイミング1004へはステップS503またはステップS504で取得した値、配信間隔1005へはステップS603またはステップS604で取得した値、配信回数1006へは現在保持する配信回数の値、すなわち「0」を設定し登録する。
更新処理となる場合は、催促(メール)が配信された場合である。この場合、業務ID1001、案件ID1002、ユーザID1003をキーとする、処理対象となっている案件に該当するレコードは既に登録されているため、業務ID1001、案件ID1002、ユーザID1003をキーとして、配信回数1006、メール配信日時1007を更新する。配信回数1006へは、ステップS3401がYESでステップS3402の処理が行われた場合は、現在保持する配信回数から1マイナスした値で、ステップS3401がNOでステップS3402の処理が行われなかった場合は、現在保持する配信回数の値で更新する。メール配信日時1007へはメールが配信された時刻の値で、更新する。
例えば、図9の908のレコード(業務ID901=G002、案件ID902=A004、ユーザID903=USER001、部門ID904=K001、処理依頼日時905=2014/05/22 15:30:05)において図34の処理において、ステップS3401がYESでステップS3402の処理が行われた場合、初回の登録の場合、業務ID1001へはG002、案件ID1002へはA004、ユーザID1003へはUSER001、配信スタートタイミングへ1004へは、例えば、17時間、配信間隔1005へは、例えば、6時間、配信回数へは0回、を値として設定し登録することになる。また登録後、1回目の催促(メール)が配信された後は、配信回数1006へは1、メール配信日時1007へはメールの配信日時、を値として設定し該当のレコードを更新する(図10の1010)ことになる。
なお、図34の催促(メール)の配信の処理は、本人以外に催促を送る対象者を、案件の処理担当者が所属する組織の情報から決定することにより、催促を配信する処理であるが、本人以外に催促を送る対象者は、後述する第2の実施形態における催促の配信において宛先を決定する方法、すなわち、案件のプロセス定義(案件の処理フローの定義)の情報から決定する方法を用いることによって決定しても良いこととする。
次に、図34において催促の配信処理が行われた際の、催促のイメージについて説明をする。
まず、図34のステップS704における、処理中の案件の催促メール配信回数に応じて、宛先のロールのルールとメッセージを取得する処理について説明をする。図9の908のレコードの業務ID901=G002をもとに、図35の宛先管理テーブル3500を参照して、業務ID3501が同じレコードの中より、回数3502に、ステップS3401までに取得された配信回数の値に、さらに「1」を加算した値と同じ値の回数が保持されたレコードを取得する。
例えば、図9の908のレコード(業務ID901=G002、案件ID902=A004、ユーザID903=USER001、部門ID904=K001、処理依頼日時905=2014/05/22 15:30:05)の場合に、図7の処理において、初めて、ステップS702、ステップS3401でYES、の処理を通った場合に、ステップS3402で配信回数に「1」が加算され、さらに、ステップS704において、その配信回数にさらに「1」を加算するため、配信回数は「2」となる。
すなわち、初回の催促の配信において、宛先管理テーブル3500においては、業務ID3501がG002で、回数3502は「2」の値のレコードを取得する(図35の3510)。
次に、そのレコードの宛先ロールのルール3503、本人用メッセージ3504、本人以外用メッセージ3505を取得する。取得されたレコード(図35の3510)の場合、宛先ロールのルール3503は、「1つ上の上位役割」、本人用メッセージ3504は、「[A]回目催促:処理してください。」、本人以外用メッセージ3505は、「[ユーザ名]さんが[A度目の警告を無視して]、[案件名]の処理をしていません。処理がされるように連絡してください。」、の値を取得する。
なお、本人用メッセージ3504の[A]へは、現在保持する配信回数の値から1マイナスした値を代入する。なお、本人以外用メッセージ3505の[A度目の警告を無視して]は、初回である場合は、本人の警告は未だ送られていないため、この文言は不要になるため、図34、ステップS3402の処理が行われた場合は削除してよいこととする。なお、図34、ステップS3402の処理が行われなかった場合(初回、2回目もされない場合)は、初回の催促となる、3509の初回の本人用メッセージ3504の[A]の部分に現在保持する配信回数の値を入れ、催促を作成する。また、2回目の催促となる、3510の本人以外用メッセージ3505の[A度目の警告を無視して]のAの部分へは、現在保持する配信回数の値を入れて、催促を作成する。
これらの取得した情報をもとに送られる、初回に配信される催促のイメージ図は、図36に示すとおりになる。
まず、処理担当者の宛先に送られる催促のイメージは、図36の3610に図示するようになる。メールの宛先には図34、ステップS706で取得したUSER001のメールアドレスであるUSER001@co.jpが設定される(3611)。また、図34、ステップS704で、本人用メッセージ3504として、「[A]回目催促:処理してください。」を取得しているが、この[A]へは最新の配信回数の値から1をマイナスした値を代入し、その文言がメール本文に記載する。例えば、最新の配信回数が「2」であるとしても、実際の催促が配信される回数は1回目のため「1」を代入した催促の本文を記載する(3612)。
次に、処理担当者以外の宛先に送られる催促のイメージは、図36の3620に図示するようになる。
図34のステップS704で、本人以外用メッセージ3505として、「[ユーザ名]さんが[A度目の警告を無視して]、[案件名]の処理をしていません。処理がされるように連絡してください。」を取得している。このため、[ユーザ名]の部分には、処理対象として説明を行っている図9、908のレコードのユーザID903の値=USER001の値を入れる。[A度目の警告を無視して]の部分は、1回目の配信である場合は、過去に処理担当者へは催促が送られていないためこの文言は不要であるため、削除を行う。[案件名]の部分には、処理対象として説明を行っている図9、908のレコードの案件ID902の値=A004を代入してメッセージを作成している(3622)。また、メールの宛先にはステップS706で取得した、処理対象として説明を行っている図9、908のレコードのユーザID903であるUSER001、の1つ上の役割(kacho)を持つユーザ(USER010)に紐付くメールアドレスであるUSER010@co.jpが設定される(3621)。
以上の処理により、案件の処理期限が差し迫っている場合、宛先管理テーブルにおいて、例えば、初回には案件の処理担当者にしか催促が送られない設定がされていたとしても(図35、3509)、以上の方法により、初回から宛先管理テーブルにおいて、2回目以降に催促を送信する宛先の設定(図25、3510)を取得することにより、処理担当者とそれ以外の宛先に対しても、催促を送ることが可能になる。この方法によって、案件の期限が差し迫っている場合には、より、強力な催促を行うことによって、処理の遅延を防ぐことが可能になる。なお、初回以降に催促を送る宛先は、案件を処理すべき処理担当者の宛先となっていて、2回目以降に、初回とは別の宛先に送るようにしている例を挙げて説明を行ってきたが、2回目以降の宛先は回数ごとに増やす、あるいは、回数ごとに宛先は増やさないが宛先がそれぞれの回で異なるようにしても良い。宛先管理テーブルへの、催促を送る回における宛先の設定は自由にできることとする。
さらに、図34の案件の処理期限までの残り時間が、案件の平均処理時間をきった場合の、催促を送る宛先の取得の処理は、図37の方法で行っても良いこととする。
図37においては、第1の実施形態の図7の同様の処理となる処理が存在し、その処理については、図7と、同じステップの番号を付与することとする。また、第1の実施形態の図7の処理と同様の動作をするものについては、説明を省略し、異なる動作となる処理について説明を行う。また、図37の処理は、第1の実施形態の図4のステップS409のメール配信処理であることとする。
図37の、ステップS3701、ステップS3702はワークフローサーバ103のCPU201の処理とする。
図37での処理は、案件の処理期限までの残り時間が案件の処理担当者の平均処理時間を切っている場合に(ステップS3701でYESの場合)、宛先管理テーブルから取得した、回数に応じた本来の催促を送るべき宛先と、追加宛先管理テーブルで設定されている、同じ回数に応じた催促を送るべき宛先を比較することによって行う。比較した結果、追加宛先管理テーブルから取得した宛先が、宛先管理テーブルから取得した宛先に含まれている場合(存在する場合)は、そのまま催促を送る宛先を宛先管理テーブルから取得した宛先で送るようにするが、追加宛先管理テーブルから取得した宛先が、宛先管理テーブルから取得した宛先に含まれていない場合は、追加宛先管理テーブルから取得した宛先を追加することにより催促を送信する、という方法である。
ステップS3701において、案件の処理期限までの残り時間が、ユーザの平均処理時間をきっているか否かを判断する。
例えば、図9の908のレコード(業務ID901=G002、案件ID902=A004、ユーザID903=USER001、部門ID904=K001、処理依頼日時905=2014/05/22 15:30:05)の案件の処理期限を、図33の案件期限管理テーブル3300から、案件ID=A004の値をもとに検索すると、案件ID3301が「A001」のレコードの案件の処理期限3302は、「2014/05/22 23:59:59」であるため(図33、3310)、期限は、2014/05/22 23:59:59となる(処理期限取得手段)。
また、図9の908のレコード(案件)の処理担当者である「USER001」の、業務IDが「G002」における案件の平均処理時間が、図11の処理履歴テーブル1100より12時間であるとする。
ステップS3701が行われた時刻(メール配信を行う直前の時刻)が、「2014/05/22 15:31:00」だとすると、その時刻から、「2014/05/22 23:59:59」までの時間は、8時間28分59秒となる。この時間を、平均処理時間である12時間と比較すると、既に、案件の処理期限までの残り時間が、ユーザの平均処理時間をきっていることになる。この場合、ステップS3702へ処理を進める。一方、案件の処理期限までの残り時間が、ユーザの平均処理時間をきっていない場合は、ステップS704へ処理を進める。
ステップS3702において、現在保持する配信回数に1プラスした配信回数対応する、案件を処理すべき処理担当者以外の宛先、が宛先管理テーブルと、追加宛先管理テーブルから取得する。
まず、宛先管理テーブル1500より、宛先を取得する方法を説明する。例えば、図9の908のレコード(業務ID901=G002、案件ID902=A004、ユーザID903=USER001、部門ID904=K001、処理依頼日時905=2014/05/22 15:30:05)の場合、現在、メール配信管理テーブル1000の配信回数が0である場合、その値に1プラスした値である「1」を配信回数の値として、業務ID1501がG002で、回数1502は1の値のレコードを取得する(図15の1509)。
このとき宛先は、宛先ロールのルール1503より、「1つ上の上位役割」が取得できる。
また、そのレコードの、本人用メッセージ1504は、「初回催促:処理してください。」、本人以外用メッセージ1505は「[ユーザ名]さんが[案件名]の処理をしていません。処理がされるように連絡してください。」、の値を取得する。
次に、追加宛先管理テーブル3800より、宛先を取得する方法を説明する。例えば、図9の908のレコード(業務ID901=G002、案件ID902=A004、ユーザID903=USER001、部門ID904=K001、処理依頼日時905=2014/05/22 15:30:05)の場合、現在、メール配信管理テーブル1000の配信回数が0である場合、その値に1プラスした値である「1」を配信回数の値として、業務ID3801がG002で、回数3802は1の値のレコードを取得する(図38の3809)。
このとき、宛先ロールのルール3803より、「1つ上の上位役割」が取得できる。
また、そのレコードの、本人以外用メッセージ3804は「[ユーザ名]さんが[案件名]の処理をしていません。処理がされるように連絡してください。」、の値を取得する。
図9、908の案件の場合は、宛先ロールのルール3803より、「1つ上の上位役割」が取得できていて、本人以外の宛先として、本人からみて1つ上の上位役割を組織上保持する人(宛先)へ催促が送るためのルールが取得できていて、このルール自体は、宛先管理テーブルの宛先ロールのルール1503においても、「1つ上の上位役割」が取得できているため、そのまま宛先管理テーブルで取得した宛先ロールのルールに従って、宛先を取得し、その宛先に催促を送るようにする。また、催促のメッセージの本文についても、宛先管理テーブル1500から取得した本人用メッセージ1504を使用することによって催促を送るようにする。
これにより、宛先管理テーブルより取得した催促の宛先に、追加宛先管理テーブルで取得した催促の宛先が含まれている場合は、宛先管理テーブルから取得した宛先へ、宛先管理テーブルから取得した催促のメッセージのテンプレートを使用することにより、催促を送ることとする。
すなわち、催促を送る時から案件の処理期限までの時間が、第1の宛先に関する処理済みの案件の平均処理時間よりも短い場合、かつ、現在保持する配信回数に対応する、催促が本来送られるべき宛先の中に、所定の送信先が含まれている場合、回数に対応して本来送られる宛先に催促を送信する。
しかし、例えば、図9の906のレコード(業務ID901=G001、案件ID902=A001、ユーザID903=USER001、部門ID904=K001、処理依頼日時905=2014/05/21 10:10:10)において、ステップS3701において処理期限までの残り時間が平均処理時間をきったケースがあったとした場合、ステップS3702においては、次のように催促を送る宛先を取得する。
まず、宛先管理テーブル1500より、宛先を取得する方法を説明する。現在、メール配信管理テーブル1000の配信回数が0である場合、その値に1プラスした値である「1」を配信回数の値として、業務ID1501がG001で、回数1502は1の値のレコードを取得する(図15の1506)。
このレコードにおいては、宛先ロールのルール1503は値が存在しないため、宛先ロールのルールの値が取得できない。なお、本人用メッセージ1504として、「初回催促:処理してください。」の値を取得する。
同じく、追加宛先管理テーブル3800より、宛先を取得する方法を説明する。例えば、図9の906のレコード(業務ID901=G001、案件ID902=A001、ユーザID903=USER001、部門ID904=K001、処理依頼日時905=2014/05/21 10:10:10)の場合、現在、メール配信管理テーブル1000の配信回数が0であるとすると、その値に1プラスした値である「1」を配信回数の値として、業務ID3801がG001で、回数3802は1の値のレコードを取得する(図38の3806)。
このとき、宛先ロールのルール3803より、「1つ上の上位役割」が取得できる。
また、そのレコードの、本人以外用メッセージ3804は「[ユーザ名]さんが[案件名]の処理をしていません。処理がされるように連絡してください。」、の値を取得する。
この方法により、案件を処理すべき処理担当者の宛先以外の宛先として、本人からみて「1つ上の上位役割」を組織上保持する人を特定することによって、案件を処理すべき処理担当者の宛先とは別の宛先に催促を送ることが可能となる。また、案件を処理すべき処理担当者の宛先とは別の宛先には、同時に取得した本人以外用メッセージの催促の文面を使って催促を送っても良いこととする。
このように、宛先管理テーブル1500からは、本人以外の宛先を取得するための、宛先ロールのルール1503の値が取得できなかったが、追加宛先管理テーブル3800からは、宛先ロールのルール3803より、本人以外の宛先である「1つ上の上位役割」を取得できた。そのため、このような場合は、催促の宛先に、案件を処理すべき本人の宛先以外にも、追加宛先管理テーブル3800から取得した宛先ロールのルールで取得する処理担当者を、催促を送る宛先として追加することとする。また、本人以外用メッセージ3804の催促のメッセージのテンプレートを利用して催促を送ることも可能であるとする。
これにより、宛先管理テーブルより取得した催促の宛先に、追加宛先管理テーブルで取得した催促の宛先が含まれていない場合は、追加宛先管理テーブルで取得した催促の宛先を、催促の宛先に追加することによって、催促を送ることとする。また、追加宛先管理テーブルから取得した催促のメッセージのテンプレートを使用して催促を送ることも可能とする。
すなわち、催促を送る時から前記案件の処理期限までの時間が、第1の宛先に関する処理済みの案件の平均処理時間よりも短い場合、催促を所定の送信先に送信可能とする。また、催促を送る時から案件の処理期限までの時間が、第1の宛先に関する処理済みの案件の平均処理時間よりも短い場合、かつ、現在保持する配信回数に対応する、催促が本来送られるべき宛先の中に、所定の送信先が含まれていない場合、催促を所定の送信先に送信可能とする。
なお、図37の処理で作成される催促のイメージは、図7の処理において既に説明を行っているため説明は省略する。また、図10のメール配信管理テーブル1000へのデータの登録についても、図7の処理と同様であるため説明は省略する。
次に、本発明における第1の実施形態における第2のメール配信方法の実施形態について説明をする。第1の実施形態の図7の催促の配信処理では、ワークフローサーバ103は催促メールを処理担当者と、処理担当者以外のユーザのそれぞれに対して別メールを作成しているが、1つのメールを作成する第2のメール配信方法の実施形態について図18を用いて説明を行う。すなわち、宛先決定手段によって決定される処理担当者と処理担当者ではないユーザの宛先に配信される催促メールは、1つのメールでまとめて配信可能であることとする。
なお、図18は、第1の実施形態の処理フローの図7を第2のメール配信方法の実施形態としたものであって、第1の実施形態の図7を呼ぶ図4、また、図7の前処理である図5、図6については、第2の実施形態においても同様とするため説明は省略することとする。また、図18のステップS1801からステップS1806は、図7のステップS701からステップS706と同様であるため、また、ステップS710はステップS1808と同様であるため、説明は省略する。
なお、図18においては、ステップS1809はメールサーバ104のCPU201、ステップS1810、1811は、クライアント端末101のCPU201、ステップS1812、1813は、クライアント端末102のCPU201の処理であることとし、それ以外の処理はワークフローサーバ103のCPU201の処理とする。
ステップS1807では、ステップS1804で取得した、本人用メッセージ1504、本人以外用メッセージ1505と、ステップS1806で取得した、図9のレコード(908)の処理担当者であるUSER001とUSER001以外に配信するユーザのメールアドレスの情報を利用して、1つのメールで催促メールの配信が完了するようにメールサーバ104に対しメールの配信の依頼を行う。
なお、ステップS1807の処理が終了した後は、ステップS1809へ処理を進めるが、同時にステップS1808へ処理も進める。ステップS1808へは、処理担当者に対して催促メールの配信を行った結果をメール配信管理テーブル1000に更新しておくため、処理を進める。
ステップS1809において、メールサーバ104は、ステップS1807においてワークフローサーバ103によって配信依頼を受けたメールの情報をもとに、クライアント端末101とクライアント端末102に対し、メールを配信する。なお、処理担当者以外のユーザが宛先ロールのルール1503で取得できていない場合は、クライアント端末102へはメールは配信されることはない。
ステップS1810、ステップS1812において、クライアント端末101とクライアント端末102は、ステップS1809でメールサーバ104より配信されたメールを受信する。
ステップS1811、ステップS1813において、クライアント端末101あるいはクライアント端末102は、ステップS1810、ステップS1812において、クライアント端末101とクライアント端末102が受信したメールを表示画面において、表示する。なお、メールのイメージとしては、図19の1900に図示するようになる。メールのTOの宛先にはステップS1806で取得したUSER001のメールアドレスであるUSER001@co.jpが設定される(1901)。また、ステップS1804で、本人用メッセージ1504として、「2回目催促:処理して下さい。」を取得しているため、その文言がメール本文に記載される(1902)。
また、メールのCCの宛先にはステップS1806で取得したUSER010とUSER020のメールアドレスであるUSER010@co.jp、USER020@co.jpが設定される(1904)。すなわち、宛先決定手段によって決定される処理担当者と処理担当者ではないユーザの宛先を1つのメールにおけるメールアドレスの設定先を異なるようにしている。また、ステップS1804で、本人用メッセージ1504として、「[ユーザ名]さんが1度目の催促を無視して[案件名]の処理をしていません。処理がされるように連絡してください。」を取得しているため、[ユーザ名]の部分には、処理対象として説明を行っている図9、908のレコードのユーザID903の値=USER001の値を入れ、[案件名]の部分には、処理対象として説明を行っている図9、908のレコードの案件ID902の値=A004を代入してメッセージを作成している(1903)。
すなわち、催促を第1の宛先と第2の宛先に送信する場合、第1の宛先と第2の宛先である複数の宛先を、1つの単位である催促の宛先へ設定することにより、1つの単位である催促を複数の宛先に配信可能であることとする。
なお、1902と1903に図示しているようにメッセージをマージしているが、1901の処理担当者のみのメッセージである1902のみしても良いし、一度で一斉に配信するようの本文を別途用意しても良いこととする。
以上により、ワークフローシステムにおける未処理案件の処理担当者の宛先に対する催促の配信回数に応じて、催促を配信する宛先を異なるようにするため、処理担当者の処理状況を処理担当者以外が把握することが可能となる。これにより、催促が処理担当者以外にも通知されるため、処理担当者以外のユーザから処理担当者へ処理の依頼を指示することも可能となるため、処理の遅延をさらに防ぐ効果が見込まれる。また、平均処理時間に応じて催促を通知する時期と、催促の間隔も決定していることから、処理の遅延している箇所に対して集中的に催促を行うことが可能になる。これにより、一部の処理のみにおいて遅延が発生しないようにすることが可能となる。
なお、本実施例においては、メールによって処理担当者に対し未処理の案件の催促を行う例を説明したが、メールに限らず、メール以外のメッセージの通知処理によって処理担当者へ処理の催促を行っても良いこととする。
<第2の実施形態>
続いて、本発明における第2の実施形態について説明を行う。第1の実施形態では、催促を送る回数に応じて、催促を送る対象者を決定しているが、本人以外に催促を送る対象者は、案件の処理担当者が所属する組織の情報から決定している。この変形例として、第2の実施形態においては、催促を送る回数に応じて、催促を送る対象者を決定する方法において、本人以外に催促を送る対象者を、案件のプロセス定義(案件の処理フローの定義)の情報から決定する実施形態について説明をする。
なお、図4におけるステップS409以外の催促メール配信処理のメインの処理、図5の初回メール配信タイミング取得処理、図6の催促メール配信間隔取得処理については、第2の実施形態でも同様の処理として行われることとする。このため、第1の実施形態と同様で有るため、説明については、省略することとする。
また、ステップS409のメール配信処理については、第2の実施形態については、図21をもとに説明をする。なお、図21において、第1の実施形態の図7の処理と同様の動作をするものについては、説明を省略し、異なる動作となる処理について説明を行う。また、図21において、第1の実施形態の図7の同様の処理となる処理については、同じステップの番号を付与することとする。
図21の、ステップS2101、ステップS2102はワークフローサーバ103のCPU201の処理とする。
図21のステップS2101では、処理中の案件の催促メール配信回数に応じて、宛先ルールとメッセージ(催促の内容)の取得を行う。図9の908のレコードの業務ID901=G002をもとに、宛先管理テーブル2400を参照して、業務ID2401の値が同じレコードの中より、回数2402に、ステップS407またはステップS408で取得した配信回数に1加算した値と同じ値の回数が保持されたレコードを取得する。例えば、図9の908のレコード(業務ID901=G002、案件ID902=A004、ユーザID903=USER001、部門ID904=K001、処理依頼日時905=2014/05/22 15:30:05)の場合、メール配信管理テーブル1000の配信回数を1とすると、業務ID2401がG002で、回数2402は2の値のレコードを取得する(図24の2410)。次に、そのレコードの宛先ロールのルール2403、本人用メッセージ2404、本人以外用メッセージ2405を取得する。取得されたレコード(図24の2410)の場合、宛先のルール2403は、「業務課 課長、業務部 部長」、本人用メッセージ2404は、「2回目催促:処理してください」、本人以外用メッセージ2405は「[ユーザ名]さんが1度目の催促を無視して[案件名]の処理をしていません。処理がされるように連絡してください。」、の値を取得する。
その後、ステップS2102に処理を進める。ステップS2102では、ステップS2101で取得した宛先のルール2403に該当するユーザが、ワークフローシステムにおける組織上のどのユーザに当たるのか解決し、ステップS2101で取得した本人以外用メッセージ2405を送る人を特定する。
まず、宛先のルール2403で記載されている宛先のルールより、ワークフロープロセス2200に図示する、案件に紐づくプロセス定義を参照する。なお、図9の908のレコード(業務ID901=G002、案件ID902=A004、ユーザID903=USER001、部門ID904=K001、処理依頼日時905=2014/05/22 15:30:05)の案件を起案するために、業務に紐づくプロセスは、図22のプロセス定義が設定されているものとして説明をする。
例えば、取得されたレコード(図24の2410)の場合、宛先のルール2403は、「業務課 課長、業務部 部長」となっている。この場合、まず図22のワークフロープロセス2200で図示するプロセス定義より、「業務課 課長」の処理担当者の指定がされているアクティビティを探しにいくこととする。このとき、図22の2203のアクティビティが「業務課 課長」で処理担当者の指定がされているため、この処理担当者指定で決定する実際の処理担当者が1つ目の宛先となる。
次に、図22のワークフロープロセス2200で図示するプロセス定義より、「業務部 部長」で処理担当者の指定がされているアクティビティを探しにいくこととする。このとき、図22の2204のアクティビティが「業務部 部長」で処理担当者の指定がされているため、この処理担当者指定で決定する実際の処理担当者が2つ目の宛先となる。
次に、それらの処理担当者指定で決定される宛先となるユーザを、本実施例においては、ワークフローの処理担当者が所属する図23の組織から特定することとする。
まず、図22、2203で処理担当者指定がされている「業務課 課長」は、「業務課」の組織に所属する、「課長」の役割を持つものという意味であるため、図23においては、業務課(2303)=K001の、課長ロール(課長の役割)が割り当てられている、山田(2307)=USER010が1つめの宛先となる。
次に、図22、2204で処理担当者指定がされている「業務部 部長」は、「業務部」の組織に所属する、「部長」の役割を持つものという意味であるため、図23においては、業務部(2302)=B001の、部長ロール(部長の役割)が割り当てられている、井上(2308)=USER020が2つめの宛先となる。
なお、これらの宛先として決定したユーザへ、送付される催促のイメージは、2回目の催促の時は、第1の実施形態の図17、図19のイメージ図と同様になり、1回目の催促の時は、第1の実施形態の図20のイメージ図と同様になる。なおこの催促の作成については第1の実施形態と同様であるため、この部分についての詳細な説明は省略する。
なお、第2の実施形態において、図19のイメージ図で催促を配信する処理は、図31で示す処理であるものとする。図31において、第1の実施形態の図18の同様の処理となるステップの処理については、図18に記載のステップ番号と同じステップの番号を付与している。また、第2の実施形態の図21と同様の処理となるステップの処理については、図21に記載のステップ番号と同じステップの番号を付与している。このため、図31の処理は、図18と図21の既に説明を行っている処理から成り立っているため、詳細な説明は省略する。
なお、図24、宛先管理テーブル2400の、2411のレコードをもとに宛先を決定した場合は次の通りになる。
例えば、取得されたレコード(図24の2411)の場合、宛先のルール2403は、「業務部 部長、総務部 総務担当、経理部 経理担当」となっている。この場合、まず図22のワークフロープロセス2200で図示するプロセス定義より、「業務部 部長」の処理担当者の指定がされているアクティビティを探しにいくこととする。このとき、図22の2204のアクティビティが「業務部 部長」で処理担当者の指定がされているため、この処理担当者指定で決定する実際の処理担当者が1つ目の宛先となる。
次に、図22のワークフロープロセス2200で図示するプロセス定義より、「総務部 総務担当」で処理担当者の指定がされているアクティビティを探しにいくこととする。このとき、図22の2205のアクティビティが「総務部 総務担当」で処理担当者の指定がされているため、この処理担当者指定で決定する実際の処理担当者が2つ目の宛先となる。
さらに、図22のワークフロープロセス2200で図示するプロセス定義より、「経理部 経理担当」で処理担当者の指定がされているアクティビティを探しにいくこととする。このとき、図22の2206のアクティビティが「経理部 経理担当」で処理担当者の指定がされているため、この処理担当者指定で決定する実際の処理担当者が3つ目の宛先となる。
次に、それらの処理担当者指定で決定される宛先となるユーザを、本実施例においては、ワークフローの処理担当者が所属する図23の組織から特定することとする。
まず、図22、2204で処理担当者指定がされている「業務部 部長」は、「業務部」の組織に所属する、「部長」の役割を持つものという意味であるため、図23においては、業務部(2302)=B001の、部長ロール(部長の役割)が割り当てられている、井上(2308)=USER020が1つめの宛先となる。
次に、図22、2205で処理担当者指定がされている「総務部 総務担当」は、「総務部」の組織に所属する、「総務担当」の役割を持つものという意味であるため、図23においては、総務部(2305)=C001の、総務担当ロール(総務担当の役割)が割り当てられている、林(2310)=USER030が2つめの宛先となる。
さらに、図22、2206で処理担当者指定がされている「経理部 経理担当」は、「経理部」の組織に所属する、「経理担当」の役割を持つものという意味であるため、図23においては、経理部(2306)=D001の、経理担当ロール(経理担当の役割)が割り当てられている大田(2311)=USER040が3つめの宛先となる。
なお、これらの宛先として決定したユーザへ送付される催促の作成についても、これまでの説明と同様であるため、この部分についての詳細な説明は省略する。また、その作成された結果のイメージ図についても説明は省略する。
以上の方法により、本人以外に催促を送る対象者を、案件のプロセス定義(案件の処理フローの定義)の情報、すなわちワークフローの業務に紐づくプロセス定義で指定されている処理担当者の指定の情報より、催促を送る回数に応じた催促を送る対象者を決定することが可能になる。
なお、プロセス定義で指定されている処理担当者の指定の情報ではなく、プロセス定義における、アクティビティの順番の情報を使用しても良いこととする。例えば、図25の宛先管理テーブル2500の宛先のルール2503においては、プロセス定義における処理担当者の指定情報ではなく、プロセス定義におけるアクティビティの位置を指定している。そして、この指定されたアクティビティにおいて設定されている処理担当者で特定されるユーザに対し催促を送ることになる。なお、この場合、処理待ちのユーザからのアクティビティの位置となるため、相対的なアクティビティの位置で特定される処理担当者に対し、処理待ちのユーザ以外の催促が送られることになる。なお、アクティビティの位置がプロセス定義のアクティビティの範囲を超えるような場合は、その宛先を決定することは不可能となるため、今回は、宛先に対し催促は送らないようにする。なお、決定できなかった宛先を別の方法で決定しても良いこととする。
この例における宛先の決定について、図9の908のレコード(業務ID901=G002、案件ID902=A004、ユーザID903=USER001、部門ID904=K001、処理依頼日時905=2014/05/22 15:30:05)の案件を用い説明をする。なお、当該案件を起案するための業務に紐づくプロセスは、図22のプロセス定義とする。
例えば、図9の908のレコードの案件が図22の2202のユーザの処理待ち案件とした場合に、図25の2510のレコードを使用して、本人以外の宛先を宛先のルール2503に従って取得することになった場合、宛先のルール2503に記載の通り、「1つ後のアクティビティ、2つ後のアクティビティ」となっている。
案件が、図22のプロセス定義において処理されている場合、そのプロセスにおいて、業務担当から見て1つ後のアクティビティは図22、2203の「業務課 課長」、2つ後のアクティビティは図22、2204「業務部 部長」、となる。
次に、それらの処理担当者指定で決定される宛先となるユーザを、本実施例においては、ワークフローの処理担当者が所属する図23の組織から特定することとする。
まず、図22、2203で処理担当者指定がされている「業務課 課長」は、「業務課」の組織に所属する、「課長」の役割を持つものという意味であるため、図23においては、業務課(2305)=K001の、課長ロール(課長の役割)が割り当てられている、山田(2307)=USER010が1つめの宛先となる。
次に、図22、2204で処理担当者指定がされている「業務部 部長」は、「業務部」の組織に所属する、「部長」の役割を持つものという意味であるため、図23においては、業務部(2302)=B001の、部長ロール(部長の役割)が割り当てられている、井上(2308)=USER020が2つめの宛先となる。
以上の方法により、本人以外に催促を送る対象者を、案件のプロセス定義(案件の処理フローの定義)の情報、すなわちワークフローの業務に紐づくプロセス定義で指定されている処理担当者の指定の情報より、催促を送る回数に応じた催促を送る対象者を決定することが可能になる。これにより、案件ごとにプロセスに紐づいた宛先に催促をさせることが出来る。
<第3の実施形態>
続いて、本発明における第3の実施形態について説明を行う。第1の実施形態では、催促を送る回数に応じて、催促を送る対象者を決定しているが、本人以外に催促を送る対象者は、案件の処理担当者が所属する組織の情報から決定している。この変形例として、第2の実施形態においては、催促を送る回数に応じて、催促を送る対象者を決定する方法において、本人以外に催促を送る対象者を、案件のプロセス定義(案件の処理フローの定義)の情報から決定している。
さらにこの変形例として、第3の実施形態においては、催促を送る対象者を、催促を送る回数に応じて決定するのではなく、案件の滞留時間に応じて決定する実施形態について図26を用いて説明をする。
図26は、催促メール配信処理のメインの処理である。なお、図26の処理はワークフローサーバ103のCPU201の処理であることとする。
ステップS2601では、案件管理テーブル900を参照し、案件の件数を取得する。
ステップS2602では、案件管理テーブル900を参照し、催促配信対象となる案件の中から1件分の案件情報である、業務ID901、案件ID902、ユーザID903、部門ID904、処理依頼日時905の各項目を取得する。
例えば、1件分の案件情報の一例として、図9の908のレコード(業務ID901=G002、案件ID902=A004、ユーザID903=USER001、部門ID904=K001、処理依頼日時905=2014/05/22 15:30:05)を取得するとする。取得した後は、ステップS2603へ処理を進める。
なお、ステップS2602とステップS2603については、ステップS2601で取得した案件件数分、繰り返し処理が行われることとする。
また、ステップS2603のメール配信処理については、第3の実施形態については、図27をもとに説明をする。なお、図27において、第1の実施形態の図7の処理と同様の動作をするものについては、説明を省略し、異なる動作となる処理について説明を行う。また、図27において、第1の実施形態の図7の同様の処理となる処理については、同じステップの番号を付与することとする。
続いて、図27において、処理中の案件の滞留時間に応じて、宛先とメッセージの設定を行い、催促を配信する処理について説明する。
本処理については、宛先ロールのルールと、本人用メッセージ、本人以外用のメッセージを取得する、ステップS2701から始まることとする。
なお、第1の実施形態と異なるのは、ステップS2701の宛先ロールのルールと本人用メッセージを取得する箇所の処理が、案件の滞留時間に応じて異なるようにしている箇所であるため、それ以外の、後続の処理は、ステップS710の処理が必要なくなる以外は、同様であるものとする。
図27のステップS2701の処理はワークフローサーバ103のCPU201の処理であることとする。
ステップS2701において、案件が、処理担当者の処理待ち状態になってからの経過時間に応じて、宛先のロールのルールとメッセージの取得を行う。
例えば、図9の908のレコードの業務ID901=G002をもとに、宛先管理テーブル2800を参照して、業務ID2801の値が同じレコードの中より、処理依頼日時905と現在日時までの時間が、経過時間2802の経過時間の条件に合致するレコードを取得する。
例えば、図9の908のレコード(業務ID901=G002、案件ID902=A004、ユーザID903=USER001、部門ID904=K001、処理依頼日時905=2014/05/22 15:30:05)の場合、現在この処理が行われている時刻が、2014/05/23 13:30:05とすると、この間の経過時間は22時間であるため、業務ID2801がG002で、経過時間2802の値が「17<経過時間≦23」(17時間よりも後から23時間までの間の経過時間)のレコードを取得する(図28の2810)。
次に、そのレコード宛先ロールのルール2803、本人用メッセージ2804、本人以外用メッセージ2805を取得する。取得されたレコード(図28の2810)の場合、宛先ロールのルール2803は、「1つ上の上位役割、2つ上の上位役割」、本人用メッセージ2804は、「催促レベル2:処理してください」、本人以外用メッセージ2805は「催促レベル2:[ユーザ名]さんが[A]時間[B]分、[案件名]の処理をしていません。処理がされるように連絡してください。」、の値を取得する。その後、図27のステップS705に処理を進める。
すなわち、処理担当者に対して催促を送信する時、案件が処理担当者の処理待ち状態になってから経過した時間に応じて、催促を配信する宛先を決定する(宛先決定手段)。また、宛先決定手段で決定する宛先は、処理待ち状態の案件を処理する予定を現在保持する処理担当者である第1の宛先と、第1の宛先以外の案件の処理担当者である第2の宛先であることとする。
なお、図27、ステップS705以降の、本人以外の宛先となるユーザの取得、本人と本人以外の宛先となるユーザのメールアドレス(宛先)の取得、催促の送信処理については、第1の実施形態の図7の同一ステップ名の処理と同様とするため、説明は省略するが、ステップS2701で取得した、本人用メッセージ2804と本人以外用メッセージ2805の催促の内容から作成される催促の例については、他の実施形態とは異なるため、図29、図30を用いて説明を行う。
処理を滞留している本人へ催促されるメールのイメージとしては、図29の2910に図示するようになる。メールの宛先には、図27のステップS706で取得した(実際に取得する値は、第1の実施形態で説明した値とする)USER001のメールアドレスであるUSER001@co.jpが設定される(2911)。また、本人用メッセージ2804として、「催促レベル2:処理してください。」を取得しているため、その文言がメール本文に記載される(2912)。
処理を滞留している本人以外の宛先に催促されるメールのイメージとしては、図29の2920、2930に図示するようになる。本人以外用メッセージ2805から取得した、「催促レベル2:[ユーザ名]さんが[A]時間[B]分、[案件名]の処理をしていません。処理がされるように連絡してください。」のは、[ユーザ名]の部分には、処理対象として説明を行っている図9、908のレコードのユーザID903の値=USER001の値を入れる。
[A]の部分には、処理担当者へ案件が処理待ちになった時点から、対象案件への催促の配信処理が行われた時点までの経過時間を計算し、その値を入れる。例えば、図9、908のレコードでは、処理依頼日時905が「2014/05/22 15:30:05」であり、現在この処理が行われている時刻が、「2014/05/23 13:30:05」である場合、案件が処理待ちになった時点から、対象案件への催促の配信処理が行われた時点までの経過時間は、22時間であるため、[A]の部分は「22」の値が入る。なお、[B]の部分は、「0」の値が入る。なお、[B]の値が0の場合、図29の2922に図示するように、[A]の値までの経過時間の表示でもよいこととする。
[案件名]の部分には、処理対象として説明を行っている図9、908のレコードの案件ID902の値=A004を代入してメッセージを作成している(2922、2932)。また、メールの宛先には図27のステップS706で取得した(実際に取得する値は、第1の実施形態で説明した値とする)、処理対象として説明を行っている図9、908のレコードのユーザID903であるUSER001、の1つ上の役割(kacho)を持つユーザ(USER010)に紐付くメールアドレスであるUSER010@co.jpと、の2つ上の役割(bucho)を持つユーザ(USER020)に紐付くメールアドレスであるUSER020@co.jpと、が設定される(2921、2931)。
なお、第3の実施形態において、図30のイメージ図のように、1つの催促で複数の宛先に催促を配信する処理は、図32で示す処理であるものとする。図32において、第1の実施形態の図18の同様の処理となるステップの処理については、図18に記載のステップ番号と同じステップの番号を付与している。なお、ステップS1808については、図32には処理が存在しないものとする。また、第2の実施形態の図27と同様の処理となるステップの処理については、図27に記載のステップ番号と同じステップの番号を付与している。このため、図32の処理は、図18と図27の既に説明を行っている処理から成り立っているため、詳細な説明は省略する。
これまで、図9、908の1件のみを対象として説明を行ったが、例えば、図9の他の案件に対して同時の催促処理が行われた場合、すなわち、「2014/05/23 13:30:05」行われると、図9、906については、処理依頼日時905が、「2014/05/21 10:10:10」であり、この間は、51時間19分55秒であるため、図28の宛先管理テーブル2800より、業務ID2801がG001で、経過時間2802の値が「36≦経過時間」(経過時間が36時間以上)のレコードが取得できる(図28の2808)。
したがって、図9、906の案件の場合は、宛先ロールのルール2803には、「1つ上の役割、2つ上の役割」の値が存在しているため、本人の宛先と、本人以外の本人から見て組織上「1つ上の役割、2つ上の役割」をもつ宛先のユーザへ、催促が、本人用メッセージ2804と本人以外用メッセージ2805のメッセージで、2通、送られることになる。
次に、図9、907については、処理依頼日時905が、「2014/05/22 12:40:22」であり、同じく催促の処理が行われた時刻が「2014/05/23 13:30:05」とすると、この間は、12時間49分43秒であるため、図28の宛先管理テーブル2800より、業務ID2801がG001で、経過時間2802の値が「0≦経過時間<24」(経過時間が0以上24時間未満)のレコードが取得できる(図28の2806)。
したがって、この案件の場合は、宛先ロールのルール2803には、値が存在しないため、本人のみの宛先に、催促が本人用メッセージ2804のメッセージで、1通、送られることになる。
図9、908は、これまでの既に説明の通り、2通、送られることになる。
なお、第3の実施形態においては、催促を送る宛先は、第1の実施形態に記載の方法、すなわち、処理担当者を基準に決定する方法で、決定するとして説明を行ったが、第2の実施形態に記載の方法、すなわち、案件に紐づくプロセス定義のアクティビティに設定される処理担当者の情報、あるいは、アクティビティの位置の情報、の指定によって宛先を決定する方法で、決定しても良いこととする。
以上の方法により、一度の催促の処理で、案件に対して催促が送られる宛先が、案件の処理の滞留時間に応じて変えることが可能になる。
以上、3実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、本発明におけるプログラムは、図4、図5、図6、図7、図18、図21、図26、図27、図31、図32、図34、図37に示すフローチャートの処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体は図4、図5、図6、図7、図18、図21、図26、図27、図31、図32、図34、図37の処理方法をコンピュータが実行可能なプログラムが記憶されている。なお、本発明におけるプログラムは図4、図5、図6、図7、図18、図21、図26、図27、図31、図32、図34、図37の各装置の処理方法ごとのプログラムであってもよい。
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読み出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク、ソリッドステートドライブ等を用いることができる。
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。