以下に、図面を参照して、本発明の最良の実施形態を例示的に詳しく説明する。但し、この実施形態に記載されている構成要素のうち、相的配置、データ内容などは、特に特定的な記述を行わない限りはこの発明の範囲をそれらにより限定する趣旨のものではない。
[実施形態1]
以下に、本発明に係わる実施形態1の文書管理装置について説明する。
<本実施形態の文書管理システムの構成例>
図1は、本実施形態の文書管理装置を含むシステム全体の構成例を示すブロック図である。
本文書管理システムは、電子ファイルである文書を統合的に管理する文書管理装置101と、前記文書管理装置101の文書情報の表示/登録/更新/削除などの操作を行う窓口となるクライアント装置102とを有する。文書管理装置101とクライアント装置(端末)102とはネットワーク103を介して接続される。
クライアント装置102は、ネットワーク103内において1つに限定されるものではなく、複数存在することも可能である。ネットワーク103は、複数の機器を接続するためのインフラであり、イーサネット(登録商標)などのネットワークシステムを指す。このネットワーク103は、LAN(ローカルエリアネットワーク)、WAN(ワイドエリアネットワーク)として使用される。
また、文書管理装置101で管理する文書データの格納先は、文書管理装置101内、もしくはネットワーク103内に独立したストレージ機器として存在していてもよく、文書管理装置101からアクセスできるようになっていればよい。本実施形態では、文書管理装置101内に存在するものとして説明する。文書管理装置101で管理する文書データは、複数のユーザにより共有できる共有文書として管理される。
<本実施形態の文書管理装置の構成例>
(文書管理装置のハードウエア構成例)
文書管理装置101のハードウェア構成について、ブロック図である以下の図2を参照して説明する。
図2に示すとおり、文書管理装置101は、CPU201と、RAM202と、ROM203と、NIC205と、VRAM208と、KBC210と、HDD213と、IOC214とを備える。そして、これらのユニットを、各種データや制御情報などを伝送するシステムバス200が接続している。
CPU201は、文書管理装置101の各種制御および演算を行う中央演算処理装置である。RAM202はランダムアクセスメモリであり、CPU201の主メモリとして実行プログラムの格納領域や、該実行プログラムの実行領域や、データの格納領域を提供する。なお、本実施形態の文書管理装置は、実行プログラムをコンピュータに実行させることにより、当該コンピュータを、後述する本発明の各処理部(図3参照)として機能させることができる。なお、本発明の各処理部による処理は後述するフローチャートの各ステップを実行することにより行われる。なお、本実施形態では、コンピュータプログラムを実行させることにより各処理部を実現させるものとするが、これに限るものではなく、その一部または全部を専用の電子回路(ハードウエア)で実現するようにしてもよい。
ROM203は、CPU201の動作処理手順を記憶している読み取り専用メモリであり、文書管理装置101の各ユニットの制御を行う基本プログラム(一般的にBIOSと呼ばれる)や、システムを稼動させるために必要な情報等を記憶する。
NIC205は、外部ネットワークとの間の入出力信号を制御するためのコントローラである。このNIC205は、モデム206や、ネットワーク103に接続するために使用される通信用のコントローラである。モデム206は、NIC205と接続されており、モデムやISDN接続用のターミナルアダプタといった公衆回線を使用して他装置とのデータ送受信を行う通信機器である。
VRAM208は、ビデオRAMであり、CRT209に表示する画像データを展開し、表示の制御を行う。CRT209は、VRAM208と接続され文書管理装置101の各種情報を表示する表示装置である。CRT209は、文書管理装置101内に内包する、もしくは文書管理装置101とは筐体が分離した状態で使用される。この表示装置は、液晶表示装置もしくはタッチパネル式液晶表示装置などを使用することも可能である。
KBC210は、文書管理装置101接続されたKB211やMOUSE212等の入力装置からの入力信号を受信し、制御するコントローラである。KB211およびMOUSE212は、ユーザからの入力情報を受け付ける入力装置である。これら入力装置のかわりに前述のタッチパネル式液晶表示装置の入力部を利用することも可能である。
HDD213は、ハードディスクドライブであり、文書管理装置101内で使用するアプリケーションプログラムや、文書データ、各種管理データなどを格納するために使用される。
IOC214は、情報入力装置であるスキャナ216や出力装置であるPRT215など文書管理装置101への入出力信号を制御するためのコントローラである。前記スキャナ216、PRT215以外の外部入出力装置、例えば外部接続用HDDや、MOドライブなどの情報機器を接続することも可能である。PRT215は、文書管理装置101内で保持している電子画像データを印刷するためのプリンタである。スキャナ216は、紙原稿の紙面に記述されている内容を電子画像データとして読み取るための読取装置である。
(文書管理装置の機能構成例)
次に、文書管理装置101の機能構成について、そののブロック図である図3を参照して説明する。なお、チェックアウトとは、他のユーザの共有文書へのアクセスの排他状態の設定を意味し、チェックインとは、排他状態の解除を意味する。
図3に示すとおり、文書管理装置101は、以下の要素から構成される。
まず情報処理部として、文書情報保管部301と文書情報操作部302とを有する。また、チェックアウト情報保管部303と、チェックアウト情報操作部304と、チェックアウト予約情報保管部305と、チェックアウト予約情報操作部306とを有する。また、ユーザ情報保管部307とユーザ情報操作部308とを有する。
次に、処理制御部として、文書チェックアウト処理制御部309と、文書チェックイン処理制御部310と、文書チェックアウト予約処理制御部311と、ユーザ認証処理制御部312とを有する。
更に、ネットワーク通信部314と、文書情報処理制御部315と、表示内容生成部316とを有する。
文書情報保管部301は、登録された文書情報や文書ファイルを格納しておく場所であり、RAM202もしくはHDD213に確保される。文書情報操作部302は、RAM内に格納されてCPU201で実行される実行可能プログラムで構成され、登録/更新/削除/取得といった文書情報や文書ファイルの入出力処理を文書情報保管部301に対して行う。
チェックアウト情報保管部303は、文書情報保管部301に保管されている文書に対して、チェックアウト時の情報を格納しておく場所であり、RAM202もしくはHDD213に確保される。チェックアウト情報操作部304は、RAM内に格納されてCPU201で実行される実行可能プログラムで構成され、登録/更新/削除/取得と言ったチェックアウト情報の入出力処理をチェックアウト情報保管部303に対して行う。
チェックアウト予約情報保管部305は、文書情報保管部301に保管されている文書に対して行われるチェックアウト予約情報を格納しておく場所であり、RAM202もしくはHDD213に確保される。チェックアウト予約情報操作部306は、RAM内に格納されてCPU201で実行される実行可能プログラムで構成され、登録/更新/削除/取得といったチェックアウト予約情報の入出力処理をチェックアウト予約情報保管部305に対して行う。
ユーザ情報保管部307は、文書管理装置101を利用するユーザの情報を格納しておく場所であり、RAM202もしくはHDD213内に確保される。ユーザ情報操作部308は、RAM202内に格納されてCPU201で実行される実行可能プログラムで構成され、登録/更新/削除/取得と言ったユーザ情報の入出力処理をユーザ情報保管部307に対して行う。
文書チェックアウト処理制御部309は、文書情報操作部302と、チェックアウト情報操作部304と、チェックアウト予約情報操作部306と、ユーザ情報操作部308と、表示内容生成部316とを使用する。そして、クライアント装置102から送信される文書チェックアウト処理依頼に対してチェックアウト処理の制御を行う。
文書チェックイン処理制御部310は、文書情報操作部302と、チェックアウト情報操作部304と、チェックアウト予約情報操作部306と、ユーザ情報操作部308と、表示内容生成部316とを使用する。そして、クライアント装置102から送信される文書チェックイン処理依頼に対してチェックイン処理の制御を行う。
文書チェックアウト予約処理制御部311は、文書情報操作部302と、チェックアウト情報操作部304と、チェックアウト予約情報操作部306と、ユーザ情報操作部308と、表示内容生成部316とを使用する。そして、クライアント装置102から送信される文書チェックアウト予約処理依頼に対してチェックアウト予約処理の制御を行う。かかる文書チェックアウト予約処理制御部311が、チェックアウト開始日時予約手段やチェックイン予定日時予約手段に相当する。
ユーザ認証処理制御部312は、ユーザ情報操作部306と、表示内容生成部316とを使用して、クライアント装置102から文書管理装置101に接続を行う際のユーザ認証処理を行う。
ネットワーク通信部314は、モデム206もしくはNIC205でネットワーク103に接続され、ネットワーク103を経由して前記クライアント装置102から受信した処理要求を文書管理装置101内の各処理制御部へ処理を通知する。また、文書管理装置101内の各制御部からの処理結果をクライアント装置102に対して送信する。
文書情報処理制御部315は、文書情報操作部302と、チェックアウト情報操作部304と、チェックアウト予約情報操作部306とを使用する。そして、クライアント装置102に対して送信する後述の文書情報詳細表示画面801の表示内容の生成処理を行う。
表示内容生成部316は、クライアント装置102に対して提供する文書管理を行うための画面上の表示内容についての生成および整形を行う。ここは、特にクライアント側の表示形態に合わせて提供するもので、例えばHTMLなどのハイパーテキスト形式や、専用クライアントソフトに対するバイナリ形式などでの生成を行うことを想定している。
<本実施形態のクライアント装置の構成例>
(クライアント装置のハードウエア構成例)
図1のクライアント装置102のハードウエア構成について、ブロック図である図4を参照して説明する。
図4に示すとおり、クライアント装置102は、CPU401と、RAM402と、ROM403と、NIC405と、VRAM408と、KBC410と、HDD413と、IOC414とを備える。そして、これらのユニットは、各種データや制御情報などを伝送するシステムバス400で接続される。
CPU401は、クライアント装置102の各種制御および演算を行う中央演算処理装置である。RAM402は、ランダムアクセスメモリであり、CPU401の主メモリとして実行プログラムの格納領域や、該実行プログラムの実行領域や、データの格納領域を提供する。ROM403は、CPU401の動作処理手順を記憶している読み取り専用メモリであり、クライアント装置102の各ユニットの制御を行う基本プログラム(一般的にBIOSと呼ばれる)や、システムを稼動させるために必要な情報等を記憶する。
NIC405は、外部ネットワークとの間の入出力信号を制御するためのコントローラである。このNIC405は、モデム406や、ネットワーク103に接続するために使用される通信用のコントローラである。モデム406は、NIC405と接続されており、モデムやISDN接続用のターミナルアダプタといった公衆回線を使用して他装置とのデータ送受信を行う通信機器である。
VRAM408は、ビデオRAMであり、CRT409に表示する画像データを展開し、表示の制御を行う。CRT409は、VRAM408と接続されクライアント装置102の各種情報を表示する表示装置である。CRT4209はクライアント装置102内に内包する、もしくはクライアント装置102とは筐体が分離した状態で使用される。この表示装置は、液晶表示装置もしくはタッチパネル式液晶表示装置などを使用することも可能である。
KBC410は、クライアント装置102に接続されたKB411やMOUSE412等の入力装置からの入力信号を受信し、制御するコントローラである。KB411、およびMOUSE412は、ユーザからの入力情報を受け付ける入力装置である。これら入力装置のかわりに前述のタッチパネル式液晶表示装置の入力部を利用することも可能である。
HDD413は、ハードディスクドライブであり、クライアント装置102内で使用するアプリケーションプログラムや、文書データ、各種管理データなどを格納するために使用される。
IOC414は、情報入力装置であるスキャナ416や、出力装置であるPRT415などクライアント装置102への入出力信号を制御するためのコントローラである。前記スキャナ416、PRT415以外の外部入出力装置、例えば外部接続用HDDや、MOドライブなどの情報機器を接続することも可能である。PRT415は、クライアント装置102内で保持している電子画像データを印刷するためのプリンタである。スキャナ416は、紙原稿の紙面に記述されている内容を電子画像データとして読み取るための読取装置である。
(クライアント装置の機能構成例)
次に、クライアント装置102の機能構成例について、ブロック図である図5を参照して説明する。
図5に示すとおり、クライアント装置102は、表示内容処理制御部501と、文書ファイル操作部502と、環境情報保管部503と、環境情報操作部504と、ネットワーク通信部505とで構成される。
表示内容処理制御部501は、文書管理装置101から送信された表示内容を解釈してCRT409上に表示する。また、KB411やMOUSE412で入力した文書情報や、文書ファイルを内容をネットワーク通信部505を経由して文書管理装置101に送信するための処理制御を行う。
文書ファイル操作部502は、文書管理装置に登録する文書ファイルを指定するための検索等をHDD413やRAM402、NIC405経由での外部ディスク等に対して行い、ファイルを指定する
環境情報保管部503は、クライアント装置102が接続する文書管理装置101の接続先情報を格納しておく場所であり、RAM402もしくはHDD413内に確保される。環境情報操作部504は、RAM402内に格納されてCPU401で実行される実行可能プログラムで構成され、環境情報の入出力処理を環境情報保管部503に対して行う。
ネットワーク通信部505は、モデム406もしくはNIC405でネットワークに接続され、ネットワーク103を経由して前記文書管理装置101から受信した処理結果を表示内容処理制御部501に通知する。また、表示内容処理制御部501からの処理依頼内容を文書管理装置101に対して送信する。
<本実施形態で取り扱うデータ形式および構成>
図6A〜図6Eは、本実施形態で使用するデータ形式とその構成を説明したものである。ここで記載しているデータ項目は、本実施形態を説明するにあたって最低限必要な項目で構成されている。
図6Aと図6Bは、図3に示した文書管理装置101の文書情報保管部301に保管されている情報の形式と構成を表す図である。
図6Aの文書情報601は、文書単位で保持する情報の形式を表している。
文書情報601は、文書ID602と文書名称603と状態を表すステータス604とを項目として構成される表(テーブル)で管理される。ステータス604で表されるステータス値には、「正常」「異常」「チェックアウト中」の内いずれかが設定される。
各文書情報は、文書ID602に基づいて一意な情報として特定される。文書情報601として保持する1つの単位を、レコード605と表現する。
図6Bのバージョン情報611は、文書更新のたびに変更されるバージョン単位で保持する情報の形式を表している。
バージョン情報611は、文書ID612と、バージョンID613と、登録日付614と登録ユーザID615とファイル実体616を項目として構成される表(テーブル)で管理される。文書ID612は、前記文書情報601で規定されている文書ID602と関連づけられている(リンクしている)。
各バージョン情報は、文書ID612とバージョンID613とを用いて特定される。バージョン情報611として保持する1つの単位を、レコード617と表現する。つまり、同じ文書IDを有する文書情報であっても、バージョンIDごとに異なるレコードとしてバージョン情報テーブルに記憶される。
図6Cは、図3に示した文書管理装置101のチェックアウト情報保管部303に保管されている情報の形式と構成を表す図である。
チェックアウト情報621は、チェックアウトされている文書に関する情報を文書単位で保持する形式を表す。
チェックアウト情報621は、文書ID622と、チェックアウト日付623と、チェックアウトユーザID624とを項目として構成される表(テーブル)で管理される。文書ID622は、前記文書情報601で規定されている文書ID602と関連付けられている。この表に情報がある文書情報は、現在チェックアウト中であることを意味する。
各チェックアウト情報は、文書ID622で一意な情報を表す。チェックアウト情報621として保持する1つの単位を、レコード625と表現する。
図6Dは、図3に示した文書管理装置101のチェックアウト予約情報保管部305に保管されている情報の形式と構造を表す図である。
チェックアウト予約情報631は、文書ID632、チェックアウト予約日付633、予約ユーザID634、チェックイン予定日付635、前予約追従フラグ636、ステータス637とを項目として構成される表(テーブル)で管理される。
文書ID632は、前記文書情報601で規定されている文書ID602と関連付けられている。ステータス637で表されるステータス値には、「未処理」「処理中」「完了」の内いずれかが設定される。
この表に情報がある文書情報は、現在チェックアウト予約が存在することを意味する。チェックアウト予約情報631として保持する1つの単位を、レコード638と表現する。
図6Eは、図3に示した文書管理装置101のユーザ情報保管部307に保管されている情報の形式と構成を表す図である。
ユーザ情報641は、文書管理装置101にアクセスして文書の操作を行うことのできるユーザに関する情報である。
ユーザ情報641は、ユーザID642と、ユーザ名称643と、メールアドレス644とを項目として構成される表(テーブル)で管理される。
各ユーザ情報は、ユーザID642に基づき一意な情報として特定される。ここで定義されるユーザ情報は、前記図6Bの登録ユーザID615や図6CのチェックアウトユーザID624、図6Dの予約ユーザID634で使用される。ユーザ情報641として保持する1つの単位を、レコード645と表現する。
<本実施形態の表示画面例>
次に、本実施形態で使用する画面についての説明を行う。ここで述べる画面については、必要最低限の表示しか行っておらず、これ以外の情報を表示することも可能である。また、以降の図で示す画面構成や、表現方法についても特に本実施形態での記述に限定するものではない事はいうまでもない。
(文書閲覧画面例)
図7は、図1のクライアント装置102のCRT409に表示する文書閲覧画面例を示す図である。
図7の文書閲覧画面701は、文書管理装置101で管理されている文書情報を閲覧する際に使用するものであり、文書情報表示部702と、ボタン707と、ボタン708と、ボタン709と、ボタン710とで構成される。
文書情報表示部702は、文書管理装置101で管理されている文書情報の一覧を表示し、文書を識別するための場所であり、表示する文書情報として文書ID703と、文書名称704と、ステータス705とで構成される。クライアント装置102の利用者が文書一覧の中から文書情報を選択すると選択文書706のように他の文書と表示が変わり、選択中であることを表す。
ボタン707は、選択文書706で選択された文書に対して行われているチェックアウト予約の一覧(図9等参照)を表示する処理を起動するボタンである。ボタン707を押下することで、文書情報表示部702の選択文書706の文書情報を文書管理装置101の文書チェックアウト予約処理制御部311に渡す。
ボタン708は、選択文書706で選択された文書(ここではチェックアウト中の文書が選択されていたものとする)のチェックイン処理(図17等参照)を起動するボタンである。ボタン708を押下することで、文書情報表示部702の選択文書706の文書情報を文書管理装置101の文書チェックイン処理制御部310に渡す。
ボタン709は、選択文書706で選択された文書(ここではチェックアウトされていない正常な文書が選択されていたものとする)のチェックアウト処理を起動するボタンである。ボタン709を押下することで、文書情報表示部702の選択文書706の文書情報を文書管理装置101の文書チェックアウト処理制御部309に渡す。
ボタン710は、選択文書706で選択された文書の詳細情報(図8等参照)の表示処理を起動するボタンである。ボタン710を押下することで文書情報表示部702の選択文書706の情報を文書管理装置101の文書情報処理制御部315に渡す。
(文書情報詳細表示画面例)
図8は、図1のクライアント装置102のCRT409に表示する文書情報詳細表示画面例を示す図である。
図8の文書情報詳細表示画面801は、図7でボタン710が押下されたとき、文書閲覧画面701で選択された選択文書706の詳細な情報を表示するために使用するものである。文書情報詳細表示画面801は、文書情報表示部802と、文書バージョン情報表示部808と、ボタン812とで構成される。
文書情報表示部802は、文書の保持する情報や状態を表示するための場所であり、文書ID803と、文書名称804と、ステータス805と、チェックアウト日付806と、チェックアウトユーザ807とで構成される。チェックアウト日付806と、チェックアウトユーザ807については、ステータス805が「チェックアウト中」になっている場合のみ表示される。
文書バージョン情報表示部808は、文書が更新してきたバージョン情報の履歴を表示するための場所であり、バージョンID809と、登録日付810と、登録ユーザ811とで構成される。
ボタン812は、本画面を終了させるためのボタンであり、押下することで前記図7の文書閲覧画面701に戻る。
(チェックアウト予約一覧画面例)
図9は、図1のクライアント装置102のCRT409に表示するチェックアウト予約一覧画面901の例を示す図である。
図9のチェックアウト予約一覧画面901は、図7でボタン707が押下されたとき、文書閲覧画面701で選択された選択文書706に設定されているチェックアウト予約情報を表示するために使用するものである。チェックアウト予約一覧画面901は、文書情報表示部902と、チェックアウト予約情報表示部906と、ボタン910と、ボタン911と、ボタン912とで構成される。
文書情報表示部902は、文書の保持する情報や状態を表示するための場所であり、文書ID903と、文書名称904と、ステータス905とで構成される。
チェックアウト予約情報表示部906は、チェックアウト開始日時である予約開始日付907と、チェックイン予定日時である予約終了日付908と、予約ユーザ909とで構成される。ここに表示されるデータは、前記図6Dでチェックアウト予約情報631に登録された文書ID903で指定された文書に関するチェックアウト予約情報が予約開始日付907で昇順に表示される。ここで、予約開始日付907と予約終了日付908との間が、チェックアウト実施予定期間となる。
ボタン910は、本画面を終了させるためのボタンであり、押下することで前記図7の文書閲覧画面701に戻る。
ボタン911は、チェックアウト予約情報表示部906に表示されているチェックアウト予約情報をキャンセル(削除)する処理を起動するためのボタンである。チェックアウト予約情報表示部906に表示されている情報の中からひとつの予約情報を選択した後に、ボタン911を押下する。そうすることで、選択された予約情報を文書管理装置101の文書チェックアウト予約処理制御部311に渡し、図12のチェックアウト予約キャンセル画面1201に遷移する。かかる処理がチェックアウト予約削除の処理に相当する。
ボタン912は、文書ID903に関するチェックアウト予約の追加処理を起動するためのボタンである。ボタン912を押下することで、本画面に表示されている文書情報を文書管理装置101の文書チェックアウト予約処理制御部311に渡し、図10のチェックアウト予約設定画面1001に遷移する。
(チェックアウト予約設定画面例)
図10は、図1のクライアント装置102のCRT409に表示するチェックアウト予約設定画面例を示す図である。
図10のチェックアウト予約設定画面1001は、前記図9のチェックアウト予約一覧画面901で表示されていた文書に対してチェックアウトの予約を追加する際の設定画面として使用されるものである。チェックアウト予約設定画面1001は、チェックアウト予約設定情報表示部1002と、チェックボックス1007と、ボタン1008と、ボタン1009とで構成される。
チェックアウト予約設定情報表示部1002は、文書ID1003と、文書名称1004と、予約開始日付1005と、予約終了日付1006とで構成される。この中で、予約開始日付1005と予約終了日付1006とは、ユーザが予約期間を指定するため入力可能状態となっており、ユーザは所定の書式(本実施形態では年月日)で開始と終了の予定を指定する。
チェックボックス1007は、直前の予約がキャンセル、もしくは予約終了日付を待たずにチェックインされた場合に予約を前倒しするかどうかを指定するために使用する。本チェックボックス1007がチェックされている場合には、前予約が終了した直後に次のチェックアウトが行われるが、チェックされていない場合には、指定した予約開始日付までチェックアウトが行われない。
ボタン1008は、本画面での設定内容を破棄して、図9のチェックアウト予約一覧画面901へ遷移する。
ボタン1009は、本画面で設定したチェックアウト予約情報の登録処理を起動するためのボタンである。ボタン1009を押下することで、本画面に入力されたチェックアウト予約情報を文書管理装置101の文書チェックアウト予約処理制御部311に渡す。その後、チェックアウト予約情報をチェックアウト予約情報保管部305に登録した後、図11のチェックアウト予約完了画面1101に遷移する。
また、文書チェックアウト予約処理制御部311での処理中にエラーが発生した場合には、図13のエラー画面1301に遷移する。本処理の流れは、図20で詳細に説明する。
(チェックアウト予約完了画面例)
図11は、図1のクライアント装置102のCRT409に表示するチェックアウト予約完了画面1101の例を示す図である。
図11のチェックアウト予約完了画面1101は、前記図10のチェックアウト予約設定画面1001のボタン1009の押下で起動された文書チェックアウト予約処理の結果を表示するために使用されるものである。チェックアウト予約完了画面1101は、文書ID1102と、文書名称1103と、予約開始日付1104と、予約終了日付1105と、ボタン1106とで構成される。
文書ID1102と、文書名称1103と、予約開始日付1104と、予約終了日付1105とは、登録したチェックアウト予約情報をユーザに通知するための表示場所である。
ボタン1106は、本画面を終了させるためのボタンであり、押下することで前記図9のチェックアウト予約一覧画面901に戻る。
(チェックアウト予約キャンセル画面例)
図12は、図1のクライアント装置102のCRT409に表示するチェックアウト予約キャンセル画面1201の例を示す図である。
図12のチェックアウト予約キャンセル画面1201は、前記図9のチェックアウト予約一覧画面901で表示されていたチェックアウト予約情報を削除する際の確認画面として使用されるものである。チェックアウト予約キャンセル画面1201は、文書ID1202と、文書名称1203と、予約開始日付1204と、予約終了日付1205と、ボタン1206と、ボタン1207とで構成される。
文書ID1202と、文書名称1203と、予約開始日付1204と、予約終了日付1205は、図6Aの文書情報と、図6Dのチェックアウト予約情報の中から該当するキャンセル対象予約情報を表示する部分である。表示される内容は、図9のチェックアウト予約一覧画面901のチェックアウト予約情報表示部906で選択された内容を表す。
ボタン1206は、本画面に表示されている予約情報のキャンセル処理を破棄するために使用されるものであり、押下することで予約のキャンセル処理を行わずに前記図9のチェックアウト予約一覧画面901に戻る。
ボタン1207は、本画面に表示したチェックアウト予約情報のキャンセル(削除)処理を起動するためのボタンである。ボタン1207を押下することで、本画面に表示されたチェックアウト予約情報を文書管理装置101の文書チェックアウト予約処理制御部311に渡し、チェックアウト予約情報保管部305から削除する。その後、図9のチェックアウト予約一覧画面901に遷移する。予約情報の削除後、キャンセルした予約の後に続く予約が存在する場合には、予約の内容により予約期間シフト処理を、チェックアウト予約一覧画面901に遷移する前に行う。
また、文書チェックアウト予約処理制御部311での処理中にエラーが発生した場合には、図13のエラー画面1301に遷移する。
(エラー画面例)
図13は、図1のクライアント装置102のCRT409に表示するエラー画面1301の例うぃ示す図である。
図13のエラー画面1301は、文書管理装置101で行われる各処理中にエラーが発生した場合にクライアント装置102にエラー内容を表示するためのものである。エラー画面1301は、エラー対象となる文書ID1302と、その文書名称1303と、エラーメッセージ表示部1304と、ボタン1305とで構成される。
文書ID1302と、文書名称1303は、エラーとなった対象の文書情報を表示する場所である。エラーメッセージ表示部1304は、発生したエラー内容を表示する。ここに表示されるメッセージは、特に文字列に限る必要はなく、イメージなど他の手段でもかまわない。
ボタン1305は、本画面を終了させるためのボタンであり、押下することで前記図7の文書閲覧画面701や図9のチェックアウト予約一覧画面901に戻る。
(チェックアウト画面例)
図14は、図1のクライアント装置102のCRT409に表示するチェックアウト画面例を示す図である。
図14のチェックアウト画面1401は、前記図7の文書閲覧画面701で選択された選択文書706のチェックアウト処理確認を行うために使用されるものである。チェックアウト画面1401は、文書ID1402と、文書名称1403と、ステータス1404と、ボタン1405と、ボタン1406とで構成される。
文書ID1402と、文書名称1403と、ステータス1404は、前記図7の文書閲覧画面701で選択された選択文書706の本画面表示時点での最新情報を表示する場所である。
ボタン1405は、本画面に表示されている文書情報のチェックアウト処理を破棄するために使用されるものであり、押下することでチェックアウト処理を行わずに前記図7の文書閲覧画面701に戻る。
ボタン1406は、文書ID1402に表示されている文書のチェックアウト処理を起動するためのボタンであり、押下することで本画面に表示されている文書情報を文書管理装置101の文書チェックアウト処理制御部309に渡す。
文書チェックアウト処理制御部309でのチェックアウト処理で、チェックアウト処理が終了した際には、図16のチェックアウト完了画面1601へ遷移する。但し、文書チェックアウト処理制御部309でチェックアウトする際に制限が発見された場合には、制限の内容を図15のチェックアウト制限許諾画面1501に表示し、ユーザによりその制限内容を許諾すると指示された後にチェックアウト処理を行う。また、文書チェックアウト処理制御部309での処理中にエラーが発生した場合には、図13のエラー画面1301に遷移する。本チェックアウト処理の流れは、図23で詳細に説明する。
(チェックアウト制限許諾画面例)
図15は、図1のクライアント装置102のCRT409に表示するチェックアウト制限許諾画面1501の例を示す図である。
図15のチェックアウト制限許諾画面1501は、文書ID1502と、文書名称1503と、制限内容表示部1504と、ボタン1505と、ボタン1506とで構成される。
文書ID1502と、文書名称1503は、チェックアウトする対象の文書情報を表示する場所である。制限内容表示部1504は、チェックアウトを行う際に、ユーザにとっての制限となる内容を表示する部分であり、文書をチェックアウトして作業できる期間が別の予約によって制限される旨などを表示する。
ボタン1505は、本画面に表示されている制限内容に同意できない際、文書情報のチェックアウト処理を破棄するために使用されるものであり、押下することでチェックアウト処理を行わずに前記図7の文書閲覧画面701に戻る。
ボタン1506は、本画面に表示されている制限内容に同意できる際、文書情報のチェックアウト処理を継続実行するために使用されるものである。ボタン1506を押下することで、文書管理装置101の文書チェックアウト処理制御部309でチェックアウト処理が行われ、チェックアウト処理が終了した際には、図16のチェックアウト完了画面1601へ遷移する。また、文書チェックアウト処理制御部309での処理中にエラーが発生した場合には、図13のエラー画面1301に遷移する。
(チェックアウト完了画面例)
図16は、図1のクライアント装置102のCRT409に表示するチェックアウト完了画面1601の例を示す図である。
図16のチェックアウト完了画面1601は、前記図14のチェックアウト画面1401のボタン1406、もしくは前記図15のチェックアウト制限許諾画面1501のボタン1506の押下で起動される。チェックアウト完了画面1601は、チェックアウト処理の結果を表示するために使用されるものであり、文書ID1602と、文書名称1603と、ボタン1604とで構成される。
文書ID1602と、文書名称1603は、チェックアウトを行った文書情報をユーザに通知するために表示する場所である。
ボタン1604は、本画面を終了させるためのボタンであり、押下することで前記図7の文書閲覧画面701に戻る。
(チェックイン画面例)
図17は、図1のクライアント装置102のCRT409に表示するチェックイン画面1701の例を示す図である。
図17のチェックイン画面1701は、前記図7の文書閲覧画面701で選択された選択文書706のチェックイン処理設定を行うために使用されるものである。チェックイン画面1701は、チェックイン文書情報表示部1702と、チェックイン時に登録する文書ファイル情報表示欄1707と、ボタン1708と、ボタン1709とで構成される。
チェックイン文書情報表示部1702は、チェックイン対象となっている選択文書706の本画面表示時点での最新情報を表示する場所である。チェックイン文書情報表示部1702は、文書ID1703と、文書名称1704と、ステータス1705と、チェックアウト日付1706とで構成される。
文書ファイル情報表示欄1707は、チェックイン時に登録する文書ファイルを指し示す情報を表示する欄であり、登録する文書の情報のパスおよびファイル名称が表示される。また、利用者が直接入力することも可能である。
ボタン1708は、登録するファイルを指定するための処理を起動するためのボタンである。このボタンの動作によりクライアント装置が提供するローカルもしくはネットワーク越しのリモート環境に存在するファイルを識別することが可能となる。この画面はOSが提供するものであり、本実施形態の中で特徴のあるものではないため、図などの詳細な説明は行わない。本ボタンからの選択画面で選択された登録文書のパス及びファイル名称については、前記文書ファイル情報表示欄1707に表示される。
ボタン1709は、文書ファイル情報表示欄1707で指定されたファイルを文書の新規バージョンとして登録するチェックイン処理を起動するためのボタンである。ボタン1709を押下することで、本画面に表示されている文書のチェックインに必要な情報を文書管理装置101の文書チェックイン処理制御部310に渡す。
文書チェックイン処理制御部310でのチェックイン処理が終了した際には、図18のチェックイン完了画面1801へ遷移する。また、文書チェックイン処理制御部310での処理中にエラーが発生した場合には、図13のエラー画面1301に遷移する。本チェックイン処理の流れは、図25で詳細に説明する。
(チェックイン完了画面例)
図18は、図1のクライアント装置102のCRT409に表示するチェックイン完了画面1801の例を示す図である。
図18のチェックイン完了画面1801は、前記図17のチェックイン画面1701のボタン1709の押下で起動された文書チェックイン処理の結果を表示するために使用されるものである。チェックイン完了画面1801は、文書ID1802と、文書名称1803と、ステータス1804と、最新バージョンID1805と、ボタン1806とで構成される。
文書ID1802と、文書名称1803と、ステータス1804と、最新バージョンID1805は、チェックイン処理を行った文書情報をユーザに通知するために表示する場所である。
ボタン1806は、本画面を終了させるためのボタンであり、押下することで前記図7の文書閲覧画面701に戻る。
<本実施形態の通知メールのフォーマット例>
図19は、本実施形態におけるクライアント装置に送られる通知メールのフォーマット例を示す図である。
図19のメールフォーマット1901は、メールヘッダー部分1902とメール本文部分1905とで構成される。メールヘッダー1902は、宛先となるメールアドレスを記述する宛先1903と、送信するメールの題名を記述する表題1904とで構成される。実際のメールプロトコル上では、これ以外のヘッダー情報も多数規定されているが、本実施形態では必要最低限の情報以外は省略している。特に、記載されている以外のヘッダー情報を付加できないということではない。
メール本文1905には、対象となる文書名称1906と、文書名称1906の文書のチェックアウト期限1907と、メールに固定で表示されるメッセージ1908とで構成される。
本メールフォーマットは、外部プログラムからデータを設定することによって、メールの体裁を整えるものである。
<本実施形態の文書管理装置の動作例>
以下、上記本実施形態の文書管理装置の動作例をフローチャートを参照しながら説明する。
(文書管理装置が文書のチェックアウト予約を行う処理例)
図20は、図1に記載された文書管理装置101によるチェックアウト予約処理の手順例を示すフローチャートである。
図20は、クライアント装置102のCRT409に表示されている前記図10のチェックアウト予約設定画面1001のボタン1009を押下することにより起動される。図20は、文書管理装置101の文書チェックアウト予約処理制御部311によって行われる処理フローを表したものであり、本処理は図2のCPU201によって実行される。
本処理で必要なデータは、チェックアウト予約設定画面1001にて入力された文書ID1003、予約開始日付1005、予約終了日付1006、チェックボックス1007、および本操作を行っているユーザIDである。
図20に示すとおり、ステップS2001において、チェックアウト予約情報631を文書管理装置101のチェックアウト予約情報操作部306経由でチェックアウト予約情報保管部305から取得する。かかるチェックアウト予約情報631は、クライアント装置102から渡された前記図10に表示されている文書ID1003に合致するものである。取得処理が終了したら、次のステップS2002へ進む。
ステップS2002において、前記ステップS2001で取得したチェックアウト予約情報631が存在しているかどうかを判断する。存在している場合には次のステップS2003へ、存在していない場合にはステップS2007へ進む。
ステップS2003において、前記ステップS2001で取得したチェックアウト予約情報631のレコード件数の数だけ、ステップS2006までの繰り返し処理の制御を行う。
まず、チェックアウト予約情報631のレコードの中から1件のレコードを特定して、次のステップS2004に進む。ステップS2004においては、取得したチェックアウト予約情報631の項目のチェックアウト予約日付633とチェックイン予定日付635の値をレコードから取得し、次のステップS2005へ進む。
ステップS2005においては、前記ステップS2004で取得した2項目と本処理への入力値となる予約開始日付1005と予約終了日付1006とが、以下の条件を満たすかどうかを確認する。
なお、以下本明細書では、「<」及び「>」を時刻の前後を表わすのに使用し、小=前、大=後を表わしている。また、「=」は時間の場合には同日時を表わしている。
比較条件:
新規の予約開始日付1005<予約済みチェックイン予定日付635
または
新規の予約終了日付1006>予約済みチェックアウト予約日付633
本比較条件を満たしている場合には、新規予約する期間が既に予約されている期間と重複するため、エラーと判断してステップS2008へ進む。また、前記比較条件を満たしていない場合には、新規予約する期間との重複がないものとして、次のステップS2006へ進む。
ステップS2006は、前記ステップS2001で取得したチェックアウト予約情報631のうち1レコードについての重複チェックが終わったことを表す。まだ重複チェックが終わっていないチェックアウト予約情報631のレコードが残っているようであれば、前記ステップS2004に遷移する。既にチェックアウト予約情報631のレコード全件についての処理が終わっている場合には、次のステップS2007へ進む。ステップS2007では、新規予約データが既存の予約データとの重複が発生していないことが確認されたため、新規チェックアウト予約情報の登録処理を行う。ここでは、チェックアウト予約情報631の各項目に対して、以下のデータを設定した新規レコード638を作成する。
設定するチェックアウト予約情報(図6D参照):
文書ID632 ← 入力値「文書ID1003」
チェックアウト予約日付633 ← 入力値「予約開始日付1005」
予約ユーザID634 ← ログインしているユーザID
チェックイン予定日付635 ← 入力値「予約終了日付1006」
前予約追従フラグ636 ← 入力値「チェックボックス1007」
ステータス637 ← 「未処理」
作成した新規レコード638は、文書管理装置101のチェックアウト予約情報操作部306を通じてチェックアウト予約情報保管部305に保管される。本ステップにおける登録処理の終了を持って、チェックアウト予約処理が完了する。
一方、ステップ2008においては、予約期間のチェックで重複エラーが発見された場合などに遷移する処理であり、前記図13のエラー画面1301へエラーの内容を出力して、ユーザにエラーの内容を通知する。前記エラー画面1301でエラー情報の確認後、ボタン1305が押下されると、本チェックアウト予約処理は、予約されない状態で終了する。
本処理が終了した際には、前記図11のチェックアウト予約完了画面1101が表示される。
(文書管理装置が予約期間終了状況を確認する処理例)
図21は、図1に記載された文書管理装置101によるチェックアウト予約期間終了確認処理の手順例を示すフローチャートである。
本処理は、ユーザからのアクションを受けて行われるものではなく、文書管理装置101内で定期的に自動実行される処理である。この実行間隔に関しては特に限定するものではない。図21は、この定期的に実行される処理の1回の処理フローを示すものであり、文書管理装置101上の文書チェックアウト予約処理制御部311によって図2のCPU201を使用して行われる。
本処理を行うにあたって必要なデータは、終了警告を行う予約残日数閾値であり、この内容は、あらかじめ文書管理装置101内に設定されているものとする。
図21に示すとおり、ステップS2101において、図6Dのチェックアウト予約情報631に存在する予約情報のうち、予約期間が終了するものを以下の条件に照らし合わせて取得する。
取得条件:
ステータス637が「完了」になっていない
かつ
本処理実行時日付+システム設定されている予約残日数閾値
>チェックイン予定日付635
もしくは
本処理実行時日付+システム設定されている予約残日数閾値
>チェックアウト予約日付633
ここで合致した前記チェックアウト予約情報631のレコードは、文書IDでソートされているものとする。取得処理が終了したら、次のステップS2102へ進む。
ステップS2102において、前記ステップS2101で取得したチェックアウト予約情報631のレコードが1件以上存在しているかどうかの判断を行う。存在している場合には、次のステップS2103へ、存在していない場合には、本処理を終了する。
ステップS2103において、前記ステップS2101で取得したチェックアウト予約情報631のレコード件数の数だけ、ステップS2107までの間の繰り返し処理の制御を行う。
まず、チェックアウト予約情報631のレコードの中から1件のレコードを特定して次のステップS2104へ進む。ステップS2104において、チェックアウト情報操作部304を使用してチェックアウト情報保管部303から該当するチェックアウト情報621のレコードを取得する。かかる取得は、前記ステップS2103で特定されたチェックアウト予約情報631のレコードから取得した文書ID632をキーとして、行われる。該当レコードの取得処理が終了したら、次のステップS2105へ進む。
ステップS2105において、前記ステップS2104にて取得したチェックアウト情報621が存在しているかどうかを確認し、存在している場合には次のステップS2106へ、存在しない場合には、ステップS2107へ進む。
ステップS2106において、ユーザ情報操作部308を使用してユーザ情報保管部307から該当するユーザ情報641を取得する。かかる取得は、前記ステップS2104にて取得したチェックアウト情報621のレコードのチェックアウトユーザID624をキーとして、行われる。また、同じチェックアウト情報621のレコードの文書ID622をキーとして、文書情報操作部302を使用して文書情報保管部301から該当する文書情報601を取得する。
これら取得した情報を使用して、図19に示すメールフォーマット1901を使用したメールを送信する。メールフォーマット1901に指定する情報は、以下のように作成される。宛先1903には、取得したユーザ情報641のメールアドレス644が設定される。表題1904には「チェックアウト期限確認」の文字が設定され、文書名称1906には取得した文書情報601の文書名称603が設定される。チェックアウト期限1907には、前記ステップS2103で特定されたチェックアウト予約情報631のチェックイン予定日付635もしくはチェックアウト予約日付633の内ステップS2101の取得条件に合致した方の日付が設定される。メッセージ1908には、「チェックアウト終了期限が近づいてきました。指定した期限までにはチェックイン、もしくはチェックアウト取消をしてください。」と言う旨のメッセージが適用される。
作成したメールはすぐに送信する。メールの送信が終了したら、次のステップS2107へ進む。
ステップS2107においては、ステップS2101にて取得したチェックアウト予約情報631のレコードすべての処理が終了したかどうかを判断する。まだ未処理レコードが残っている場合にはステップS2103へ、未処理レコードが存在しない場合には処理ループを抜けて本処理を終了する。
(文書管理装置が予約期間開始文書をチェックアウトする処理例)
図22は、図1に記載された文書管理装置101によるチェックアウト予約実行処理の手順例を示す図である。
本処理はユーザからのアクションを受けて行われるものではなく、文書管理装置101内で定期的に自動実行される処理である。この実行間隔に関しては特に限定するものではない。図22は、この定期的に実行される処理の1回の処理フローを示すものであり、文書管理装置101上の文書チェックアウト予約処理制御部311によって図2のCPU201を使用して行われる。
図22に示すとおり、ステップS2201において、図6Dのチェックアウト予約情報631に存在する予約情報のうち、予約期間が開始するものを、以下の条件に照らし合わせて取得する。
取得条件:
ステータス637が「完了」になっていない
かつ
本処理実行時日付≧チェックアウト予約日付633
ここで合致した前記チェックアウト予約情報631のレコードは、文書ID632とチェックアウト予約日付633とでソートされているものとする。また、同じ文書ID632が複数存在する場合には、チェックアウト予約日付633が最小の日付を示すもののみを残し、残りのレコードは対象レコードから削除する。前記条件での対象レコード取得処理が終わったら、次のステップS2202に進む。
ステップS2202において、前記ステップS2201で取得したチェックアウト予約情報631のレコードが1件以上存在しているかどうかの判断を行う。存在している場合には、次のステップS2203へ、存在していない場合には、本処理を終了する。
ステップS2203において、前記ステップS2201で取得したチェックアウト予約情報631のレコード件数の数だけステップS2209までの間の繰り返し処理の制御を行う。
まず、チェックアウト予約情報631のレコードの中から1件のレコードを特定して、次のステップS2204へ進む。
ステップS2204において、前記ステップS2203で特定された処理対象のチェックアウト予約情報631のレコードに記載されている文書ID632に該当する文書のチェックアウト処理を行う。そのため、図24に記載のチェックアウト実処理を起動する。図24のチェックアウト実処理が終了したら、その処理結果を保管して、次のステップS2205に進む。
ステップS2205において、前記ステップS2204の中で保管したチェックアウト実処理の処理結果を判定し、正常に終了していた場合にはステップS2206へ、異常終了していた場合にはステップS2208へ進む。
ステップS2206において、チェックアウト処理が正常に終了したことを受けて、予約対象のチェックアウト予約情報を以下のように更新する。前記ステップS2203で特定されているチェックアウト予約情報631のレコードのステータス637の値を「処理中」に変更する。チェックアウト予約情報操作部306を経由して、チェックアウト予約情報保管部305に保管されているチェックアウト予約情報631を更新する。更新処理が終了したら、次のステップS2207に進む。
ステップS2207において、該当文書に対するチェックアウト処理が終了したため、チェックアウト予約を行ったユーザに対して文書のチェックアウトが行われた旨をメールで通知する。そのために、前記ステップS2203で特定したチェックアウト予約情報631の文書ID632をキーとして、文書情報操作部302を使用して文書情報保管部301から該当する文書情報601を取得する。また、予約ユーザID634をキーに、ユーザ情報操作部308を使用してユーザ情報保管部307から該当するユーザ情報641を取得する。
本ステップで送信するメールは、前記図19のメールフォーマット1901を有する。メールフォーマット1901に指定する情報は、以下のようになる。宛先1903には、本ステップで取得したユーザ情報641のメールアドレス644が設定される。表題1904には「チェックアウト完了」の文字が、文書名称1906には本ステップで取得した文書情報601の文書名称603が設定される。チェックアウト期限1907には、前記ステップS2203で特定されたチェックアウト予約情報631のチェックイン予定日付635が設定される。メッセージ1908には、「チェックアウト期間が開始されました。文書に対する作業を始めてください。」と言う旨のメッセージが指定される。作成したメールの送信が終了したら、次のステップS2209へ進む。
ステップS2208において、前記ステップS2204のチェックアウト実処理のエラーを受けて、チェックアウト予定ユーザと、現チェックアウトユーザに対してそれぞれにメールを送信する。
まず、チェックアウトを予定していたユーザに対しては、予定されていたチェックアウトが正常に行われなかった旨のメールを送信する。そのために、前記ステップS2203で特定したチェックアウト予約情報631の文書ID632をキーとして、文書情報操作部302を使用して文書情報保管部301から該当する文書情報601を取得する。また、予約ユーザID634をキーに、ユーザ情報操作部308を使用してユーザ情報保管部307から該当するユーザ情報641を取得する。
本ステップで送信するメールは、前記図19のメールフォーマット1901を使用したメールを送信する。メールフォーマット1901に指定する情報は、以下のようである。宛先1903には、本ステップで取得したユーザ情報641のメールアドレス644が設定される。表題1904に「チェックアウト失敗」の文字が、文書名称1906には本ステップで取得した文書情報601の文書名称603が設定される。チェックアウト期限1907には、前記ステップS2203で特定されたチェックアウト予約情報631のチェックアウト予約日付633が設定される。メッセージ1908には、「チェックアウト期間が来ましたがチェックアウト処理に失敗しました。」と言う旨のメッセージが適用される。
また、現チェックアウトユーザに対しては、チェックインもしくはチェックアウト取消を行う処理を督促する旨のメールを送信する。そのために、前記ステップS2203で特定したチェックアウト予約情報631の文書ID632をキーとして、文書情報操作部302を使用して文書情報保管部301から該当する文書情報601を取得する。また、チェックアウト情報621のチェックアウトユーザID624をキーにユーザ情報操作部308を使用してユーザ情報保管部307から該当するユーザ情報641を取得する。かかるチェックアウトユーザID624は、文書ID632をキーにしてチェックアウト情報操作部304を使用してチェックアウト情報保管部303から取得する。
本ステップで送信するメールは、前記図19のメールフォーマット1901を使用する。メールフォーマット1901に指定する情報は、以下のようである。宛先1903には、本ステップで取得したユーザ情報641のメールアドレス644が設定される。表題1904に「至急チェックイン」の文字が、文書名称1906には本ステップで取得した文書情報601の文書名称603が設定される。チェックアウト期限1907には、前記ステップS2203で特定されたチェックアウト予約情報631のチェックアウト予約日付633が設定される。メッセージ1908には、「既にチェックアウト期間を過ぎています。次の予約者の方がいるため至急チェックイン、もしくはチェックアウト取消をしてください。」と言う旨のメッセージが適用される。これら作成されたメールの送信が終了したら、次のステップS2209へ進む。
ステップS2209において、ステップS2201にて取得したチェックアウト予約情報631のレコードすべての処理が終了したかどうかを判断する。まだ未処理レコードが残っている場合にはステップS2203へ、未処理レコードが存在しない場合には処理ループを抜けて本処理を終了する。
(ユーザがチェックアウトを行う処理例)
図23は、図1に記載された文書管理装置101によるチェックアウト実行処理の手順例を示すフローチャートである。
図23は、クライアント装置102のCRT409に表示されている前記図14のチェックアウト画面1401のボタン1406を押下することにより、起動される。図23は、文書管理装置101の文書チェックアウト処理制御部309によって文書のチェックアウト処理を行うための処理フローを表したものであり、本処理は図2のCPU201によって実行される。
本処理に必要な入力データは、前記チェックアウト画面1401で指定されている文書ID1402および操作を行っているユーザIDである。
図23に示すとおり、ステップS2301において、前記入力データである文書ID1402に対するチェックアウト予約情報の一覧を取得する。これは、文書ID1402に合致するチェックアウト予約情報631をチェックアウト予約情報操作部306経由でチェックアウト予約情報保管部305から取得する。この際に取得するチェックアウト予約情報631のレコードは、項目のチェックアウト予約日付633により昇順にソートされているものとする。取得処理が終了したら、次のステップS2302へ進む。
ステップS2302において、前記ステップS2301で取得したチェックアウト予約情報631のレコードが存在しているかどうかを判断する。存在している場合には、次のステップS2303へ進み、存在していない場合にはステップS2210へ進む。
ステップS2303において、前記ステップS2301で取得したチェックアウト予約情報631のレコード件数の数だけステップS2307までの間の繰り返し処理の制御を行う。
まず、チェックアウト予約情報631のレコードの中から1件のレコードを特定して、次のステップS2304へ進む。ステップS2304において、前記ステップS2303で特定されたチェックアウト予約情報631のレコードのチェックアウト予約日付633およびチェックイン予定日付635を取得する。取得処理が終わったら、次のステップS2305へ進む。
ステップS2305において、前記ステップS2304で取得したチェックアウト予約日付633およびチェックイン予定日付635の情報を使用して、本処理の実行時日付と以下の条件で予約期間を比較する。
比較条件:
本処理実行時日付≧チェックアウト予約日付633
かつ
本処理実行時日付<チェックイン予定日付635
本条件を満たしている場合には、チェックアウトする文書の予約期間の中に含まれてしまうため、チェックアウト処理自体ができない状態として判断する。そのため、条件を満たしている場合には、ステップS2211へ進む。この条件に合致しない場合には、本比較対象レコードがチェックアウト期間中ではないため、次のステップS2306へ進む。
ステップS2306において、チェックアウト期間外の中で以下のような条件に合致しているかどうかをチェックする。チェックを行うための比較条件は以下のものとする。
比較条件:
本処理実行時日付<チェックアウト予約日付633
本条件を満たしている場合には、現時点ではチェックアウト期間ではないが、以降に予約が入っているためチェックアウトの制限が存在しているため、次のステップS2308へ進む。それ以外の場合には、チェックアウトのための予約側の制限のない予約情報と言うことになるため、次のステップS2307へ進む。
ステップS2307において、前記ステップS2301で取得したチェックアウト予約情報631のうち1レコードについての予約重複チェックが終わったことを表す。まだチェックアウト予約情報631のレコードが残っているようであれば、前記ステップS2303に遷移する。既にチェックアウト予約情報631のレコード全件についての処理が終わっている場合には、次のステップS2310へ進む。
ステップS2308において、前記ステップS2306における比較でチェックアウト後に予約が入っている。そのため、チェックアウトを行うユーザに対して、チェックアウトを行う期間が制限される旨の情報を文書チェックアウト処理制御部309で整えて表示内容生成部316に送ることで、図15のチェックアウト制限許諾画面1501を表示する。このチェックアウト制限許諾画面1501に表示する情報は、前記ステップS2303で特定したチェックアウト予約情報631の文書ID632とチェックアウト予約日付633である。特にチェックアウト予約日付633は、メッセージの中に埋め込むものとする。本画面をクライアント装置102のCRT409に表示するまでが本ステップの範疇である。
この後、画面を見たユーザの判断として図15のチェックアウト制限許諾画面1501上のボタン1505もしくはボタン1506が押下されたタイミングで、次のステップS2309へ進む。
ステップS2309においては、ユーザが押下した前記ボタン1505(キャンセル)もしくはボタン1506(許諾)を判断し、キャンセルの場合にはチェックアウト処理を行わず本処理を終了する。また、許諾の場合にはユーザがチェックアウト期間の制限を受け入れたものとして、ステップS2304からステップS2307の処理ループを抜けて、次のステップS2210へ進む。
ステップS2310においては、チェックアウト予約との重複がないことが確認されたため、実際のチェックアウト処理を行う。処理の詳細については、図24のフローチャートにて説明を行う。本ステップのチェックアウト処理が終わったら本処理を終了する。
ステップS2311においては、前記ステップS2305において既にチェックアウト予約期間で有り他のユーザがチェックアウトしている。そのため、チェックアウト要求ユーザに対して既にチェックアウトされている旨のエラー画面1301を表示する。ユーザがエラー画面1301上のボタン1305を押下することで本処理を終了する。
(文書管理装置におけるチェックアウト実処理例)
図24は、図1に記載された文書管理装置101によるチェックアウト処理の手順例を示すフローチャートである。
図24は、前記図22および図23でのチェックアウト処理フローの中からステップS2204あるいはS2310において起動される。図24は、文書管理装置101の文書チェックアウト処理制御部309によって文書のチェックアウト実処理を行うための処理フローを表したものであり、本処理は図2のCPU201によって実行される。
本処理に必要な入力データは、チェックアウト対象になる文書ID、および操作を行っているユーザIDである。
図24に示すとおり、ステップS2401において、入力データとして指定された文書IDから該当する文書情報601およびチェックアウト情報621を取得する。文書情報601およびチェックアウト情報621の取得が終わったら、次のステップS2402に進む。
ステップS2402において、前記ステップS2401で取得した文書情報601が存在するかどうかの確認を行う。文書情報が存在しない場合はエラーであり、次のステップS2408へ進む。文書情報が存在している場合には、次のステップS2403へ進む。ステップS2403において、前記ステップS2401で取得したチェックアウト情報621が存在しているかどうかの確認を行う。存在している場合には、現時点でいずれかのユーザによるチェックアウトが行われている状態であるため、エラーとして次のステップS2408へ進む。チェックアウト情報621が存在していない場合には、チェックアウト可能な文書として次のステップS2404に進む。ステップS2404において、前記ステップS2401で取得した文書情報601のステータス604が「正常」以外の値を指名している場合には、エラーとして次のステップS2408に進む。ステータスが正常な場合には、すべてのチェックアウト可否チェックが終わったとして、次のステップS2405へ進む。
ステップS2405において、前記ステップS2401で取得した文書情報601のステータス値を「チェックアウト中」に変更する。ここでは、文書チェックアウト処理制御部309から文書情報操作部302を介して文書情報保管部301の中の既存データの更新する手順で行われる。文書情報の更新処理が終了したら、次のステップS2406へ進む。
ステップS2406において、チェックアウト中であるための情報として、図6Cのチェックアウト情報621へ該当文書情報を追加する。チェックアウト情報621の各項目には、以下の情報が使用される。文書ID622については、入力データとして本処理に渡された文書IDが使用される。チェックアウト日付については、本処理の実行日付が使用される。チェックアウトユーザID624については、文書IDと同様入力データとして本処理に渡された操作を行っているユーザIDが使用される。これらのデータを使用して、文書チェックアウト処理制御部309からチェックアウト情報操作部304を介してチェックアウト情報保管部303の中に新規データとして追加する手順で行われる。チェックアウト情報の追加処理が終了したら、次のステップS2407へ進む。
ステップS2407において、前記ステップS2405及びステップS2406で行われた更新処理の確定を行う。処理確定によりチェックアウト処理が完了し、本処理を終了する。
ステップS2408においては、前記各ステップで発生したエラー処理を行い、エラーを処理起動元に通知して本処理を終了する。
(ユーザがチェックインを行う処理例)
図25は、図1に記載された文書管理装置101によるチェックイン実行処理の手順例を示すフローチャートである。
図25は、クライアント装置102のCRT409に表示されている前記図17のチェックイン画面1701のボタン1709を押下することにより起動される。図25は、文書管理装置101の文書チェックイン処理制御部310によって文書のチェックイン処理を行うための処理フローを表したものであり、本処理は図2のCPU201によって実行される。
本処理に必要な入力データは、前記チェックイン画面1701で指定されている文書ID1703、文書ファイル情報表示欄1707もしくはボタン1708によって指定された登録文書ファイル、および操作を行っているユーザIDである。
図25に示すとおり、ステップS2501において、図17のチェックイン画面1701で指定された文書IDの文書に対してチェックイン処理を行う。この処理は、後述の図26の処理フローにて詳細な説明を行う。本ステップでは、図26の処理の起動および処理結果の取得までを行い、処理結果を保管した後、次のステップS2502に進む。
ステップS2502において、前記ステップS2501のチェックイン処理結果を取得し、結果がエラーだった場合には、次のステップ2513へ進む。正常に終了している場合には、次のステップS2503に進む。
ステップS2503において、チェックインした文書の文書IDに合致するチェックアウト予約情報631が存在するかどうかを確認する。本ステップでは、チェックアウト予約情報操作部306に対して、以下の条件に合致するチェックアウト予約情報631を取得する。
検索条件:
文書ID632=入力データ「文書ID1703」
かつ
チェックアウト予約日付633≦処理実行日付
かつ
チェックイン予定日付635≧処理実行日付
情報の取得処理が終了したら、次のステップS2504に進む。
ステップS2504において、前記ステップS2503で取得したチェックアウト予約情報631のレコードが存在するかどうかをチェックする。チェックアウト予約情報631のレコードが存在しない場合には、予約処理からのチェックアウトではなく、図14から始まる図23の処理フローを使用した画面からの直接チェックアウト処理による実行であると判断する。そして、次のステップS2512へ進む。レコードが存在する場合には、レコードの処理を行うため次のステップS2505に進む。
ステップS2505において、前記ステップS2503で取得したチェックアウト予約情報631のレコード情報の中から、チェックイン予定日付635を取得する。この情報は、次のステップS2507にて使用するため一時的に保管する。前記レコードのステータス637を「完了」に、チェックイン予定日付635を処理実行日付に変更する。また、文書チェックイン処理制御部310からチェックアウト予約情報操作部306を介してチェックアウト予約情報保管部305の中の既存データを更新する。文書情報の更新処理が終了したら、次のステップS2506へ進む。
ステップS2506において、チェックインした文書の次の予約情報を取得する。本ステップでは、チェックアウト予約情報操作部306に対して、以下の条件に合致するチェックアウト予約情報631を取得する。この検索条件に対して、前記ステップS2505にて一時保管したチェックイン予定日付635を使用する。
検索条件:
文書ID632=入力データ「文書ID1703」
かつ
チェックアウト予約日付633≧一時保管したチェックイン予定日付+1日
かつ
前予約追従フラグ636=TRUE
上記検索条件による情報の検索処理が終了したら、次のステップS2507に進む。
ステップS2507において、前記ステップS2506において取得したチェックアウト予約情報631のレコードが存在するかどうかをチェックする。レコードが存在しない場合には、追従させてチェックアウトを前倒しする必要がないため、次のステップS2512へ進む。レコードが存在する場合には、次のステップS2508へ進む。かかる処理が、チェックアウト実施予定期間チェックに相当する。
ステップS2508において、前記ステップS2506で取得したチェックアウト予約情報631の予約ユーザID634を取得しておく。これは、次のステップS2509を行う際の入力データとして使用するためである。次に、前記レコードのステータス637を「処理中」に、チェックアウト予約日付633を処理実行日付に変更する。また、文書チェックアウト処理制御部309からチェックアウト予約情報操作部306を介してチェックアウト予約情報保管部305の中の既存データを更新する。文書情報の更新処理が終了したら、次のステップS2509へ進む。以上、かかる前倒しの処理の実行が、チェックアウト開始日時変更あるいは第1のチェックアウト実施予定期間変更又は第2のチェックアウト実施予定期間変更に相当する。
ステップS2509において、前記ステップS2508で保管しておいた予約ユーザIDと入力データである文書ID1703を渡す。そして、文書チェックアウト処理制御部309の図24が示すチェックアウト実処理フローによるチェックアウト処理を起動する。このチェックアウト実処理が終了したら、次のステップS2510へ進む。
ステップS2510において、前記ステップS2509のチェックアウト処理が正常終了したかどうかを判断する。正常に終了していない場合には、エラーとして次のステップS2513に進む。正常に終了している場合には、次のステップS2511へ進む。
ステップS2511においては、チェックアウト予約を行った対象ユーザに対するメールの送付を行う。そのために、前記ステップS2506で特定したチェックアウト予約情報レコードの文書ID632をキーとして、文書情報操作部302を使用して文書情報保管部301から該当する文書情報601を取得する。また、前記ステップS2508で保管しておいた予約ユーザIDをキーに、ユーザ情報操作部308を使用してユーザ情報保管部307から該当するユーザ情報641を取得する。
本ステップで送信するメールは、前記図19のメールフォーマット1901を使用する。メールフォーマット1901に指定する情報は、以下のようである。宛先1903には、本ステップで取得したユーザ情報641のメールアドレス644が背帝される。表題1904には「チェックアウト完了」の文字が、文書名称1906には本ステップで取得した文書情報601の文書名称603が設定される。チェックアウト期限1907には、前記ステップS2203で特定されたチェックアウト予約情報631のチェックイン予定日付635が設定される。メッセージ1908には、「前作業者の作業が早く終わりましたので、前倒しでチェックアウト期間が開始されました。文書に対する作業を始めてください。」と言う旨のメッセージが指定される。作成したメールの送信が終了したら、次のステップS2512へ進む。
ステップS2512において、本処理内で変更の発生した情報すべてを確定する。情報の確定が終了したら、本処理を終了する。
(文書管理装置におけるチェックイン実処理例)
図26は、図1に記載された文書管理装置101による文書チェック処理の手順例を示すフローチャートである。
図26は、前記図25でのチェックイン実行処理フローの中から起動される。図26は、文書管理装置101の文書チェックイン処理制御部310によって文書のチェックイン実処理を行うための処理フローを表したものであり、本処理は図2のCPU201によって実行される。
本処理に必要な入力データは、チェックアウト対象になる文書ID、入力画面で指定された登録文書ファイル、および操作を行っているユーザIDである。
図26に示すとおり、ステップS2601において、以下の検索条件に合致するチェックアウト情報621を検索し取得する。
検索条件:
文書ID622=入力データ「文書ID」
上記検索条件での情報取得処理が終了したら、次のステップS2602へ進む。
ステップS2602において、前記ステップS2601で取得したチェックアウト情報621のレコードが存在するかどうかのチェックを行う。チェックアウト中であれば該当するレコードが存在するはずであり、存在している場合には次のステップS2603に進む。存在しない場合にはエラーとして次のステップS2608へ進む。ステップS2603において、前記ステップS2601にて取得したチェックアウト情報621のレコードのチェックアウトユーザID624が入力として渡された操作を行っているユーザIDと同一かどうかをチェックする。同一でない場合には、不正なチェックインアクセスであるためエラーとし、次のステップS2608へ進む。同一ユーザIDである場合には、次のステップS1604へ進む。ステップS2604において、入力データとして渡された登録文書ファイルが存在するかどうかを確認する。文書ファイルが存在しない場合にはエラーとし、次のステップS2608へ進む。存在する場合には、次のステップS2605へ進む。
ステップS2605において、チェックインの処理として指定文書のバージョン追加処理を行う。そのため、まず、チェックアウト情報操作部304から入力データの文書IDをキーにしてチェックアウト情報保管部303に保存してあるバージョン情報から最新バージョンのバージョン番号を取得する。次に、その最新バージョンをインクリメントした値を新規バージョンのバージョン番号とし、新規バージョン情報611のレコードを作成する。
この新規レコードには、文書ID612には入力データの文書ID、バージョンID613には前記インクリメントした新規バージョン番号を指定する。また、登録日付614には処理実行日付、登録ユーザIDには入力データの操作ユーザID、ファイル実体616には入力データの登録文書ファイルを指定する。これらのデータによって作成されたレコードは、文書チェックイン処理制御部310から文書情報操作部302の新規バージョン追加操作により文書情報保管部301に新規登録される。バージョン情報レコードの登録が終了したら、次のステップS2606に進む。
ステップS2606においては、バージョン追加に伴う関係情報の更新を行う。まず、前記ステップS2601で取得したレコードを文書チェックイン処理制御部310からチェックアウト情報操作部304の情報削除操作によりチェックアウト情報保管部303から削除する。次に、文書情報操作部302の文書情報取得操作により文書情報保管部301から入力データである文書IDに合致する文書情報601のレコードを取得する。この取得したレコードのステータス604の値を「正常」に変更して、文書チェックイン処理制御部310から文書情報操作部302の文書情報更新操作により文書情報保管部301に存在する同一文書IDのレコードを更新する。本ステップにおける前記更新処理が終了したら、次のステップS2607に進む。
ステップS2607において、前記ステップS2605からステップS2606までに行った更新作業を確定する。情報の確定処理が終了したら、本処理を終了する。
ステップS2608においては、前記各ステップで発生したエラー処理を行い、エラーを処理起動元に通知して本処理を終了する。
[実施形態2]
以下に、本発明に係わる実施形態2の文書管理装置について説明する。
<本実施形態の文書管理システムの構成例>
本実施形態の文書管理装置を含む文書管理システム全体の構成図については、実施形態1において図1を示して説明したものと同じと考えて問題ないので、説明を割愛する。
<本実施形態の文書管理装置の構成例>
(文書管理装置のハードウエア構成例)
本実施形態の文書管理装置101のハードウエア構成についても、実施形態1において図2を示して説明したものと同じと考えて問題ないので、説明を割愛する。
(本実施形態の文書管理装置の機能構成例)
次に、文書管理装置101の機能構成について、ブロック図である図27を用いて説明する。
図27に示すとおり、文書管理装置101は、以下の要素で構成される。
情報処理部としては、文書情報保管部2701と、文書情報操作部2702と、チェックアウト情報保管部2703と、チェックアウト情報操作部2704とを有する。また、チェックアウト予約情報保管部2705と、チェックアウト予約情報操作部2706と、予約フロー情報保管部2707と、予約フロー情報操作部2708とを有する。また、ユーザ情報保管部2709と、ユーザ情報操作部2710とを有する。
処理制御部としては、文書チェックアウト処理制御部2711と、文書チェックイン処理制御部2712と、文書チェックアウト予約処理制御部2713と、ユーザ認証処理制御部2715とを有する。
更に、ネットワーク通信部2716と、文書情報処理制御部2717と、表示内容生成部2718とを有する。
文書情報保管部2701は、登録された文書情報や文書ファイルを格納しておく場所であり、RAM202もしくはHDD213に確保される。文書情報操作部2702は、RAM内に格納されてCPU201で実行される実行可能プログラムで構成され、登録/更新/削除/取得といった文書情報や文書ファイルの入出力処理を文書情報保管部2701に対して行う。
チェックアウト情報保管部2703は、文書情報保管部2701に保管されている文書に対して、チェックアウト時の情報を格納しておく場所であり、RAM202もしくはHDD213に確保される。チェックアウト情報操作部2704は、RAM内に格納されてCPU201で実行される実行可能プログラムで構成され、登録/更新/削除/取得と言ったチェックアウト情報の入出力処理をチェックアウト情報保管部2703に対して行う。
チェックアウト予約情報保管部2705は、文書情報保管部2701に保管されている文書に対して行われるチェックアウト予約情報を格納しておく場所であり、RAM202もしくはHDD213に確保される。チェックアウト予約情報操作部2706は、RAM内に格納されてCPU201で実行される実行可能プログラムで構成され、登録/更新/削除/取得といったチェックアウト予約情報の入出力処理をチェックアウト予約情報保管部2705に対して行う。
予約フロー情報保管部2707は、チェックアウト予約情報保管部2705に格納されている1つ以上のチェックアウト予約情報を関連付けて「フロー(グループとも言う)」として管理する予約フロー情報を格納しておく場所であり、RAM202もしくはHDD213に確保される。予約フロー情報操作部2708は、RAM内に格納されてCPU201で実行される実行可能プログラムで構成され、登録/更新/削除/取得といった予約フロー予約情報の入出力処理を予約フロー情報保管部2707に対して行う。かかる予約フロー情報操作部2708の操作により、フロー管理(グループ管理)が実現する。
ユーザ情報保管部2709は、文書管理装置101を利用するユーザの情報を格納しておく場所であり、RAM202もしくはHDD213内に確保される。ユーザ情報操作部2710は、RAM202内に格納されてCPU201で実行される実行可能プログラムで構成され、登録/更新/削除/取得と言ったユーザ情報の入出力処理をユーザ情報保管部2709に対して行う。
文書チェックアウト処理制御部2711は、文書情報操作部2702とチェックアウト情報操作部2704と、チェックアウト予約情報操作部2706と、ユーザ情報操作部2710と、表示内容生成部2718とを使用する。そして、クライアント装置102から送信される文書チェックアウト処理依頼に対してチェックアウト処理の制御を行う。
文書チェックイン処理制御部2712は、文書情報操作部2702と、チェックアウト情報操作部2704と、チェックアウト予約情報操作部2706と、ユーザ情報操作部2710と、表示内容生成部2718とを使用する。そして、クライアント装置102から送信される文書チェックイン処理依頼に対してチェックイン処理の制御を行う。
文書チェックアウト予約処理制御部2713は、文書情報操作部2702と、チェックアウト情報操作部2704と、チェックアウト予約情報操作部2706と、予約フロー情報操作部2708とユーザ情報操作部2710と、表示内容生成部2718とを使用する。そして、クライアント装置102から送信される文書チェックアウト予約処理依頼に対するチェックアウト予約処理の制御と、予約フロー処理の制御を行う。
ユーザ認証処理制御部2715は、ユーザ情報操作部2710と、表示内容生成部2718とを使用して、クライアント装置102から文書管理装置101に接続を行う際のユーザ認証処理を行う。
ネットワーク通信部2716は、モデム206もしくはNIC205で接続され、ネットワーク103を経由して前記クライアント装置102から受信した処理要求を文書管理装置101内の各処理制御部へ処理を通知する。また、文書管理装置101内の各制御部からの処理結果をクライアント装置102に対して送信する。
文書情報処理制御部2717は、文書情報操作部2702と、チェックアウト情報操作部2704と、チェックアウト予約情報操作部2706とを使用する。そして、クライアント装置102に対して送信する文書情報詳細表示画面3001の表示内容の生成処理を行う。
表示内容生成部2718は、クライアント装置102に対して提供する文書管理を行うための画面上の表示内容についての生成および整形を行う。ここは、特にクライアント側の表示形態に合わせて提供するもので、例えばHTMLなどのハイパーテキスト形式や、専用クライアントソフトに対するバイナリ形式などでの生成を行うことを想定している。
<本実施形態のクライアント装置の構成例>
(クライアント装置のハードウエア構成例)
本実施形態のクライアント装置102のハードウエア構成については、実施形態1において図4を示して説明したものと同じと考えて問題ないので、説明を割愛する。
(クライアント装置の機能構成例)
クライアント装置102の機能構成については、実施形態1において図5を示して説明したものと同じと考えて問題ないので、説明を割愛する。
<本実施形態で取り扱うデータ形式および構成例>
図28A〜図28Gは、本実施形態で使用するデータ形式とその構成を説明したものである。ここで記載しているデータ項目は、本実施形態を説明するにあたって最低限必要な項目で構成されている。
図28Aと図28Bは、図27に示した文書管理装置101の文書情報保管部2701に保管されている情報の形式と構成を表す図である。
図28Aの文書情報2801は、文書単位で保持する情報の形式を表している。文書情報2801は、文書ID2802と、文書名称2803と、状態を表すステータス2804とを項目として構成される。ステータス2804で表されるステータス値には、「正常」「異常」「チェックアウト中」の内いずれかが設定される。
各文書情報は、文書ID2802で一意な情報を表す。文書情報2801として保持する1つの単位を、レコード2805と表現する。
図28Bのバージョン情報2811は、文書更新のたびに変更されるバージョン単位で保持する情報の形式を表している。
バージョン情報2811は、文書ID2812と、バージョンID2813と、登録日付2814と、登録ユーザID2815と、ファイル実体2816を項目として構成される表である。文書ID2812は、前記文書情報2801で規定されている文書ID2802と関連をもっている。
各バージョン情報は、文書ID2812とバージョンID2813とで一意な情報を表す。バージョン情報2811として保持する1つの単位を、レコード2817と表現する。
図28Cは、図27に示した文書管理装置101のチェックアウト情報保管部2703に保管されている情報の形式と構成を表す図である。
チェックアウト情報2821は、チェックアウトされている文書に関する情報を文書単位で保持する形式を表す。
チェックアウト情報2821は、文書ID2822と、チェックアウト日付2823と、チェックアウトユーザID2824とを項目として構成される表である。文書ID2822は、前記文書情報2801で規定されている文書ID2802と関連をもっている。この表に情報がある文書情報は、現在チェックアウト中であることを意味する。
各チェックアウト情報は、文書ID2822で一意な情報を表す。チェックアウト情報2821として保持する1つの単位を、レコード2825と表現する。
図28Dは、図27に示した文書管理装置101のチェックアウト予約情報保管部2705に保管されている情報の形式と構造を表す図である。
チェックアウト予約情報2831は、以下の項目として構成される表である。その項目は、予約ID2832、文書ID2833、チェックアウト予約日付2834、予約ユーザID2835、チェックイン予定日付2836、前予約追従フラグ2837、ステータス2838を含む。
各チェックアウト予約情報は、予約ID2832で一意な情報を表す。文書ID2833は、前記文書情報2801で規定されている文書ID2802と関連をもっている。ステータス2838で表されるステータス値には、「未処理」「処理中」「完了」の内いずれかが設定される。この表に情報がある文書情報は、現在チェックアウト予約が存在することを意味する。チェックアウト予約情報2831として保持する1つの単位を、レコード2839と表現する。
図28Eと図28Fは、図27に示した文書管理装置101の予約フロー情報保管部2707に保管されている情報の形式と構造を表す図である。
図28Eの予約フロー情報2841は、1つ以上チェックアウト予約情報2831をフローとしてまとめた予約フローの情報を表している。
予約フロー情報2841は、予約フローID2842と、管理ユーザID2843と、フロー調整2844とを項目として構成される表である。
各予約フロー情報は、予約フローID2842で一意な情報を表す。管理ユーザID2843はこの予約フロー情報を管理しているユーザを表しており、後述するユーザID2862と関連を持っている。フロー調整2844で表されるフロー調整値には、「調整する」/「調整しない」のうちのいずれかが設定される。予約フロー情報2841として保持する1つの単位を、レコード2846と表現する。
図28Fの予約フロー構成情報2851は、前記チェックアウト予約情報2831と予約フロー情報2841の関連を定義するもので、予約フローがどのチェックアウト予約情報で構成されているかを表している。
予約フロー構成情報2851は、予約フローID2852と、フロー順序2853と、予約ID2854とを項目として構成される表である。
予約フローID2852は、前記予約フロー情報2641で規定されている予約フローID2842と関連を持っている。フロー順序2853は、1以上の整数の値をとる項目である。フロー順序2853は1つの予約フローの中での各チェックアウト予約情報の時系列的な順番を1、2、3、...という数値で表す。1つの予約フローにおいては同じ数値が指定されることは無い。予約ID2854は、この予約フロー情報を構成するチェックアウト予約情報を表しており、前記チェックアウト予約情報2831で規定されている予約ID2832と関連を持っている。
予約フロー構成情報は、予約フローID2852とフロー順序2853で一意な情報を表す。1つのチェックアウト予約情報が複数の予約フローの構成情報として設定されることは無いので、予約フロー構成情報2851は予約ID2854で一意な情報を表すことができる。予約フロー構成情報2851として保持す11つの単位を、レコード2855と表現する。予約フローが1つ作成されるということは、前記予約フロー情報2841に1件のレコードが作成され、予約フロー構成情報に1つ以上のレコードが作成されるということである。
図28Gは、図27に示した文書管理装置101のユーザ情報保管部2709に保管されている情報の形式と構成を表す図である。
ユーザ情報2861は、文書管理装置101にアクセスして文書の操作を行うことのできるユーザ情報を保持する形式を表す。ユーザ情報2861は、ユーザID2862と、ユーザ名称2863と、メールアドレス2864を項目として構成される表である。
各ユーザ情報は、ユーザID2862で一意な情報を表す。ここで定義されるユーザ情報は、前記図28Bの登録ユーザID2815や図28CのチェックアウトユーザID2824、図28Dの予約ユーザID2835、図28Eの管理ユーザIDで使用される。ユーザ情報2861として保持する1つの単位を、レコード2865と表現する。
<本実施形態の表示画面例>
次に、本実施形態で使用する画面についての説明を行う。ここで述べる画面については、必要最低限の表示しか行っておらず、これ以外の情報を表示することも可能である。また、以降の図で示す画面構成や、表現方法についても特に本実施形態での記述に限定するものではないことはいうまでもない。
(文書閲覧画面例)
図29は、図1のクライアント装置102のCRT409に表示する文書閲覧画面例を示す図である。
図29の文書閲覧画面2901は、文書管理装置101で管理されている文書情報を閲覧する際に使用するものであり、文書情報表示部2902と、ボタン2907と、ボタン2908と、ボタン2909と、ボタン2910とで構成される。
文書情報表示部2902は、文書管理装置101で管理されている文書情報の一覧を表示し、文書を識別するための場所であり、表示する文書情報として文書ID2903と、文書名称2904と、ステータス2905とで構成される。クライアント装置102の利用者が文書情報を選択すると、選択文書2906のように他の文書と表示が変わり、選択中であることを表す。
ボタン2907は、選択文書2906で選択された文書に対して行われているチェックアウト予約の一覧を表示する処理を起動するボタンである。ボタン2907を押下することで、文書情報表示部2902の選択文書2906の文書情報を文書管理装置101の文書チェックアウト予約処理制御部2713に渡す。
ボタン2908は、選択文書2906で選択された文書のチェックイン処理を起動するボタンであり、押下することで文書情報表示部2902の選択文書2906の文書情報を文書管理装置101の文書チェックイン処理制御部2712に渡す。
ボタン2909は、選択文書2906で選択された文書のチェックアウト処理を起動するボタンであり、押下することで文書情報表示部2902の選択文書2906の文書情報を文書管理装置101の文書チェックアウト処理制御部2711に渡す。
ボタン2910は、選択文書2906で選択された文書の詳細情報表示処理を起動するボタンであり、押下することで文書情報表示部2902の選択文書2906の情報を文書管理装置101の文書情報処理制御部315に渡す。
(文書情報詳細表示画面例)
図30は、図1のクライアント装置102のCRT409に表示する文書情報詳細表示画面例を示す図である。
図30の文書情報詳細表示画面3001は、前記図29の文書閲覧画面2901で選択された選択文書2906の詳細な情報を表示するために使用するものである。文書情報詳細表示画面3001は、文書情報表示部3002と、文書バージョン情報表示部3008と、ボタン3012とで構成される。
文書情報表示部3002は、文書の保持する情報や状態を表示するための場所であり、文書ID3003と、文書名称3004と、ステータス3005と、チェックアウト日付3006と、チェックアウトユーザ3007とで構成される。チェックアウト日付3006と、チェックアウトユーザ3007については、ステータス3005が「チェックアウト中」になっている場合のみ表示される。
文書バージョン情報表示部3008は、文書が更新してきたバージョン情報の履歴を表示するための場所であり、バージョンID3009と、登録日付3010と、登録ユーザ3011とで構成される。
ボタン3012は、本画面を終了させるためのボタンであり、押下することで前記図29の文書閲覧画面2901に戻る。
(チェックアウト予約一覧画面例)
図31は、図1のクライアント装置102のCRT409に表示するチェックアウト予約一覧画面3101の例を示す図である。
図31のチェックアウト予約一覧画面3101は、前記図29の文書閲覧画面2901で選択された選択文書2906に設定されているチェックアウト予約情報を表示するために使用するものである。チェックアウト予約一覧画面3101は、文書情報表示部3102と、チェックアウト予約情報表示部3106と、ボタン3110と、ボタン3111と、ボタン3112とで構成される。
文書情報表示部3102は、文書の保持する情報や状態を表示するための場所であり、文書ID3103と、文書名称3104と、ステータス3105とで構成される。
チェックアウト予約情報表示部3106は、予約開始日付3107と、予約終了日付3108と、予約ユーザ3109とで構成される。ここに表示されるデータは、前記図28Dでチェックアウト予約情報2831に登録された、文書ID3103で指定された文書に関するチェックアウト予約情報が予約開始日付3107で昇順に表示される。
ボタン3110は、本画面を終了させるためのボタンであり、押下することで前記図29の文書閲覧画面2901に戻る。
ボタン3111は、チェックアウト予約情報表示部3106に表示されているチェックアウト予約情報をキャンセルする処理を起動するためのボタンである。チェックアウト予約情報表示部3106に表示されている情報の中からひとつの予約情報を選択した後に、ボタン3111を押下することで、選択された予約情報を文書管理装置101の文書チェックアウト予約処理制御部2713に渡す。そして、図35のチェックアウト予約キャンセル画面3501に遷移する。
ボタン3112は、文書ID3103のチェックアウト予約に関する予約フローの指定処理を起動するためのボタンである。ボタン3112を押下することで、本画面に表示されている文書情報を文書管理装置101の文書チェックアウト予約処理制御部2713に渡し、図32の予約フロー指定画面3201に遷移する。
(予約フロー指定画面例)
図32は、図1のクライアント装置102のCRT409に表示する予約フロー指定画面例を示す図である。
図32の予約フロー指定画面3201は、前図31のチェックアウト予約一覧画面3101で表示されていた文書に対してチェックアウトの予約を追加するに当って、該チェックアウト予約を含める予約フローを指定するために使用されるものである。予約フロー指定画面3201は、文書情報表示部3202と、ラジオボタン3205と、既存予約フロー選択部3206と、ラジオボタン3210と、新規予約フロー情報指定部3211と、ボタン3214、ボタン3215とで構成される。
チェックアウト予約設定情報表示部3202は、文書ID3203と、文書名称3204とで構成される。ここには、前記図31チェックアウト予約一覧画面3101で表示されていた文書の文書IDと文書名称が表示されている。
ラジオボタン3205とラジオボタンは3210は対になっており、いずれか一方がオン状態であれば、他方はオフ状態となる。ラジオボタン3205は、新しいチェックアウト予約を既存の予約フローのいずれかに追加する場合にオン状態にするものである。逆に、新しいチェックアウト予約を新規に予約フローを作成して、そこに追加する場合には、ラジオボタン3210をオン状態にする。
既存予約フロー選択部3206は、選択3207と、予約フローID3208、フロー調整3209とで構成される。ここに表示される情報は、本画面を操作しているユーザが管理している予約フローの一覧を表示するものである。すなわち、前記図28Eの予約フロー情報2841に登録された予約フロー情報から、本画面を操作しているユーザのユーザIDが管理ユーザID2844と等しい予約フロー情報を抽出して、予約フローIDの昇順に表示したものである。
選択3207は、既存予約フロー選択部3206に表示される予約フローの中から1つだけを選択することができるラジオボタンである。ただし、選択3207は、前記ラジオボタン3205がオン状態の時にのみ使用可能となる。
新規予約フロー情報指定部3211は、ラジオボタン3212とラジオボタン3213とで構成されている。ラジオボタン3212とラジオボタン3213は対になっており、いずれか一方がオン状態であれば、他方はオフ状態となる。新規予約フロー情報指定部3211は、新規に作成して前記図28Eに登録する予約フロー情報2841のフロー調整2845に設定する値を指定する。ラジオボタン3212がオンであればフロー調整2845は「調整する」が設定され、ラジオボタン3213がオンであればフロー調整2845には「調整しない」が設定される。このフロー調整の「調整する」/「調整しない」という値が意味することについては、後述の図33のチェックアウト予約設定画面の説明において詳しく解説する。
ボタン3214は、処理を行なわずに本画面を終了させるためのボタンであり、押下することで前記図31のチェックアウト予約一覧画面3101に戻る。
ボタン3215は、文書ID3203に関するチェックアウト予約と予約フローの設定処理を起動するためのボタンである。ボタン3215を押下することで、以下の情報を文書管理装置101の文書チェックアウト予約処理制御部2713に渡し、図33のチェックアウト予約設定画面3301に遷移する。上記情報は、本画面に表示されている文書情報と、ラジオボタン3205とラジオボタン3210のいずれがオン状態であるかという情報とを含む。また、ラジオボタン3205がオンの状態でボタン3215が押された場合には、既存予約フロー選択部3206で選択3207のラジオボタンがオン状態になっている予約フロー情報を含む。また、ラジオボタン3210がオンの状態でボタン3215が押された場合には、新規予約フロー情報指定部3211に指定されている情報を含む。
(チェックアウト予約設定画面例)
図33は、図1のクライアント装置102のCRT409に表示するチェックアウト予約設定画面例を示す図である。
図33のチェックアウト予約設定画面3301は、チェックアウトの予約を、前記図32の予約フロー指定画面3201で、選択又は新規作成を指定した予約フローに追加する際の設定画面として使用されるものである。かかるチェックアウトの予約は、前記図31のチェックアウト予約一覧画面3101で表示されていた文書に対するチェックアウトの予約である。チェックアウト予約設定画面3301は、予約フロー情報表示部3302、チェックアウト予約一覧情報表示部3305、チェックアウト予約設定情報表示部3312、チェックボックス3319、ボタン1020、ボタン1021で構成される。
予約フロー情報表示部3302は、予約フローID3303と、フロー調整3304とで構成される。前記図32の予約フロー指定画面3201で、チェックアウト予約を既存の予約フローに追加することを選択した場合には、選択された予約フローの情報が表示される。予約フロー指定画面3201で、新規に予約フローを追加することを選択した場合には、まだ予約フロー情報は追加されていないので予約フローID3303には情報が表示されない。しかし、フロー調整3304には前記図32の予約フロー指定画面3201の新規予約フロー情報指定部3211において指定されたフロー調整の値が表示される。
チェックアウト予約一覧情報表示部3305は、選択3306と、順序3307と、文書ID3308と、文書名称3309と、予約開始日付3310と、予約終了日付3311とで構成される。チェックアウト予約一覧情報表示部3305は、前記図32の予約フロー指定画面3201でチェックアウト予約を既存の予約フローに追加することを選択した場合には、以下の情報を基に各項目を設定する。
基となる情報は、予約フロー情報表示部3302の予約フローID3303と、前記図28Fの予約フロー構成情報2851の予約フローID2852が合致するレコード2855とを含む。更に、前記合致したレコード2855の予約ID2845が、前記図28Dのチェックアウト予約情報2831の予約ID2832に合致するレコード2839を含む。更に、前記合致したレコード2839の文書ID2833が前記図28Aの文書情報2801の文書ID2802に合致するレコード2805を含む。
その結果、チェックアウト予約一覧情報表示部3305には、順序3307の昇順に各項目を一覧表する。各項目には、順序3307にフロー順序2853を表示する。文書ID3308に文書ID2833を表示する。文書名称3309に文書名称2803を表示する。予約開始日付3310にチェックアウト予約日付2834を表示する。予約終了日付3311にチェックイン予定日付2836を表示する。
また、選択3306は、表示されている一覧の中から1つだけをオン状態にすることが可能なラジオボタンである。
チェックアウト予約一覧情報表示部3305は、前記図32の予約フロー指定画面3201で新規に予約フローを作成してチェックアウト予約を追加することを選択した場合には、何も表示されない。選択3306も表示されない。
チェックアウト予約設定情報表示部3312は、予約挿入位置3313と、文書ID3314と、文書名称3315と、予約開始日付3316と、予約終了日付3317とで構成される。
この中で予約挿入位置3313は、「前に挿入」と「後ろに挿入」というラジオボタンで構成されている。予約挿入位置3313は、次の場合に限って入力が可能となる。すなわち、前記図32の予約フロー指定画面3201でチェックアウト予約を既存の予約フローに追加することを選択している場合である。且つ、チェックアウト予約一覧情報表示部3305に1つ以上のチェックアウト予約情報が表示され、そのうちの1つの選択3306がオン状態になっている場合である。
予約挿入位置3313のラジオボタンは、「前に挿入」と「後ろに挿入」いずれか一方をオン状態にする事が可能である。これは、選択3306がオン状態になっているチェックアウト予約に対して、その前又はその後ろに新たなチェックアウト予約を追加することを意味している。前記図32の予約フロー指定画面3201で、新規に予約フローを作成してチェックアウト予約を追加することを選択した場合には、チェックアウト予約一覧情報表示部3305には1件も情報が表示されていない。従って、予約挿入位置3313も使用できない状態となっている。
予約開始日付3316と予約終了日付3317とは、ユーザが予約期間を指定するため入力可能状態となっており、ユーザは所定の書式(本実施形態では年月日)で開始と終了の予定を指定する。
但し、前記チェックアウト予約一覧情報表示部3305の選択3306と予約挿入位置3313で、チェックアウト予約を挿入する位置を指定している場合は、予約開始日付3316と予約終了日付3317に指定できる日付値に制限が発生する。挿入する位置の前にチェックアウト予約情報が存在する場合には、予約開始日付3316には、その前のチェックアウト予約情報の予約終了日付3311よりも後の日付しか指定できない。また、挿入する位置の後ろにチェックアウト予約情報が存在する場合には、予約終了日付3317にはその後ろのチェックアウト予約情報の予約開始日付3310よりも前の日付しか指定できない。
チェックボックス3319は、直前の予約がキャンセル、もしくは予約終了日付を待たずにチェックインされた場合に、予約を前倒しするかどうかを指定するために使用する。本チェックボックス3319がチェックされている場合には、前予約が終了した直後に次のチェックアウトが行われるが、チェックされていない場合には、指定した予約開始日付までチェックアウトが行われない。
ここで、予約フロー情報表示部3302のフロー調整3304と、チェックボックス3319の差異について詳細に説明する。
フロー調整3304は、チェックアウト予約を追加しようとしている予約フローにおけるチェックアウト開始日付の前倒しを実施するかどうかの指定である。1つのチェックアウト予約フローに少なくとも2つのチェックアウト予約が登録されており、前のチェックアウト予約が、設定されているチェックアウト終了予定日よりも早くチェックインが実行された場合に、指定される。その指定は、次のチェックアウト予約のチェックアウト開始日付の前倒しを実施するか否かの指定である。「調整する」が指定されていた場合にはフロー調整による前倒しが可能であれば前倒しが実施され、「調整しない」が指定されていた場合には前倒しは実施されない。
例えば、図33を例にとって見る。予約フロー情報表示部3302のフロー調整3304は「調整する」が指定されているので、この予約フローにおいてはフロー調整による前倒しが実施される設定であることを示している。チェックアウト予約一覧情報表示部3305の1行目のチェックアウト予約、すなわち、順序3307が「1」、文書ID3308が「0009」の文書の予約終了日付3311は「2005/01/10」となっている。そして、次の2行目の順序3307が「2」、文書ID3308が「0012」の文書の予約開始日付3310は「2005/01/11」である。これは文書IDが「0009」の文書が2005年1月10日にチェックインされる予定であり、翌日の2005年1月11日に文書IDが「0012」の文書をチェックアウトする予定であることを示している。
「フロー調整」を実施すると、仮にこの1行目の文書IDが「0009」の文書が、予定よりも一日早く2005年1月9日にチェックインされた場合、次の文書IDが「0012」の文書の予約開始日付を「2005年1月10日」に前倒しする。更に、ずらした日数分だけ予約終了日付もずらし、3行目以降の予約についても同様に、可能であれば予約開始日付と予約終了日付をずらしていく。
チェックボックス3319の設定は、「フロー調整」のように予約フローの中での各チェックアウト予約の前倒しではない。チェックボックス3319の設定は、1つの文書に対して複数のチェックアウト予約が登録されていて、前のチェックアウト予約が予定よりも早くチェックインされた場合、次のチェックアウト予約の予約開始日が前倒しされるというものである。
ボタン3320は、本画面での設定内容を破棄して、図32の予約フロー指定画面3201へ遷移する。
ボタン3321は、本画面で設定したチェックアウト予約情報の登録処理を起動するためのボタンである。ボタン3321を押下することで、以下の情報を文書管理装置101の文書チェックアウト予約処理制御部2713に渡す。そして、予約フロー情報保管部2707とチェックアウト予約情報保管部2705に情報を登録した後、図34のチェックアウト予約完了画面3401に遷移する。その情報には、本画面に表示されていた予約フロー情報が含まれる。更に、チェックアウト予約一覧情報表示部3305に1つ以上のチェックアウト予約情報が表示されている場合には、選択3306がオン状態となって選択されている行の順序3307が含まれる。更に、チェックアウト予約設定情報表示部3312に入力されている情報が含まれる。
また、文書チェックアウト予約処理制御部2713での処理中にエラーが発生した場合には、図36のエラー画面3601に遷移する。本処理の流れは、図43で詳細に説明する。
(チェックアウト予約完了画面例)
図34は、図1のクライアント装置102のCRT409に表示するチェックアウト予約完了画面3401の例を示す図である。
図34のチェックアウト予約完了画面3401は、前記図33のチェックアウト予約設定画面3301のボタン3321の押下で起動された文書チェックアウト予約処理の結果を表示するために使用されるものである。チェックアウト予約完了画面3401は、予約フロー情報表示部3402と、チェックアウト予約一覧情報表示部3405と、ボタン3411とで構成される。
予約フロー情報表示部3402は、予約フローID3403と、フロー調整3404とで構成される。前記図32の予約フロー指定画面3201で、チェックアウト予約を既存の予約フローに追加することを選択した場合には、選択された予約フローの情報が表示される。予約フロー指定画面3201で、新規に予約フローを追加することを選択した場合には、新規に追加された予約フローの予約フローIDが表示される。フロー調整3404には、前記図32の予約フロー指定画面3201の新規予約フロー情報指定部3211において指定されたフロー調整の値が表示される。
チェックアウト予約一覧情報表示部3405は、順序3406と、文書ID3407と、文書名称3408と、予約開始日付3409と、予約終了日付3410とで構成される。
チェックアウト予約一覧情報表示部3405は、前記図33のチェックアウト予約一覧情報表示部3305と同様である。すなわち、前記図33において新規に追加したチェックアウト予約情報を含め、その予約フローに登録されているチェックアウト予約情報を確認するための表示場所である。新たに追加されたチェックアウト予約情報は、チェックアウト予約一覧情報表示部3405に示されているように、他の予約よりも強調されて表示される。
なお、チェックアウト予約は順序3406の昇順に一覧表示されており、新たに追加されたチェックアウト予約情報は前記図33の選択3306と予約挿入位置3313によって指定された位置に挿入される。また、挿入位置以下のチェックアウト予約情報については、順序3406に表示される順序番号が、チェックアウト予約情報が1件挿入されることによって、1つずつ番号が加算される。
前記図33のチェックアウト予約設定画面331において、順序3307に1,2,3と順序番号が表示されていて、2の位置の挿入位置の選択3306をオン状態にし、予約挿入位置3313で「後ろに挿入」を選んで追加した場合、次のようになる。2の後ろ、3の位置に新しいチェックアウト予約情報が追加され、追加前は3であったチェックアウト予約情報は4として、チェックアウト予約一覧情報表示部3405に表示される。
ボタン3411は、本画面を終了させるためのボタンであり、押下することで前記図31のチェックアウト予約一覧画面3101に戻る。
(チェックアウト予約キャンセル画面例)
図35は、図1のクライアント装置102のCRT409に表示するチェックアウト予約キャンセル画面3501の例を示す図である。
図35のチェックアウト予約キャンセル画面3501は、前記図31のチェックアウト予約一覧画面3101で表示されていたチェックアウト予約情報を削除する際の確認画面として使用されるものである。チェックアウト予約キャンセル画面3501は、文書ID3502と、文書名称3503と、予約開始日付3504と、予約終了日付3505と、ボタン3506と、ボタン3507とで構成される。
文書ID3502と、文書名称3503と、予約開始日付3504と、予約終了日付3505は、図28Aの文書情報と、図28Dのチェックアウト予約情報の中から該当するキャンセル対象予約情報を表示する部分である。表示される内容は、図31のチェックアウト予約一覧画面3101のチェックアウト予約情報表示部3106で選択された内容を表す。
ボタン3506は、本画面に表示されている予約情報のキャンセル処理を破棄するために使用されるものであり、押下することで予約のキャンセル処理を行わずに前記図31のチェックアウト予約一覧画面3101に戻る。
ボタン3507は、本画面に表示したチェックアウト予約情報のキャンセル処理を起動するためのボタンである。ボタン3507を押下することで、本画面に表示されたチェックアウト予約情報を文書管理装置101の文書チェックアウト予約処理制御部2713に渡す。そして、チェックアウト予約情報保管部2705に保管されている前記図28Dのチェックアウト予約情報と、予約フロー情報保管部2707に保管されている前記図28Fの予約フロー構成情報とから削除する。その後、図31のチェックアウト予約一覧画面3101に遷移する。予約情報の削除後、キャンセルした予約の後に続く予約が存在する場合には、予約の内容により予約期間シフト処理を、チェックアウト予約一覧画面3101に遷移する前に行う。
また、文書チェックアウト予約処理制御部2713での処理中にエラーが発生した場合には、図36のエラー画面3601に遷移する。
(エラー画面例)
図36は、図1のクライアント装置102のCRT409に表示するエラー画面3601の例を示す図である。
図36のエラー画面3601は、文書管理装置101で行われる各処理中にエラーが発生した場合にクライアント装置102にエラー内容を表示するためのものである。エラー画面3601は、エラー対象となる文書ID3602と、その文書名称3603と、エラーメッセージ表示部3604と、ボタン3605とで構成される。
文書ID3602と、文書名称3603は、エラーとなった対象の文書情報を表示する場所である。
エラーメッセージ表示部3604は、発生したエラー内容を表示する。ここに表示されるメッセージは、特に文字列に限る必要はなく、イメージなど他の手段でもかまわない。
ボタン3605は、本画面を終了させるためのボタンであり、押下することで前記図29の文書閲覧画面2901や図31のチェックアウト予約一覧画面3101に戻る。
(チェックアウト画面例)
図37は、図1のクライアント装置102のCRT409に表示するチェックアウト画面例を示す図である。
図37のチェックアウト画面3701は、前記図29の文書閲覧画面2901で選択された選択文書2906のチェックアウト処理確認を行うために使用されるものである。チェックアウト画面3701は、文書ID3702と、文書名称3703と、ステータス3704と、ボタン3705と、ボタン3706とで構成される。
文書ID3702と、文書名称3703と、ステータス3704は、前記図29の文書閲覧画面2901で選択された選択文書2906の本画面表示時点での最新情報を表示する場所である。
ボタン3705は、本画面に表示されている文書情報のチェックアウト処理を破棄するために使用されるものであり、押下することでチェックアウト処理を行わずに前記図29の文書閲覧画面2901に戻る。
ボタン3706は、文書ID3702に表示されている文書のチェックアウト処理を起動するためのボタンであり、押下することで本画面に表示されている文書情報を文書管理装置101の文書チェックアウト処理制御部2711に渡す。文書チェックアウト処理制御部2711でのチェックアウト処理でチェックアウト処理が終了した際には、図39のチェックアウト完了画面3901へ遷移する。但し、文書チェックアウト処理制御部2711でチェックアウトする際に制限が発見された場合には、制限の内容を図38のチェックアウト制限許諾画面3801に表示し、ユーザが制限を許諾した後にチェックアウト処理を行う。また、文書チェックアウト処理制御部2711での処理中にエラーが発生した場合には、図36のエラー画面3601に遷移する。本チェックアウト処理の流れは、図46で詳細に説明する。
(チェックアウト制限許諾画面例)
図38は、図1のクライアント装置102のCRT409に表示するチェックアウト制限許諾画面3801の例を示す図である。
図38のチェックアウト制限許諾画面3801は、文書ID3802と、文書名称3803と、制限内容表示部3804と、ボタン3805と、ボタン3506とで構成される。
文書ID3802と、文書名称3803は、チェックアウトする対象の文書情報を表示する場所である。
制限内容表示部3804は、チェックアウトを行う際に、ユーザにとっての制限となる内容を表示する部分であり、文書をチェックアウトして作業できる期間が別の予約によって制限される旨などを表示する。
ボタン3805は、本画面に表示されている制限内容に同意できない際、文書情報のチェックアウト処理を破棄するために使用されるものであり、押下することでチェックアウト処理を行わずに前記図29の文書閲覧画面2901に戻る。
ボタン3506は、本画面に表示されている制限内容に同意できる際、文書情報のチェックアウト処理を継続実行するために使用されるものである。ボタン3506を押下することで、文書管理装置101の文書チェックアウト処理制御部2711でチェックアウト処理が行われ、チェックアウト処理が終了した際には、図39のチェックアウト完了画面3901へ遷移する。また、文書チェックアウト処理制御部2711での処理中にエラーが発生した場合には、図36のエラー画面3601に遷移する。
(チェックアウト完了画面例)
図39は、図1のクライアント装置102のCRT409に表示するチェックアウト完了画面3901の例を示す図である。
図39のチェックアウト完了画面3901は、チェックアウト処理の結果を表示するために使用されるものであり、文書ID3902と、文書名称3903と、ボタン3904とで構成される。かかるチェックアウト処理は、前記図37のチェックアウト画面3701のボタン3706、もしくは前記図38のチェックアウト制限許諾画面3801のボタン3806の押下で起動されたものである。
文書ID3902と、文書名称3903は、チェックアウトを行った文書情報をユーザに通知するために表示する場所である。
ボタン3904は、本画面を終了させるためのボタンであり、押下することで前記図29の文書閲覧画面2901に戻る。
(チェックイン画面例)
図40は、図1のクライアント装置102のCRT409に表示するチェックイン画面4001の例を示す図である。
図40のチェックイン画面4001は、前記図29の文書閲覧画面2901で選択された選択文書2906のチェックイン処理設定を行うために使用されるものである。チェックイン画面4001は、チェックイン文書情報表示部4002と、チェックイン時に登録する文書ファイル情報表示欄4007と、ボタン4008と、ボタン4009とで構成される。
チェックイン文書情報表示部4002は、チェックイン対象となっている選択文書2906の本画面表示時点での最新情報を表示する場所である。チェックイン文書情報表示部4002は、文書ID4003と、文書名称4004と、ステータス4005と、チェックアウト日付4006とで構成される。
文書ファイル情報表示欄4007は、チェックイン時に登録する文書ファイルを指し示す情報を表示する欄であり、登録する文書の情報のパスおよびファイル名称が表示される。また、利用者が直接入力することも可能である。
ボタン4008は、登録するファイルを指定するための処理を起動するためのボタンであり、このボタンの動作によりクライアント装置が提供するローカルもしくはネットワーク越しのリモート環境に存在するファイルを識別することが可能となる。この画面はOSが提供するものであり、本実施形態の中で特徴のあるものではないため、図などの詳細な説明は行わない。本ボタンからの選択画面で選択された登録文書のパス及びファイル名称については、前記文書ファイル情報表示欄4007に表示される。
ボタン4009は、文書ファイル情報表示欄4007で指定されたファイルを文書の新規バージョンとして登録するチェックイン処理を起動するためのボタンである。ボタン4009を押下することで、本画面に表示されている文書のチェックインに必要な情報を文書管理装置101の文書チェックイン処理制御部2712に渡す。
文書チェックイン処理制御部2712でのチェックイン処理が終了した際には、図41のチェックイン完了画面4101へ遷移する。また、文書チェックイン処理制御部2712での処理中にエラーが発生した場合には、図36のエラー画面3601に遷移する。本チェックイン処理の流れは、図48で詳細に説明する。
(チェックイン完了画面例)
図41は、図1のクライアント装置102のCRT409に表示するチェックイン完了画面4101の例を示す図である。
図41のチェックイン完了画面4101は、前記図40のチェックイン画面4001のボタン4009の押下で起動された文書チェックイン処理の結果を表示するために使用されるものである。チェックイン完了画面4101は、文書ID4102と、文書名称4103と、ステータス4104と、最新バージョンID4105と、ボタン4106とで構成される。
文書ID4102と、文書名称4103と、ステータス4104と、最新バージョンID4105は、チェックイン処理を行った文書情報をユーザに通知するために表示する場所である。
ボタン4106は、本画面を終了させるためのボタンであり、押下することで前記図29の文書閲覧画面2901に戻る。
<本実施形態の通知メールのフォーマット例>
図42は、本実施形態で使用されるクライアント装置への通知メールのフォーマット例を示す図である。
図42のメールフォーマット4201は、メールヘッダー部分4202とメール本文部分4205とで構成される。
メールヘッダー部分4202は、宛先となるメールアドレスを記述する宛先4203と、送信するメールの題名を記述する表題4204とで構成される。実際のメールプロトコル上では、これ以外のヘッダー情報も多数規定されているが、本実施形態では必要最低限の情報以外は省略している。特に、記載されている以外のヘッダー情報を付加できないということではない。
メール本文部分4205には、対象となる文書名称4206と、文書名称4206の文書のチェックアウト期限4207と、メールに固定で表示されるメッセージ4208とで構成される。
本メールフォーマットは、外部プログラムからデータを設定することによって、メールの体裁を整えるものである。
<本実施形態の文書管理装置の動作例>
以下、上記本実施形態の文書管理装置の動作例をフローチャートを参照しながら説明する。
(文書管理装置101が文書のチェックアウト予約を行う処理例)
図43は、図1に記載された文書管理装置101によるチェックアウト予約処理の手順例を示すフローチャートである。
図43は、クライアント装置102のCRT409に表示されている前記図33のチェックアウト予約設定画面3301のボタン3321を押下することにより起動される。図43は、文書管理装置101の文書チェックアウト予約処理制御部2713によって行われる処理フローを表したものであり、本処理は図2のCPU201によって実行される。
本処理で必要なデータは、次の各情報である。かかる情報は、チェックアウト予約設定画面3301にて入力された予約フローID3303、フロー調整3304、選択3306、予約挿入位置3313を含む。更に、文書ID3314、予約開始日付3316、予約終了日付3317、チェックボックス3319、および本操作を行っているユーザIDを含む。
図43に示すとおり、ステップS4301において、チェックアウト予約情報2831を文書管理装置101のチェックアウト予約情報操作部2706経由でチェックアウト予約情報保管部2705から取得する。かかるチェックアウト予約情報2831は、クライアント装置102から渡された、前記図33に表示されている文書ID3314に合致するものである。取得処理が終了したら、次のステップS4302へ進む。ステップS4302において、前記ステップS4301で取得したチェックアウト予約情報が存在しているかどうかを判断し、存在している場合には次のステップS4303へ、存在していない場合にはステップS4307へ進む。
ステップS4303において、前記ステップS4301で取得したチェックアウト予約情報2831のレコード件数の数だけ、ステップS4306までの繰り返し処理の制御を行う。
まず、チェックアウト予約情報2831のレコードの中から1件のレコードを特定して、次のステップS4304に進む。ステップS4304においては、取得したチェックアウト予約情報2831の項目のチェックアウト予約日付2834とチェックイン予定日付2836の値をレコードから取得し、次のステップS4305へ進む。
ステップS4305においては、前記ステップS4304で取得した2項目と本処理への入力値となる予約開始日付3316と予約終了日付3317とが、以下の条件を満たすかどうかを確認する。
比較条件:
新規の予約開始日付3316<予約済みチェックイン予定日付2836
かつ
新規の予約終了日付3317>予約済みチェックアウト予約日付2834
本比較条件を満たしている場合には、新規予約する期間が既に予約されている期間と重複するため、エラーと判断してステップS4313へ進む。また、前記比較条件を満たしていない場合には、新規予約する期間との重複がないものとして次のステップS4306へ進む。かかる判定が、挿入可否判断手段に相当する。
ステップS4306では、前記ステップS4301で取得したチェックアウト予約情報2831のうち1レコードについての重複チェックが終わったことを表す。まだチェックアウト予約情報2831のレコードが残っているようであれば、前記ステップS4304に遷移する。既にチェックアウト予約情報2831のレコード全件についての処理が終わっている場合には、次のステップS4307へ進む。
ステップS4307では、新規予約データが既存の予約データとの重複が発生していないことが確認され、新規チェックアウト予約情報の登録が可能となったので、そのチェックアウト予約情報を登録する予約フロー情報の処理判定を行なう。
前記図32の予約フロー指定画面3201において、ラジオボックス3205をオン状態にしている場合には、既存予約フロー選択部3206でチェックアウト予約を追加する先の予約フローが選択3207によって選択される。その予約フローIDが図33のチェックアウト予約設定画面3301の予約フローID3303に指定されている。逆に、予約フロー指定画面3201において、ラジオボックス3210をオンにしていた場合には、新規に予約フローを作成すことを選択したことになるので、チェックアウト予約設定画面3301の予約フローID3303は空欄である。
以上の様に、予約フローID3303が空欄である場合には、新規予約フローを作成するのでステップS4312へ進む。既存の予約フローに追加する場合はステップS4308に進む。
ステップS4308では、既存の予約フローにおいて、新たなチェックアウト予約を追加する、その前後のチェックアウト予約情報を取得する。今、この新しい予約情報を挿入する位置の直前にあるチェックアウト予約情報を「先行予約情報」、挿入する位置の直後に来るチェックアウト予約情報を「後続予約情報」と呼ぶこととする。
既存の予約フローに新たなチェックアウト予約情報を追加する場合には、前記図33のチェックアウト予約設定画面3301において、選択3306で既存の予約情報が1つ選択され、その順序3307が取得できているはずである。よって、予約フローID3303と指定された順序3307で、前記図28Fの予約フロー構成情報2851の予約フローID2852、フロー順序2853と一致するレコードを検索する。その結果、該当するレコードの予約ID2854を取得することができる。この予約IDは、予約挿入位置3313で「前に挿入」が指定されている場合には、後続予約情報の予約ID(=「後続予約ID」)である。予約挿入位置3313で「後ろに挿入」が指定された場合は、先行予約情報の予約ID(=「先行予約ID」)となる。
予約挿入位置3313で「前に挿入」が指定された場合は、次に、先程検索に使用した順序3307の値を1減算して、予約フローID2852、フロー順序2853と一致するレコードを検索する。合致するレコードが予約フロー構成情報2851に存在した場合には、その予約ID2854が「先行予約ID」となる。「先行予約ID」を使用して前記図28Dのチェックアウト予約情報2831を検索し、予約ID2832が合致するレコードを取得する。そのレコードの「チェックイン予定日付」が「先行予約情報の終了日付」となる。但し、予約挿入位置として最も先頭のチェックアウト予約情報が指定されていた場合には、該当するデータが存在しない。この場合は、「先行予約情報の終了日付無し」となる。
逆に、予約挿入位置3313で「後ろに挿入」が指定された場合には1加算して、予約フローID2852、フロー順序2853と一致するレコードを検索する。合致するレコードが予約フロー構成情報2851に存在した場合には、その予約ID2854が「後続予約ID」となる。「後続予約ID」を使用して前記図28Dのチェックアウト予約情報2831を検索し、予約ID2832が合致するレコードを取得する。そのレコードの「チェックアウト予定日付」が「後続予約情報の開始日付」となる。但し、予約挿入位置として最も末尾のチェックアウト予約情報が指定されていた場合には、該当するデータが存在しない。この場合は、「後続予約情報の終了日付無し」となる。
この「先行予約情報の終了日付」と「後続予約情報の開始日付」を用いて、次のステップS4309の判定を行なう。
ステップS4309においては、追加しようとしている新しいチェックアウト予約情報の予約開始日付、予約終了日付と、先のステップS4308において取得した「先行予約情報の終了日付」と「後続予約情報の開始日付」を比較する。かかる比較により、追加しようとしているチェックアウト予約情報の期間が、予約フロー内における前後のチェックアウト予約情報の帰還と重複しないかどうかをチェックする。比較条件は以下の通りである。
比較条件1:
先行予約情報の終了日付無し
又は
予約開始日付3316>先行予約情報の終了日付
比較条件2:
後続予約情報の終了日付無し
又は
予約終了日付3317<後続予約情報の終了日付
この比較条件1、比較条件2を両方とも満たす場合には、妥当な期間が指定されていると判断され、ステップS4310へ進み、チェックアウト予約情報の新規登録を行なう。この条件の一方でも満たさない場合には、予約フロー内の前後の予約情報と日程が重複するのでエラーと判断して、ステップS4313へ進む。
ステップS4310では、チェックアウト予約情報2831に対して新規のデータの登録を行なう。
チェックアウト予約情報2831の各項目に対しては、以下の様に設定したデータで新規レコード2839を作成する。
予約ID2832は、新規にユニークなID値を生成して設定する。このIDはチェックアウト予約情報2831においてレコード2839を一意に識別できるIDである。文書ID2833は、前記図33のチェックアウト予約設定画面3301において指定されていた文書ID3314を設定する。
チェックアウト予約日付2834は、前記図33のチェックアウト予約設定画面3301において指定されていた予約開始日付3316を設定する。予約ユーザID2835は、現在ログインしているユーザのユーザIDを設定する。チェックイン予定日付2836は、前記図33のチェックアウト予約設定画面3301において指定されていた予約終了日付3317を設定する。
前予約追従フラグ2837は、前記図33のチェックアウト予約設定画面3301において、チェックボックス3319がオン状態である場合には「真(TRUE)」が、オフ状態である場合には「偽(FALSE)」を設定する。ステータス2838には「未処理」を設定する。
ステップS4311では、前記ステップS4310で登録したチェックアウト予約情報に対応する予約フロー構成情報を予約フロー構成情報2851に対して新規登録する処理と、それに伴い既存の予約フロー構成情報のフロー順序値の更新を行なう。
予約フロー構成情報2851の各項目に対しては以下の様に設定したデータで新規レコード2855を作成する。
まず最初に、フロー順序2853に設定する値と、既存の予約フロー構成情報のフロー順序値の更新について説明する。
フロー順序2853は、同一予約フローIDを持つチェックアウト予約情報2831をチェックアウト予約日付2834の昇順に並べ、先頭から順番に1、2、3、...という連続する番号を振ったものである。
予約フロー指定画面3201において、「新規に予約フロー情報を作成して追加する」を選択している場合には、現在処理を行なっている予約フロー内には前記ステップS4310で追加したチェックアウト予約情報が1件存在しているのみである。この場合は、フロー順序2853は「1」となる。また、この場合は既存の予約フロー構成情報のフロー順序値の更新という処理は発生しない。
予約フロー指定画面3201において、「既存の予約フローに追加する」を選択している場合には、既存のチェックアウト予約情報の間に挿入されるケースがある。従って、予約フロー構成情報に対する新規レコードの追加の他に、同一予約フローIDを持つ他のレコードのフロー順序2853の値の更新処理も必要になる。
まず、チェックアウト予約情報2831を検索して、現在処理している予約フローIDと同一予約フローIDを持つレコード2839を全件取得する。必要な情報は、予約ID2832とチェックアウト予約日付2834である。この取得した情報の予約ID2332には、今回の処理要求に応じて前記ステップS4310で追加したチェックアウト予約情報の予約IDも含まれている。次に、このレコードをチェックアウト予約日付2834の昇順に並べ、各レコードに対して先頭から1、2、3と連続した番号を割り当てる。これによって、予約ID2332と、それに対応する新しいフロー順序の値が決定する。即ち、予約IDとフロー順序の対応表が出来上がる。
この予約IDとフロー順序の値の対応表を元にして、既存の予約フロー構成情報の予約IDについては、その予約IDで予約フロー構成情報2851を検索する。そして、対応表にある新しいフロー順序の値をフロー順序2853に設定し、データを更新するという処理を順次繰り返し行なうことになる。
現在追加しようとしている新しい予約フロー構成情報のフロー順序2853は、この予約IDとフロー順序の対応表の中の、ステップS4310で追加したチェックアウト予約情報2831の予約IDに対応する値である。予約フロー構成情報のフロー順序2853は以上のように決定される。
予約フロー構成情報2851の予約フローID2852は、前記図32の予約フロー指定画面3201において、ラジオボタン3205をオン状態にして「既存の予約フローに追加する」を選択している場合には、次の設定となる。すなわち、前記図33のチェックアウト予約設定画面3301において指定されている予約フローID3303を設定する。予約フロー指定画面3201において、ラジオボタン3210をオン状態にして、「新規に予約フロー情報を作成して追加する」を選択している場合には、次の設定となる。すなわち、後述するステップS4312において予約フロー情報2841に追加登録されたレコード2846の予約フローID2842を設定する。
予約フロー構成情報の予約ID2854は、前記ステップS4310において追加したチェックアウト予約情報2831の予約ID2832に指定したのと同じIDである。
以上によって、新規に追加する予約フロー構成情報2851のレコード2855の各項目の値が決定するので、この情報を新規に登録してステップS4311を終了する。
ステップS4312は、予約フロー指定画面3201において、ラジオボックス3210をオンにして、新規に予約フローを作成すことを選択した場合の処理である。この処理では新規に予約フロー情報2841のレコード2845を作成して登録する。レコード2845に含まれる各項目の値は以下の様にして決定される。
予約フローID2842は、予約フロー情報2841を一意に識別できるような情報を任意に生成し、設定する。本実施形態では処理内部において任意に生成することとしているが、ユーザに値を指定させることにしても構わない。管理ユーザID2843は、現在ログイン中のユーザのIDである。フロー調整2844は、前記図32の新規予約フロー情報指定部3211のラジオボタン3212とラジオボタン3213の状態によって決定する。ラジオボタン3212がオン状態である場合には「調整する」が設定され、ラジオボタン3213がオン状態である場合には「調整しない」が設定される。以上の内容でレコード2845を作成し、予約フロー情報2841に新規登録して次のステップに進む。
ステップS4313は、予約期間のチェックで重複エラーが発見された場合などに遷移する処理であり、前記図36のエラー画面3601へエラーの内容を出力して、ユーザにエラーの内容を通知する。前記エラー画面3601でエラー情報の確認後、ボタン3605が押下されると、本チェックアウト予約処理は、予約されない状態で終了する。
本処理が終了した際には、前記図34のチェックアウト予約完了画面3401が表示される。
(文書管理装置101が予約期間終了状況を確認する処理例)
図44は、図1に記載された文書管理装置101によるチェックアウト予約期間終了確認処理の手順例を示すフローチャートである。
本処理はユーザからのアクションを受けて行われるものではなく、文書管理装置101内で定期的に自動実行される処理である。この実行間隔に関しては特に限定するものではない。図44は、この定期的に実行される処理の1回の処理フローを示すものであり、文書管理装置101上の文書チェックアウト予約処理制御部2713によって図2のCPU201を使用して行われる。
本処理を行うにあたって必要なデータは、終了警告を行う予約残日数閾値であり、この内容は、あらかじめ文書管理装置101内に設定されているものとする。
図44に示すとおり、ステップS4401において、図28Dのチェックアウト予約情報2831に存在する予約情報のうち、予約期間が終了するものを以下の条件に照らし合わせて取得する。
取得条件:
(1)ステータス2838が「完了」になっていない
かつ
(2)本処理実行時日付+システム設定されている予約残日数
>チェックイン予定日付2836
取得条件(1)は、チェックアウト予約情報2831からステータス2838が「未処理」(=チェックアウトが未だ行なわれていない)か、「処理中」(=現在チェックアウト中である)のものを取得するものである。取得条件(2)は、チェックイン予定日付2836が処理時点の日時からある一定期間内(予約残日数閾値内)にまで近づいているか、既にチェックイン予定日付2836を過ぎてしまっているものを取得するものである。ここで合致した前記チェックアウト予約情報2831のレコードは、文書IDでソートされているものとする。取得処理が終了したら、次のステップS4402へ進む。
ステップS4402において、前記ステップS4401で取得したチェックアウト予約情報2831のレコードが1件以上存在しているかどうかの判断を行う。存在している場合には、次のステップS4403へ、存在していない場合には、本処理を終了する。
ステップS4403において、前記ステップS4401で取得したチェックアウト予約情報2831のレコード件数の数だけ、ステップS4407までの間の繰り返し処理の制御を行う。
まず、チェックアウト予約情報2831のレコードの中から1件のレコードを特定して、次のステップS4404へ進む。ステップS4404においては、前記ステップS4403で特定されたチェックアウト予約情報2831のレコードから取得した文書ID2833をキーとする。そして、チェックアウト情報操作部2704を使用してチェックアウト情報保管部2703から該当するチェックアウト情報2821のレコードを取得する。該当レコードの取得処理が終了したら、次のステップS4405へ進む。
ステップS4405において、前記ステップS4404にて取得したチェックアウト情報2821が存在しているかどうかを確認し、存在している場合には次のステップS4406へ、存在しない場合には、ステップS4407へ進む。
ステップS4406においては、前記ステップS4404にて取得したチェックアウト情報2821のレコードのチェックアウトユーザID2824をキーとする。そして、ユーザ情報操作部2710を使用してユーザ情報保管部2709から該当するユーザ情報2861を取得する。また、同じチェックアウト情報2821のレコードの文書ID2822をキーとする。そして、文書情報操作部2702を使用して文書情報保管部2701から該当する文書情報2801を取得する。
これら取得した情報を使用して、図42に示すメールフォーマット4201を使用したメールを送信する。メールフォーマット4201に指定する情報は、以下のように設定される。宛先4203には、取得したユーザ情報2861のメールアドレス2864が設定される。表題4204には「チェックアウト期限確認」の文字が、文書名称4206には取得した文書情報2801の文書名称2803が設定される。チェックアウト期限4207には、前記ステップS4403で特定されたチェックアウト予約情報2831のチェックイン予定日付2836もしくはチェックアウト予約日付2834の内、ステップS4401の取得条件に合致した方の日付が設定される。メッセージ4208には、「チェックアウト終了期限が近づいてきました。指定した期限までにはチェックイン、もしくはチェックアウト取消をしてください。」と言う旨のメッセージが適用される。作成したメールはすぐに送信する。メールの送信が終了したら、次のステップS4407へ進む。
ステップS4407においては、ステップS4401にて取得したチェックアウト予約情報2831のレコードすべての処理が終了したかどうかを判断する。まだ未処理レコードが残っている場合にはステップS4403へ、未処理レコードが存在しない場合には処理ループを抜けて本処理を終了する。
(文書管理装置101が予約期間開始文書をチェックアウトする処理例)
図45は、図1に記載された文書管理装置101によるチェックアウト予約実行処理の手順例を示すフローチャートである。
本処理はユーザからのアクションを受けて行われるものではなく、文書管理装置101内で定期的に自動実行される処理である。この実行間隔に関しては特に限定するものではない。図45は、この定期的に実行される処理の1回の処理フローを示すものであり、文書管理装置101上の文書チェックアウト予約処理制御部2713によって図2のCPU201を使用して行われる。
図45に示すとおり、ステップS4501において、図28Dのチェックアウト予約情報2831に存在する予約情報のうち、予約期間が開始するものを以下の条件に照らし合わせて取得する。
取得条件:
ステータス2838が「完了」になっていない
かつ
本処理実行時日付≧チェックアウト予約日付2834
ここで合致した前記チェックアウト予約情報2831のレコードは、文書ID2833とチェックアウト予約日付2834とでソートされているものとする。また、同じ文書ID2833が複数存在する場合には、チェックアウト予約日付2834が最小の日付を示すもののみを残し、残りのレコードは対象レコードから削除する。前記条件での対象レコード取得処理が終わったら、次のステップS4502に進む。ステップS4502において、前記ステップS4501で取得したチェックアウト予約情報2831のレコードが1件以上存在しているかどうかの判断を行う。存在している場合には、次のステップS4503へ、存在していない場合には、本処理を終了する。
ステップS4503において、前記ステップS4501で取得したチェックアウト予約情報2831のレコード件数の数だけ、ステップS4509までの間の繰り返し処理の制御を行う。
まず、チェックアウト予約情報2831のレコードの中から1件のレコードを特定して、次のステップS4504へ進む。ステップS4504において、図47に記載のチェックアウト実処理を起動する。ここで、前記ステップS4503で特定された処理対象のチェックアウト予約情報2831のレコードに記載されている文書ID2833に該当する文書のチェックアウト処理を行う。図47のチェックアウト実処理が終了したら、その処理結果を保管して次のステップS4505に進む。
ステップS4505において、前記ステップS4504の中で保管したチェックアウトメイン処理の処理結果を判定し、正常に終了していた場合にはステップS4506へ、異常終了していた場合にはステップS4508へ進む。
ステップS4506において、チェックアウト処理が正常に終了した事を受けて、予約対象のチェックアウト予約情報を以下のように更新する。前記ステップS4503で特定されているチェックアウト予約情報2831のレコードのステータス2838の値を「処理中」に変更する。そして、チェックアウト予約情報操作部2706を経由して、チェックアウト予約情報保管部2705に保管されているチェックアウト予約情報2831を更新する。更新処理が終了したら、次のステップS4507に進む。
ステップS4507において、該当文書に対するチェックアウト処理が終了したため、チェックアウト予約を行ったユーザに対して文書のチェックアウトが行われた旨をメールで通知する。そのために、前記ステップS4503で特定したチェックアウト予約情報2831の文書ID2833をキーとして、文書情報操作部2702を使用して文書情報保管部2701から該当する文書情報2801を取得する。また、予約ユーザID2835をキーに、ユーザ情報操作部2710を使用してユーザ情報保管部2709から該当するユーザ情報2861を取得する。
本ステップで送信するメールは、前記図42のメールフォーマット4201を使用する。メールフォーマット4201に指定する情報は、以下のように設定される。宛先4203には本ステップで取得したユーザ情報2861のメールアドレス2864が設定される。表題4204には「チェックアウト完了」の文字が、文書名称4206には本ステップで取得した文書情報2801の文書名称2803が設定される。チェックアウト期限4207には、前記ステップS4503で特定されたチェックアウト予約情報2831のチェックイン予定日付2836が設定される。メッセージ4208には、「チェックアウト期間が開始されました。文書に対する作業を始めてください。」と言う旨のメッセージが指定される。作成したメールの送信が終了したら、次のステップS4509へ進む。
ステップS4508において、前記ステップS4504のチェックアウト処理エラーを受けて、チェックアウト予定ユーザと、現チェックアウトユーザに対してそれぞれにメールを送信する。
まず、チェックアウトを予定していたユーザに対しては、予定されていたチェックアウトが正常に行われなかった旨のメールを送信する。そのために、前記ステップS4503で特定したチェックアウト予約情報2831の文書ID2833をキーとして、文書情報操作部2702を使用して文書情報保管部2701から該当する文書情報2801を取得する。また、予約ユーザID2835をキーに、ユーザ情報操作部2710を使用してユーザ情報保管部2709から該当するユーザ情報2861を取得する。
本ステップで送信するメールは、前記図42のメールフォーマット4201を使用したメールを送信する。メールフォーマット4201に指定する情報は、以下のように設定される。宛先4203には、本ステップで取得したユーザ情報2861のメールアドレス2864が設定される。表題4204に「チェックアウト失敗」の文字が、文書名称4206には本ステップで取得した文書情報2801の文書名称2803が設定される。チェックアウト期限4207には、前記ステップS4503で特定されたチェックアウト予約情報2831のチェックアウト予約日付2834が設定される。メッセージ4208には、「チェックアウト期間が来ましたがチェックアウト処理に失敗しました。」と言う旨のメッセージが適用される。
また、現チェックアウトユーザに対しては、チェックインもしくはチェックアウト取消を行う処理を督促する旨のメールを送信する。そのために、前記ステップS4503で特定したチェックアウト予約情報2831の文書ID2833をキーとして、文書情報操作部2702を使用して文書情報保管部2701から該当する文書情報2801を取得する。また、チェックアウト情報2821のチェックアウトユーザID2824をキーに、ユーザ情報操作部2710を使用してユーザ情報保管部2709から該当するユーザ情報2861を取得する。かかるチェックアウト情報2821は、文書ID2833をキーにして、チェックアウト情報操作部2704を使用してチェックアウト情報保管部2703から取得したものである。
本ステップで送信するメールは、前記図42のメールフォーマット4201を使用する。メールフォーマット4201に指定する情報は、以下のように設定される。宛先4203には、本ステップで取得したユーザ情報2861のメールアドレス2864が設定される。表題4204に「至急チェックイン」の文字が、文書名称4206には本ステップで取得した文書情報2801の文書名称2803が設定される。チェックアウト期限4207には、前記ステップS4503で特定されたチェックアウト予約情報2831のチェックアウト予約日付2834が設定される。メッセージ4208には、「既にチェックアウト期間を過ぎています。次の予約者の方がいるため至急チェックイン、もしくはチェックアウト取消をしてください。」と言う旨のメッセージが適用される。これら作成されたメールの送信が終了したら、次のステップS4509へ進む。
ステップS4509において、ステップS4501にて取得したチェックアウト予約情報2831のレコードすべての処理が終了したかどうかを判断する。まだ未処理レコードが残っている場合にはステップS4503へ、未処理レコードが存在しない場合には処理ループを抜けて本処理を終了する。
(ユーザがチェックアウトを行う処理例)
図46は、図1に記載された文書管理装置101によるチェックアウト実行処理の手順例を示すフローチャートである。
図46は、クライアント装置102のCRT409に表示されている前記図37のチェックアウト画面1401のボタン3706を押下することにより起動される。図46は、文書管理装置101の文書チェックアウト処理制御部309によって文書のチェックアウト処理を行うための処理フローを表したものであり、本処理は図2のCPU201によって実行される。
本処理に必要な入力データは、前記チェックアウト画面3701で指定されている文書ID3702、および操作を行っているユーザIDである。
図46に示すとおり、ステップS4601において、前記入力データである文書ID3702に対するチェックアウト予約情報の一覧を取得する。これは、文書ID3702に合致するチェックアウト予約情報2831をチェックアウト予約情報操作部2706経由でチェックアウト予約情報保管部2705から取得する。この際、取得するチェックアウト予約情報2831のレコードは、項目のチェックアウト予約日付2834により昇順にソートされているものとする。取得処理が終了したら、次のステップS4602へ進む。
ステップS4602において、前記ステップS4601で取得したチェックアウト予約情報2831のレコードが存在しているかどうかを判断する。存在している場合には、次のステップS4603へ進み、存在していない場合にはステップS2210へ進む。
ステップS4603において、前記ステップS4601で取得したチェックアウト予約情報2831のレコード件数の数だけ、ステップS4607までの間の繰り返し処理の制御を行う。
まず、チェックアウト予約情報2831のレコードの中から1件のレコードを特定して、次のステップS4604へ進む。ステップS4604において、前記ステップS4603で特定されたチェックアウト予約情報2831のレコードのチェックアウト予約日付2834およびチェックイン予定日付2836を取得する。取得処理が終わったら、次のステップS4605へ進む。
ステップS4605において、前記ステップS4604で取得したチェックアウト予約日付2834およびチェックイン予定日付2836の情報を使用して、本処理の実行時日付と以下の条件で予約期間を比較する。
比較条件:
本処理実行時日付≧チェックアウト予約日付2834
かつ
本処理実行時日付<チェックイン予定日付2836
本条件を満たしている場合には、チェックアウトする文書の予約期間の中に含まれてしまうため、チェックアウト処理自体ができない状態として判断する。そのため、条件を満たしている場合には、ステップS4611へ進む。この条件に合致しない場合には、本比較対象レコードがチェックアウト期間中ではないため、次のステップS4606へ進む。
ステップS4606において、チェックアウト期間外の中で、以下のような条件に合致しているかどうかをチェックする。チェックを行うための比較条件は以下のものとする。
比較条件:
本処理実行時日付<チェックアウト予約日付2834
本条件を満たしている場合には、現時点ではチェックアウト期間ではないが以降に予約が入っているためチェックアウトの制限が存在しているので、次のステップS4508へ進む。それ以外の場合には、チェックアウトのための予約側の制限のない予約情報と言うことになるため、次のステップS4607へ進む。
ステップS4607において、前記ステップS4601で取得したチェックアウト予約情報2831のうち、1レコードについての予約重複チェックが終わったことを表す。まだチェックアウト予約情報2831のレコードが残っているようであれば、前記ステップS4603に遷移する。既にチェックアウト予約情報2831のレコード全件についての処理が終わっている場合には、次のステップS4610へ進む。
ステップS4608において、前記ステップS4606における比較でチェックアウト後に予約が入っているため、チェックアウトを行うユーザに対して、図38のチェックアウト制限許諾画面3801を表示する。この表示は、チェックアウトを行う期間が制限される旨の情報を文書チェックアウト処理制御部309で整えて表示内容生成部2718に送ることで、行われる。
このチェックアウト制限許諾画面3801に表示する情報は、前記ステップS4603で特定したチェックアウト予約情報2831の文書ID2833とチェックアウト予約日付2834である。特にチェックアウト予約日付2834は、メッセージの中に埋め込むものとする。本画面をクライアント装置102のCRT409に表示するまでが、本ステップの範疇である。この後、画面を見たユーザの判断として図38のチェックアウト制限許諾画面3801上のボタン3805もしくはボタン3506が押下されたタイミングで、次のステップS4609へ進む。
ステップS4609においては、ユーザが判断した前記ボタン3805(キャンセル)、もしくはボタン3506(許諾)を判断し、キャンセルの場合にはチェックアウト処理を行わず本処理を終了する。また、許諾の場合にはユーザがチェックアウト期間の制限を受け入れたものとして、ステップS4604からステップS4607の処理ループを抜けて、次のステップS4610へ進む。
ステップS4610においては、チェックアウト予約との重複がないことが確認されたため、実際のチェックアウト処理を行う。処理の詳細については、図47のフローチャートにて説明を行う。本ステップのチェックアウト処理が終わったら本処理を終了する。
ステップS4611においては、前記ステップS4605において既にチェックアウト予約期間で有り他のユーザがチェックアウトしているため、チェックアウト要求ユーザに対して既にチェックアウトされている旨のエラー画面3601を表示する。ユーザがエラー画面3601上のボタン3605を押下することで、本処理を終了する。
(文書管理装置101におけるチェックアウト実処理例)
図47は、図1に記載された文書管理装置101によるチェックアウト処理の手順例を示すフローチャートである。
図47は、前記図45および図46でのチェックアウト処理フローの中から起動される。図47は、文書管理装置101の文書チェックアウト処理制御部2711によって文書のチェックアウト実処理を行うための処理フローを表したものであり、本処理は図2のCPU201によって実行される。
本処理に必要な入力データは、チェックアウト対象になる文書ID、および操作を行っているユーザIDである。
図47に示すとおり、ステップS4701において、入力データとして指定された文書IDから該当する文書情報2801、およびチェックアウト情報2821を取得する。文書情報2801およびチェックアウト情報2821の取得が終わったら、次のステップS4702に進む。
ステップS4702において、前記ステップS4701で取得した文書情報2801が存在するかどうかの確認を行う。文書情報が存在しない場合はエラーであり、次のステップS4708へ進む。文書情報が存在している場合には、次のステップS4703へ進む。ステップS4703において、前記ステップS4701で取得したチェックアウト情報2821が存在しているかどうかの確認を行う。存在している場合には、現時点でいずれかのユーザによるチェックアウトが行われている状態であるため、エラーとして次のステップS4708へ進む。チェックアウト情報2821が存在していない場合には、チェックアウト可能な文書として次のステップS4704に進む。ステップS4704において、前記ステップS4701で取得した文書情報2801のステータス2804が「正常」以外の値を指名している場合には、エラーとして次のステップS4708に進む。ステータスが正常な場合には、すべてのチェックアウト可否チェックが終わったとして、次のステップS4705へ進む。
ステップS4705において、前記ステップS4701で取得した文書情報2801のステータス値を「チェックアウト中」に変更する。ここでは、文書チェックアウト処理制御部2711から文書情報操作部2702を介して文書情報保管部2701の中の既存データの更新する手順で行われる。文書情報の更新処理が終了したら、次のステップS4706へ進む。
ステップS4706において、チェックアウト中であるための情報として、図28Cのチェックアウト情報2821へ該当文書情報を追加する。チェックアウト情報2821の各項目には、以下の情報が使用される。文書ID2822については、入力データとして本処理に渡された文書IDが使用される。チェックアウト日付については、本処理の実行日付が使用される。チェックアウトユーザID624については、文書IDと同様入力データとして本処理に渡された操作を行っているユーザIDが使用される。これらのデータを使用して、文書チェックアウト処理制御部2711からチェックアウト情報操作部2704を介してチェックアウト情報保管部2703の中に新規データとして追加する手順で行われる。チェックアウト情報の追加処理が終了したら、次のステップS4707へ進む。
ステップS4707において、前記ステップS4705及びステップS4706で行われた更新処理の確定を行う。処理確定によりチェックアウト処理が完了し、本処理を終了する。
ステップS4708において、前記各ステップで発生したエラー処理を行い、エラーを処理起動元に通知して、本処理を終了する。
(ユーザがチェックインを行う処理例)
図48は、図1に記載された文書管理装置101によるチェックイン実行処理の手順例を示すフローチャートである。
図48は、クライアント装置102のCRT409に表示されている前記図40のチェックイン画面4001のボタン4009を押下することにより起動される。図48は、文書管理装置101の文書チェックイン処理制御部2712によって文書のチェックイン処理を行うための処理フローを表したものであり、本処理は図2のCPU201によって実行される。
本処理に必要な入力データは、前記チェックイン画面4001で指定されている文書ID4003、文書ファイル情報表示欄4007もしくはボタン4008によって指定された登録文書ファイル、および操作を行っているユーザIDである。
図48に示すとおり、ステップS4801において、図40のチェックイン画面4001で指定された文書IDの文書に対してチェックイン処理を行う。この処理は、後述の図50の処理フローにて詳細な説明を行う。本ステップでは、図50の処理の起動、および処理結果の取得までを行い、処理結果を保管した後、次のステップS4802に進む。
ステップS4802において、前記ステップS4801のチェックイン処理結果を取得し、結果がエラーだった場合には、次のステップS4816へ進む。正常に終了している場合には、次のステップS4803に進む。
ステップS4803において、チェックインした文書の文書IDに合致するチェックアウト予約情報2831が存在するかどうかを確認する。本ステップでは、チェックアウト予約情報操作部2706に対して、以下の条件に合致するチェックアウト予約情報2831を取得する。
検索条件:
文書ID2833=入力データ「文書ID4003」
かつ
チェックアウト予約日付2834≦処理実行日付
かつ
チェックイン予定日付2836≧処理実行日付
情報の取得処理が終了したら、次のステップS4804に進む。
ステップS4804において、前記ステップS4803で取得したチェックアウト予約情報2831のレコードが存在するかどうかをチェックする。チェックアウト予約情報2831のレコードが存在しない場合には、予約処理からのチェックアウトではなく、図37から始まる図46の処理フローを使用した画面からの直接チェックアウト処理による実行であると判断する。その場合は、次のステップS4815へ進む。レコードが存在する場合には、レコードの処理を行うため次のステップS4805に進む。
ステップS4805において、前記ステップS4803で取得したチェックアウト予約情報2831のレコード情報の中から、チェックイン予定日付2836を取得する。この情報は、後のステップS4806、ステップS4809にて使用するため一時的に保管する。前記レコードのステータス2838を「完了」に、チェックイン予定日付2836を処理実行日付に変更する。また、文書チェックイン処理制御部2712からチェックアウト予約情報操作部2706を介してチェックアウト予約情報保管部305の中の既存データを更新する。文書情報の更新処理が終了したら、次のステップS4806へ進む。
ステップS4806においては、予約フローの前倒し処理を実施する必要があるかどうかを判断する。前記ステップS4805において一時的に保管しておいたチェックイン予定日付2836と、実際に本処理を行なっている処理実行日付を比較する。
比較条件:
一時保管したチェックイン予定日付>処理日付
上記比較を行なうのは「日付」までであり、時刻は含まない。
上記比較条件が成立する、すなわち真である場合は、予定よりも1日以上早くチェックインが行われたということである。この場合は、この一時保管したチェックイン予定日付と処理日付の差の日数を「前倒し実施日数」として一時的に保管する。「前倒し実施日数」が1日以上である場合、すなわち前述した比較条件が成立する場合は、このチェックインを実施したユーザの予約フローにおいて予約フロー内の調整、すなわち後続の予約の前倒し処理が必要になるのでステップS4807に進む。上比較条件が成立しない、すなわち偽である場合は、ステップS4809に進む。
ステップS4807においては、前記ステップS4805において更新したチェックアウト予約情報831のレコード情報の中から、予約ID2832を取得する。その予約ID2832と、操作を行っているユーザのユーザID、前記ステップS4806において一時保管した「前倒し実施日数」を引き渡して、予約フロー調整処理を実施する。予約フロー調整処理については、後の図49において詳しく解説する。
ステップS4808において、前記ステップS4807の予約フロー調整処理結果を取得し、結果がエラーだった場合には、次のステップS4816へ進む。正常に終了している場合には、次のステップS4809に進む。
ステップS4809において、チェックインした文書の次の予約情報を取得する。本ステップでは、チェックアウト予約情報操作部2706に対して、以下の条件に合致するチェックアウト予約情報2831を取得する。この検索条件に対して、前記ステップS4805にて一時保管したチェックイン予定日付2836を使用する。
検索条件:
文書ID2833=入力データ「文書ID4003」
かつ
チェックアウト予約日付2834≧一時保管のチェックイン予定日付+1日
かつ
前予約追従フラグ2837=TRUE
上記検索条件による情報の検索処理が終了したら、次のステップS4810に進む。
ステップS4810において、前記ステップS4809において取得したチェックアウト予約情報2831のレコードが存在するかどうかをチェックする。レコードが存在しない場合には、追従させてチェックアウトを前倒しする必要がないため、次のステップS4815へ進む。レコードが存在する場合には、次のステップS4811へ進む。
ステップS4811において、前記ステップS4809で取得したチェックアウト予約情報2831の予約ユーザID2835を取得しておく。これは、次のステップS4812を行う際の入力データとして使用するためである。次に、前記レコードのステータス2838を「処理中」に、チェックアウト予約日付2834を処理実行日付に変更する。また、文書チェックアウト処理制御部2711からチェックアウト予約情報操作部2706を介してチェックアウト予約情報保管部2705の中の既存データを更新する。文書情報の更新処理が終了したら、次のステップS4812へ進む。
ステップS4812において、前記ステップS4811で保管しておいた予約ユーザIDと入力データである文書ID4003を渡す。そして、文書チェックアウト処理制御部2711の図47が示すチェックアウト実処理フローによるチェックアウト処理を起動する。このチェックアウト実処理が終了したら、次のステップS4813へ進む。
ステップS4813において、前記ステップS4812のチェックアウト処理が正常終了したかどうかを判断する。正常に終了していない場合には、エラーとして次のステップS4816に進む。正常に終了している場合には、次のステップS4814へ進む。
ステップS4814においては、チェックアウト予約を行った対象ユーザに対するメールの送付を行う。そのために、前記ステップS4809で特定したチェックアウト予約情報レコードの文書ID2833をキーとして、文書情報操作部2702を使用して文書情報保管部2701から該当する文書情報2801を取得する。また、前記ステップS4811で保管しておいた予約ユーザIDをキーに、ユーザ情報操作部2710を使用してユーザ情報保管部2709から該当するユーザ情報2861を取得する。
本ステップで送信するメールは、前記図42のメールフォーマット4201を使用する。メールフォーマット4201に指定する情報は、以下のように設定される。宛先4203には、本ステップで取得したユーザ情報2861のメールアドレス2864が設定される。表題4204には「チェックアウト完了」の文字が、文書名称4206には本ステップで取得した文書情報2801の文書名称2803が設定される。チェックアウト期限4207には、前記ステップS4503で特定されたチェックアウト予約情報2831のチェックイン予定日付2836が設定される。メッセージ4208には、「前作業者の作業が早く終わりましたので、前倒しでチェックアウト期間が開始されました。文書に対する作業を始めてください。」と言う旨のメッセージが指定される。作成したメールの送信が終了したら、次のステップS4815へ進む。
ステップS4815において、本処理内で変更の発生した情報すべてを確定する。情報の確定が終了したら、本処理を終了する。
(文書管理装置101における予約フロー調整処理例)
図49は、図1に記載された文書管理装置101による予約フロー調整処理の手順例を示すフローチャートである。
図49は、クライアント装置102のCRT409に表示されている前記図40のチェックイン画面4001のボタン4009を押下することにより起動されるチェックイン処理(前記図48において説明済み)によって呼び出される処理である。図49は、文書管理装置101の文書チェックイン処理制御部2712によって、図2のCPU201によって実行される。
本処理に必要な入力データは、図48のステップS4807より受け渡される。具体的には、図48のフローにおいてチェックインが実施されたチェックアウト予約情報2831の予約ID2832と、操作を行っているユーザのユーザID、前倒し実施日数である。
ステップS4901において、この処理に引き渡された予約ID2832とユーザIDによって、処理対象とする予約フロー情報を取得する。まず、予約フロー情報操作部2708に対して、以下の条件に合致する予約フロー構成情報2851の取得を指示する。
検索条件:
予約ID2832=予約ID2854
これによって取得された予約フロー構成情報2851のレコードから、予約フローID2852を取得し、予約フロー情報操作部2708に対して、以下の条件に合致する予約フロー情報2841の取得を指示する。
検索条件:
予約フローID2852=予約フローID2842
かつ
管理ユーザID=操作を行なっているユーザのユーザID
かつ
フロー調整2844=調整する
これによって、以下の場合に、予約フロー情報2841のレコード2845がヒットするはずである。すなわち、処理対象となっている予約情報を含む予約フロー情報が、処理を行なっているユーザの管理している予約フロー情報であり、文書のチェックインが発生した場合に予約フローの調整を行う対象である予約フロー情報である場合である。情報の取得が終わったら、次のステップS4902に進む。
ステップS4902において、前記ステップS4901において取得した予約フロー情報のレコード2845が存在するかどうかをチェックする。存在しない場合は本処理フローを正常終了したこととして終了する。存在する場合は次のステップS4903に進む。
ステップS4903において、前記ステップS4902において存在していることが確認された予約フロー情報のレコード2845の予約フローID2852を指定する。そして、予約フロー情報操作部2708に対して、以下の条件に合致する予約フロー構成情報2851の取得を指示する。
検索条件:
予約フロー情報のレコード2845の予約フローID2852
=予約フローID2852
取得するにあたっては、フロー順序2853の昇順で取得するものとする。対象となる予約フロー構成情報2851のレコード2855が取得できたら、次のステップS4904に進む。
ステップS4904においては、前記ステップS4903において取得された予約フロー構成情報2851のレコード2855の予約ID2854に注目する。レコードは2855は2件以上取得できている可能性があるが、その中の1件の予約ID2854は、必ず図48のステップS4807より受け渡された予約ID2832と同じ値となるはずである。レコード2855はフロー順序2853の昇順で取得されているので、取得されたレコードの先頭から順次に読む。そして、予約ID2854が図48のステップS4807より受け渡された予約ID2832と等しい値になるレコードまで来たら、その等しい値となるレコードより以前の、既に読み終えたレコードは不要となるので破棄する。等しい値となったレコードと、未だ読み込んでいない残されたレコードをもって、次のステップS4905に進む。
ステップS4905において、前記ステップS4904においては破棄されずに残ったレコードの中に、フロー調整の対象となる後続予約フロー構成情報が存在するかどうかを判断する。
破棄されずに残ったレコード2855のうちの1件は、図48のステップS4807より受け渡された予約ID2832と等しい予約ID2854を持つレコードである。このレコードの次のレコードが、フロー調整の対象となる後続予約フロー構成情報となるレコードである。よって、破棄されずに残ったレコード2855が2件以上存在しているかどうかをチェックする。
残ったレコード2855が2件未満の場合は、図48のステップS4807より受け渡された予約ID2832が示すチェックアウト予約は、そのチェックアウト予約が含まれる予約フローの最も末尾のチェックアウト予約であったということである。その場合は、調整する対象となる後続のチェックアウト予約が存在しないので、本処理が正常終了したものとして、本処理フローを終了する。前記ステップS4904において、破棄されずに残ったレコード2855が2件以上存在している場合は、次のステップS4906に進む。
ステップS4906より、ステップS4911までは、破棄されずに残ったレコード2855の2件目以降の各レコードに対して繰り返し行なわれる処理である。処理対象のレコードがなくなった時点でステップS4911を抜けて、次に進むものとする。
ステップS4907では、破棄されずに残ったレコード2855の2件目以降から順次処理を行なうので、必ず1件前のデータが存在する。ステップS4907では、レコード2855の現在の処理対象のレコードと、1件前のレコードを参照して処理を行なう。ステップS4907においては、予約フローの中での1件前のチェックアウト予約情報のチェックイン予定日付を取得する。1件前のレコード2855の予約ID2854を取得して、チェックアウト情報操作部2704に対して、以下の条件に合致するチェックアウト予約情報2831の取得を指示する。
検索条件:
1件前のレコードの予約ID2854=予約ID2832
この条件に合致するレコード2849のチェックイン予定日付2836を「直前フローチェックイン予定日付」として一時的に記憶する。これは後述するS4909で使用する。
ステップS4908においては、現在の処理対象の予約フロー構成情報のレコード2855と同一の文書に対する、直前のチェックアウト予約情報のチェックイン予定日付を取得する。処理対象となるレコード2855から予約ID2854を取得して、チェックアウト情報操作部2704に対して、以下の条件に合致するチェックアウト予約情報2831の取得を指示する。
検索条件1:
予約ID2854=予約ID2832
条件を満たすレコード2839が取得されたら、まずそのチェックアウト予約日付2834を「現在チェックアウト予約日付」として一時的に記憶する。これは後述するS4909で使用する。
次に、文書ID2833とチェックアウト予約日付2834を取得して、チェックアウト情報操作部2704に対して、以下の条件に合致するチェックアウト予約情報2831の取得を指示する。
検索条件2:
検索条件1によって取得した文書ID2833=文書ID2833
かつ
検索条件1によって取得したチェックアウト予約日付2834
>チェックイン予定日付2836
この検索条件2によって取得するチェックアウト予約情報2831は、チェックイン予定日付2836の昇順にソートされているとする。その様にソートした場合、取得されたレコード2839の最も末尾のレコードが最もチェックイン予定日付2836が大きいことになる。よって、この末尾のレコード2839のチェックイン予定日付2836が、現在の処理対象の予約フロー構成情報のレコード2855と同一の文書に対する、直前のチェックアウト予約情報のチェックイン予定日付である。このチェックイン予定日付2836を「直前予約チェックイン予定日付」として一時的に記憶して、次のステップS4909に進む。
なお、検索条件2に該当するレコードが存在しなかった場合は、「直前予約チェックイン予定日付」は<該当日付無し>として、次のステップS4909に進む。
ステップS4909においては、以下の情報を使用して、予約フロー内のチェックアウト予約情報のチェックアウト予約日付、チェックイン予定日付が前倒し可能であるかどうかを判断する。
情報としては、フローの先頭において引き渡された「前倒し実施日数」が使用される。ステップS4908において取得された「現在チェックアウト予約日付」が使用される。ステップS4907において取得された「直前フローチェックイン予定日付」が使用される。ステップS4908において取得された「直前予約チェックイン予定日付」が使用される。
前倒し可能であるかどうかの判断は、「前倒し可能な日数」を算出し、その日数が1日以上であれば前倒しが可能であると判断する。
「前倒し可能な日数」の算出は、以下の様に行なう。
前倒し可能日数算出式1:
前倒し可能日数=「現在チェックアウト予約日付」
−「直前フローチェックイン予定日付」
上記のような式で差の日数を求める。なお、値がマイナスとなる場合は「0日」とする。
前倒し可能日数算出式2:
前倒し可能日数=「現在チェックアウト予約日付」
−「直前予約チェックイン予定日付」
上記のような式で差の日数を求める。なお、値がマイナスとなる場合は「0日」とする。
又、前記ステップS4908において「直前予約チェックイン予定日付」が<該当日付無し>となっている場合は、差の日数は「前倒し実施日数」と等しいとする。
上記の「前倒し可能日数算出式1」、「前倒し可能日数算出式2」で求められる差の日数、及び「前倒し実施日数」の3つの日数を比較して、最も短い日数が「前倒し可能な日数」となる。
上記の様にして求められた「前倒し可能な日数」が1日以上である場合は、前倒しが可能であるとして次のステップS4910に進む。「前倒し可能な日数」が1日未満であった場合には、前倒しは不可能であるとしてステップS4911に進む。
ステップS4910においては、処理対象となるレコード2855から予約ID2854を取得して、チェックアウト情報操作部2704に対して、以下の条件に合致するチェックアウト予約情報2831の取得を指示する。
検索条件:
予約ID2854=予約ID2832
条件を満たすレコード2839が取得されたら、まずそのチェックアウト予約日付とチェックイン予定日付を「前倒し可能な日数」だけ前にずらし、レコード2839を更新する。
ステップS4911においては、ステップ4905で破棄されずに残ったレコード2855の次のレコードが残っているのであれば、ステップS4907に戻って処理を繰り返す。レコードが残っていない場合はこのフローを終了する。
(文書管理装置101におけるチェックイン実処理例)
図50は、図1に記載された文書管理装置101による文書チェック処理の手順例を示すフローチャートである。
図50は、前記図48でのチェックイン実行処理フローの中から起動される。図50は、文書管理装置101の文書チェックイン処理制御部2712によって文書のチェックイン実処理を行うための処理フローを表したものであり、本処理は図2のCPU201によって実行される。
本処理に必要な入力データは、チェックアウト対象になる文書ID、入力画面で指定された登録文書ファイル、および操作を行っているユーザIDである。
図50に示すとおり、ステップS5001において、以下の検索条件に合致するチェックアウト情報2821を検索し取得する。
検索条件:
文書ID2822=入力データ「文書ID」
上記検索条件での情報取得処理が終了したら、次のステップS5002へ進む。
ステップS5002において、前記ステップS5001で取得したチェックアウト情報2821のレコードが存在するかどうかのチェックを行う。チェックアウト中であれば該当するレコードが存在するはずであり、存在している場合には次のステップS5003に進む。存在しない場合にはエラーとして次のステップS5008へ進む。ステップS5003において、前記ステップS5001にて取得したチェックアウト情報2821のレコードのチェックアウトユーザID2824が入力として渡された操作を行っているユーザIDと同一かどうかをチェックする。同一でない場合には、不正なチェックインアクセスであるためエラーとし、次のステップS5008へ進む。同一ユーザIDである場合には、次のステップS1604へ進む。ステップS5004において、入力データとして渡された登録文書ファイルが存在するかどうかを確認する。文書ファイルが存在しない場合にはエラーとし、次のステップS5008へ進む。存在する場合には、次のステップS5005へ進む。
ステップS5005において、チェックインの処理として指定文書のバージョン追加処理を行う。そのため、まず、チェックアウト情報操作部2704から入力データの文書IDをキーにして、チェックアウト情報保管部303に保存してあるバージョン情報から最新バージョンのバージョン番号を取得する。次に、その最新バージョンをインクリメントした値を新規バージョンのバージョン番号とし、新規バージョン情報2811のレコードを作成する。
この新規レコードには、以下の情報を指定する。文書ID2812には入力データの文書ID、バージョンID2813には前記インクリメントした新規バージョン番号を指定する。また、登録日付2814には処理実行日付、登録ユーザIDには入力データの操作ユーザID、ファイル実体2816には入力データの登録文書ファイルを指定する。これらのデータによって作成されたレコードは、文書チェックイン処理制御部2712から文書情報操作部2702の新規バージョン追加操作により文書情報保管部2701に新規登録される。バージョン情報レコードの登録が終了したら、次のステップS5006に進む。
ステップS5006においては、バージョン追加に伴う関係情報の更新を行う。まず、前記ステップS5001で取得したレコードを、文書チェックイン処理制御部2712からのチェックアウト情報操作部2704の情報削除操作によりチェックアウト情報保管部2703から削除する。次に、文書情報操作部2702の文書情報取得操作により、文書情報保管部2701から入力データである文書IDに合致する文書情報2801のレコードを取得する。この取得したレコードのステータス2804の値を「正常」に変更して、文書チェックイン処理制御部2712から文書情報操作部2702の文書情報更新操作により文書情報保管部2701に存在する同一文書IDのレコードを更新する。本ステップにおける前記更新処理が終了したら、次のステップS5007に進む。
ステップS5007において、前記ステップS5005からステップS5006までに行った更新作業を確定する。情報の確定処理が終了したら、本処理を終了する。
ステップS5008において、前記各ステップで発生したエラー処理を行い、エラーを処理起動元に通知して本処理を終了する。
なお、本実施形態で示した装置の構成例や、情報の形式例、フローチャートの手順例は、本発明を実現する一例であって、これに限定されない変更が可能であり、それも本発明に含まれる。
又、本発明は、複数の機器(例えばホストコンピュータ、インターフェース機器、プリンタなど)から構成されるシステムあるいは統合装置に適用しても、ひとつの機器からなる装置に適用してもよい。
又、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
又、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行う。このような処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。