(57)【特許請求の範囲】
【請求項１】
ネットワークを介して複数のユーザからアクセスが可能な電子ファイルを共有文書として保管部に保管して管理する文書管理装置であって、
前記複数のユーザのいずれかのユーザの指示に基づいて、当該ユーザによる当該共有文書の更新を可能とし且つ他のユーザによる当該共有文書の更新を不可能にするための排他状態を当該共有文書に対して設定するチェックアウト処理の開始日時を、チェックアウト開始日時として予約するチェックアウト開始日時予約手段と、
当該共有文書に前記排他状態を設定する前記チェックアウト開始日時に達した場合に、当該チェックアウト開始日時の予約がなされた共有文書に対して、前記ユーザによる更新を可能とし且つ前記他のユーザによる更新を不可能とする排他状態に設定するチェックアウト手段と、
前記排他状態を設定したユーザの指示に従って、当該共有文書の排他状態を解除するチェックイン手段と
を有し、
前記チェックアウト開始日時予約手段は、
前記チェックアウト開始日時よりも後で、前記チェックイン手段により前記共有文書の排他状態を解除するチェックイン予定日時を予約するチェックイン予定日時予約手段と、
前記共有文書に対する前記チェックアウト開始日時から前記チェックイン予定日時までのチェックアウト実施予定期間を、既に当該共有文書に対して他のユーザによって指定されたチェックアウト実施予定期間と比較する比較手段と、
前記比較手段による比較の結果からチェックアウト実施予定期間が重複している場合には、チェックアウト開始日時およびチェックイン予定日時の指定をエラーと判断する判断手段と
を有することを特徴とする文書管理装置。
【請求項２】
前記チェックアウト手段は、チェックアウト開始日時の予約なしにユーザからチェックアウトの指示がなされた場合、既に当該共有文書に対して他のユーザによって指定されたチェックアウト実施予定期間と重複しなければ、当該チェックアウトの指示がなされた共有文書に対して、当該ユーザによる更新を可能とし且つ他のユーザによる更新を不可能にする排他状態を設定するチェックアウト開始手段を更に有することを特徴とした請求項１に記載の文書管理装置。
【請求項３】
前記共有文書に対して予約されている、すべてのチェックアウト開始日時とチェックイン予定日時の期間の表示を端末に指示する指示手段を更に有することを特徴とする請求項１または２に記載の文書管理装置。
【請求項４】
前記共有文書に対して予約されているチェックアウト開始日時とチェックイン予定日時の情報を削除する削除手段を更に有することを特徴とする請求項１乃至３のいずれか１項に記載の文書管理装置。
【請求項５】
排他状態を設定している共有文書に対して排他状態の解除が実施された場合に、当該共有文書に対して予約されている全てのチェックアウト開始日時の中で、前記チェックイン予定日時に最も近い後続の予約のチェックアウト開始日時を、排他状態の解除が実施された直後の日時に変更するチェックアウト開始日時変更手段を更に有することを特徴とする請求項１乃至４のいずれか１項に記載の文書管理装置。
【請求項６】
前記共有文書に対してチェックアウト開始日時を指定する際に、前記チェックアウト開始日時変更手段を用いたチェックアウト開始日時の変更を行うか否かを、ユーザからの指定に対応して選択する選択手段を更に有することを特徴とする請求項５に記載の文書管理装置。
【請求項７】
同一ユーザが共有文書に対して指定したチェックアウト開始日時とチェックイン予定日時で表されるチェックアウト実施予定期間を少なくとも２つ含むチェックアウト予約のグループを作成し、作成された前記チェックアウト予約のグループを管理するグループ管理手段を更に有することを特徴とする請求項１に記載の文書管理装置。
【請求項８】
前記グループ管理手段は、各ユーザが少なくとも２つのチェックアウト予約のグループを持てるよう管理することを特徴とする請求項７に記載の文書管理装置。
【請求項９】
前記グループ管理手段は、同一のチェックアウト予約のグループにおいて、当該グループに属する各々のチェックアウト開始日時とチェックイン予定日時で表されるチェックアウト実施予定期間が重複しないようにするチェックアウト実施予定期間チェック手段を有することを特徴とする請求項７に記載の文書管理装置。
【請求項１０】
前記グループ管理手段は、同一のチェックアウト予約のグループにおいて、チェックイン予定日時より前にチェックインがあった場合に、当該グループに属する各々のチェックアウト開始日時とチェックイン予定日時で表されるチェックアウト実施予定期間が重複しないように、後続のチェックアウト予定のチェックアウト実施予定期間を変更する第１のチェックアウト実施予定期間変更手段を有することを特徴とする請求項７に記載の文書管理装置。
【請求項１１】
前記グループ管理手段は、
チェックアウト予約のグループが望む順に共有文書に対するチェックアウト予定を挿入する挿入手段と、
チェックアウト予約のグループから共有文書に対するチェックアウト予定を削除するチェックアウト予約削除手段と
を更に有することを特徴とする請求項７に記載の文書管理装置。
【請求項１２】
前記挿入手段は、共有文書に対するチェックアウト予定を挿入する前に、該チェックアウト予定の挿入が可能か否かをチェックアウト実施予定期間に基づいて判断する判定手段を有することを特徴とする請求項１１に記載の文書管理装置。
【請求項１３】
前記チェックアウト予約削除手段が共有文書に対するチェックアウト予定を削除した後に、後続のチェックアウト予定のチェックアウト実施予定期間を変更する第２のチェックアウト実施予定期間変更手段を有することを特徴とする請求項１１に記載の文書管理装置。
【請求項１４】
少なくとも１つのクライアント装置と、該クライアント装置よりネットワークを介して複数のユーザからアクセスが可能な電子ファイルを共有文書として保管部に保管して管理する文書管理装置とを有する文書管理システムであって、
前記複数のユーザのいずれかのユーザの指示に基づいて、当該ユーザによる当該共有文書の更新を可能とし且つ他のユーザによる当該共有文書の更新を不可能にするための排他状態を当該共有文書に対して設定するチェックアウト処理の開始日時を、チェックアウト開始日時として予約するチェックアウト開始日時予約手段と、
当該共有文書に前記排他状態を設定する前記チェックアウト開始日時に達した場合に、当該チェックアウト開始日時の予約がなされた共有文書に対して、前記ユーザによる更新をアクセスが可能とし且つ前記他のユーザによる更新を不可能とする排他状態に設定するチェックアウト手段と、
前記排他状態を設定したユーザの指示に従って、当該共有文書の排他状態を解除するチェックイン手段と、
前記チェックアウト開始日時よりも後で、前記チェックイン手段により前記共有文書の排他状態を解除するチェックイン予定日時を予約するチェックイン予定日時予約手段と、
前記共有文書に対する前記チェックアウト開始日時から前記チェックイン予定日時までのチェックアウト実施予定期間を、既に当該共有文書に対して他のユーザによって指定されたチェックアウト実施予定期間と比較する比較手段と、
前記比較手段による比較の結果からチェックアウト実施予定期間が重複している場合には、チェックアウト開始日時およびチェックイン予定日時の指定をエラーと判断する判断手段と
を有することを特徴とする文書管理システム。
【請求項１５】
ネットワークを介して複数のユーザからアクセスが可能な電子ファイルを共有文書として保管部に保管して管理する文書管理方法であって、
チェックアウト開始日時予約手段が、前記複数のユーザのいずれかのユーザの指示に基づいて、当該ユーザによる当該共有文書の更新を可能とし且つ他のユーザによる当該共有文書の更新を不可能にするための排他状態を当該共有文書に対して設定するチェックアウト処理の開始日時を、チェックアウト開始日時として予約するチェックアウト開始日時予約工程と、
チェックアウト手段が、当該共有文書に前記排他状態を設定する前記チェックアウト開始日時に達した場合に、当該チェックアウト開始日時の予約がなされた共有文書に対して、前記ユーザによる更新を可能とし且つ前記他のユーザによる更新を不可能とする排他状態に設定するチェックアウト工程と、
チェックイン手段が、前記排他状態を設定したユーザの指示に従って、当該共有文書の排他状態を解除するチェックイン工程と、
チェックイン予定日時予約手段が、前記チェックアウト開始日時よりも後で、前記チェックイン工程により前記共有文書の排他状態を解除するチェックイン予定日時を予約するチェックイン予定日時予約工程と、
比較手段が、前記共有文書に対する前記チェックアウト開始日時から前記チェックイン予定日時までのチェックアウト実施予定期間を、既に当該共有文書に対して他のユーザによって指定されたチェックアウト実施予定期間と比較する比較工程と、
判断手段が、前記比較工程での比較の結果からチェックアウト実施予定期間が重複している場合には、チェックアウト開始日時およびチェックイン予定日時の指定をエラーと判断する判断工程と、
を有することを特徴とする文書管理方法。
【請求項１６】
チェックアウト開始日時変更手段が、排他状態を設定している共有文書に対して排他状態の解除が実施された場合に、当該共有文書に対して予約されている全てのチェックアウト開始日時の中で、前記チェックイン予定日時に最も近い後続の予約のチェックアウト開始日時を、排他状態の解除が実施された直後の日時に変更するチェックアウト開始日時変更工程を更に有することを特徴とする請求項１５に記載の文書管理方法。
【請求項１７】
同一ユーザが共有文書に対して指定したチェックアウト開始日時とチェックイン予定日時で表されるチェックアウト実施予定期間を少なくとも２つ含むチェックアウト予約のグループを作成し、作成された前記チェックアウト予約のグループを管理するグループ管理工程を更に有することを特徴とする請求項１５または１６に記載の文書管理方法。
【請求項１８】
請求項１乃至１３のいずれか１項に記載の各手段としてコンピュータを機能させるためのコンピュータプログラム。
【請求項１９】
請求項１８に記載のコンピュータプログラムを記憶したコンピュータで読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書管理方法及びその装置に関する。特に、ネットワーク上のクライアント装置から同じネットワーク上で管理されている文書情報を更新することの可能な文書管理システムにおける文書管理方法およびその装置に関するものである。
【背景技術】
【０００２】
インターネットやイントラネットなどネットワークで接続された環境における文書を共有する方法が知られている。例えば、ＰＣなどのクライアント装置上でＷｅｂブラウザや専用クライアントソフトウェアを使用して、文書管理ソフトウェアが構築された文書管理装置上で管理されている文書情報や文書ファイルの登録／更新／削除／取得を行なうものが存在する。
【０００３】
これら一般的な文書管理装置を使用するためには、装置で管理されるユーザ情報に登録を行い、そこで発行されるユーザＩＤ／パスワードなどのユーザ識別情報により認証される必要がある。ここで認証されたユーザ情報は、文書閲覧のアクセス権チェックに使用されるだけでなく、文書情報や文書ファイルを登録／更新する際には、認証されたユーザ情報を扱う文書情報に関連付けて記憶しておくことで操作記録を残すことができる。
【０００４】
また、一般的な更新方法としては、文書を指定して「チェックアウト」と呼ばれる文書更新の宣言を行い、他のユーザによる更新を排除する。そして、チェックアウトした文書を修正した後、修正後の文書を指定してチェックイン処理を行うという手順を介して行われる。つまり、チェックアウトされている状態の文書は、他のユーザによる当該文書の更新が行われないように、排他状態に設定されており、チェックイン処理が行われるのに応じて当該排他状態の設定が解除される。これらの機能を有している文書管理装置はすでに多く存在しており、既知の物となっている。
【特許文献１】特開平１１−０８５５９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、更新をするために文書のチェックアウトをしている間は、他のユーザの更新処理を排除している。そのため、排除されたユーザは、チェックアウト中のユーザがチェックインもしくは解除を行うまでの間、対象の文書を更新することができずに待ち状態となる。作業者が期日を決めてある文書の更新作業を予定していた期間に他のユーザがその文書をチェックアウトしている場合、作業の効率が悪くなってしまうという問題が発生する。すなわち、作業者は、チェックアウトをしている他のユーザがその文書をチェックインし、自分がその文書をチェックアウト可能になるまでの間、作業が停滞してしまう。
【０００６】
また、個々のユーザは、他のユーザがどの文書をいつチェックアウトするのか、チェックアウト中の文書をいつチェックインするのかという、他のユーザの予定を知ることができない。従って、例えば他のユーザによってチェックアウトされている文書を、そのユーザがチェックインしたら次は自分がチェックアウトしたいと考えているユーザがいたとする。しかしながら、自分以外にも次にチェックアウトしたいと考えているユーザがいる場合もあるので、そのユーザに先にチェックアウトされてしまう可能性もある。そのため、作業を行う前には、文書が開放されたかどうかを常にチェックしておく必要が発生し、ユーザの作業効率を著しく下げてしまう。
【０００７】
また、複数の文書を更新する必要があるような場合にも問題がある。通常、１ユーザが複数の文書を更新する場合、文書のチェックアウト、文書の更新作業、文書のチェックインという作業を複数回繰り返すことになる。しかし、前述してきたように他のユーザに目的の文書をチェックアウトされてしまっていることがおきやすい状況にある場合には、次のような方法で他のユーザにチェックアウトされないようにするケースが増えてしまう。すなわち、まず最初に更新対象の全ての文書をまとめてチェックアウトしてしまい、その後に各文書に対して、文書の更新作業、文書のチェックインという作業を繰り返す方法である。
【０００８】
しかし、このようなまとめてチェックアウトする方法では、チェックアウトが行われてから実際にその文書の更新作業を行う順番が来るまで、文書はチェックアウトされたまま放置されている。更新作業を行う順番が後ろになる文書ほど放置される期間は長くなる。この放置される期間は実際にはチェックアウトしていなくてもよい期間である。つまり、ユーザがまとめてチェックアウトする方法を行うと、チェックアウトされる期間が必要以上に長くなる文書が増え、結果的にその文書を更新したい他のユーザがチェックアウトを実行する機会を奪っていることになる。すなわち、他のユーザの作業効率を必要以上に下げている結果になる。
【０００９】
本発明は、上記従来技術の課題を解決するためになされたもので、その目的とするところは、文書作業を行うための予約を可能として、ユーザ全体の作業効率を下げない文書管理方法およびその装置を提供することにある。
【課題を解決するための手段】
【００１０】
上述したような問題を解決するために、本発明の文書管理装置は、ネットワークを介して複数のユーザからアクセスが可能な電子ファイルを共有文書として保管部に保管して管理する文書管理装置であって、前記複数のユーザのいずれかのユーザの指示に基づいて、当該ユーザによる当該共有文書の更新を可能とし且つ他のユーザによる当該共有文書の更新を不可能にするための排他状態を当該共有文書に対して設定するチェックアウト処理の開始日時を、チェックアウト開始日時として予約するチェックアウト開始日時予約手段と、当該共有文書に前記排他状態を設定する前記チェックアウト開始日時に達した場合に、当該チェックアウト開始日時の予約がなされた共有文書に対して、前記ユーザによる更新を可能とし且つ前記他のユーザによる更新を不可能とする排他状態に設定するチェックアウト手段と、前記排他状態を設定したユーザの指示に従って、当該共有文書の排他状態を解除するチェックイン手段とを有し、前記チェックアウト開始日時予約手段は、前記チェックアウト開始日時よりも後で、前記チェックイン手段により前記共有文書の排他状態を解除するチェックイン予定日時を予約するチェックイン予定日時予約手段と、前記共有文書に対する前記チェックアウト開始日時から前記チェックイン予定日時までのチェックアウト実施予定期間を、既に当該共有文書に対して他のユーザによって指定されたチェックアウト実施予定期間と比較する比較手段と、前記比較手段による比較の結果からチェックアウト実施予定期間が重複している場合には、チェックアウト開始日時およびチェックイン予定日時の指定をエラーと判断する判断手段とを有することを特徴する。
【００１５】
更に、上記文書管理方法の工程をコンピュータに実行させるためのコンピュータプログラム、及び該コンピュータプログラムを記憶したコンピュータで読み取り可能な記憶媒体を提供する。
【発明の効果】
【００１６】
本発明により、文書作業を行うための予約を可能として、ユーザの作業効率を下げない文書管理方法およびその装置を提供できる。
【００１７】
すなわち、ユーザがチェックアウトを予約する手段を文書管理装置に用意することによって、文書に対する作業を行うタイミングによる制限を受けなくなり、極力滞りないスムーズな文書管理を行うことができる。
【００１８】
また、複数のチェックアウトの予約を１つのフローとして管理する手段と、実際の作業状況に合わせてチェックアウト予約を修正する手段を文書管理装置に用意する。これによって、複数文書のチェックアウト予約作業を容易にするだけではなく、実際の作業状況に合わせたチェックアウト予約の管理を行うことができる。
【発明を実施するための最良の形態】
【００１９】
以下に、図面を参照して、本発明の最良の実施形態を例示的に詳しく説明する。但し、この実施形態に記載されている構成要素のうち、相的配置、データ内容などは、特に特定的な記述を行わない限りはこの発明の範囲をそれらにより限定する趣旨のものではない。
【００２０】
［実施形態１］
以下に、本発明に係わる実施形態１の文書管理装置について説明する。
【００２１】
＜本実施形態の文書管理システムの構成例＞
図１は、本実施形態の文書管理装置を含むシステム全体の構成例を示すブロック図である。
【００２２】
本文書管理システムは、電子ファイルである文書を統合的に管理する文書管理装置１０１と、前記文書管理装置１０１の文書情報の表示／登録／更新／削除などの操作を行う窓口となるクライアント装置１０２とを有する。文書管理装置１０１とクライアント装置（端末）１０２とはネットワーク１０３を介して接続される。
【００２３】
クライアント装置１０２は、ネットワーク１０３内において１つに限定されるものではなく、複数存在することも可能である。ネットワーク１０３は、複数の機器を接続するためのインフラであり、イーサネット（登録商標）などのネットワークシステムを指す。このネットワーク１０３は、ＬＡＮ（ローカルエリアネットワーク）、ＷＡＮ（ワイドエリアネットワーク）として使用される。
【００２４】
また、文書管理装置１０１で管理する文書データの格納先は、文書管理装置１０１内、もしくはネットワーク１０３内に独立したストレージ機器として存在していてもよく、文書管理装置１０１からアクセスできるようになっていればよい。本実施形態では、文書管理装置１０１内に存在するものとして説明する。文書管理装置１０１で管理する文書データは、複数のユーザにより共有できる共有文書として管理される。
【００２５】
＜本実施形態の文書管理装置の構成例＞
（文書管理装置のハードウエア構成例）
文書管理装置１０１のハードウェア構成について、ブロック図である以下の図２を参照して説明する。
【００２６】
図２に示すとおり、文書管理装置１０１は、ＣＰＵ２０１と、ＲＡＭ２０２と、ＲＯＭ２０３と、ＮＩＣ２０５と、ＶＲＡＭ２０８と、ＫＢＣ２１０と、ＨＤＤ２１３と、ＩＯＣ２１４とを備える。そして、これらのユニットを、各種データや制御情報などを伝送するシステムバス２００が接続している。
【００２７】
ＣＰＵ２０１は、文書管理装置１０１の各種制御および演算を行う中央演算処理装置である。ＲＡＭ２０２はランダムアクセスメモリであり、ＣＰＵ２０１の主メモリとして実行プログラムの格納領域や、該実行プログラムの実行領域や、データの格納領域を提供する。なお、本実施形態の文書管理装置は、実行プログラムをコンピュータに実行させることにより、当該コンピュータを、後述する本発明の各処理部（図３参照）として機能させることができる。なお、本発明の各処理部による処理は後述するフローチャートの各ステップを実行することにより行われる。なお、本実施形態では、コンピュータプログラムを実行させることにより各処理部を実現させるものとするが、これに限るものではなく、その一部または全部を専用の電子回路（ハードウエア）で実現するようにしてもよい。
【００２８】
ＲＯＭ２０３は、ＣＰＵ２０１の動作処理手順を記憶している読み取り専用メモリであり、文書管理装置１０１の各ユニットの制御を行う基本プログラム（一般的にＢＩＯＳと呼ばれる）や、システムを稼動させるために必要な情報等を記憶する。
【００２９】
ＮＩＣ２０５は、外部ネットワークとの間の入出力信号を制御するためのコントローラである。このＮＩＣ２０５は、モデム２０６や、ネットワーク１０３に接続するために使用される通信用のコントローラである。モデム２０６は、ＮＩＣ２０５と接続されており、モデムやＩＳＤＮ接続用のターミナルアダプタといった公衆回線を使用して他装置とのデータ送受信を行う通信機器である。
【００３０】
ＶＲＡＭ２０８は、ビデオＲＡＭであり、ＣＲＴ２０９に表示する画像データを展開し、表示の制御を行う。ＣＲＴ２０９は、ＶＲＡＭ２０８と接続され文書管理装置１０１の各種情報を表示する表示装置である。ＣＲＴ２０９は、文書管理装置１０１内に内包する、もしくは文書管理装置１０１とは筐体が分離した状態で使用される。この表示装置は、液晶表示装置もしくはタッチパネル式液晶表示装置などを使用することも可能である。
【００３１】
ＫＢＣ２１０は、文書管理装置１０１接続されたＫＢ２１１やＭＯＵＳＥ２１２等の入力装置からの入力信号を受信し、制御するコントローラである。ＫＢ２１１およびＭＯＵＳＥ２１２は、ユーザからの入力情報を受け付ける入力装置である。これら入力装置のかわりに前述のタッチパネル式液晶表示装置の入力部を利用することも可能である。
【００３２】
ＨＤＤ２１３は、ハードディスクドライブであり、文書管理装置１０１内で使用するアプリケーションプログラムや、文書データ、各種管理データなどを格納するために使用される。
【００３３】
ＩＯＣ２１４は、情報入力装置であるスキャナ２１６や出力装置であるＰＲＴ２１５など文書管理装置１０１への入出力信号を制御するためのコントローラである。前記スキャナ２１６、ＰＲＴ２１５以外の外部入出力装置、例えば外部接続用ＨＤＤや、ＭＯドライブなどの情報機器を接続することも可能である。ＰＲＴ２１５は、文書管理装置１０１内で保持している電子画像データを印刷するためのプリンタである。スキャナ２１６は、紙原稿の紙面に記述されている内容を電子画像データとして読み取るための読取装置である。
【００３４】
（文書管理装置の機能構成例）
次に、文書管理装置１０１の機能構成について、そののブロック図である図３を参照して説明する。なお、チェックアウトとは、他のユーザの共有文書へのアクセスの排他状態の設定を意味し、チェックインとは、排他状態の解除を意味する。
【００３５】
図３に示すとおり、文書管理装置１０１は、以下の要素から構成される。
【００３６】
まず情報処理部として、文書情報保管部３０１と文書情報操作部３０２とを有する。また、チェックアウト情報保管部３０３と、チェックアウト情報操作部３０４と、チェックアウト予約情報保管部３０５と、チェックアウト予約情報操作部３０６とを有する。また、ユーザ情報保管部３０７とユーザ情報操作部３０８とを有する。
【００３７】
次に、処理制御部として、文書チェックアウト処理制御部３０９と、文書チェックイン処理制御部３１０と、文書チェックアウト予約処理制御部３１１と、ユーザ認証処理制御部３１２とを有する。
【００３８】
更に、ネットワーク通信部３１４と、文書情報処理制御部３１５と、表示内容生成部３１６とを有する。
【００３９】
文書情報保管部３０１は、登録された文書情報や文書ファイルを格納しておく場所であり、ＲＡＭ２０２もしくはＨＤＤ２１３に確保される。文書情報操作部３０２は、ＲＡＭ内に格納されてＣＰＵ２０１で実行される実行可能プログラムで構成され、登録／更新／削除／取得といった文書情報や文書ファイルの入出力処理を文書情報保管部３０１に対して行う。
【００４０】
チェックアウト情報保管部３０３は、文書情報保管部３０１に保管されている文書に対して、チェックアウト時の情報を格納しておく場所であり、ＲＡＭ２０２もしくはＨＤＤ２１３に確保される。チェックアウト情報操作部３０４は、ＲＡＭ内に格納されてＣＰＵ２０１で実行される実行可能プログラムで構成され、登録／更新／削除／取得と言ったチェックアウト情報の入出力処理をチェックアウト情報保管部３０３に対して行う。
【００４１】
チェックアウト予約情報保管部３０５は、文書情報保管部３０１に保管されている文書に対して行われるチェックアウト予約情報を格納しておく場所であり、ＲＡＭ２０２もしくはＨＤＤ２１３に確保される。チェックアウト予約情報操作部３０６は、ＲＡＭ内に格納されてＣＰＵ２０１で実行される実行可能プログラムで構成され、登録／更新／削除／取得といったチェックアウト予約情報の入出力処理をチェックアウト予約情報保管部３０５に対して行う。
【００４２】
ユーザ情報保管部３０７は、文書管理装置１０１を利用するユーザの情報を格納しておく場所であり、ＲＡＭ２０２もしくはＨＤＤ２１３内に確保される。ユーザ情報操作部３０８は、ＲＡＭ２０２内に格納されてＣＰＵ２０１で実行される実行可能プログラムで構成され、登録／更新／削除／取得と言ったユーザ情報の入出力処理をユーザ情報保管部３０７に対して行う。
【００４３】
文書チェックアウト処理制御部３０９は、文書情報操作部３０２と、チェックアウト情報操作部３０４と、チェックアウト予約情報操作部３０６と、ユーザ情報操作部３０８と、表示内容生成部３１６とを使用する。そして、クライアント装置１０２から送信される文書チェックアウト処理依頼に対してチェックアウト処理の制御を行う。
【００４４】
文書チェックイン処理制御部３１０は、文書情報操作部３０２と、チェックアウト情報操作部３０４と、チェックアウト予約情報操作部３０６と、ユーザ情報操作部３０８と、表示内容生成部３１６とを使用する。そして、クライアント装置１０２から送信される文書チェックイン処理依頼に対してチェックイン処理の制御を行う。
【００４５】
文書チェックアウト予約処理制御部３１１は、文書情報操作部３０２と、チェックアウト情報操作部３０４と、チェックアウト予約情報操作部３０６と、ユーザ情報操作部３０８と、表示内容生成部３１６とを使用する。そして、クライアント装置１０２から送信される文書チェックアウト予約処理依頼に対してチェックアウト予約処理の制御を行う。かかる文書チェックアウト予約処理制御部３１１が、チェックアウト開始日時予約手段やチェックイン予定日時予約手段に相当する。
【００４６】
ユーザ認証処理制御部３１２は、ユーザ情報操作部３０６と、表示内容生成部３１６とを使用して、クライアント装置１０２から文書管理装置１０１に接続を行う際のユーザ認証処理を行う。
【００４７】
ネットワーク通信部３１４は、モデム２０６もしくはＮＩＣ２０５でネットワーク１０３に接続され、ネットワーク１０３を経由して前記クライアント装置１０２から受信した処理要求を文書管理装置１０１内の各処理制御部へ処理を通知する。また、文書管理装置１０１内の各制御部からの処理結果をクライアント装置１０２に対して送信する。
【００４８】
文書情報処理制御部３１５は、文書情報操作部３０２と、チェックアウト情報操作部３０４と、チェックアウト予約情報操作部３０６とを使用する。そして、クライアント装置１０２に対して送信する後述の文書情報詳細表示画面８０１の表示内容の生成処理を行う。
【００４９】
表示内容生成部３１６は、クライアント装置１０２に対して提供する文書管理を行うための画面上の表示内容についての生成および整形を行う。ここは、特にクライアント側の表示形態に合わせて提供するもので、例えばＨＴＭＬなどのハイパーテキスト形式や、専用クライアントソフトに対するバイナリ形式などでの生成を行うことを想定している。
【００５０】
＜本実施形態のクライアント装置の構成例＞
（クライアント装置のハードウエア構成例）
図１のクライアント装置１０２のハードウエア構成について、ブロック図である図４を参照して説明する。
【００５１】
図４に示すとおり、クライアント装置１０２は、ＣＰＵ４０１と、ＲＡＭ４０２と、ＲＯＭ４０３と、ＮＩＣ４０５と、ＶＲＡＭ４０８と、ＫＢＣ４１０と、ＨＤＤ４１３と、ＩＯＣ４１４とを備える。そして、これらのユニットは、各種データや制御情報などを伝送するシステムバス４００で接続される。
【００５２】
ＣＰＵ４０１は、クライアント装置１０２の各種制御および演算を行う中央演算処理装置である。ＲＡＭ４０２は、ランダムアクセスメモリであり、ＣＰＵ４０１の主メモリとして実行プログラムの格納領域や、該実行プログラムの実行領域や、データの格納領域を提供する。ＲＯＭ４０３は、ＣＰＵ４０１の動作処理手順を記憶している読み取り専用メモリであり、クライアント装置１０２の各ユニットの制御を行う基本プログラム（一般的にＢＩＯＳと呼ばれる）や、システムを稼動させるために必要な情報等を記憶する。
【００５３】
ＮＩＣ４０５は、外部ネットワークとの間の入出力信号を制御するためのコントローラである。このＮＩＣ４０５は、モデム４０６や、ネットワーク１０３に接続するために使用される通信用のコントローラである。モデム４０６は、ＮＩＣ４０５と接続されており、モデムやＩＳＤＮ接続用のターミナルアダプタといった公衆回線を使用して他装置とのデータ送受信を行う通信機器である。
【００５４】
ＶＲＡＭ４０８は、ビデオＲＡＭであり、ＣＲＴ４０９に表示する画像データを展開し、表示の制御を行う。ＣＲＴ４０９は、ＶＲＡＭ４０８と接続されクライアント装置１０２の各種情報を表示する表示装置である。ＣＲＴ４２０９はクライアント装置１０２内に内包する、もしくはクライアント装置１０２とは筐体が分離した状態で使用される。この表示装置は、液晶表示装置もしくはタッチパネル式液晶表示装置などを使用することも可能である。
【００５５】
ＫＢＣ４１０は、クライアント装置１０２に接続されたＫＢ４１１やＭＯＵＳＥ４１２等の入力装置からの入力信号を受信し、制御するコントローラである。ＫＢ４１１、およびＭＯＵＳＥ４１２は、ユーザからの入力情報を受け付ける入力装置である。これら入力装置のかわりに前述のタッチパネル式液晶表示装置の入力部を利用することも可能である。
【００５６】
ＨＤＤ４１３は、ハードディスクドライブであり、クライアント装置１０２内で使用するアプリケーションプログラムや、文書データ、各種管理データなどを格納するために使用される。
【００５７】
ＩＯＣ４１４は、情報入力装置であるスキャナ４１６や、出力装置であるＰＲＴ４１５などクライアント装置１０２への入出力信号を制御するためのコントローラである。前記スキャナ４１６、ＰＲＴ４１５以外の外部入出力装置、例えば外部接続用ＨＤＤや、ＭＯドライブなどの情報機器を接続することも可能である。ＰＲＴ４１５は、クライアント装置１０２内で保持している電子画像データを印刷するためのプリンタである。スキャナ４１６は、紙原稿の紙面に記述されている内容を電子画像データとして読み取るための読取装置である。
【００５８】
（クライアント装置の機能構成例）
次に、クライアント装置１０２の機能構成例について、ブロック図である図５を参照して説明する。
【００５９】
図５に示すとおり、クライアント装置１０２は、表示内容処理制御部５０１と、文書ファイル操作部５０２と、環境情報保管部５０３と、環境情報操作部５０４と、ネットワーク通信部５０５とで構成される。
【００６０】
表示内容処理制御部５０１は、文書管理装置１０１から送信された表示内容を解釈してＣＲＴ４０９上に表示する。また、ＫＢ４１１やＭＯＵＳＥ４１２で入力した文書情報や、文書ファイルを内容をネットワーク通信部５０５を経由して文書管理装置１０１に送信するための処理制御を行う。
【００６１】
文書ファイル操作部５０２は、文書管理装置に登録する文書ファイルを指定するための検索等をＨＤＤ４１３やＲＡＭ４０２、ＮＩＣ４０５経由での外部ディスク等に対して行い、ファイルを指定する
環境情報保管部５０３は、クライアント装置１０２が接続する文書管理装置１０１の接続先情報を格納しておく場所であり、ＲＡＭ４０２もしくはＨＤＤ４１３内に確保される。環境情報操作部５０４は、ＲＡＭ４０２内に格納されてＣＰＵ４０１で実行される実行可能プログラムで構成され、環境情報の入出力処理を環境情報保管部５０３に対して行う。
【００６２】
ネットワーク通信部５０５は、モデム４０６もしくはＮＩＣ４０５でネットワークに接続され、ネットワーク１０３を経由して前記文書管理装置１０１から受信した処理結果を表示内容処理制御部５０１に通知する。また、表示内容処理制御部５０１からの処理依頼内容を文書管理装置１０１に対して送信する。
【００６３】
＜本実施形態で取り扱うデータ形式および構成＞
図６Ａ〜図６Ｅは、本実施形態で使用するデータ形式とその構成を説明したものである。ここで記載しているデータ項目は、本実施形態を説明するにあたって最低限必要な項目で構成されている。
【００６４】
図６Ａと図６Ｂは、図３に示した文書管理装置１０１の文書情報保管部３０１に保管されている情報の形式と構成を表す図である。
【００６５】
図６Ａの文書情報６０１は、文書単位で保持する情報の形式を表している。
【００６６】
文書情報６０１は、文書ＩＤ６０２と文書名称６０３と状態を表すステータス６０４とを項目として構成される表（テーブル）で管理される。ステータス６０４で表されるステータス値には、「正常」「異常」「チェックアウト中」の内いずれかが設定される。
【００６７】
各文書情報は、文書ＩＤ６０２に基づいて一意な情報として特定される。文書情報６０１として保持する１つの単位を、レコード６０５と表現する。
【００６８】
図６Ｂのバージョン情報６１１は、文書更新のたびに変更されるバージョン単位で保持する情報の形式を表している。
【００６９】
バージョン情報６１１は、文書ＩＤ６１２と、バージョンＩＤ６１３と、登録日付６１４と登録ユーザＩＤ６１５とファイル実体６１６を項目として構成される表（テーブル）で管理される。文書ＩＤ６１２は、前記文書情報６０１で規定されている文書ＩＤ６０２と関連づけられている（リンクしている）。
【００７０】
各バージョン情報は、文書ＩＤ６１２とバージョンＩＤ６１３とを用いて特定される。バージョン情報６１１として保持する１つの単位を、レコード６１７と表現する。つまり、同じ文書ＩＤを有する文書情報であっても、バージョンＩＤごとに異なるレコードとしてバージョン情報テーブルに記憶される。
【００７１】
図６Ｃは、図３に示した文書管理装置１０１のチェックアウト情報保管部３０３に保管されている情報の形式と構成を表す図である。
【００７２】
チェックアウト情報６２１は、チェックアウトされている文書に関する情報を文書単位で保持する形式を表す。
【００７３】
チェックアウト情報６２１は、文書ＩＤ６２２と、チェックアウト日付６２３と、チェックアウトユーザＩＤ６２４とを項目として構成される表（テーブル）で管理される。文書ＩＤ６２２は、前記文書情報６０１で規定されている文書ＩＤ６０２と関連付けられている。この表に情報がある文書情報は、現在チェックアウト中であることを意味する。
【００７４】
各チェックアウト情報は、文書ＩＤ６２２で一意な情報を表す。チェックアウト情報６２１として保持する１つの単位を、レコード６２５と表現する。
【００７５】
図６Ｄは、図３に示した文書管理装置１０１のチェックアウト予約情報保管部３０５に保管されている情報の形式と構造を表す図である。
【００７６】
チェックアウト予約情報６３１は、文書ＩＤ６３２、チェックアウト予約日付６３３、予約ユーザＩＤ６３４、チェックイン予定日付６３５、前予約追従フラグ６３６、ステータス６３７とを項目として構成される表（テーブル）で管理される。
【００７７】
文書ＩＤ６３２は、前記文書情報６０１で規定されている文書ＩＤ６０２と関連付けられている。ステータス６３７で表されるステータス値には、「未処理」「処理中」「完了」の内いずれかが設定される。
【００７８】
この表に情報がある文書情報は、現在チェックアウト予約が存在することを意味する。チェックアウト予約情報６３１として保持する１つの単位を、レコード６３８と表現する。
【００７９】
図６Ｅは、図３に示した文書管理装置１０１のユーザ情報保管部３０７に保管されている情報の形式と構成を表す図である。
【００８０】
ユーザ情報６４１は、文書管理装置１０１にアクセスして文書の操作を行うことのできるユーザに関する情報である。
【００８１】
ユーザ情報６４１は、ユーザＩＤ６４２と、ユーザ名称６４３と、メールアドレス６４４とを項目として構成される表（テーブル）で管理される。
【００８２】
各ユーザ情報は、ユーザＩＤ６４２に基づき一意な情報として特定される。ここで定義されるユーザ情報は、前記図６Ｂの登録ユーザＩＤ６１５や図６ＣのチェックアウトユーザＩＤ６２４、図６Ｄの予約ユーザＩＤ６３４で使用される。ユーザ情報６４１として保持する１つの単位を、レコード６４５と表現する。
【００８３】
＜本実施形態の表示画面例＞
次に、本実施形態で使用する画面についての説明を行う。ここで述べる画面については、必要最低限の表示しか行っておらず、これ以外の情報を表示することも可能である。また、以降の図で示す画面構成や、表現方法についても特に本実施形態での記述に限定するものではない事はいうまでもない。
【００８４】
（文書閲覧画面例）
図７は、図１のクライアント装置１０２のＣＲＴ４０９に表示する文書閲覧画面例を示す図である。
【００８５】
図７の文書閲覧画面７０１は、文書管理装置１０１で管理されている文書情報を閲覧する際に使用するものであり、文書情報表示部７０２と、ボタン７０７と、ボタン７０８と、ボタン７０９と、ボタン７１０とで構成される。
【００８６】
文書情報表示部７０２は、文書管理装置１０１で管理されている文書情報の一覧を表示し、文書を識別するための場所であり、表示する文書情報として文書ＩＤ７０３と、文書名称７０４と、ステータス７０５とで構成される。クライアント装置１０２の利用者が文書一覧の中から文書情報を選択すると選択文書７０６のように他の文書と表示が変わり、選択中であることを表す。
【００８７】
ボタン７０７は、選択文書７０６で選択された文書に対して行われているチェックアウト予約の一覧（図９等参照）を表示する処理を起動するボタンである。ボタン７０７を押下することで、文書情報表示部７０２の選択文書７０６の文書情報を文書管理装置１０１の文書チェックアウト予約処理制御部３１１に渡す。
【００８８】
ボタン７０８は、選択文書７０６で選択された文書（ここではチェックアウト中の文書が選択されていたものとする）のチェックイン処理（図１７等参照）を起動するボタンである。ボタン７０８を押下することで、文書情報表示部７０２の選択文書７０６の文書情報を文書管理装置１０１の文書チェックイン処理制御部３１０に渡す。
【００８９】
ボタン７０９は、選択文書７０６で選択された文書（ここではチェックアウトされていない正常な文書が選択されていたものとする）のチェックアウト処理を起動するボタンである。ボタン７０９を押下することで、文書情報表示部７０２の選択文書７０６の文書情報を文書管理装置１０１の文書チェックアウト処理制御部３０９に渡す。
【００９０】
ボタン７１０は、選択文書７０６で選択された文書の詳細情報（図８等参照）の表示処理を起動するボタンである。ボタン７１０を押下することで文書情報表示部７０２の選択文書７０６の情報を文書管理装置１０１の文書情報処理制御部３１５に渡す。
【００９１】
（文書情報詳細表示画面例）
図８は、図１のクライアント装置１０２のＣＲＴ４０９に表示する文書情報詳細表示画面例を示す図である。
【００９２】
図８の文書情報詳細表示画面８０１は、図７でボタン７１０が押下されたとき、文書閲覧画面７０１で選択された選択文書７０６の詳細な情報を表示するために使用するものである。文書情報詳細表示画面８０１は、文書情報表示部８０２と、文書バージョン情報表示部８０８と、ボタン８１２とで構成される。
【００９３】
文書情報表示部８０２は、文書の保持する情報や状態を表示するための場所であり、文書ＩＤ８０３と、文書名称８０４と、ステータス８０５と、チェックアウト日付８０６と、チェックアウトユーザ８０７とで構成される。チェックアウト日付８０６と、チェックアウトユーザ８０７については、ステータス８０５が「チェックアウト中」になっている場合のみ表示される。
【００９４】
文書バージョン情報表示部８０８は、文書が更新してきたバージョン情報の履歴を表示するための場所であり、バージョンＩＤ８０９と、登録日付８１０と、登録ユーザ８１１とで構成される。
【００９５】
ボタン８１２は、本画面を終了させるためのボタンであり、押下することで前記図７の文書閲覧画面７０１に戻る。
【００９６】
（チェックアウト予約一覧画面例）
図９は、図１のクライアント装置１０２のＣＲＴ４０９に表示するチェックアウト予約一覧画面９０１の例を示す図である。
【００９７】
図９のチェックアウト予約一覧画面９０１は、図７でボタン７０７が押下されたとき、文書閲覧画面７０１で選択された選択文書７０６に設定されているチェックアウト予約情報を表示するために使用するものである。チェックアウト予約一覧画面９０１は、文書情報表示部９０２と、チェックアウト予約情報表示部９０６と、ボタン９１０と、ボタン９１１と、ボタン９１２とで構成される。
【００９８】
文書情報表示部９０２は、文書の保持する情報や状態を表示するための場所であり、文書ＩＤ９０３と、文書名称９０４と、ステータス９０５とで構成される。
【００９９】
チェックアウト予約情報表示部９０６は、チェックアウト開始日時である予約開始日付９０７と、チェックイン予定日時である予約終了日付９０８と、予約ユーザ９０９とで構成される。ここに表示されるデータは、前記図６Ｄでチェックアウト予約情報６３１に登録された文書ＩＤ９０３で指定された文書に関するチェックアウト予約情報が予約開始日付９０７で昇順に表示される。ここで、予約開始日付９０７と予約終了日付９０８との間が、チェックアウト実施予定期間となる。
【０１００】
ボタン９１０は、本画面を終了させるためのボタンであり、押下することで前記図７の文書閲覧画面７０１に戻る。
【０１０１】
ボタン９１１は、チェックアウト予約情報表示部９０６に表示されているチェックアウト予約情報をキャンセル（削除）する処理を起動するためのボタンである。チェックアウト予約情報表示部９０６に表示されている情報の中からひとつの予約情報を選択した後に、ボタン９１１を押下する。そうすることで、選択された予約情報を文書管理装置１０１の文書チェックアウト予約処理制御部３１１に渡し、図１２のチェックアウト予約キャンセル画面１２０１に遷移する。かかる処理がチェックアウト予約削除の処理に相当する。
【０１０２】
ボタン９１２は、文書ＩＤ９０３に関するチェックアウト予約の追加処理を起動するためのボタンである。ボタン９１２を押下することで、本画面に表示されている文書情報を文書管理装置１０１の文書チェックアウト予約処理制御部３１１に渡し、図１０のチェックアウト予約設定画面１００１に遷移する。
【０１０３】
（チェックアウト予約設定画面例）
図１０は、図１のクライアント装置１０２のＣＲＴ４０９に表示するチェックアウト予約設定画面例を示す図である。
【０１０４】
図１０のチェックアウト予約設定画面１００１は、前記図９のチェックアウト予約一覧画面９０１で表示されていた文書に対してチェックアウトの予約を追加する際の設定画面として使用されるものである。チェックアウト予約設定画面１００１は、チェックアウト予約設定情報表示部１００２と、チェックボックス１００７と、ボタン１００８と、ボタン１００９とで構成される。
【０１０５】
チェックアウト予約設定情報表示部１００２は、文書ＩＤ１００３と、文書名称１００４と、予約開始日付１００５と、予約終了日付１００６とで構成される。この中で、予約開始日付１００５と予約終了日付１００６とは、ユーザが予約期間を指定するため入力可能状態となっており、ユーザは所定の書式（本実施形態では年月日）で開始と終了の予定を指定する。
【０１０６】
チェックボックス１００７は、直前の予約がキャンセル、もしくは予約終了日付を待たずにチェックインされた場合に予約を前倒しするかどうかを指定するために使用する。本チェックボックス１００７がチェックされている場合には、前予約が終了した直後に次のチェックアウトが行われるが、チェックされていない場合には、指定した予約開始日付までチェックアウトが行われない。
【０１０７】
ボタン１００８は、本画面での設定内容を破棄して、図９のチェックアウト予約一覧画面９０１へ遷移する。
【０１０８】
ボタン１００９は、本画面で設定したチェックアウト予約情報の登録処理を起動するためのボタンである。ボタン１００９を押下することで、本画面に入力されたチェックアウト予約情報を文書管理装置１０１の文書チェックアウト予約処理制御部３１１に渡す。その後、チェックアウト予約情報をチェックアウト予約情報保管部３０５に登録した後、図１１のチェックアウト予約完了画面１１０１に遷移する。
【０１０９】
また、文書チェックアウト予約処理制御部３１１での処理中にエラーが発生した場合には、図１３のエラー画面１３０１に遷移する。本処理の流れは、図２０で詳細に説明する。
【０１１０】
（チェックアウト予約完了画面例）
図１１は、図１のクライアント装置１０２のＣＲＴ４０９に表示するチェックアウト予約完了画面１１０１の例を示す図である。
【０１１１】
図１１のチェックアウト予約完了画面１１０１は、前記図１０のチェックアウト予約設定画面１００１のボタン１００９の押下で起動された文書チェックアウト予約処理の結果を表示するために使用されるものである。チェックアウト予約完了画面１１０１は、文書ＩＤ１１０２と、文書名称１１０３と、予約開始日付１１０４と、予約終了日付１１０５と、ボタン１１０６とで構成される。
【０１１２】
文書ＩＤ１１０２と、文書名称１１０３と、予約開始日付１１０４と、予約終了日付１１０５とは、登録したチェックアウト予約情報をユーザに通知するための表示場所である。
【０１１３】
ボタン１１０６は、本画面を終了させるためのボタンであり、押下することで前記図９のチェックアウト予約一覧画面９０１に戻る。
【０１１４】
（チェックアウト予約キャンセル画面例）
図１２は、図１のクライアント装置１０２のＣＲＴ４０９に表示するチェックアウト予約キャンセル画面１２０１の例を示す図である。
【０１１５】
図１２のチェックアウト予約キャンセル画面１２０１は、前記図９のチェックアウト予約一覧画面９０１で表示されていたチェックアウト予約情報を削除する際の確認画面として使用されるものである。チェックアウト予約キャンセル画面１２０１は、文書ＩＤ１２０２と、文書名称１２０３と、予約開始日付１２０４と、予約終了日付１２０５と、ボタン１２０６と、ボタン１２０７とで構成される。
【０１１６】
文書ＩＤ１２０２と、文書名称１２０３と、予約開始日付１２０４と、予約終了日付１２０５は、図６Ａの文書情報と、図６Ｄのチェックアウト予約情報の中から該当するキャンセル対象予約情報を表示する部分である。表示される内容は、図９のチェックアウト予約一覧画面９０１のチェックアウト予約情報表示部９０６で選択された内容を表す。
【０１１７】
ボタン１２０６は、本画面に表示されている予約情報のキャンセル処理を破棄するために使用されるものであり、押下することで予約のキャンセル処理を行わずに前記図９のチェックアウト予約一覧画面９０１に戻る。
【０１１８】
ボタン１２０７は、本画面に表示したチェックアウト予約情報のキャンセル（削除）処理を起動するためのボタンである。ボタン１２０７を押下することで、本画面に表示されたチェックアウト予約情報を文書管理装置１０１の文書チェックアウト予約処理制御部３１１に渡し、チェックアウト予約情報保管部３０５から削除する。その後、図９のチェックアウト予約一覧画面９０１に遷移する。予約情報の削除後、キャンセルした予約の後に続く予約が存在する場合には、予約の内容により予約期間シフト処理を、チェックアウト予約一覧画面９０１に遷移する前に行う。
【０１１９】
また、文書チェックアウト予約処理制御部３１１での処理中にエラーが発生した場合には、図１３のエラー画面１３０１に遷移する。
【０１２０】
（エラー画面例）
図１３は、図１のクライアント装置１０２のＣＲＴ４０９に表示するエラー画面１３０１の例うぃ示す図である。
【０１２１】
図１３のエラー画面１３０１は、文書管理装置１０１で行われる各処理中にエラーが発生した場合にクライアント装置１０２にエラー内容を表示するためのものである。エラー画面１３０１は、エラー対象となる文書ＩＤ１３０２と、その文書名称１３０３と、エラーメッセージ表示部１３０４と、ボタン１３０５とで構成される。
【０１２２】
文書ＩＤ１３０２と、文書名称１３０３は、エラーとなった対象の文書情報を表示する場所である。エラーメッセージ表示部１３０４は、発生したエラー内容を表示する。ここに表示されるメッセージは、特に文字列に限る必要はなく、イメージなど他の手段でもかまわない。
【０１２３】
ボタン１３０５は、本画面を終了させるためのボタンであり、押下することで前記図７の文書閲覧画面７０１や図９のチェックアウト予約一覧画面９０１に戻る。
【０１２４】
（チェックアウト画面例）
図１４は、図１のクライアント装置１０２のＣＲＴ４０９に表示するチェックアウト画面例を示す図である。
【０１２５】
図１４のチェックアウト画面１４０１は、前記図７の文書閲覧画面７０１で選択された選択文書７０６のチェックアウト処理確認を行うために使用されるものである。チェックアウト画面１４０１は、文書ＩＤ１４０２と、文書名称１４０３と、ステータス１４０４と、ボタン１４０５と、ボタン１４０６とで構成される。
【０１２６】
文書ＩＤ１４０２と、文書名称１４０３と、ステータス１４０４は、前記図７の文書閲覧画面７０１で選択された選択文書７０６の本画面表示時点での最新情報を表示する場所である。
【０１２７】
ボタン１４０５は、本画面に表示されている文書情報のチェックアウト処理を破棄するために使用されるものであり、押下することでチェックアウト処理を行わずに前記図７の文書閲覧画面７０１に戻る。
【０１２８】
ボタン１４０６は、文書ＩＤ１４０２に表示されている文書のチェックアウト処理を起動するためのボタンであり、押下することで本画面に表示されている文書情報を文書管理装置１０１の文書チェックアウト処理制御部３０９に渡す。
【０１２９】
文書チェックアウト処理制御部３０９でのチェックアウト処理で、チェックアウト処理が終了した際には、図１６のチェックアウト完了画面１６０１へ遷移する。但し、文書チェックアウト処理制御部３０９でチェックアウトする際に制限が発見された場合には、制限の内容を図１５のチェックアウト制限許諾画面１５０１に表示し、ユーザによりその制限内容を許諾すると指示された後にチェックアウト処理を行う。また、文書チェックアウト処理制御部３０９での処理中にエラーが発生した場合には、図１３のエラー画面１３０１に遷移する。本チェックアウト処理の流れは、図２３で詳細に説明する。
【０１３０】
（チェックアウト制限許諾画面例）
図１５は、図１のクライアント装置１０２のＣＲＴ４０９に表示するチェックアウト制限許諾画面１５０１の例を示す図である。
【０１３１】
図１５のチェックアウト制限許諾画面１５０１は、文書ＩＤ１５０２と、文書名称１５０３と、制限内容表示部１５０４と、ボタン１５０５と、ボタン１５０６とで構成される。
【０１３２】
文書ＩＤ１５０２と、文書名称１５０３は、チェックアウトする対象の文書情報を表示する場所である。制限内容表示部１５０４は、チェックアウトを行う際に、ユーザにとっての制限となる内容を表示する部分であり、文書をチェックアウトして作業できる期間が別の予約によって制限される旨などを表示する。
【０１３３】
ボタン１５０５は、本画面に表示されている制限内容に同意できない際、文書情報のチェックアウト処理を破棄するために使用されるものであり、押下することでチェックアウト処理を行わずに前記図７の文書閲覧画面７０１に戻る。
【０１３４】
ボタン１５０６は、本画面に表示されている制限内容に同意できる際、文書情報のチェックアウト処理を継続実行するために使用されるものである。ボタン１５０６を押下することで、文書管理装置１０１の文書チェックアウト処理制御部３０９でチェックアウト処理が行われ、チェックアウト処理が終了した際には、図１６のチェックアウト完了画面１６０１へ遷移する。また、文書チェックアウト処理制御部３０９での処理中にエラーが発生した場合には、図１３のエラー画面１３０１に遷移する。
【０１３５】
（チェックアウト完了画面例）
図１６は、図１のクライアント装置１０２のＣＲＴ４０９に表示するチェックアウト完了画面１６０１の例を示す図である。
【０１３６】
図１６のチェックアウト完了画面１６０１は、前記図１４のチェックアウト画面１４０１のボタン１４０６、もしくは前記図１５のチェックアウト制限許諾画面１５０１のボタン１５０６の押下で起動される。チェックアウト完了画面１６０１は、チェックアウト処理の結果を表示するために使用されるものであり、文書ＩＤ１６０２と、文書名称１６０３と、ボタン１６０４とで構成される。
【０１３７】
文書ＩＤ１６０２と、文書名称１６０３は、チェックアウトを行った文書情報をユーザに通知するために表示する場所である。
【０１３８】
ボタン１６０４は、本画面を終了させるためのボタンであり、押下することで前記図７の文書閲覧画面７０１に戻る。
【０１３９】
（チェックイン画面例）
図１７は、図１のクライアント装置１０２のＣＲＴ４０９に表示するチェックイン画面１７０１の例を示す図である。
【０１４０】
図１７のチェックイン画面１７０１は、前記図７の文書閲覧画面７０１で選択された選択文書７０６のチェックイン処理設定を行うために使用されるものである。チェックイン画面１７０１は、チェックイン文書情報表示部１７０２と、チェックイン時に登録する文書ファイル情報表示欄１７０７と、ボタン１７０８と、ボタン１７０９とで構成される。
【０１４１】
チェックイン文書情報表示部１７０２は、チェックイン対象となっている選択文書７０６の本画面表示時点での最新情報を表示する場所である。チェックイン文書情報表示部１７０２は、文書ＩＤ１７０３と、文書名称１７０４と、ステータス１７０５と、チェックアウト日付１７０６とで構成される。
【０１４２】
文書ファイル情報表示欄１７０７は、チェックイン時に登録する文書ファイルを指し示す情報を表示する欄であり、登録する文書の情報のパスおよびファイル名称が表示される。また、利用者が直接入力することも可能である。
【０１４３】
ボタン１７０８は、登録するファイルを指定するための処理を起動するためのボタンである。このボタンの動作によりクライアント装置が提供するローカルもしくはネットワーク越しのリモート環境に存在するファイルを識別することが可能となる。この画面はＯＳが提供するものであり、本実施形態の中で特徴のあるものではないため、図などの詳細な説明は行わない。本ボタンからの選択画面で選択された登録文書のパス及びファイル名称については、前記文書ファイル情報表示欄１７０７に表示される。
【０１４４】
ボタン１７０９は、文書ファイル情報表示欄１７０７で指定されたファイルを文書の新規バージョンとして登録するチェックイン処理を起動するためのボタンである。ボタン１７０９を押下することで、本画面に表示されている文書のチェックインに必要な情報を文書管理装置１０１の文書チェックイン処理制御部３１０に渡す。
【０１４５】
文書チェックイン処理制御部３１０でのチェックイン処理が終了した際には、図１８のチェックイン完了画面１８０１へ遷移する。また、文書チェックイン処理制御部３１０での処理中にエラーが発生した場合には、図１３のエラー画面１３０１に遷移する。本チェックイン処理の流れは、図２５で詳細に説明する。
【０１４６】
（チェックイン完了画面例）
図１８は、図１のクライアント装置１０２のＣＲＴ４０９に表示するチェックイン完了画面１８０１の例を示す図である。
【０１４７】
図１８のチェックイン完了画面１８０１は、前記図１７のチェックイン画面１７０１のボタン１７０９の押下で起動された文書チェックイン処理の結果を表示するために使用されるものである。チェックイン完了画面１８０１は、文書ＩＤ１８０２と、文書名称１８０３と、ステータス１８０４と、最新バージョンＩＤ１８０５と、ボタン１８０６とで構成される。
【０１４８】
文書ＩＤ１８０２と、文書名称１８０３と、ステータス１８０４と、最新バージョンＩＤ１８０５は、チェックイン処理を行った文書情報をユーザに通知するために表示する場所である。
【０１４９】
ボタン１８０６は、本画面を終了させるためのボタンであり、押下することで前記図７の文書閲覧画面７０１に戻る。
【０１５０】
＜本実施形態の通知メールのフォーマット例＞
図１９は、本実施形態におけるクライアント装置に送られる通知メールのフォーマット例を示す図である。
【０１５１】
図１９のメールフォーマット１９０１は、メールヘッダー部分１９０２とメール本文部分１９０５とで構成される。メールヘッダー１９０２は、宛先となるメールアドレスを記述する宛先１９０３と、送信するメールの題名を記述する表題１９０４とで構成される。実際のメールプロトコル上では、これ以外のヘッダー情報も多数規定されているが、本実施形態では必要最低限の情報以外は省略している。特に、記載されている以外のヘッダー情報を付加できないということではない。
【０１５２】
メール本文１９０５には、対象となる文書名称１９０６と、文書名称１９０６の文書のチェックアウト期限１９０７と、メールに固定で表示されるメッセージ１９０８とで構成される。
【０１５３】
本メールフォーマットは、外部プログラムからデータを設定することによって、メールの体裁を整えるものである。
【０１５４】
＜本実施形態の文書管理装置の動作例＞
以下、上記本実施形態の文書管理装置の動作例をフローチャートを参照しながら説明する。
【０１５５】
（文書管理装置が文書のチェックアウト予約を行う処理例）
図２０は、図１に記載された文書管理装置１０１によるチェックアウト予約処理の手順例を示すフローチャートである。
【０１５６】
図２０は、クライアント装置１０２のＣＲＴ４０９に表示されている前記図１０のチェックアウト予約設定画面１００１のボタン１００９を押下することにより起動される。図２０は、文書管理装置１０１の文書チェックアウト予約処理制御部３１１によって行われる処理フローを表したものであり、本処理は図２のＣＰＵ２０１によって実行される。
【０１５７】
本処理で必要なデータは、チェックアウト予約設定画面１００１にて入力された文書ＩＤ１００３、予約開始日付１００５、予約終了日付１００６、チェックボックス１００７、および本操作を行っているユーザＩＤである。
【０１５８】
図２０に示すとおり、ステップＳ２００１において、チェックアウト予約情報６３１を文書管理装置１０１のチェックアウト予約情報操作部３０６経由でチェックアウト予約情報保管部３０５から取得する。かかるチェックアウト予約情報６３１は、クライアント装置１０２から渡された前記図１０に表示されている文書ＩＤ１００３に合致するものである。取得処理が終了したら、次のステップＳ２００２へ進む。
【０１５９】
ステップＳ２００２において、前記ステップＳ２００１で取得したチェックアウト予約情報６３１が存在しているかどうかを判断する。存在している場合には次のステップＳ２００３へ、存在していない場合にはステップＳ２００７へ進む。
【０１６０】
ステップＳ２００３において、前記ステップＳ２００１で取得したチェックアウト予約情報６３１のレコード件数の数だけ、ステップＳ２００６までの繰り返し処理の制御を行う。
【０１６１】
まず、チェックアウト予約情報６３１のレコードの中から１件のレコードを特定して、次のステップＳ２００４に進む。ステップＳ２００４においては、取得したチェックアウト予約情報６３１の項目のチェックアウト予約日付６３３とチェックイン予定日付６３５の値をレコードから取得し、次のステップＳ２００５へ進む。
【０１６２】
ステップＳ２００５においては、前記ステップＳ２００４で取得した２項目と本処理への入力値となる予約開始日付１００５と予約終了日付１００６とが、以下の条件を満たすかどうかを確認する。
【０１６３】
なお、以下本明細書では、「＜」及び「＞」を時刻の前後を表わすのに使用し、小＝前、大＝後を表わしている。また、「＝」は時間の場合には同日時を表わしている。
【０１６４】
比較条件：
新規の予約開始日付１００５＜予約済みチェックイン予定日付６３５
または
新規の予約終了日付１００６＞予約済みチェックアウト予約日付６３３
本比較条件を満たしている場合には、新規予約する期間が既に予約されている期間と重複するため、エラーと判断してステップＳ２００８へ進む。また、前記比較条件を満たしていない場合には、新規予約する期間との重複がないものとして、次のステップＳ２００６へ進む。
【０１６５】
ステップＳ２００６は、前記ステップＳ２００１で取得したチェックアウト予約情報６３１のうち１レコードについての重複チェックが終わったことを表す。まだ重複チェックが終わっていないチェックアウト予約情報６３１のレコードが残っているようであれば、前記ステップＳ２００４に遷移する。既にチェックアウト予約情報６３１のレコード全件についての処理が終わっている場合には、次のステップＳ２００７へ進む。ステップＳ２００７では、新規予約データが既存の予約データとの重複が発生していないことが確認されたため、新規チェックアウト予約情報の登録処理を行う。ここでは、チェックアウト予約情報６３１の各項目に対して、以下のデータを設定した新規レコード６３８を作成する。
【０１６６】
設定するチェックアウト予約情報（図６Ｄ参照）：
文書ＩＤ６３２  ←  入力値「文書ＩＤ１００３」
チェックアウト予約日付６３３  ←  入力値「予約開始日付１００５」
予約ユーザＩＤ６３４  ←  ログインしているユーザＩＤ
チェックイン予定日付６３５  ←  入力値「予約終了日付１００６」
前予約追従フラグ６３６   ←  入力値「チェックボックス１００７」
ステータス６３７  ←  「未処理」
作成した新規レコード６３８は、文書管理装置１０１のチェックアウト予約情報操作部３０６を通じてチェックアウト予約情報保管部３０５に保管される。本ステップにおける登録処理の終了を持って、チェックアウト予約処理が完了する。
【０１６７】
一方、ステップ２００８においては、予約期間のチェックで重複エラーが発見された場合などに遷移する処理であり、前記図１３のエラー画面１３０１へエラーの内容を出力して、ユーザにエラーの内容を通知する。前記エラー画面１３０１でエラー情報の確認後、ボタン１３０５が押下されると、本チェックアウト予約処理は、予約されない状態で終了する。
【０１６８】
本処理が終了した際には、前記図１１のチェックアウト予約完了画面１１０１が表示される。
【０１６９】
（文書管理装置が予約期間終了状況を確認する処理例）
図２１は、図１に記載された文書管理装置１０１によるチェックアウト予約期間終了確認処理の手順例を示すフローチャートである。
【０１７０】
本処理は、ユーザからのアクションを受けて行われるものではなく、文書管理装置１０１内で定期的に自動実行される処理である。この実行間隔に関しては特に限定するものではない。図２１は、この定期的に実行される処理の１回の処理フローを示すものであり、文書管理装置１０１上の文書チェックアウト予約処理制御部３１１によって図２のＣＰＵ２０１を使用して行われる。
【０１７１】
本処理を行うにあたって必要なデータは、終了警告を行う予約残日数閾値であり、この内容は、あらかじめ文書管理装置１０１内に設定されているものとする。
【０１７２】
図２１に示すとおり、ステップＳ２１０１において、図６Ｄのチェックアウト予約情報６３１に存在する予約情報のうち、予約期間が終了するものを以下の条件に照らし合わせて取得する。
【０１７３】
取得条件：
ステータス６３７が「完了」になっていない
かつ
本処理実行時日付＋システム設定されている予約残日数閾値
＞チェックイン予定日付６３５
もしくは
本処理実行時日付＋システム設定されている予約残日数閾値
＞チェックアウト予約日付６３３
ここで合致した前記チェックアウト予約情報６３１のレコードは、文書ＩＤでソートされているものとする。取得処理が終了したら、次のステップＳ２１０２へ進む。
【０１７４】
ステップＳ２１０２において、前記ステップＳ２１０１で取得したチェックアウト予約情報６３１のレコードが１件以上存在しているかどうかの判断を行う。存在している場合には、次のステップＳ２１０３へ、存在していない場合には、本処理を終了する。
【０１７５】
ステップＳ２１０３において、前記ステップＳ２１０１で取得したチェックアウト予約情報６３１のレコード件数の数だけ、ステップＳ２１０７までの間の繰り返し処理の制御を行う。
【０１７６】
まず、チェックアウト予約情報６３１のレコードの中から１件のレコードを特定して次のステップＳ２１０４へ進む。ステップＳ２１０４において、チェックアウト情報操作部３０４を使用してチェックアウト情報保管部３０３から該当するチェックアウト情報６２１のレコードを取得する。かかる取得は、前記ステップＳ２１０３で特定されたチェックアウト予約情報６３１のレコードから取得した文書ＩＤ６３２をキーとして、行われる。該当レコードの取得処理が終了したら、次のステップＳ２１０５へ進む。
【０１７７】
ステップＳ２１０５において、前記ステップＳ２１０４にて取得したチェックアウト情報６２１が存在しているかどうかを確認し、存在している場合には次のステップＳ２１０６へ、存在しない場合には、ステップＳ２１０７へ進む。
【０１７８】
ステップＳ２１０６において、ユーザ情報操作部３０８を使用してユーザ情報保管部３０７から該当するユーザ情報６４１を取得する。かかる取得は、前記ステップＳ２１０４にて取得したチェックアウト情報６２１のレコードのチェックアウトユーザＩＤ６２４をキーとして、行われる。また、同じチェックアウト情報６２１のレコードの文書ＩＤ６２２をキーとして、文書情報操作部３０２を使用して文書情報保管部３０１から該当する文書情報６０１を取得する。
【０１７９】
これら取得した情報を使用して、図１９に示すメールフォーマット１９０１を使用したメールを送信する。メールフォーマット１９０１に指定する情報は、以下のように作成される。宛先１９０３には、取得したユーザ情報６４１のメールアドレス６４４が設定される。表題１９０４には「チェックアウト期限確認」の文字が設定され、文書名称１９０６には取得した文書情報６０１の文書名称６０３が設定される。チェックアウト期限１９０７には、前記ステップＳ２１０３で特定されたチェックアウト予約情報６３１のチェックイン予定日付６３５もしくはチェックアウト予約日付６３３の内ステップＳ２１０１の取得条件に合致した方の日付が設定される。メッセージ１９０８には、「チェックアウト終了期限が近づいてきました。指定した期限までにはチェックイン、もしくはチェックアウト取消をしてください。」と言う旨のメッセージが適用される。
【０１８０】
作成したメールはすぐに送信する。メールの送信が終了したら、次のステップＳ２１０７へ進む。
【０１８１】
ステップＳ２１０７においては、ステップＳ２１０１にて取得したチェックアウト予約情報６３１のレコードすべての処理が終了したかどうかを判断する。まだ未処理レコードが残っている場合にはステップＳ２１０３へ、未処理レコードが存在しない場合には処理ループを抜けて本処理を終了する。
【０１８２】
（文書管理装置が予約期間開始文書をチェックアウトする処理例）
図２２は、図１に記載された文書管理装置１０１によるチェックアウト予約実行処理の手順例を示す図である。
【０１８３】
本処理はユーザからのアクションを受けて行われるものではなく、文書管理装置１０１内で定期的に自動実行される処理である。この実行間隔に関しては特に限定するものではない。図２２は、この定期的に実行される処理の１回の処理フローを示すものであり、文書管理装置１０１上の文書チェックアウト予約処理制御部３１１によって図２のＣＰＵ２０１を使用して行われる。
【０１８４】
図２２に示すとおり、ステップＳ２２０１において、図６Ｄのチェックアウト予約情報６３１に存在する予約情報のうち、予約期間が開始するものを、以下の条件に照らし合わせて取得する。
【０１８５】
取得条件：
ステータス６３７が「完了」になっていない
かつ
本処理実行時日付≧チェックアウト予約日付６３３
ここで合致した前記チェックアウト予約情報６３１のレコードは、文書ＩＤ６３２とチェックアウト予約日付６３３とでソートされているものとする。また、同じ文書ＩＤ６３２が複数存在する場合には、チェックアウト予約日付６３３が最小の日付を示すもののみを残し、残りのレコードは対象レコードから削除する。前記条件での対象レコード取得処理が終わったら、次のステップＳ２２０２に進む。
【０１８６】
ステップＳ２２０２において、前記ステップＳ２２０１で取得したチェックアウト予約情報６３１のレコードが１件以上存在しているかどうかの判断を行う。存在している場合には、次のステップＳ２２０３へ、存在していない場合には、本処理を終了する。
【０１８７】
ステップＳ２２０３において、前記ステップＳ２２０１で取得したチェックアウト予約情報６３１のレコード件数の数だけステップＳ２２０９までの間の繰り返し処理の制御を行う。
【０１８８】
まず、チェックアウト予約情報６３１のレコードの中から１件のレコードを特定して、次のステップＳ２２０４へ進む。
【０１８９】
ステップＳ２２０４において、前記ステップＳ２２０３で特定された処理対象のチェックアウト予約情報６３１のレコードに記載されている文書ＩＤ６３２に該当する文書のチェックアウト処理を行う。そのため、図２４に記載のチェックアウト実処理を起動する。図２４のチェックアウト実処理が終了したら、その処理結果を保管して、次のステップＳ２２０５に進む。
【０１９０】
ステップＳ２２０５において、前記ステップＳ２２０４の中で保管したチェックアウト実処理の処理結果を判定し、正常に終了していた場合にはステップＳ２２０６へ、異常終了していた場合にはステップＳ２２０８へ進む。
【０１９１】
ステップＳ２２０６において、チェックアウト処理が正常に終了したことを受けて、予約対象のチェックアウト予約情報を以下のように更新する。前記ステップＳ２２０３で特定されているチェックアウト予約情報６３１のレコードのステータス６３７の値を「処理中」に変更する。チェックアウト予約情報操作部３０６を経由して、チェックアウト予約情報保管部３０５に保管されているチェックアウト予約情報６３１を更新する。更新処理が終了したら、次のステップＳ２２０７に進む。
【０１９２】
ステップＳ２２０７において、該当文書に対するチェックアウト処理が終了したため、チェックアウト予約を行ったユーザに対して文書のチェックアウトが行われた旨をメールで通知する。そのために、前記ステップＳ２２０３で特定したチェックアウト予約情報６３１の文書ＩＤ６３２をキーとして、文書情報操作部３０２を使用して文書情報保管部３０１から該当する文書情報６０１を取得する。また、予約ユーザＩＤ６３４をキーに、ユーザ情報操作部３０８を使用してユーザ情報保管部３０７から該当するユーザ情報６４１を取得する。
【０１９３】
本ステップで送信するメールは、前記図１９のメールフォーマット１９０１を有する。メールフォーマット１９０１に指定する情報は、以下のようになる。宛先１９０３には、本ステップで取得したユーザ情報６４１のメールアドレス６４４が設定される。表題１９０４には「チェックアウト完了」の文字が、文書名称１９０６には本ステップで取得した文書情報６０１の文書名称６０３が設定される。チェックアウト期限１９０７には、前記ステップＳ２２０３で特定されたチェックアウト予約情報６３１のチェックイン予定日付６３５が設定される。メッセージ１９０８には、「チェックアウト期間が開始されました。文書に対する作業を始めてください。」と言う旨のメッセージが指定される。作成したメールの送信が終了したら、次のステップＳ２２０９へ進む。
【０１９４】
ステップＳ２２０８において、前記ステップＳ２２０４のチェックアウト実処理のエラーを受けて、チェックアウト予定ユーザと、現チェックアウトユーザに対してそれぞれにメールを送信する。
【０１９５】
まず、チェックアウトを予定していたユーザに対しては、予定されていたチェックアウトが正常に行われなかった旨のメールを送信する。そのために、前記ステップＳ２２０３で特定したチェックアウト予約情報６３１の文書ＩＤ６３２をキーとして、文書情報操作部３０２を使用して文書情報保管部３０１から該当する文書情報６０１を取得する。また、予約ユーザＩＤ６３４をキーに、ユーザ情報操作部３０８を使用してユーザ情報保管部３０７から該当するユーザ情報６４１を取得する。
【０１９６】
本ステップで送信するメールは、前記図１９のメールフォーマット１９０１を使用したメールを送信する。メールフォーマット１９０１に指定する情報は、以下のようである。宛先１９０３には、本ステップで取得したユーザ情報６４１のメールアドレス６４４が設定される。表題１９０４に「チェックアウト失敗」の文字が、文書名称１９０６には本ステップで取得した文書情報６０１の文書名称６０３が設定される。チェックアウト期限１９０７には、前記ステップＳ２２０３で特定されたチェックアウト予約情報６３１のチェックアウト予約日付６３３が設定される。メッセージ１９０８には、「チェックアウト期間が来ましたがチェックアウト処理に失敗しました。」と言う旨のメッセージが適用される。
【０１９７】
また、現チェックアウトユーザに対しては、チェックインもしくはチェックアウト取消を行う処理を督促する旨のメールを送信する。そのために、前記ステップＳ２２０３で特定したチェックアウト予約情報６３１の文書ＩＤ６３２をキーとして、文書情報操作部３０２を使用して文書情報保管部３０１から該当する文書情報６０１を取得する。また、チェックアウト情報６２１のチェックアウトユーザＩＤ６２４をキーにユーザ情報操作部３０８を使用してユーザ情報保管部３０７から該当するユーザ情報６４１を取得する。かかるチェックアウトユーザＩＤ６２４は、文書ＩＤ６３２をキーにしてチェックアウト情報操作部３０４を使用してチェックアウト情報保管部３０３から取得する。
【０１９８】
本ステップで送信するメールは、前記図１９のメールフォーマット１９０１を使用する。メールフォーマット１９０１に指定する情報は、以下のようである。宛先１９０３には、本ステップで取得したユーザ情報６４１のメールアドレス６４４が設定される。表題１９０４に「至急チェックイン」の文字が、文書名称１９０６には本ステップで取得した文書情報６０１の文書名称６０３が設定される。チェックアウト期限１９０７には、前記ステップＳ２２０３で特定されたチェックアウト予約情報６３１のチェックアウト予約日付６３３が設定される。メッセージ１９０８には、「既にチェックアウト期間を過ぎています。次の予約者の方がいるため至急チェックイン、もしくはチェックアウト取消をしてください。」と言う旨のメッセージが適用される。これら作成されたメールの送信が終了したら、次のステップＳ２２０９へ進む。
【０１９９】
ステップＳ２２０９において、ステップＳ２２０１にて取得したチェックアウト予約情報６３１のレコードすべての処理が終了したかどうかを判断する。まだ未処理レコードが残っている場合にはステップＳ２２０３へ、未処理レコードが存在しない場合には処理ループを抜けて本処理を終了する。
【０２００】
（ユーザがチェックアウトを行う処理例）
図２３は、図１に記載された文書管理装置１０１によるチェックアウト実行処理の手順例を示すフローチャートである。
【０２０１】
図２３は、クライアント装置１０２のＣＲＴ４０９に表示されている前記図１４のチェックアウト画面１４０１のボタン１４０６を押下することにより、起動される。図２３は、文書管理装置１０１の文書チェックアウト処理制御部３０９によって文書のチェックアウト処理を行うための処理フローを表したものであり、本処理は図２のＣＰＵ２０１によって実行される。
【０２０２】
本処理に必要な入力データは、前記チェックアウト画面１４０１で指定されている文書ＩＤ１４０２および操作を行っているユーザＩＤである。
【０２０３】
図２３に示すとおり、ステップＳ２３０１において、前記入力データである文書ＩＤ１４０２に対するチェックアウト予約情報の一覧を取得する。これは、文書ＩＤ１４０２に合致するチェックアウト予約情報６３１をチェックアウト予約情報操作部３０６経由でチェックアウト予約情報保管部３０５から取得する。この際に取得するチェックアウト予約情報６３１のレコードは、項目のチェックアウト予約日付６３３により昇順にソートされているものとする。取得処理が終了したら、次のステップＳ２３０２へ進む。
【０２０４】
ステップＳ２３０２において、前記ステップＳ２３０１で取得したチェックアウト予約情報６３１のレコードが存在しているかどうかを判断する。存在している場合には、次のステップＳ２３０３へ進み、存在していない場合にはステップＳ２２１０へ進む。
【０２０５】
ステップＳ２３０３において、前記ステップＳ２３０１で取得したチェックアウト予約情報６３１のレコード件数の数だけステップＳ２３０７までの間の繰り返し処理の制御を行う。
【０２０６】
まず、チェックアウト予約情報６３１のレコードの中から１件のレコードを特定して、次のステップＳ２３０４へ進む。ステップＳ２３０４において、前記ステップＳ２３０３で特定されたチェックアウト予約情報６３１のレコードのチェックアウト予約日付６３３およびチェックイン予定日付６３５を取得する。取得処理が終わったら、次のステップＳ２３０５へ進む。
【０２０７】
ステップＳ２３０５において、前記ステップＳ２３０４で取得したチェックアウト予約日付６３３およびチェックイン予定日付６３５の情報を使用して、本処理の実行時日付と以下の条件で予約期間を比較する。
【０２０８】
比較条件：
本処理実行時日付≧チェックアウト予約日付６３３
かつ
本処理実行時日付＜チェックイン予定日付６３５
本条件を満たしている場合には、チェックアウトする文書の予約期間の中に含まれてしまうため、チェックアウト処理自体ができない状態として判断する。そのため、条件を満たしている場合には、ステップＳ２２１１へ進む。この条件に合致しない場合には、本比較対象レコードがチェックアウト期間中ではないため、次のステップＳ２３０６へ進む。
【０２０９】
ステップＳ２３０６において、チェックアウト期間外の中で以下のような条件に合致しているかどうかをチェックする。チェックを行うための比較条件は以下のものとする。
【０２１０】
比較条件：
本処理実行時日付＜チェックアウト予約日付６３３
本条件を満たしている場合には、現時点ではチェックアウト期間ではないが、以降に予約が入っているためチェックアウトの制限が存在しているため、次のステップＳ２３０８へ進む。それ以外の場合には、チェックアウトのための予約側の制限のない予約情報と言うことになるため、次のステップＳ２３０７へ進む。
【０２１１】
ステップＳ２３０７において、前記ステップＳ２３０１で取得したチェックアウト予約情報６３１のうち１レコードについての予約重複チェックが終わったことを表す。まだチェックアウト予約情報６３１のレコードが残っているようであれば、前記ステップＳ２３０３に遷移する。既にチェックアウト予約情報６３１のレコード全件についての処理が終わっている場合には、次のステップＳ２３１０へ進む。
【０２１２】
ステップＳ２３０８において、前記ステップＳ２３０６における比較でチェックアウト後に予約が入っている。そのため、チェックアウトを行うユーザに対して、チェックアウトを行う期間が制限される旨の情報を文書チェックアウト処理制御部３０９で整えて表示内容生成部３１６に送ることで、図１５のチェックアウト制限許諾画面１５０１を表示する。このチェックアウト制限許諾画面１５０１に表示する情報は、前記ステップＳ２３０３で特定したチェックアウト予約情報６３１の文書ＩＤ６３２とチェックアウト予約日付６３３である。特にチェックアウト予約日付６３３は、メッセージの中に埋め込むものとする。本画面をクライアント装置１０２のＣＲＴ４０９に表示するまでが本ステップの範疇である。
【０２１３】
この後、画面を見たユーザの判断として図１５のチェックアウト制限許諾画面１５０１上のボタン１５０５もしくはボタン１５０６が押下されたタイミングで、次のステップＳ２３０９へ進む。
【０２１４】
ステップＳ２３０９においては、ユーザが押下した前記ボタン１５０５（キャンセル）もしくはボタン１５０６（許諾）を判断し、キャンセルの場合にはチェックアウト処理を行わず本処理を終了する。また、許諾の場合にはユーザがチェックアウト期間の制限を受け入れたものとして、ステップＳ２３０４からステップＳ２３０７の処理ループを抜けて、次のステップＳ２２１０へ進む。
【０２１５】
ステップＳ２３１０においては、チェックアウト予約との重複がないことが確認されたため、実際のチェックアウト処理を行う。処理の詳細については、図２４のフローチャートにて説明を行う。本ステップのチェックアウト処理が終わったら本処理を終了する。
【０２１６】
ステップＳ２３１１においては、前記ステップＳ２３０５において既にチェックアウト予約期間で有り他のユーザがチェックアウトしている。そのため、チェックアウト要求ユーザに対して既にチェックアウトされている旨のエラー画面１３０１を表示する。ユーザがエラー画面１３０１上のボタン１３０５を押下することで本処理を終了する。
【０２１７】
（文書管理装置におけるチェックアウト実処理例）
図２４は、図１に記載された文書管理装置１０１によるチェックアウト処理の手順例を示すフローチャートである。
【０２１８】
図２４は、前記図２２および図２３でのチェックアウト処理フローの中からステップＳ２２０４あるいはＳ２３１０において起動される。図２４は、文書管理装置１０１の文書チェックアウト処理制御部３０９によって文書のチェックアウト実処理を行うための処理フローを表したものであり、本処理は図２のＣＰＵ２０１によって実行される。
【０２１９】
本処理に必要な入力データは、チェックアウト対象になる文書ＩＤ、および操作を行っているユーザＩＤである。
【０２２０】
図２４に示すとおり、ステップＳ２４０１において、入力データとして指定された文書ＩＤから該当する文書情報６０１およびチェックアウト情報６２１を取得する。文書情報６０１およびチェックアウト情報６２１の取得が終わったら、次のステップＳ２４０２に進む。
【０２２１】
ステップＳ２４０２において、前記ステップＳ２４０１で取得した文書情報６０１が存在するかどうかの確認を行う。文書情報が存在しない場合はエラーであり、次のステップＳ２４０８へ進む。文書情報が存在している場合には、次のステップＳ２４０３へ進む。ステップＳ２４０３において、前記ステップＳ２４０１で取得したチェックアウト情報６２１が存在しているかどうかの確認を行う。存在している場合には、現時点でいずれかのユーザによるチェックアウトが行われている状態であるため、エラーとして次のステップＳ２４０８へ進む。チェックアウト情報６２１が存在していない場合には、チェックアウト可能な文書として次のステップＳ２４０４に進む。ステップＳ２４０４において、前記ステップＳ２４０１で取得した文書情報６０１のステータス６０４が「正常」以外の値を指名している場合には、エラーとして次のステップＳ２４０８に進む。ステータスが正常な場合には、すべてのチェックアウト可否チェックが終わったとして、次のステップＳ２４０５へ進む。
【０２２２】
ステップＳ２４０５において、前記ステップＳ２４０１で取得した文書情報６０１のステータス値を「チェックアウト中」に変更する。ここでは、文書チェックアウト処理制御部３０９から文書情報操作部３０２を介して文書情報保管部３０１の中の既存データの更新する手順で行われる。文書情報の更新処理が終了したら、次のステップＳ２４０６へ進む。
【０２２３】
ステップＳ２４０６において、チェックアウト中であるための情報として、図６Ｃのチェックアウト情報６２１へ該当文書情報を追加する。チェックアウト情報６２１の各項目には、以下の情報が使用される。文書ＩＤ６２２については、入力データとして本処理に渡された文書ＩＤが使用される。チェックアウト日付については、本処理の実行日付が使用される。チェックアウトユーザＩＤ６２４については、文書ＩＤと同様入力データとして本処理に渡された操作を行っているユーザＩＤが使用される。これらのデータを使用して、文書チェックアウト処理制御部３０９からチェックアウト情報操作部３０４を介してチェックアウト情報保管部３０３の中に新規データとして追加する手順で行われる。チェックアウト情報の追加処理が終了したら、次のステップＳ２４０７へ進む。
【０２２４】
ステップＳ２４０７において、前記ステップＳ２４０５及びステップＳ２４０６で行われた更新処理の確定を行う。処理確定によりチェックアウト処理が完了し、本処理を終了する。
【０２２５】
ステップＳ２４０８においては、前記各ステップで発生したエラー処理を行い、エラーを処理起動元に通知して本処理を終了する。
【０２２６】
（ユーザがチェックインを行う処理例）
図２５は、図１に記載された文書管理装置１０１によるチェックイン実行処理の手順例を示すフローチャートである。
【０２２７】
図２５は、クライアント装置１０２のＣＲＴ４０９に表示されている前記図１７のチェックイン画面１７０１のボタン１７０９を押下することにより起動される。図２５は、文書管理装置１０１の文書チェックイン処理制御部３１０によって文書のチェックイン処理を行うための処理フローを表したものであり、本処理は図２のＣＰＵ２０１によって実行される。
【０２２８】
本処理に必要な入力データは、前記チェックイン画面１７０１で指定されている文書ＩＤ１７０３、文書ファイル情報表示欄１７０７もしくはボタン１７０８によって指定された登録文書ファイル、および操作を行っているユーザＩＤである。
【０２２９】
図２５に示すとおり、ステップＳ２５０１において、図１７のチェックイン画面１７０１で指定された文書ＩＤの文書に対してチェックイン処理を行う。この処理は、後述の図２６の処理フローにて詳細な説明を行う。本ステップでは、図２６の処理の起動および処理結果の取得までを行い、処理結果を保管した後、次のステップＳ２５０２に進む。
【０２３０】
ステップＳ２５０２において、前記ステップＳ２５０１のチェックイン処理結果を取得し、結果がエラーだった場合には、次のステップ２５１３へ進む。正常に終了している場合には、次のステップＳ２５０３に進む。
【０２３１】
ステップＳ２５０３において、チェックインした文書の文書ＩＤに合致するチェックアウト予約情報６３１が存在するかどうかを確認する。本ステップでは、チェックアウト予約情報操作部３０６に対して、以下の条件に合致するチェックアウト予約情報６３１を取得する。
【０２３２】
検索条件：
文書ＩＤ６３２＝入力データ「文書ＩＤ１７０３」
かつ
チェックアウト予約日付６３３≦処理実行日付
かつ
チェックイン予定日付６３５≧処理実行日付
情報の取得処理が終了したら、次のステップＳ２５０４に進む。
【０２３３】
ステップＳ２５０４において、前記ステップＳ２５０３で取得したチェックアウト予約情報６３１のレコードが存在するかどうかをチェックする。チェックアウト予約情報６３１のレコードが存在しない場合には、予約処理からのチェックアウトではなく、図１４から始まる図２３の処理フローを使用した画面からの直接チェックアウト処理による実行であると判断する。そして、次のステップＳ２５１２へ進む。レコードが存在する場合には、レコードの処理を行うため次のステップＳ２５０５に進む。
【０２３４】
ステップＳ２５０５において、前記ステップＳ２５０３で取得したチェックアウト予約情報６３１のレコード情報の中から、チェックイン予定日付６３５を取得する。この情報は、次のステップＳ２５０７にて使用するため一時的に保管する。前記レコードのステータス６３７を「完了」に、チェックイン予定日付６３５を処理実行日付に変更する。また、文書チェックイン処理制御部３１０からチェックアウト予約情報操作部３０６を介してチェックアウト予約情報保管部３０５の中の既存データを更新する。文書情報の更新処理が終了したら、次のステップＳ２５０６へ進む。
【０２３５】
ステップＳ２５０６において、チェックインした文書の次の予約情報を取得する。本ステップでは、チェックアウト予約情報操作部３０６に対して、以下の条件に合致するチェックアウト予約情報６３１を取得する。この検索条件に対して、前記ステップＳ２５０５にて一時保管したチェックイン予定日付６３５を使用する。
【０２３６】
検索条件：
文書ＩＤ６３２＝入力データ「文書ＩＤ１７０３」
かつ
チェックアウト予約日付６３３≧一時保管したチェックイン予定日付＋１日
かつ
前予約追従フラグ６３６＝ＴＲＵＥ
上記検索条件による情報の検索処理が終了したら、次のステップＳ２５０７に進む。
【０２３７】
ステップＳ２５０７において、前記ステップＳ２５０６において取得したチェックアウト予約情報６３１のレコードが存在するかどうかをチェックする。レコードが存在しない場合には、追従させてチェックアウトを前倒しする必要がないため、次のステップＳ２５１２へ進む。レコードが存在する場合には、次のステップＳ２５０８へ進む。かかる処理が、チェックアウト実施予定期間チェックに相当する。
【０２３８】
ステップＳ２５０８において、前記ステップＳ２５０６で取得したチェックアウト予約情報６３１の予約ユーザＩＤ６３４を取得しておく。これは、次のステップＳ２５０９を行う際の入力データとして使用するためである。次に、前記レコードのステータス６３７を「処理中」に、チェックアウト予約日付６３３を処理実行日付に変更する。また、文書チェックアウト処理制御部３０９からチェックアウト予約情報操作部３０６を介してチェックアウト予約情報保管部３０５の中の既存データを更新する。文書情報の更新処理が終了したら、次のステップＳ２５０９へ進む。以上、かかる前倒しの処理の実行が、チェックアウト開始日時変更あるいは第１のチェックアウト実施予定期間変更又は第２のチェックアウト実施予定期間変更に相当する。
【０２３９】
ステップＳ２５０９において、前記ステップＳ２５０８で保管しておいた予約ユーザＩＤと入力データである文書ＩＤ１７０３を渡す。そして、文書チェックアウト処理制御部３０９の図２４が示すチェックアウト実処理フローによるチェックアウト処理を起動する。このチェックアウト実処理が終了したら、次のステップＳ２５１０へ進む。
【０２４０】
ステップＳ２５１０において、前記ステップＳ２５０９のチェックアウト処理が正常終了したかどうかを判断する。正常に終了していない場合には、エラーとして次のステップＳ２５１３に進む。正常に終了している場合には、次のステップＳ２５１１へ進む。
【０２４１】
ステップＳ２５１１においては、チェックアウト予約を行った対象ユーザに対するメールの送付を行う。そのために、前記ステップＳ２５０６で特定したチェックアウト予約情報レコードの文書ＩＤ６３２をキーとして、文書情報操作部３０２を使用して文書情報保管部３０１から該当する文書情報６０１を取得する。また、前記ステップＳ２５０８で保管しておいた予約ユーザＩＤをキーに、ユーザ情報操作部３０８を使用してユーザ情報保管部３０７から該当するユーザ情報６４１を取得する。
【０２４２】
本ステップで送信するメールは、前記図１９のメールフォーマット１９０１を使用する。メールフォーマット１９０１に指定する情報は、以下のようである。宛先１９０３には、本ステップで取得したユーザ情報６４１のメールアドレス６４４が背帝される。表題１９０４には「チェックアウト完了」の文字が、文書名称１９０６には本ステップで取得した文書情報６０１の文書名称６０３が設定される。チェックアウト期限１９０７には、前記ステップＳ２２０３で特定されたチェックアウト予約情報６３１のチェックイン予定日付６３５が設定される。メッセージ１９０８には、「前作業者の作業が早く終わりましたので、前倒しでチェックアウト期間が開始されました。文書に対する作業を始めてください。」と言う旨のメッセージが指定される。作成したメールの送信が終了したら、次のステップＳ２５１２へ進む。
【０２４３】
ステップＳ２５１２において、本処理内で変更の発生した情報すべてを確定する。情報の確定が終了したら、本処理を終了する。
【０２４４】
（文書管理装置におけるチェックイン実処理例）
図２６は、図１に記載された文書管理装置１０１による文書チェック処理の手順例を示すフローチャートである。
【０２４５】
図２６は、前記図２５でのチェックイン実行処理フローの中から起動される。図２６は、文書管理装置１０１の文書チェックイン処理制御部３１０によって文書のチェックイン実処理を行うための処理フローを表したものであり、本処理は図２のＣＰＵ２０１によって実行される。
【０２４６】
本処理に必要な入力データは、チェックアウト対象になる文書ＩＤ、入力画面で指定された登録文書ファイル、および操作を行っているユーザＩＤである。
【０２４７】
図２６に示すとおり、ステップＳ２６０１において、以下の検索条件に合致するチェックアウト情報６２１を検索し取得する。
【０２４８】
検索条件：
文書ＩＤ６２２＝入力データ「文書ＩＤ」
上記検索条件での情報取得処理が終了したら、次のステップＳ２６０２へ進む。
【０２４９】
ステップＳ２６０２において、前記ステップＳ２６０１で取得したチェックアウト情報６２１のレコードが存在するかどうかのチェックを行う。チェックアウト中であれば該当するレコードが存在するはずであり、存在している場合には次のステップＳ２６０３に進む。存在しない場合にはエラーとして次のステップＳ２６０８へ進む。ステップＳ２６０３において、前記ステップＳ２６０１にて取得したチェックアウト情報６２１のレコードのチェックアウトユーザＩＤ６２４が入力として渡された操作を行っているユーザＩＤと同一かどうかをチェックする。同一でない場合には、不正なチェックインアクセスであるためエラーとし、次のステップＳ２６０８へ進む。同一ユーザＩＤである場合には、次のステップＳ１６０４へ進む。ステップＳ２６０４において、入力データとして渡された登録文書ファイルが存在するかどうかを確認する。文書ファイルが存在しない場合にはエラーとし、次のステップＳ２６０８へ進む。存在する場合には、次のステップＳ２６０５へ進む。
【０２５０】
ステップＳ２６０５において、チェックインの処理として指定文書のバージョン追加処理を行う。そのため、まず、チェックアウト情報操作部３０４から入力データの文書ＩＤをキーにしてチェックアウト情報保管部３０３に保存してあるバージョン情報から最新バージョンのバージョン番号を取得する。次に、その最新バージョンをインクリメントした値を新規バージョンのバージョン番号とし、新規バージョン情報６１１のレコードを作成する。
【０２５１】
この新規レコードには、文書ＩＤ６１２には入力データの文書ＩＤ、バージョンＩＤ６１３には前記インクリメントした新規バージョン番号を指定する。また、登録日付６１４には処理実行日付、登録ユーザＩＤには入力データの操作ユーザＩＤ、ファイル実体６１６には入力データの登録文書ファイルを指定する。これらのデータによって作成されたレコードは、文書チェックイン処理制御部３１０から文書情報操作部３０２の新規バージョン追加操作により文書情報保管部３０１に新規登録される。バージョン情報レコードの登録が終了したら、次のステップＳ２６０６に進む。
【０２５２】
ステップＳ２６０６においては、バージョン追加に伴う関係情報の更新を行う。まず、前記ステップＳ２６０１で取得したレコードを文書チェックイン処理制御部３１０からチェックアウト情報操作部３０４の情報削除操作によりチェックアウト情報保管部３０３から削除する。次に、文書情報操作部３０２の文書情報取得操作により文書情報保管部３０１から入力データである文書ＩＤに合致する文書情報６０１のレコードを取得する。この取得したレコードのステータス６０４の値を「正常」に変更して、文書チェックイン処理制御部３１０から文書情報操作部３０２の文書情報更新操作により文書情報保管部３０１に存在する同一文書ＩＤのレコードを更新する。本ステップにおける前記更新処理が終了したら、次のステップＳ２６０７に進む。
【０２５３】
ステップＳ２６０７において、前記ステップＳ２６０５からステップＳ２６０６までに行った更新作業を確定する。情報の確定処理が終了したら、本処理を終了する。
【０２５４】
ステップＳ２６０８においては、前記各ステップで発生したエラー処理を行い、エラーを処理起動元に通知して本処理を終了する。
【０２５５】
［実施形態２］
以下に、本発明に係わる実施形態２の文書管理装置について説明する。
【０２５６】
＜本実施形態の文書管理システムの構成例＞
本実施形態の文書管理装置を含む文書管理システム全体の構成図については、実施形態１において図１を示して説明したものと同じと考えて問題ないので、説明を割愛する。
【０２５７】
＜本実施形態の文書管理装置の構成例＞
（文書管理装置のハードウエア構成例）
本実施形態の文書管理装置１０１のハードウエア構成についても、実施形態１において図２を示して説明したものと同じと考えて問題ないので、説明を割愛する。
【０２５８】
（本実施形態の文書管理装置の機能構成例）
次に、文書管理装置１０１の機能構成について、ブロック図である図２７を用いて説明する。
【０２５９】
図２７に示すとおり、文書管理装置１０１は、以下の要素で構成される。
【０２６０】
情報処理部としては、文書情報保管部２７０１と、文書情報操作部２７０２と、チェックアウト情報保管部２７０３と、チェックアウト情報操作部２７０４とを有する。また、チェックアウト予約情報保管部２７０５と、チェックアウト予約情報操作部２７０６と、予約フロー情報保管部２７０７と、予約フロー情報操作部２７０８とを有する。また、ユーザ情報保管部２７０９と、ユーザ情報操作部２７１０とを有する。
【０２６１】
処理制御部としては、文書チェックアウト処理制御部２７１１と、文書チェックイン処理制御部２７１２と、文書チェックアウト予約処理制御部２７１３と、ユーザ認証処理制御部２７１５とを有する。
【０２６２】
更に、ネットワーク通信部２７１６と、文書情報処理制御部２７１７と、表示内容生成部２７１８とを有する。
【０２６３】
文書情報保管部２７０１は、登録された文書情報や文書ファイルを格納しておく場所であり、ＲＡＭ２０２もしくはＨＤＤ２１３に確保される。文書情報操作部２７０２は、ＲＡＭ内に格納されてＣＰＵ２０１で実行される実行可能プログラムで構成され、登録／更新／削除／取得といった文書情報や文書ファイルの入出力処理を文書情報保管部２７０１に対して行う。
【０２６４】
チェックアウト情報保管部２７０３は、文書情報保管部２７０１に保管されている文書に対して、チェックアウト時の情報を格納しておく場所であり、ＲＡＭ２０２もしくはＨＤＤ２１３に確保される。チェックアウト情報操作部２７０４は、ＲＡＭ内に格納されてＣＰＵ２０１で実行される実行可能プログラムで構成され、登録／更新／削除／取得と言ったチェックアウト情報の入出力処理をチェックアウト情報保管部２７０３に対して行う。
【０２６５】
チェックアウト予約情報保管部２７０５は、文書情報保管部２７０１に保管されている文書に対して行われるチェックアウト予約情報を格納しておく場所であり、ＲＡＭ２０２もしくはＨＤＤ２１３に確保される。チェックアウト予約情報操作部２７０６は、ＲＡＭ内に格納されてＣＰＵ２０１で実行される実行可能プログラムで構成され、登録／更新／削除／取得といったチェックアウト予約情報の入出力処理をチェックアウト予約情報保管部２７０５に対して行う。
【０２６６】
予約フロー情報保管部２７０７は、チェックアウト予約情報保管部２７０５に格納されている１つ以上のチェックアウト予約情報を関連付けて「フロー（グループとも言う）」として管理する予約フロー情報を格納しておく場所であり、ＲＡＭ２０２もしくはＨＤＤ２１３に確保される。予約フロー情報操作部２７０８は、ＲＡＭ内に格納されてＣＰＵ２０１で実行される実行可能プログラムで構成され、登録／更新／削除／取得といった予約フロー予約情報の入出力処理を予約フロー情報保管部２７０７に対して行う。かかる予約フロー情報操作部２７０８の操作により、フロー管理（グループ管理）が実現する。
【０２６７】
ユーザ情報保管部２７０９は、文書管理装置１０１を利用するユーザの情報を格納しておく場所であり、ＲＡＭ２０２もしくはＨＤＤ２１３内に確保される。ユーザ情報操作部２７１０は、ＲＡＭ２０２内に格納されてＣＰＵ２０１で実行される実行可能プログラムで構成され、登録／更新／削除／取得と言ったユーザ情報の入出力処理をユーザ情報保管部２７０９に対して行う。
【０２６８】
文書チェックアウト処理制御部２７１１は、文書情報操作部２７０２とチェックアウト情報操作部２７０４と、チェックアウト予約情報操作部２７０６と、ユーザ情報操作部２７１０と、表示内容生成部２７１８とを使用する。そして、クライアント装置１０２から送信される文書チェックアウト処理依頼に対してチェックアウト処理の制御を行う。
【０２６９】
文書チェックイン処理制御部２７１２は、文書情報操作部２７０２と、チェックアウト情報操作部２７０４と、チェックアウト予約情報操作部２７０６と、ユーザ情報操作部２７１０と、表示内容生成部２７１８とを使用する。そして、クライアント装置１０２から送信される文書チェックイン処理依頼に対してチェックイン処理の制御を行う。
【０２７０】
文書チェックアウト予約処理制御部２７１３は、文書情報操作部２７０２と、チェックアウト情報操作部２７０４と、チェックアウト予約情報操作部２７０６と、予約フロー情報操作部２７０８とユーザ情報操作部２７１０と、表示内容生成部２７１８とを使用する。そして、クライアント装置１０２から送信される文書チェックアウト予約処理依頼に対するチェックアウト予約処理の制御と、予約フロー処理の制御を行う。
【０２７１】
ユーザ認証処理制御部２７１５は、ユーザ情報操作部２７１０と、表示内容生成部２７１８とを使用して、クライアント装置１０２から文書管理装置１０１に接続を行う際のユーザ認証処理を行う。
【０２７２】
ネットワーク通信部２７１６は、モデム２０６もしくはＮＩＣ２０５で接続され、ネットワーク１０３を経由して前記クライアント装置１０２から受信した処理要求を文書管理装置１０１内の各処理制御部へ処理を通知する。また、文書管理装置１０１内の各制御部からの処理結果をクライアント装置１０２に対して送信する。
【０２７３】
文書情報処理制御部２７１７は、文書情報操作部２７０２と、チェックアウト情報操作部２７０４と、チェックアウト予約情報操作部２７０６とを使用する。そして、クライアント装置１０２に対して送信する文書情報詳細表示画面３００１の表示内容の生成処理を行う。
【０２７４】
表示内容生成部２７１８は、クライアント装置１０２に対して提供する文書管理を行うための画面上の表示内容についての生成および整形を行う。ここは、特にクライアント側の表示形態に合わせて提供するもので、例えばＨＴＭＬなどのハイパーテキスト形式や、専用クライアントソフトに対するバイナリ形式などでの生成を行うことを想定している。
【０２７５】
＜本実施形態のクライアント装置の構成例＞
（クライアント装置のハードウエア構成例）
本実施形態のクライアント装置１０２のハードウエア構成については、実施形態１において図４を示して説明したものと同じと考えて問題ないので、説明を割愛する。
【０２７６】
（クライアント装置の機能構成例）
クライアント装置１０２の機能構成については、実施形態１において図５を示して説明したものと同じと考えて問題ないので、説明を割愛する。
【０２７７】
＜本実施形態で取り扱うデータ形式および構成例＞
図２８Ａ〜図２８Ｇは、本実施形態で使用するデータ形式とその構成を説明したものである。ここで記載しているデータ項目は、本実施形態を説明するにあたって最低限必要な項目で構成されている。
【０２７８】
図２８Ａと図２８Ｂは、図２７に示した文書管理装置１０１の文書情報保管部２７０１に保管されている情報の形式と構成を表す図である。
【０２７９】
図２８Ａの文書情報２８０１は、文書単位で保持する情報の形式を表している。文書情報２８０１は、文書ＩＤ２８０２と、文書名称２８０３と、状態を表すステータス２８０４とを項目として構成される。ステータス２８０４で表されるステータス値には、「正常」「異常」「チェックアウト中」の内いずれかが設定される。
【０２８０】
各文書情報は、文書ＩＤ２８０２で一意な情報を表す。文書情報２８０１として保持する１つの単位を、レコード２８０５と表現する。
【０２８１】
図２８Ｂのバージョン情報２８１１は、文書更新のたびに変更されるバージョン単位で保持する情報の形式を表している。
【０２８２】
バージョン情報２８１１は、文書ＩＤ２８１２と、バージョンＩＤ２８１３と、登録日付２８１４と、登録ユーザＩＤ２８１５と、ファイル実体２８１６を項目として構成される表である。文書ＩＤ２８１２は、前記文書情報２８０１で規定されている文書ＩＤ２８０２と関連をもっている。
【０２８３】
各バージョン情報は、文書ＩＤ２８１２とバージョンＩＤ２８１３とで一意な情報を表す。バージョン情報２８１１として保持する１つの単位を、レコード２８１７と表現する。
【０２８４】
図２８Ｃは、図２７に示した文書管理装置１０１のチェックアウト情報保管部２７０３に保管されている情報の形式と構成を表す図である。
【０２８５】
チェックアウト情報２８２１は、チェックアウトされている文書に関する情報を文書単位で保持する形式を表す。
【０２８６】
チェックアウト情報２８２１は、文書ＩＤ２８２２と、チェックアウト日付２８２３と、チェックアウトユーザＩＤ２８２４とを項目として構成される表である。文書ＩＤ２８２２は、前記文書情報２８０１で規定されている文書ＩＤ２８０２と関連をもっている。この表に情報がある文書情報は、現在チェックアウト中であることを意味する。
【０２８７】
各チェックアウト情報は、文書ＩＤ２８２２で一意な情報を表す。チェックアウト情報２８２１として保持する１つの単位を、レコード２８２５と表現する。
【０２８８】
図２８Ｄは、図２７に示した文書管理装置１０１のチェックアウト予約情報保管部２７０５に保管されている情報の形式と構造を表す図である。
【０２８９】
チェックアウト予約情報２８３１は、以下の項目として構成される表である。その項目は、予約ＩＤ２８３２、文書ＩＤ２８３３、チェックアウト予約日付２８３４、予約ユーザＩＤ２８３５、チェックイン予定日付２８３６、前予約追従フラグ２８３７、ステータス２８３８を含む。
【０２９０】
各チェックアウト予約情報は、予約ＩＤ２８３２で一意な情報を表す。文書ＩＤ２８３３は、前記文書情報２８０１で規定されている文書ＩＤ２８０２と関連をもっている。ステータス２８３８で表されるステータス値には、「未処理」「処理中」「完了」の内いずれかが設定される。この表に情報がある文書情報は、現在チェックアウト予約が存在することを意味する。チェックアウト予約情報２８３１として保持する１つの単位を、レコード２８３９と表現する。
【０２９１】
図２８Ｅと図２８Ｆは、図２７に示した文書管理装置１０１の予約フロー情報保管部２７０７に保管されている情報の形式と構造を表す図である。
【０２９２】
図２８Ｅの予約フロー情報２８４１は、１つ以上チェックアウト予約情報２８３１をフローとしてまとめた予約フローの情報を表している。
【０２９３】
予約フロー情報２８４１は、予約フローＩＤ２８４２と、管理ユーザＩＤ２８４３と、フロー調整２８４４とを項目として構成される表である。
【０２９４】
各予約フロー情報は、予約フローＩＤ２８４２で一意な情報を表す。管理ユーザＩＤ２８４３はこの予約フロー情報を管理しているユーザを表しており、後述するユーザＩＤ２８６２と関連を持っている。フロー調整２８４４で表されるフロー調整値には、「調整する」／「調整しない」のうちのいずれかが設定される。予約フロー情報２８４１として保持する１つの単位を、レコード２８４６と表現する。
【０２９５】
図２８Ｆの予約フロー構成情報２８５１は、前記チェックアウト予約情報２８３１と予約フロー情報２８４１の関連を定義するもので、予約フローがどのチェックアウト予約情報で構成されているかを表している。
【０２９６】
予約フロー構成情報２８５１は、予約フローＩＤ２８５２と、フロー順序２８５３と、予約ＩＤ２８５４とを項目として構成される表である。
【０２９７】
予約フローＩＤ２８５２は、前記予約フロー情報２６４１で規定されている予約フローＩＤ２８４２と関連を持っている。フロー順序２８５３は、１以上の整数の値をとる項目である。フロー順序２８５３は１つの予約フローの中での各チェックアウト予約情報の時系列的な順番を１、２、３、...という数値で表す。１つの予約フローにおいては同じ数値が指定されることは無い。予約ＩＤ２８５４は、この予約フロー情報を構成するチェックアウト予約情報を表しており、前記チェックアウト予約情報２８３１で規定されている予約ＩＤ２８３２と関連を持っている。
【０２９８】
予約フロー構成情報は、予約フローＩＤ２８５２とフロー順序２８５３で一意な情報を表す。１つのチェックアウト予約情報が複数の予約フローの構成情報として設定されることは無いので、予約フロー構成情報２８５１は予約ＩＤ２８５４で一意な情報を表すことができる。予約フロー構成情報２８５１として保持す１１つの単位を、レコード２８５５と表現する。予約フローが１つ作成されるということは、前記予約フロー情報２８４１に１件のレコードが作成され、予約フロー構成情報に１つ以上のレコードが作成されるということである。
【０２９９】
図２８Ｇは、図２７に示した文書管理装置１０１のユーザ情報保管部２７０９に保管されている情報の形式と構成を表す図である。
【０３００】
ユーザ情報２８６１は、文書管理装置１０１にアクセスして文書の操作を行うことのできるユーザ情報を保持する形式を表す。ユーザ情報２８６１は、ユーザＩＤ２８６２と、ユーザ名称２８６３と、メールアドレス２８６４を項目として構成される表である。
【０３０１】
各ユーザ情報は、ユーザＩＤ２８６２で一意な情報を表す。ここで定義されるユーザ情報は、前記図２８Ｂの登録ユーザＩＤ２８１５や図２８ＣのチェックアウトユーザＩＤ２８２４、図２８Ｄの予約ユーザＩＤ２８３５、図２８Ｅの管理ユーザＩＤで使用される。ユーザ情報２８６１として保持する１つの単位を、レコード２８６５と表現する。
【０３０２】
＜本実施形態の表示画面例＞
次に、本実施形態で使用する画面についての説明を行う。ここで述べる画面については、必要最低限の表示しか行っておらず、これ以外の情報を表示することも可能である。また、以降の図で示す画面構成や、表現方法についても特に本実施形態での記述に限定するものではないことはいうまでもない。
【０３０３】
（文書閲覧画面例）
図２９は、図１のクライアント装置１０２のＣＲＴ４０９に表示する文書閲覧画面例を示す図である。
【０３０４】
図２９の文書閲覧画面２９０１は、文書管理装置１０１で管理されている文書情報を閲覧する際に使用するものであり、文書情報表示部２９０２と、ボタン２９０７と、ボタン２９０８と、ボタン２９０９と、ボタン２９１０とで構成される。
【０３０５】
文書情報表示部２９０２は、文書管理装置１０１で管理されている文書情報の一覧を表示し、文書を識別するための場所であり、表示する文書情報として文書ＩＤ２９０３と、文書名称２９０４と、ステータス２９０５とで構成される。クライアント装置１０２の利用者が文書情報を選択すると、選択文書２９０６のように他の文書と表示が変わり、選択中であることを表す。
【０３０６】
ボタン２９０７は、選択文書２９０６で選択された文書に対して行われているチェックアウト予約の一覧を表示する処理を起動するボタンである。ボタン２９０７を押下することで、文書情報表示部２９０２の選択文書２９０６の文書情報を文書管理装置１０１の文書チェックアウト予約処理制御部２７１３に渡す。
【０３０７】
ボタン２９０８は、選択文書２９０６で選択された文書のチェックイン処理を起動するボタンであり、押下することで文書情報表示部２９０２の選択文書２９０６の文書情報を文書管理装置１０１の文書チェックイン処理制御部２７１２に渡す。
【０３０８】
ボタン２９０９は、選択文書２９０６で選択された文書のチェックアウト処理を起動するボタンであり、押下することで文書情報表示部２９０２の選択文書２９０６の文書情報を文書管理装置１０１の文書チェックアウト処理制御部２７１１に渡す。
【０３０９】
ボタン２９１０は、選択文書２９０６で選択された文書の詳細情報表示処理を起動するボタンであり、押下することで文書情報表示部２９０２の選択文書２９０６の情報を文書管理装置１０１の文書情報処理制御部３１５に渡す。
【０３１０】
（文書情報詳細表示画面例）
図３０は、図１のクライアント装置１０２のＣＲＴ４０９に表示する文書情報詳細表示画面例を示す図である。
【０３１１】
図３０の文書情報詳細表示画面３００１は、前記図２９の文書閲覧画面２９０１で選択された選択文書２９０６の詳細な情報を表示するために使用するものである。文書情報詳細表示画面３００１は、文書情報表示部３００２と、文書バージョン情報表示部３００８と、ボタン３０１２とで構成される。
【０３１２】
文書情報表示部３００２は、文書の保持する情報や状態を表示するための場所であり、文書ＩＤ３００３と、文書名称３００４と、ステータス３００５と、チェックアウト日付３００６と、チェックアウトユーザ３００７とで構成される。チェックアウト日付３００６と、チェックアウトユーザ３００７については、ステータス３００５が「チェックアウト中」になっている場合のみ表示される。
【０３１３】
文書バージョン情報表示部３００８は、文書が更新してきたバージョン情報の履歴を表示するための場所であり、バージョンＩＤ３００９と、登録日付３０１０と、登録ユーザ３０１１とで構成される。
【０３１４】
ボタン３０１２は、本画面を終了させるためのボタンであり、押下することで前記図２９の文書閲覧画面２９０１に戻る。
【０３１５】
（チェックアウト予約一覧画面例）
図３１は、図１のクライアント装置１０２のＣＲＴ４０９に表示するチェックアウト予約一覧画面３１０１の例を示す図である。
【０３１６】
図３１のチェックアウト予約一覧画面３１０１は、前記図２９の文書閲覧画面２９０１で選択された選択文書２９０６に設定されているチェックアウト予約情報を表示するために使用するものである。チェックアウト予約一覧画面３１０１は、文書情報表示部３１０２と、チェックアウト予約情報表示部３１０６と、ボタン３１１０と、ボタン３１１１と、ボタン３１１２とで構成される。
【０３１７】
文書情報表示部３１０２は、文書の保持する情報や状態を表示するための場所であり、文書ＩＤ３１０３と、文書名称３１０４と、ステータス３１０５とで構成される。
【０３１８】
チェックアウト予約情報表示部３１０６は、予約開始日付３１０７と、予約終了日付３１０８と、予約ユーザ３１０９とで構成される。ここに表示されるデータは、前記図２８Ｄでチェックアウト予約情報２８３１に登録された、文書ＩＤ３１０３で指定された文書に関するチェックアウト予約情報が予約開始日付３１０７で昇順に表示される。
【０３１９】
ボタン３１１０は、本画面を終了させるためのボタンであり、押下することで前記図２９の文書閲覧画面２９０１に戻る。
【０３２０】
ボタン３１１１は、チェックアウト予約情報表示部３１０６に表示されているチェックアウト予約情報をキャンセルする処理を起動するためのボタンである。チェックアウト予約情報表示部３１０６に表示されている情報の中からひとつの予約情報を選択した後に、ボタン３１１１を押下することで、選択された予約情報を文書管理装置１０１の文書チェックアウト予約処理制御部２７１３に渡す。そして、図３５のチェックアウト予約キャンセル画面３５０１に遷移する。
【０３２１】
ボタン３１１２は、文書ＩＤ３１０３のチェックアウト予約に関する予約フローの指定処理を起動するためのボタンである。ボタン３１１２を押下することで、本画面に表示されている文書情報を文書管理装置１０１の文書チェックアウト予約処理制御部２７１３に渡し、図３２の予約フロー指定画面３２０１に遷移する。
【０３２２】
（予約フロー指定画面例）
図３２は、図１のクライアント装置１０２のＣＲＴ４０９に表示する予約フロー指定画面例を示す図である。
【０３２３】
図３２の予約フロー指定画面３２０１は、前図３１のチェックアウト予約一覧画面３１０１で表示されていた文書に対してチェックアウトの予約を追加するに当って、該チェックアウト予約を含める予約フローを指定するために使用されるものである。予約フロー指定画面３２０１は、文書情報表示部３２０２と、ラジオボタン３２０５と、既存予約フロー選択部３２０６と、ラジオボタン３２１０と、新規予約フロー情報指定部３２１１と、ボタン３２１４、ボタン３２１５とで構成される。
【０３２４】
チェックアウト予約設定情報表示部３２０２は、文書ＩＤ３２０３と、文書名称３２０４とで構成される。ここには、前記図３１チェックアウト予約一覧画面３１０１で表示されていた文書の文書ＩＤと文書名称が表示されている。
【０３２５】
ラジオボタン３２０５とラジオボタンは３２１０は対になっており、いずれか一方がオン状態であれば、他方はオフ状態となる。ラジオボタン３２０５は、新しいチェックアウト予約を既存の予約フローのいずれかに追加する場合にオン状態にするものである。逆に、新しいチェックアウト予約を新規に予約フローを作成して、そこに追加する場合には、ラジオボタン３２１０をオン状態にする。
【０３２６】
既存予約フロー選択部３２０６は、選択３２０７と、予約フローＩＤ３２０８、フロー調整３２０９とで構成される。ここに表示される情報は、本画面を操作しているユーザが管理している予約フローの一覧を表示するものである。すなわち、前記図２８Ｅの予約フロー情報２８４１に登録された予約フロー情報から、本画面を操作しているユーザのユーザＩＤが管理ユーザＩＤ２８４４と等しい予約フロー情報を抽出して、予約フローＩＤの昇順に表示したものである。
【０３２７】
選択３２０７は、既存予約フロー選択部３２０６に表示される予約フローの中から１つだけを選択することができるラジオボタンである。ただし、選択３２０７は、前記ラジオボタン３２０５がオン状態の時にのみ使用可能となる。
【０３２８】
新規予約フロー情報指定部３２１１は、ラジオボタン３２１２とラジオボタン３２１３とで構成されている。ラジオボタン３２１２とラジオボタン３２１３は対になっており、いずれか一方がオン状態であれば、他方はオフ状態となる。新規予約フロー情報指定部３２１１は、新規に作成して前記図２８Ｅに登録する予約フロー情報２８４１のフロー調整２８４５に設定する値を指定する。ラジオボタン３２１２がオンであればフロー調整２８４５は「調整する」が設定され、ラジオボタン３２１３がオンであればフロー調整２８４５には「調整しない」が設定される。このフロー調整の「調整する」／「調整しない」という値が意味することについては、後述の図３３のチェックアウト予約設定画面の説明において詳しく解説する。
【０３２９】
ボタン３２１４は、処理を行なわずに本画面を終了させるためのボタンであり、押下することで前記図３１のチェックアウト予約一覧画面３１０１に戻る。
【０３３０】
ボタン３２１５は、文書ＩＤ３２０３に関するチェックアウト予約と予約フローの設定処理を起動するためのボタンである。ボタン３２１５を押下することで、以下の情報を文書管理装置１０１の文書チェックアウト予約処理制御部２７１３に渡し、図３３のチェックアウト予約設定画面３３０１に遷移する。上記情報は、本画面に表示されている文書情報と、ラジオボタン３２０５とラジオボタン３２１０のいずれがオン状態であるかという情報とを含む。また、ラジオボタン３２０５がオンの状態でボタン３２１５が押された場合には、既存予約フロー選択部３２０６で選択３２０７のラジオボタンがオン状態になっている予約フロー情報を含む。また、ラジオボタン３２１０がオンの状態でボタン３２１５が押された場合には、新規予約フロー情報指定部３２１１に指定されている情報を含む。
【０３３１】
（チェックアウト予約設定画面例）
図３３は、図１のクライアント装置１０２のＣＲＴ４０９に表示するチェックアウト予約設定画面例を示す図である。
【０３３２】
図３３のチェックアウト予約設定画面３３０１は、チェックアウトの予約を、前記図３２の予約フロー指定画面３２０１で、選択又は新規作成を指定した予約フローに追加する際の設定画面として使用されるものである。かかるチェックアウトの予約は、前記図３１のチェックアウト予約一覧画面３１０１で表示されていた文書に対するチェックアウトの予約である。チェックアウト予約設定画面３３０１は、予約フロー情報表示部３３０２、チェックアウト予約一覧情報表示部３３０５、チェックアウト予約設定情報表示部３３１２、チェックボックス３３１９、ボタン１０２０、ボタン１０２１で構成される。
【０３３３】
予約フロー情報表示部３３０２は、予約フローＩＤ３３０３と、フロー調整３３０４とで構成される。前記図３２の予約フロー指定画面３２０１で、チェックアウト予約を既存の予約フローに追加することを選択した場合には、選択された予約フローの情報が表示される。予約フロー指定画面３２０１で、新規に予約フローを追加することを選択した場合には、まだ予約フロー情報は追加されていないので予約フローＩＤ３３０３には情報が表示されない。しかし、フロー調整３３０４には前記図３２の予約フロー指定画面３２０１の新規予約フロー情報指定部３２１１において指定されたフロー調整の値が表示される。
【０３３４】
チェックアウト予約一覧情報表示部３３０５は、選択３３０６と、順序３３０７と、文書ＩＤ３３０８と、文書名称３３０９と、予約開始日付３３１０と、予約終了日付３３１１とで構成される。チェックアウト予約一覧情報表示部３３０５は、前記図３２の予約フロー指定画面３２０１でチェックアウト予約を既存の予約フローに追加することを選択した場合には、以下の情報を基に各項目を設定する。
【０３３５】
基となる情報は、予約フロー情報表示部３３０２の予約フローＩＤ３３０３と、前記図２８Ｆの予約フロー構成情報２８５１の予約フローＩＤ２８５２が合致するレコード２８５５とを含む。更に、前記合致したレコード２８５５の予約ＩＤ２８４５が、前記図２８Ｄのチェックアウト予約情報２８３１の予約ＩＤ２８３２に合致するレコード２８３９を含む。更に、前記合致したレコード２８３９の文書ＩＤ２８３３が前記図２８Ａの文書情報２８０１の文書ＩＤ２８０２に合致するレコード２８０５を含む。
【０３３６】
その結果、チェックアウト予約一覧情報表示部３３０５には、順序３３０７の昇順に各項目を一覧表する。各項目には、順序３３０７にフロー順序２８５３を表示する。文書ＩＤ３３０８に文書ＩＤ２８３３を表示する。文書名称３３０９に文書名称２８０３を表示する。予約開始日付３３１０にチェックアウト予約日付２８３４を表示する。予約終了日付３３１１にチェックイン予定日付２８３６を表示する。
【０３３７】
また、選択３３０６は、表示されている一覧の中から１つだけをオン状態にすることが可能なラジオボタンである。
【０３３８】
チェックアウト予約一覧情報表示部３３０５は、前記図３２の予約フロー指定画面３２０１で新規に予約フローを作成してチェックアウト予約を追加することを選択した場合には、何も表示されない。選択３３０６も表示されない。
【０３３９】
チェックアウト予約設定情報表示部３３１２は、予約挿入位置３３１３と、文書ＩＤ３３１４と、文書名称３３１５と、予約開始日付３３１６と、予約終了日付３３１７とで構成される。
【０３４０】
この中で予約挿入位置３３１３は、「前に挿入」と「後ろに挿入」というラジオボタンで構成されている。予約挿入位置３３１３は、次の場合に限って入力が可能となる。すなわち、前記図３２の予約フロー指定画面３２０１でチェックアウト予約を既存の予約フローに追加することを選択している場合である。且つ、チェックアウト予約一覧情報表示部３３０５に１つ以上のチェックアウト予約情報が表示され、そのうちの１つの選択３３０６がオン状態になっている場合である。
【０３４１】
予約挿入位置３３１３のラジオボタンは、「前に挿入」と「後ろに挿入」いずれか一方をオン状態にする事が可能である。これは、選択３３０６がオン状態になっているチェックアウト予約に対して、その前又はその後ろに新たなチェックアウト予約を追加することを意味している。前記図３２の予約フロー指定画面３２０１で、新規に予約フローを作成してチェックアウト予約を追加することを選択した場合には、チェックアウト予約一覧情報表示部３３０５には１件も情報が表示されていない。従って、予約挿入位置３３１３も使用できない状態となっている。
【０３４２】
予約開始日付３３１６と予約終了日付３３１７とは、ユーザが予約期間を指定するため入力可能状態となっており、ユーザは所定の書式（本実施形態では年月日）で開始と終了の予定を指定する。
【０３４３】
但し、前記チェックアウト予約一覧情報表示部３３０５の選択３３０６と予約挿入位置３３１３で、チェックアウト予約を挿入する位置を指定している場合は、予約開始日付３３１６と予約終了日付３３１７に指定できる日付値に制限が発生する。挿入する位置の前にチェックアウト予約情報が存在する場合には、予約開始日付３３１６には、その前のチェックアウト予約情報の予約終了日付３３１１よりも後の日付しか指定できない。また、挿入する位置の後ろにチェックアウト予約情報が存在する場合には、予約終了日付３３１７にはその後ろのチェックアウト予約情報の予約開始日付３３１０よりも前の日付しか指定できない。
【０３４４】
チェックボックス３３１９は、直前の予約がキャンセル、もしくは予約終了日付を待たずにチェックインされた場合に、予約を前倒しするかどうかを指定するために使用する。本チェックボックス３３１９がチェックされている場合には、前予約が終了した直後に次のチェックアウトが行われるが、チェックされていない場合には、指定した予約開始日付までチェックアウトが行われない。
【０３４５】
ここで、予約フロー情報表示部３３０２のフロー調整３３０４と、チェックボックス３３１９の差異について詳細に説明する。
【０３４６】
フロー調整３３０４は、チェックアウト予約を追加しようとしている予約フローにおけるチェックアウト開始日付の前倒しを実施するかどうかの指定である。１つのチェックアウト予約フローに少なくとも２つのチェックアウト予約が登録されており、前のチェックアウト予約が、設定されているチェックアウト終了予定日よりも早くチェックインが実行された場合に、指定される。その指定は、次のチェックアウト予約のチェックアウト開始日付の前倒しを実施するか否かの指定である。「調整する」が指定されていた場合にはフロー調整による前倒しが可能であれば前倒しが実施され、「調整しない」が指定されていた場合には前倒しは実施されない。
【０３４７】
例えば、図３３を例にとって見る。予約フロー情報表示部３３０２のフロー調整３３０４は「調整する」が指定されているので、この予約フローにおいてはフロー調整による前倒しが実施される設定であることを示している。チェックアウト予約一覧情報表示部３３０５の１行目のチェックアウト予約、すなわち、順序３３０７が「１」、文書ＩＤ３３０８が「０００９」の文書の予約終了日付３３１１は「２００５／０１／１０」となっている。そして、次の２行目の順序３３０７が「２」、文書ＩＤ３３０８が「００１２」の文書の予約開始日付３３１０は「２００５／０１／１１」である。これは文書ＩＤが「０００９」の文書が２００５年１月１０日にチェックインされる予定であり、翌日の２００５年１月１１日に文書ＩＤが「００１２」の文書をチェックアウトする予定であることを示している。
【０３４８】
「フロー調整」を実施すると、仮にこの１行目の文書ＩＤが「０００９」の文書が、予定よりも一日早く２００５年１月９日にチェックインされた場合、次の文書ＩＤが「００１２」の文書の予約開始日付を「２００５年１月１０日」に前倒しする。更に、ずらした日数分だけ予約終了日付もずらし、３行目以降の予約についても同様に、可能であれば予約開始日付と予約終了日付をずらしていく。
【０３４９】
チェックボックス３３１９の設定は、「フロー調整」のように予約フローの中での各チェックアウト予約の前倒しではない。チェックボックス３３１９の設定は、１つの文書に対して複数のチェックアウト予約が登録されていて、前のチェックアウト予約が予定よりも早くチェックインされた場合、次のチェックアウト予約の予約開始日が前倒しされるというものである。
【０３５０】
ボタン３３２０は、本画面での設定内容を破棄して、図３２の予約フロー指定画面３２０１へ遷移する。
【０３５１】
ボタン３３２１は、本画面で設定したチェックアウト予約情報の登録処理を起動するためのボタンである。ボタン３３２１を押下することで、以下の情報を文書管理装置１０１の文書チェックアウト予約処理制御部２７１３に渡す。そして、予約フロー情報保管部２７０７とチェックアウト予約情報保管部２７０５に情報を登録した後、図３４のチェックアウト予約完了画面３４０１に遷移する。その情報には、本画面に表示されていた予約フロー情報が含まれる。更に、チェックアウト予約一覧情報表示部３３０５に１つ以上のチェックアウト予約情報が表示されている場合には、選択３３０６がオン状態となって選択されている行の順序３３０７が含まれる。更に、チェックアウト予約設定情報表示部３３１２に入力されている情報が含まれる。
【０３５２】
また、文書チェックアウト予約処理制御部２７１３での処理中にエラーが発生した場合には、図３６のエラー画面３６０１に遷移する。本処理の流れは、図４３で詳細に説明する。
【０３５３】
（チェックアウト予約完了画面例）
図３４は、図１のクライアント装置１０２のＣＲＴ４０９に表示するチェックアウト予約完了画面３４０１の例を示す図である。
【０３５４】
図３４のチェックアウト予約完了画面３４０１は、前記図３３のチェックアウト予約設定画面３３０１のボタン３３２１の押下で起動された文書チェックアウト予約処理の結果を表示するために使用されるものである。チェックアウト予約完了画面３４０１は、予約フロー情報表示部３４０２と、チェックアウト予約一覧情報表示部３４０５と、ボタン３４１１とで構成される。
【０３５５】
予約フロー情報表示部３４０２は、予約フローＩＤ３４０３と、フロー調整３４０４とで構成される。前記図３２の予約フロー指定画面３２０１で、チェックアウト予約を既存の予約フローに追加することを選択した場合には、選択された予約フローの情報が表示される。予約フロー指定画面３２０１で、新規に予約フローを追加することを選択した場合には、新規に追加された予約フローの予約フローＩＤが表示される。フロー調整３４０４には、前記図３２の予約フロー指定画面３２０１の新規予約フロー情報指定部３２１１において指定されたフロー調整の値が表示される。
【０３５６】
チェックアウト予約一覧情報表示部３４０５は、順序３４０６と、文書ＩＤ３４０７と、文書名称３４０８と、予約開始日付３４０９と、予約終了日付３４１０とで構成される。
【０３５７】
チェックアウト予約一覧情報表示部３４０５は、前記図３３のチェックアウト予約一覧情報表示部３３０５と同様である。すなわち、前記図３３において新規に追加したチェックアウト予約情報を含め、その予約フローに登録されているチェックアウト予約情報を確認するための表示場所である。新たに追加されたチェックアウト予約情報は、チェックアウト予約一覧情報表示部３４０５に示されているように、他の予約よりも強調されて表示される。
【０３５８】
なお、チェックアウト予約は順序３４０６の昇順に一覧表示されており、新たに追加されたチェックアウト予約情報は前記図３３の選択３３０６と予約挿入位置３３１３によって指定された位置に挿入される。また、挿入位置以下のチェックアウト予約情報については、順序３４０６に表示される順序番号が、チェックアウト予約情報が１件挿入されることによって、１つずつ番号が加算される。
【０３５９】
前記図３３のチェックアウト予約設定画面３３１において、順序３３０７に１，２，３と順序番号が表示されていて、２の位置の挿入位置の選択３３０６をオン状態にし、予約挿入位置３３１３で「後ろに挿入」を選んで追加した場合、次のようになる。２の後ろ、３の位置に新しいチェックアウト予約情報が追加され、追加前は３であったチェックアウト予約情報は４として、チェックアウト予約一覧情報表示部３４０５に表示される。
【０３６０】
ボタン３４１１は、本画面を終了させるためのボタンであり、押下することで前記図３１のチェックアウト予約一覧画面３１０１に戻る。
【０３６１】
（チェックアウト予約キャンセル画面例）
図３５は、図１のクライアント装置１０２のＣＲＴ４０９に表示するチェックアウト予約キャンセル画面３５０１の例を示す図である。
【０３６２】
図３５のチェックアウト予約キャンセル画面３５０１は、前記図３１のチェックアウト予約一覧画面３１０１で表示されていたチェックアウト予約情報を削除する際の確認画面として使用されるものである。チェックアウト予約キャンセル画面３５０１は、文書ＩＤ３５０２と、文書名称３５０３と、予約開始日付３５０４と、予約終了日付３５０５と、ボタン３５０６と、ボタン３５０７とで構成される。
【０３６３】
文書ＩＤ３５０２と、文書名称３５０３と、予約開始日付３５０４と、予約終了日付３５０５は、図２８Ａの文書情報と、図２８Ｄのチェックアウト予約情報の中から該当するキャンセル対象予約情報を表示する部分である。表示される内容は、図３１のチェックアウト予約一覧画面３１０１のチェックアウト予約情報表示部３１０６で選択された内容を表す。
【０３６４】
ボタン３５０６は、本画面に表示されている予約情報のキャンセル処理を破棄するために使用されるものであり、押下することで予約のキャンセル処理を行わずに前記図３１のチェックアウト予約一覧画面３１０１に戻る。
【０３６５】
ボタン３５０７は、本画面に表示したチェックアウト予約情報のキャンセル処理を起動するためのボタンである。ボタン３５０７を押下することで、本画面に表示されたチェックアウト予約情報を文書管理装置１０１の文書チェックアウト予約処理制御部２７１３に渡す。そして、チェックアウト予約情報保管部２７０５に保管されている前記図２８Ｄのチェックアウト予約情報と、予約フロー情報保管部２７０７に保管されている前記図２８Ｆの予約フロー構成情報とから削除する。その後、図３１のチェックアウト予約一覧画面３１０１に遷移する。予約情報の削除後、キャンセルした予約の後に続く予約が存在する場合には、予約の内容により予約期間シフト処理を、チェックアウト予約一覧画面３１０１に遷移する前に行う。
【０３６６】
また、文書チェックアウト予約処理制御部２７１３での処理中にエラーが発生した場合には、図３６のエラー画面３６０１に遷移する。
【０３６７】
（エラー画面例）
図３６は、図１のクライアント装置１０２のＣＲＴ４０９に表示するエラー画面３６０１の例を示す図である。
【０３６８】
図３６のエラー画面３６０１は、文書管理装置１０１で行われる各処理中にエラーが発生した場合にクライアント装置１０２にエラー内容を表示するためのものである。エラー画面３６０１は、エラー対象となる文書ＩＤ３６０２と、その文書名称３６０３と、エラーメッセージ表示部３６０４と、ボタン３６０５とで構成される。
【０３６９】
文書ＩＤ３６０２と、文書名称３６０３は、エラーとなった対象の文書情報を表示する場所である。
【０３７０】
エラーメッセージ表示部３６０４は、発生したエラー内容を表示する。ここに表示されるメッセージは、特に文字列に限る必要はなく、イメージなど他の手段でもかまわない。
【０３７１】
ボタン３６０５は、本画面を終了させるためのボタンであり、押下することで前記図２９の文書閲覧画面２９０１や図３１のチェックアウト予約一覧画面３１０１に戻る。
【０３７２】
（チェックアウト画面例）
図３７は、図１のクライアント装置１０２のＣＲＴ４０９に表示するチェックアウト画面例を示す図である。
【０３７３】
図３７のチェックアウト画面３７０１は、前記図２９の文書閲覧画面２９０１で選択された選択文書２９０６のチェックアウト処理確認を行うために使用されるものである。チェックアウト画面３７０１は、文書ＩＤ３７０２と、文書名称３７０３と、ステータス３７０４と、ボタン３７０５と、ボタン３７０６とで構成される。
【０３７４】
文書ＩＤ３７０２と、文書名称３７０３と、ステータス３７０４は、前記図２９の文書閲覧画面２９０１で選択された選択文書２９０６の本画面表示時点での最新情報を表示する場所である。
【０３７５】
ボタン３７０５は、本画面に表示されている文書情報のチェックアウト処理を破棄するために使用されるものであり、押下することでチェックアウト処理を行わずに前記図２９の文書閲覧画面２９０１に戻る。
【０３７６】
ボタン３７０６は、文書ＩＤ３７０２に表示されている文書のチェックアウト処理を起動するためのボタンであり、押下することで本画面に表示されている文書情報を文書管理装置１０１の文書チェックアウト処理制御部２７１１に渡す。文書チェックアウト処理制御部２７１１でのチェックアウト処理でチェックアウト処理が終了した際には、図３９のチェックアウト完了画面３９０１へ遷移する。但し、文書チェックアウト処理制御部２７１１でチェックアウトする際に制限が発見された場合には、制限の内容を図３８のチェックアウト制限許諾画面３８０１に表示し、ユーザが制限を許諾した後にチェックアウト処理を行う。また、文書チェックアウト処理制御部２７１１での処理中にエラーが発生した場合には、図３６のエラー画面３６０１に遷移する。本チェックアウト処理の流れは、図４６で詳細に説明する。
【０３７７】
（チェックアウト制限許諾画面例）
図３８は、図１のクライアント装置１０２のＣＲＴ４０９に表示するチェックアウト制限許諾画面３８０１の例を示す図である。
【０３７８】
図３８のチェックアウト制限許諾画面３８０１は、文書ＩＤ３８０２と、文書名称３８０３と、制限内容表示部３８０４と、ボタン３８０５と、ボタン３５０６とで構成される。
【０３７９】
文書ＩＤ３８０２と、文書名称３８０３は、チェックアウトする対象の文書情報を表示する場所である。
【０３８０】
制限内容表示部３８０４は、チェックアウトを行う際に、ユーザにとっての制限となる内容を表示する部分であり、文書をチェックアウトして作業できる期間が別の予約によって制限される旨などを表示する。
【０３８１】
ボタン３８０５は、本画面に表示されている制限内容に同意できない際、文書情報のチェックアウト処理を破棄するために使用されるものであり、押下することでチェックアウト処理を行わずに前記図２９の文書閲覧画面２９０１に戻る。
【０３８２】
ボタン３５０６は、本画面に表示されている制限内容に同意できる際、文書情報のチェックアウト処理を継続実行するために使用されるものである。ボタン３５０６を押下することで、文書管理装置１０１の文書チェックアウト処理制御部２７１１でチェックアウト処理が行われ、チェックアウト処理が終了した際には、図３９のチェックアウト完了画面３９０１へ遷移する。また、文書チェックアウト処理制御部２７１１での処理中にエラーが発生した場合には、図３６のエラー画面３６０１に遷移する。
【０３８３】
（チェックアウト完了画面例）
図３９は、図１のクライアント装置１０２のＣＲＴ４０９に表示するチェックアウト完了画面３９０１の例を示す図である。
【０３８４】
図３９のチェックアウト完了画面３９０１は、チェックアウト処理の結果を表示するために使用されるものであり、文書ＩＤ３９０２と、文書名称３９０３と、ボタン３９０４とで構成される。かかるチェックアウト処理は、前記図３７のチェックアウト画面３７０１のボタン３７０６、もしくは前記図３８のチェックアウト制限許諾画面３８０１のボタン３８０６の押下で起動されたものである。
【０３８５】
文書ＩＤ３９０２と、文書名称３９０３は、チェックアウトを行った文書情報をユーザに通知するために表示する場所である。
【０３８６】
ボタン３９０４は、本画面を終了させるためのボタンであり、押下することで前記図２９の文書閲覧画面２９０１に戻る。
【０３８７】
（チェックイン画面例）
図４０は、図１のクライアント装置１０２のＣＲＴ４０９に表示するチェックイン画面４００１の例を示す図である。
【０３８８】
図４０のチェックイン画面４００１は、前記図２９の文書閲覧画面２９０１で選択された選択文書２９０６のチェックイン処理設定を行うために使用されるものである。チェックイン画面４００１は、チェックイン文書情報表示部４００２と、チェックイン時に登録する文書ファイル情報表示欄４００７と、ボタン４００８と、ボタン４００９とで構成される。
【０３８９】
チェックイン文書情報表示部４００２は、チェックイン対象となっている選択文書２９０６の本画面表示時点での最新情報を表示する場所である。チェックイン文書情報表示部４００２は、文書ＩＤ４００３と、文書名称４００４と、ステータス４００５と、チェックアウト日付４００６とで構成される。
【０３９０】
文書ファイル情報表示欄４００７は、チェックイン時に登録する文書ファイルを指し示す情報を表示する欄であり、登録する文書の情報のパスおよびファイル名称が表示される。また、利用者が直接入力することも可能である。
【０３９１】
ボタン４００８は、登録するファイルを指定するための処理を起動するためのボタンであり、このボタンの動作によりクライアント装置が提供するローカルもしくはネットワーク越しのリモート環境に存在するファイルを識別することが可能となる。この画面はＯＳが提供するものであり、本実施形態の中で特徴のあるものではないため、図などの詳細な説明は行わない。本ボタンからの選択画面で選択された登録文書のパス及びファイル名称については、前記文書ファイル情報表示欄４００７に表示される。
【０３９２】
ボタン４００９は、文書ファイル情報表示欄４００７で指定されたファイルを文書の新規バージョンとして登録するチェックイン処理を起動するためのボタンである。ボタン４００９を押下することで、本画面に表示されている文書のチェックインに必要な情報を文書管理装置１０１の文書チェックイン処理制御部２７１２に渡す。
【０３９３】
文書チェックイン処理制御部２７１２でのチェックイン処理が終了した際には、図４１のチェックイン完了画面４１０１へ遷移する。また、文書チェックイン処理制御部２７１２での処理中にエラーが発生した場合には、図３６のエラー画面３６０１に遷移する。本チェックイン処理の流れは、図４８で詳細に説明する。
【０３９４】
（チェックイン完了画面例）
図４１は、図１のクライアント装置１０２のＣＲＴ４０９に表示するチェックイン完了画面４１０１の例を示す図である。
【０３９５】
図４１のチェックイン完了画面４１０１は、前記図４０のチェックイン画面４００１のボタン４００９の押下で起動された文書チェックイン処理の結果を表示するために使用されるものである。チェックイン完了画面４１０１は、文書ＩＤ４１０２と、文書名称４１０３と、ステータス４１０４と、最新バージョンＩＤ４１０５と、ボタン４１０６とで構成される。
【０３９６】
文書ＩＤ４１０２と、文書名称４１０３と、ステータス４１０４と、最新バージョンＩＤ４１０５は、チェックイン処理を行った文書情報をユーザに通知するために表示する場所である。
【０３９７】
ボタン４１０６は、本画面を終了させるためのボタンであり、押下することで前記図２９の文書閲覧画面２９０１に戻る。
【０３９８】
＜本実施形態の通知メールのフォーマット例＞
図４２は、本実施形態で使用されるクライアント装置への通知メールのフォーマット例を示す図である。
【０３９９】
図４２のメールフォーマット４２０１は、メールヘッダー部分４２０２とメール本文部分４２０５とで構成される。
【０４００】
メールヘッダー部分４２０２は、宛先となるメールアドレスを記述する宛先４２０３と、送信するメールの題名を記述する表題４２０４とで構成される。実際のメールプロトコル上では、これ以外のヘッダー情報も多数規定されているが、本実施形態では必要最低限の情報以外は省略している。特に、記載されている以外のヘッダー情報を付加できないということではない。
【０４０１】
メール本文部分４２０５には、対象となる文書名称４２０６と、文書名称４２０６の文書のチェックアウト期限４２０７と、メールに固定で表示されるメッセージ４２０８とで構成される。
【０４０２】
本メールフォーマットは、外部プログラムからデータを設定することによって、メールの体裁を整えるものである。
【０４０３】
＜本実施形態の文書管理装置の動作例＞
以下、上記本実施形態の文書管理装置の動作例をフローチャートを参照しながら説明する。
【０４０４】
（文書管理装置１０１が文書のチェックアウト予約を行う処理例）
図４３は、図１に記載された文書管理装置１０１によるチェックアウト予約処理の手順例を示すフローチャートである。
【０４０５】
図４３は、クライアント装置１０２のＣＲＴ４０９に表示されている前記図３３のチェックアウト予約設定画面３３０１のボタン３３２１を押下することにより起動される。図４３は、文書管理装置１０１の文書チェックアウト予約処理制御部２７１３によって行われる処理フローを表したものであり、本処理は図２のＣＰＵ２０１によって実行される。
【０４０６】
本処理で必要なデータは、次の各情報である。かかる情報は、チェックアウト予約設定画面３３０１にて入力された予約フローＩＤ３３０３、フロー調整３３０４、選択３３０６、予約挿入位置３３１３を含む。更に、文書ＩＤ３３１４、予約開始日付３３１６、予約終了日付３３１７、チェックボックス３３１９、および本操作を行っているユーザＩＤを含む。
【０４０７】
図４３に示すとおり、ステップＳ４３０１において、チェックアウト予約情報２８３１を文書管理装置１０１のチェックアウト予約情報操作部２７０６経由でチェックアウト予約情報保管部２７０５から取得する。かかるチェックアウト予約情報２８３１は、クライアント装置１０２から渡された、前記図３３に表示されている文書ＩＤ３３１４に合致するものである。取得処理が終了したら、次のステップＳ４３０２へ進む。ステップＳ４３０２において、前記ステップＳ４３０１で取得したチェックアウト予約情報が存在しているかどうかを判断し、存在している場合には次のステップＳ４３０３へ、存在していない場合にはステップＳ４３０７へ進む。
【０４０８】
ステップＳ４３０３において、前記ステップＳ４３０１で取得したチェックアウト予約情報２８３１のレコード件数の数だけ、ステップＳ４３０６までの繰り返し処理の制御を行う。
【０４０９】
まず、チェックアウト予約情報２８３１のレコードの中から１件のレコードを特定して、次のステップＳ４３０４に進む。ステップＳ４３０４においては、取得したチェックアウト予約情報２８３１の項目のチェックアウト予約日付２８３４とチェックイン予定日付２８３６の値をレコードから取得し、次のステップＳ４３０５へ進む。
【０４１０】
ステップＳ４３０５においては、前記ステップＳ４３０４で取得した２項目と本処理への入力値となる予約開始日付３３１６と予約終了日付３３１７とが、以下の条件を満たすかどうかを確認する。
【０４１１】
比較条件：
新規の予約開始日付３３１６＜予約済みチェックイン予定日付２８３６
かつ
新規の予約終了日付３３１７＞予約済みチェックアウト予約日付２８３４
本比較条件を満たしている場合には、新規予約する期間が既に予約されている期間と重複するため、エラーと判断してステップＳ４３１３へ進む。また、前記比較条件を満たしていない場合には、新規予約する期間との重複がないものとして次のステップＳ４３０６へ進む。かかる判定が、挿入可否判断手段に相当する。
【０４１２】
ステップＳ４３０６では、前記ステップＳ４３０１で取得したチェックアウト予約情報２８３１のうち１レコードについての重複チェックが終わったことを表す。まだチェックアウト予約情報２８３１のレコードが残っているようであれば、前記ステップＳ４３０４に遷移する。既にチェックアウト予約情報２８３１のレコード全件についての処理が終わっている場合には、次のステップＳ４３０７へ進む。
【０４１３】
ステップＳ４３０７では、新規予約データが既存の予約データとの重複が発生していないことが確認され、新規チェックアウト予約情報の登録が可能となったので、そのチェックアウト予約情報を登録する予約フロー情報の処理判定を行なう。
【０４１４】
前記図３２の予約フロー指定画面３２０１において、ラジオボックス３２０５をオン状態にしている場合には、既存予約フロー選択部３２０６でチェックアウト予約を追加する先の予約フローが選択３２０７によって選択される。その予約フローＩＤが図３３のチェックアウト予約設定画面３３０１の予約フローＩＤ３３０３に指定されている。逆に、予約フロー指定画面３２０１において、ラジオボックス３２１０をオンにしていた場合には、新規に予約フローを作成すことを選択したことになるので、チェックアウト予約設定画面３３０１の予約フローＩＤ３３０３は空欄である。
【０４１５】
以上の様に、予約フローＩＤ３３０３が空欄である場合には、新規予約フローを作成するのでステップＳ４３１２へ進む。既存の予約フローに追加する場合はステップＳ４３０８に進む。
【０４１６】
ステップＳ４３０８では、既存の予約フローにおいて、新たなチェックアウト予約を追加する、その前後のチェックアウト予約情報を取得する。今、この新しい予約情報を挿入する位置の直前にあるチェックアウト予約情報を「先行予約情報」、挿入する位置の直後に来るチェックアウト予約情報を「後続予約情報」と呼ぶこととする。
【０４１７】
既存の予約フローに新たなチェックアウト予約情報を追加する場合には、前記図３３のチェックアウト予約設定画面３３０１において、選択３３０６で既存の予約情報が１つ選択され、その順序３３０７が取得できているはずである。よって、予約フローＩＤ３３０３と指定された順序３３０７で、前記図２８Ｆの予約フロー構成情報２８５１の予約フローＩＤ２８５２、フロー順序２８５３と一致するレコードを検索する。その結果、該当するレコードの予約ＩＤ２８５４を取得することができる。この予約ＩＤは、予約挿入位置３３１３で「前に挿入」が指定されている場合には、後続予約情報の予約ＩＤ（＝「後続予約ＩＤ」）である。予約挿入位置３３１３で「後ろに挿入」が指定された場合は、先行予約情報の予約ＩＤ（＝「先行予約ＩＤ」）となる。
【０４１８】
予約挿入位置３３１３で「前に挿入」が指定された場合は、次に、先程検索に使用した順序３３０７の値を１減算して、予約フローＩＤ２８５２、フロー順序２８５３と一致するレコードを検索する。合致するレコードが予約フロー構成情報２８５１に存在した場合には、その予約ＩＤ２８５４が「先行予約ＩＤ」となる。「先行予約ＩＤ」を使用して前記図２８Ｄのチェックアウト予約情報２８３１を検索し、予約ＩＤ２８３２が合致するレコードを取得する。そのレコードの「チェックイン予定日付」が「先行予約情報の終了日付」となる。但し、予約挿入位置として最も先頭のチェックアウト予約情報が指定されていた場合には、該当するデータが存在しない。この場合は、「先行予約情報の終了日付無し」となる。
【０４１９】
逆に、予約挿入位置３３１３で「後ろに挿入」が指定された場合には１加算して、予約フローＩＤ２８５２、フロー順序２８５３と一致するレコードを検索する。合致するレコードが予約フロー構成情報２８５１に存在した場合には、その予約ＩＤ２８５４が「後続予約ＩＤ」となる。「後続予約ＩＤ」を使用して前記図２８Ｄのチェックアウト予約情報２８３１を検索し、予約ＩＤ２８３２が合致するレコードを取得する。そのレコードの「チェックアウト予定日付」が「後続予約情報の開始日付」となる。但し、予約挿入位置として最も末尾のチェックアウト予約情報が指定されていた場合には、該当するデータが存在しない。この場合は、「後続予約情報の終了日付無し」となる。
【０４２０】
この「先行予約情報の終了日付」と「後続予約情報の開始日付」を用いて、次のステップＳ４３０９の判定を行なう。
【０４２１】
ステップＳ４３０９においては、追加しようとしている新しいチェックアウト予約情報の予約開始日付、予約終了日付と、先のステップＳ４３０８において取得した「先行予約情報の終了日付」と「後続予約情報の開始日付」を比較する。かかる比較により、追加しようとしているチェックアウト予約情報の期間が、予約フロー内における前後のチェックアウト予約情報の帰還と重複しないかどうかをチェックする。比較条件は以下の通りである。
【０４２２】
比較条件１：
先行予約情報の終了日付無し
又は
予約開始日付３３１６＞先行予約情報の終了日付
比較条件２：
後続予約情報の終了日付無し
又は
予約終了日付３３１７＜後続予約情報の終了日付
この比較条件１、比較条件２を両方とも満たす場合には、妥当な期間が指定されていると判断され、ステップＳ４３１０へ進み、チェックアウト予約情報の新規登録を行なう。この条件の一方でも満たさない場合には、予約フロー内の前後の予約情報と日程が重複するのでエラーと判断して、ステップＳ４３１３へ進む。
【０４２３】
ステップＳ４３１０では、チェックアウト予約情報２８３１に対して新規のデータの登録を行なう。
【０４２４】
チェックアウト予約情報２８３１の各項目に対しては、以下の様に設定したデータで新規レコード２８３９を作成する。
【０４２５】
予約ＩＤ２８３２は、新規にユニークなＩＤ値を生成して設定する。このＩＤはチェックアウト予約情報２８３１においてレコード２８３９を一意に識別できるＩＤである。文書ＩＤ２８３３は、前記図３３のチェックアウト予約設定画面３３０１において指定されていた文書ＩＤ３３１４を設定する。
【０４２６】
チェックアウト予約日付２８３４は、前記図３３のチェックアウト予約設定画面３３０１において指定されていた予約開始日付３３１６を設定する。予約ユーザＩＤ２８３５は、現在ログインしているユーザのユーザＩＤを設定する。チェックイン予定日付２８３６は、前記図３３のチェックアウト予約設定画面３３０１において指定されていた予約終了日付３３１７を設定する。
【０４２７】
前予約追従フラグ２８３７は、前記図３３のチェックアウト予約設定画面３３０１において、チェックボックス３３１９がオン状態である場合には「真（ＴＲＵＥ）」が、オフ状態である場合には「偽（ＦＡＬＳＥ）」を設定する。ステータス２８３８には「未処理」を設定する。
【０４２８】
ステップＳ４３１１では、前記ステップＳ４３１０で登録したチェックアウト予約情報に対応する予約フロー構成情報を予約フロー構成情報２８５１に対して新規登録する処理と、それに伴い既存の予約フロー構成情報のフロー順序値の更新を行なう。
【０４２９】
予約フロー構成情報２８５１の各項目に対しては以下の様に設定したデータで新規レコード２８５５を作成する。
【０４３０】
まず最初に、フロー順序２８５３に設定する値と、既存の予約フロー構成情報のフロー順序値の更新について説明する。
【０４３１】
フロー順序２８５３は、同一予約フローＩＤを持つチェックアウト予約情報２８３１をチェックアウト予約日付２８３４の昇順に並べ、先頭から順番に１、２、３、...という連続する番号を振ったものである。
【０４３２】
予約フロー指定画面３２０１において、「新規に予約フロー情報を作成して追加する」を選択している場合には、現在処理を行なっている予約フロー内には前記ステップＳ４３１０で追加したチェックアウト予約情報が１件存在しているのみである。この場合は、フロー順序２８５３は「１」となる。また、この場合は既存の予約フロー構成情報のフロー順序値の更新という処理は発生しない。
【０４３３】
予約フロー指定画面３２０１において、「既存の予約フローに追加する」を選択している場合には、既存のチェックアウト予約情報の間に挿入されるケースがある。従って、予約フロー構成情報に対する新規レコードの追加の他に、同一予約フローＩＤを持つ他のレコードのフロー順序２８５３の値の更新処理も必要になる。
【０４３４】
まず、チェックアウト予約情報２８３１を検索して、現在処理している予約フローＩＤと同一予約フローＩＤを持つレコード２８３９を全件取得する。必要な情報は、予約ＩＤ２８３２とチェックアウト予約日付２８３４である。この取得した情報の予約ＩＤ２３３２には、今回の処理要求に応じて前記ステップＳ４３１０で追加したチェックアウト予約情報の予約ＩＤも含まれている。次に、このレコードをチェックアウト予約日付２８３４の昇順に並べ、各レコードに対して先頭から１、２、３と連続した番号を割り当てる。これによって、予約ＩＤ２３３２と、それに対応する新しいフロー順序の値が決定する。即ち、予約ＩＤとフロー順序の対応表が出来上がる。
【０４３５】
この予約ＩＤとフロー順序の値の対応表を元にして、既存の予約フロー構成情報の予約ＩＤについては、その予約ＩＤで予約フロー構成情報２８５１を検索する。そして、対応表にある新しいフロー順序の値をフロー順序２８５３に設定し、データを更新するという処理を順次繰り返し行なうことになる。
【０４３６】
現在追加しようとしている新しい予約フロー構成情報のフロー順序２８５３は、この予約ＩＤとフロー順序の対応表の中の、ステップＳ４３１０で追加したチェックアウト予約情報２８３１の予約ＩＤに対応する値である。予約フロー構成情報のフロー順序２８５３は以上のように決定される。
【０４３７】
予約フロー構成情報２８５１の予約フローＩＤ２８５２は、前記図３２の予約フロー指定画面３２０１において、ラジオボタン３２０５をオン状態にして「既存の予約フローに追加する」を選択している場合には、次の設定となる。すなわち、前記図３３のチェックアウト予約設定画面３３０１において指定されている予約フローＩＤ３３０３を設定する。予約フロー指定画面３２０１において、ラジオボタン３２１０をオン状態にして、「新規に予約フロー情報を作成して追加する」を選択している場合には、次の設定となる。すなわち、後述するステップＳ４３１２において予約フロー情報２８４１に追加登録されたレコード２８４６の予約フローＩＤ２８４２を設定する。
【０４３８】
予約フロー構成情報の予約ＩＤ２８５４は、前記ステップＳ４３１０において追加したチェックアウト予約情報２８３１の予約ＩＤ２８３２に指定したのと同じＩＤである。
【０４３９】
以上によって、新規に追加する予約フロー構成情報２８５１のレコード２８５５の各項目の値が決定するので、この情報を新規に登録してステップＳ４３１１を終了する。
【０４４０】
ステップＳ４３１２は、予約フロー指定画面３２０１において、ラジオボックス３２１０をオンにして、新規に予約フローを作成すことを選択した場合の処理である。この処理では新規に予約フロー情報２８４１のレコード２８４５を作成して登録する。レコード２８４５に含まれる各項目の値は以下の様にして決定される。
【０４４１】
予約フローＩＤ２８４２は、予約フロー情報２８４１を一意に識別できるような情報を任意に生成し、設定する。本実施形態では処理内部において任意に生成することとしているが、ユーザに値を指定させることにしても構わない。管理ユーザＩＤ２８４３は、現在ログイン中のユーザのＩＤである。フロー調整２８４４は、前記図３２の新規予約フロー情報指定部３２１１のラジオボタン３２１２とラジオボタン３２１３の状態によって決定する。ラジオボタン３２１２がオン状態である場合には「調整する」が設定され、ラジオボタン３２１３がオン状態である場合には「調整しない」が設定される。以上の内容でレコード２８４５を作成し、予約フロー情報２８４１に新規登録して次のステップに進む。
【０４４２】
ステップＳ４３１３は、予約期間のチェックで重複エラーが発見された場合などに遷移する処理であり、前記図３６のエラー画面３６０１へエラーの内容を出力して、ユーザにエラーの内容を通知する。前記エラー画面３６０１でエラー情報の確認後、ボタン３６０５が押下されると、本チェックアウト予約処理は、予約されない状態で終了する。
【０４４３】
本処理が終了した際には、前記図３４のチェックアウト予約完了画面３４０１が表示される。
【０４４４】
（文書管理装置１０１が予約期間終了状況を確認する処理例）
図４４は、図１に記載された文書管理装置１０１によるチェックアウト予約期間終了確認処理の手順例を示すフローチャートである。
【０４４５】
本処理はユーザからのアクションを受けて行われるものではなく、文書管理装置１０１内で定期的に自動実行される処理である。この実行間隔に関しては特に限定するものではない。図４４は、この定期的に実行される処理の１回の処理フローを示すものであり、文書管理装置１０１上の文書チェックアウト予約処理制御部２７１３によって図２のＣＰＵ２０１を使用して行われる。
【０４４６】
本処理を行うにあたって必要なデータは、終了警告を行う予約残日数閾値であり、この内容は、あらかじめ文書管理装置１０１内に設定されているものとする。
【０４４７】
図４４に示すとおり、ステップＳ４４０１において、図２８Ｄのチェックアウト予約情報２８３１に存在する予約情報のうち、予約期間が終了するものを以下の条件に照らし合わせて取得する。
【０４４８】
取得条件：
（１）ステータス２８３８が「完了」になっていない
かつ
（２）本処理実行時日付＋システム設定されている予約残日数
＞チェックイン予定日付２８３６
取得条件（１）は、チェックアウト予約情報２８３１からステータス２８３８が「未処理」（＝チェックアウトが未だ行なわれていない）か、「処理中」（＝現在チェックアウト中である）のものを取得するものである。取得条件（２）は、チェックイン予定日付２８３６が処理時点の日時からある一定期間内（予約残日数閾値内）にまで近づいているか、既にチェックイン予定日付２８３６を過ぎてしまっているものを取得するものである。ここで合致した前記チェックアウト予約情報２８３１のレコードは、文書ＩＤでソートされているものとする。取得処理が終了したら、次のステップＳ４４０２へ進む。
【０４４９】
ステップＳ４４０２において、前記ステップＳ４４０１で取得したチェックアウト予約情報２８３１のレコードが１件以上存在しているかどうかの判断を行う。存在している場合には、次のステップＳ４４０３へ、存在していない場合には、本処理を終了する。
【０４５０】
ステップＳ４４０３において、前記ステップＳ４４０１で取得したチェックアウト予約情報２８３１のレコード件数の数だけ、ステップＳ４４０７までの間の繰り返し処理の制御を行う。
【０４５１】
まず、チェックアウト予約情報２８３１のレコードの中から１件のレコードを特定して、次のステップＳ４４０４へ進む。ステップＳ４４０４においては、前記ステップＳ４４０３で特定されたチェックアウト予約情報２８３１のレコードから取得した文書ＩＤ２８３３をキーとする。そして、チェックアウト情報操作部２７０４を使用してチェックアウト情報保管部２７０３から該当するチェックアウト情報２８２１のレコードを取得する。該当レコードの取得処理が終了したら、次のステップＳ４４０５へ進む。
【０４５２】
ステップＳ４４０５において、前記ステップＳ４４０４にて取得したチェックアウト情報２８２１が存在しているかどうかを確認し、存在している場合には次のステップＳ４４０６へ、存在しない場合には、ステップＳ４４０７へ進む。
【０４５３】
ステップＳ４４０６においては、前記ステップＳ４４０４にて取得したチェックアウト情報２８２１のレコードのチェックアウトユーザＩＤ２８２４をキーとする。そして、ユーザ情報操作部２７１０を使用してユーザ情報保管部２７０９から該当するユーザ情報２８６１を取得する。また、同じチェックアウト情報２８２１のレコードの文書ＩＤ２８２２をキーとする。そして、文書情報操作部２７０２を使用して文書情報保管部２７０１から該当する文書情報２８０１を取得する。
【０４５４】
これら取得した情報を使用して、図４２に示すメールフォーマット４２０１を使用したメールを送信する。メールフォーマット４２０１に指定する情報は、以下のように設定される。宛先４２０３には、取得したユーザ情報２８６１のメールアドレス２８６４が設定される。表題４２０４には「チェックアウト期限確認」の文字が、文書名称４２０６には取得した文書情報２８０１の文書名称２８０３が設定される。チェックアウト期限４２０７には、前記ステップＳ４４０３で特定されたチェックアウト予約情報２８３１のチェックイン予定日付２８３６もしくはチェックアウト予約日付２８３４の内、ステップＳ４４０１の取得条件に合致した方の日付が設定される。メッセージ４２０８には、「チェックアウト終了期限が近づいてきました。指定した期限までにはチェックイン、もしくはチェックアウト取消をしてください。」と言う旨のメッセージが適用される。作成したメールはすぐに送信する。メールの送信が終了したら、次のステップＳ４４０７へ進む。
【０４５５】
ステップＳ４４０７においては、ステップＳ４４０１にて取得したチェックアウト予約情報２８３１のレコードすべての処理が終了したかどうかを判断する。まだ未処理レコードが残っている場合にはステップＳ４４０３へ、未処理レコードが存在しない場合には処理ループを抜けて本処理を終了する。
【０４５６】
（文書管理装置１０１が予約期間開始文書をチェックアウトする処理例）
図４５は、図１に記載された文書管理装置１０１によるチェックアウト予約実行処理の手順例を示すフローチャートである。
【０４５７】
本処理はユーザからのアクションを受けて行われるものではなく、文書管理装置１０１内で定期的に自動実行される処理である。この実行間隔に関しては特に限定するものではない。図４５は、この定期的に実行される処理の１回の処理フローを示すものであり、文書管理装置１０１上の文書チェックアウト予約処理制御部２７１３によって図２のＣＰＵ２０１を使用して行われる。
【０４５８】
図４５に示すとおり、ステップＳ４５０１において、図２８Ｄのチェックアウト予約情報２８３１に存在する予約情報のうち、予約期間が開始するものを以下の条件に照らし合わせて取得する。
【０４５９】
取得条件：
ステータス２８３８が「完了」になっていない
かつ
本処理実行時日付≧チェックアウト予約日付２８３４
ここで合致した前記チェックアウト予約情報２８３１のレコードは、文書ＩＤ２８３３とチェックアウト予約日付２８３４とでソートされているものとする。また、同じ文書ＩＤ２８３３が複数存在する場合には、チェックアウト予約日付２８３４が最小の日付を示すもののみを残し、残りのレコードは対象レコードから削除する。前記条件での対象レコード取得処理が終わったら、次のステップＳ４５０２に進む。ステップＳ４５０２において、前記ステップＳ４５０１で取得したチェックアウト予約情報２８３１のレコードが１件以上存在しているかどうかの判断を行う。存在している場合には、次のステップＳ４５０３へ、存在していない場合には、本処理を終了する。
【０４６０】
ステップＳ４５０３において、前記ステップＳ４５０１で取得したチェックアウト予約情報２８３１のレコード件数の数だけ、ステップＳ４５０９までの間の繰り返し処理の制御を行う。
【０４６１】
まず、チェックアウト予約情報２８３１のレコードの中から１件のレコードを特定して、次のステップＳ４５０４へ進む。ステップＳ４５０４において、図４７に記載のチェックアウト実処理を起動する。ここで、前記ステップＳ４５０３で特定された処理対象のチェックアウト予約情報２８３１のレコードに記載されている文書ＩＤ２８３３に該当する文書のチェックアウト処理を行う。図４７のチェックアウト実処理が終了したら、その処理結果を保管して次のステップＳ４５０５に進む。
【０４６２】
ステップＳ４５０５において、前記ステップＳ４５０４の中で保管したチェックアウトメイン処理の処理結果を判定し、正常に終了していた場合にはステップＳ４５０６へ、異常終了していた場合にはステップＳ４５０８へ進む。
【０４６３】
ステップＳ４５０６において、チェックアウト処理が正常に終了した事を受けて、予約対象のチェックアウト予約情報を以下のように更新する。前記ステップＳ４５０３で特定されているチェックアウト予約情報２８３１のレコードのステータス２８３８の値を「処理中」に変更する。そして、チェックアウト予約情報操作部２７０６を経由して、チェックアウト予約情報保管部２７０５に保管されているチェックアウト予約情報２８３１を更新する。更新処理が終了したら、次のステップＳ４５０７に進む。
【０４６４】
ステップＳ４５０７において、該当文書に対するチェックアウト処理が終了したため、チェックアウト予約を行ったユーザに対して文書のチェックアウトが行われた旨をメールで通知する。そのために、前記ステップＳ４５０３で特定したチェックアウト予約情報２８３１の文書ＩＤ２８３３をキーとして、文書情報操作部２７０２を使用して文書情報保管部２７０１から該当する文書情報２８０１を取得する。また、予約ユーザＩＤ２８３５をキーに、ユーザ情報操作部２７１０を使用してユーザ情報保管部２７０９から該当するユーザ情報２８６１を取得する。
【０４６５】
本ステップで送信するメールは、前記図４２のメールフォーマット４２０１を使用する。メールフォーマット４２０１に指定する情報は、以下のように設定される。宛先４２０３には本ステップで取得したユーザ情報２８６１のメールアドレス２８６４が設定される。表題４２０４には「チェックアウト完了」の文字が、文書名称４２０６には本ステップで取得した文書情報２８０１の文書名称２８０３が設定される。チェックアウト期限４２０７には、前記ステップＳ４５０３で特定されたチェックアウト予約情報２８３１のチェックイン予定日付２８３６が設定される。メッセージ４２０８には、「チェックアウト期間が開始されました。文書に対する作業を始めてください。」と言う旨のメッセージが指定される。作成したメールの送信が終了したら、次のステップＳ４５０９へ進む。
【０４６６】
ステップＳ４５０８において、前記ステップＳ４５０４のチェックアウト処理エラーを受けて、チェックアウト予定ユーザと、現チェックアウトユーザに対してそれぞれにメールを送信する。
【０４６７】
まず、チェックアウトを予定していたユーザに対しては、予定されていたチェックアウトが正常に行われなかった旨のメールを送信する。そのために、前記ステップＳ４５０３で特定したチェックアウト予約情報２８３１の文書ＩＤ２８３３をキーとして、文書情報操作部２７０２を使用して文書情報保管部２７０１から該当する文書情報２８０１を取得する。また、予約ユーザＩＤ２８３５をキーに、ユーザ情報操作部２７１０を使用してユーザ情報保管部２７０９から該当するユーザ情報２８６１を取得する。
【０４６８】
本ステップで送信するメールは、前記図４２のメールフォーマット４２０１を使用したメールを送信する。メールフォーマット４２０１に指定する情報は、以下のように設定される。宛先４２０３には、本ステップで取得したユーザ情報２８６１のメールアドレス２８６４が設定される。表題４２０４に「チェックアウト失敗」の文字が、文書名称４２０６には本ステップで取得した文書情報２８０１の文書名称２８０３が設定される。チェックアウト期限４２０７には、前記ステップＳ４５０３で特定されたチェックアウト予約情報２８３１のチェックアウト予約日付２８３４が設定される。メッセージ４２０８には、「チェックアウト期間が来ましたがチェックアウト処理に失敗しました。」と言う旨のメッセージが適用される。
【０４６９】
また、現チェックアウトユーザに対しては、チェックインもしくはチェックアウト取消を行う処理を督促する旨のメールを送信する。そのために、前記ステップＳ４５０３で特定したチェックアウト予約情報２８３１の文書ＩＤ２８３３をキーとして、文書情報操作部２７０２を使用して文書情報保管部２７０１から該当する文書情報２８０１を取得する。また、チェックアウト情報２８２１のチェックアウトユーザＩＤ２８２４をキーに、ユーザ情報操作部２７１０を使用してユーザ情報保管部２７０９から該当するユーザ情報２８６１を取得する。かかるチェックアウト情報２８２１は、文書ＩＤ２８３３をキーにして、チェックアウト情報操作部２７０４を使用してチェックアウト情報保管部２７０３から取得したものである。
【０４７０】
本ステップで送信するメールは、前記図４２のメールフォーマット４２０１を使用する。メールフォーマット４２０１に指定する情報は、以下のように設定される。宛先４２０３には、本ステップで取得したユーザ情報２８６１のメールアドレス２８６４が設定される。表題４２０４に「至急チェックイン」の文字が、文書名称４２０６には本ステップで取得した文書情報２８０１の文書名称２８０３が設定される。チェックアウト期限４２０７には、前記ステップＳ４５０３で特定されたチェックアウト予約情報２８３１のチェックアウト予約日付２８３４が設定される。メッセージ４２０８には、「既にチェックアウト期間を過ぎています。次の予約者の方がいるため至急チェックイン、もしくはチェックアウト取消をしてください。」と言う旨のメッセージが適用される。これら作成されたメールの送信が終了したら、次のステップＳ４５０９へ進む。
【０４７１】
ステップＳ４５０９において、ステップＳ４５０１にて取得したチェックアウト予約情報２８３１のレコードすべての処理が終了したかどうかを判断する。まだ未処理レコードが残っている場合にはステップＳ４５０３へ、未処理レコードが存在しない場合には処理ループを抜けて本処理を終了する。
【０４７２】
（ユーザがチェックアウトを行う処理例）
図４６は、図１に記載された文書管理装置１０１によるチェックアウト実行処理の手順例を示すフローチャートである。
【０４７３】
図４６は、クライアント装置１０２のＣＲＴ４０９に表示されている前記図３７のチェックアウト画面１４０１のボタン３７０６を押下することにより起動される。図４６は、文書管理装置１０１の文書チェックアウト処理制御部３０９によって文書のチェックアウト処理を行うための処理フローを表したものであり、本処理は図２のＣＰＵ２０１によって実行される。
【０４７４】
本処理に必要な入力データは、前記チェックアウト画面３７０１で指定されている文書ＩＤ３７０２、および操作を行っているユーザＩＤである。
【０４７５】
図４６に示すとおり、ステップＳ４６０１において、前記入力データである文書ＩＤ３７０２に対するチェックアウト予約情報の一覧を取得する。これは、文書ＩＤ３７０２に合致するチェックアウト予約情報２８３１をチェックアウト予約情報操作部２７０６経由でチェックアウト予約情報保管部２７０５から取得する。この際、取得するチェックアウト予約情報２８３１のレコードは、項目のチェックアウト予約日付２８３４により昇順にソートされているものとする。取得処理が終了したら、次のステップＳ４６０２へ進む。
【０４７６】
ステップＳ４６０２において、前記ステップＳ４６０１で取得したチェックアウト予約情報２８３１のレコードが存在しているかどうかを判断する。存在している場合には、次のステップＳ４６０３へ進み、存在していない場合にはステップＳ２２１０へ進む。
【０４７７】
ステップＳ４６０３において、前記ステップＳ４６０１で取得したチェックアウト予約情報２８３１のレコード件数の数だけ、ステップＳ４６０７までの間の繰り返し処理の制御を行う。
【０４７８】
まず、チェックアウト予約情報２８３１のレコードの中から１件のレコードを特定して、次のステップＳ４６０４へ進む。ステップＳ４６０４において、前記ステップＳ４６０３で特定されたチェックアウト予約情報２８３１のレコードのチェックアウト予約日付２８３４およびチェックイン予定日付２８３６を取得する。取得処理が終わったら、次のステップＳ４６０５へ進む。
【０４７９】
ステップＳ４６０５において、前記ステップＳ４６０４で取得したチェックアウト予約日付２８３４およびチェックイン予定日付２８３６の情報を使用して、本処理の実行時日付と以下の条件で予約期間を比較する。
【０４８０】
比較条件：
本処理実行時日付≧チェックアウト予約日付２８３４
かつ
本処理実行時日付＜チェックイン予定日付２８３６
本条件を満たしている場合には、チェックアウトする文書の予約期間の中に含まれてしまうため、チェックアウト処理自体ができない状態として判断する。そのため、条件を満たしている場合には、ステップＳ４６１１へ進む。この条件に合致しない場合には、本比較対象レコードがチェックアウト期間中ではないため、次のステップＳ４６０６へ進む。
【０４８１】
ステップＳ４６０６において、チェックアウト期間外の中で、以下のような条件に合致しているかどうかをチェックする。チェックを行うための比較条件は以下のものとする。
【０４８２】
比較条件：
本処理実行時日付＜チェックアウト予約日付２８３４
本条件を満たしている場合には、現時点ではチェックアウト期間ではないが以降に予約が入っているためチェックアウトの制限が存在しているので、次のステップＳ４５０８へ進む。それ以外の場合には、チェックアウトのための予約側の制限のない予約情報と言うことになるため、次のステップＳ４６０７へ進む。
【０４８３】
ステップＳ４６０７において、前記ステップＳ４６０１で取得したチェックアウト予約情報２８３１のうち、１レコードについての予約重複チェックが終わったことを表す。まだチェックアウト予約情報２８３１のレコードが残っているようであれば、前記ステップＳ４６０３に遷移する。既にチェックアウト予約情報２８３１のレコード全件についての処理が終わっている場合には、次のステップＳ４６１０へ進む。
【０４８４】
ステップＳ４６０８において、前記ステップＳ４６０６における比較でチェックアウト後に予約が入っているため、チェックアウトを行うユーザに対して、図３８のチェックアウト制限許諾画面３８０１を表示する。この表示は、チェックアウトを行う期間が制限される旨の情報を文書チェックアウト処理制御部３０９で整えて表示内容生成部２７１８に送ることで、行われる。
【０４８５】
このチェックアウト制限許諾画面３８０１に表示する情報は、前記ステップＳ４６０３で特定したチェックアウト予約情報２８３１の文書ＩＤ２８３３とチェックアウト予約日付２８３４である。特にチェックアウト予約日付２８３４は、メッセージの中に埋め込むものとする。本画面をクライアント装置１０２のＣＲＴ４０９に表示するまでが、本ステップの範疇である。この後、画面を見たユーザの判断として図３８のチェックアウト制限許諾画面３８０１上のボタン３８０５もしくはボタン３５０６が押下されたタイミングで、次のステップＳ４６０９へ進む。
【０４８６】
ステップＳ４６０９においては、ユーザが判断した前記ボタン３８０５（キャンセル）、もしくはボタン３５０６（許諾）を判断し、キャンセルの場合にはチェックアウト処理を行わず本処理を終了する。また、許諾の場合にはユーザがチェックアウト期間の制限を受け入れたものとして、ステップＳ４６０４からステップＳ４６０７の処理ループを抜けて、次のステップＳ４６１０へ進む。
【０４８７】
ステップＳ４６１０においては、チェックアウト予約との重複がないことが確認されたため、実際のチェックアウト処理を行う。処理の詳細については、図４７のフローチャートにて説明を行う。本ステップのチェックアウト処理が終わったら本処理を終了する。
【０４８８】
ステップＳ４６１１においては、前記ステップＳ４６０５において既にチェックアウト予約期間で有り他のユーザがチェックアウトしているため、チェックアウト要求ユーザに対して既にチェックアウトされている旨のエラー画面３６０１を表示する。ユーザがエラー画面３６０１上のボタン３６０５を押下することで、本処理を終了する。
【０４８９】
（文書管理装置１０１におけるチェックアウト実処理例）
図４７は、図１に記載された文書管理装置１０１によるチェックアウト処理の手順例を示すフローチャートである。
【０４９０】
図４７は、前記図４５および図４６でのチェックアウト処理フローの中から起動される。図４７は、文書管理装置１０１の文書チェックアウト処理制御部２７１１によって文書のチェックアウト実処理を行うための処理フローを表したものであり、本処理は図２のＣＰＵ２０１によって実行される。
【０４９１】
本処理に必要な入力データは、チェックアウト対象になる文書ＩＤ、および操作を行っているユーザＩＤである。
【０４９２】
図４７に示すとおり、ステップＳ４７０１において、入力データとして指定された文書ＩＤから該当する文書情報２８０１、およびチェックアウト情報２８２１を取得する。文書情報２８０１およびチェックアウト情報２８２１の取得が終わったら、次のステップＳ４７０２に進む。
【０４９３】
ステップＳ４７０２において、前記ステップＳ４７０１で取得した文書情報２８０１が存在するかどうかの確認を行う。文書情報が存在しない場合はエラーであり、次のステップＳ４７０８へ進む。文書情報が存在している場合には、次のステップＳ４７０３へ進む。ステップＳ４７０３において、前記ステップＳ４７０１で取得したチェックアウト情報２８２１が存在しているかどうかの確認を行う。存在している場合には、現時点でいずれかのユーザによるチェックアウトが行われている状態であるため、エラーとして次のステップＳ４７０８へ進む。チェックアウト情報２８２１が存在していない場合には、チェックアウト可能な文書として次のステップＳ４７０４に進む。ステップＳ４７０４において、前記ステップＳ４７０１で取得した文書情報２８０１のステータス２８０４が「正常」以外の値を指名している場合には、エラーとして次のステップＳ４７０８に進む。ステータスが正常な場合には、すべてのチェックアウト可否チェックが終わったとして、次のステップＳ４７０５へ進む。
【０４９４】
ステップＳ４７０５において、前記ステップＳ４７０１で取得した文書情報２８０１のステータス値を「チェックアウト中」に変更する。ここでは、文書チェックアウト処理制御部２７１１から文書情報操作部２７０２を介して文書情報保管部２７０１の中の既存データの更新する手順で行われる。文書情報の更新処理が終了したら、次のステップＳ４７０６へ進む。
【０４９５】
ステップＳ４７０６において、チェックアウト中であるための情報として、図２８Ｃのチェックアウト情報２８２１へ該当文書情報を追加する。チェックアウト情報２８２１の各項目には、以下の情報が使用される。文書ＩＤ２８２２については、入力データとして本処理に渡された文書ＩＤが使用される。チェックアウト日付については、本処理の実行日付が使用される。チェックアウトユーザＩＤ６２４については、文書ＩＤと同様入力データとして本処理に渡された操作を行っているユーザＩＤが使用される。これらのデータを使用して、文書チェックアウト処理制御部２７１１からチェックアウト情報操作部２７０４を介してチェックアウト情報保管部２７０３の中に新規データとして追加する手順で行われる。チェックアウト情報の追加処理が終了したら、次のステップＳ４７０７へ進む。
【０４９６】
ステップＳ４７０７において、前記ステップＳ４７０５及びステップＳ４７０６で行われた更新処理の確定を行う。処理確定によりチェックアウト処理が完了し、本処理を終了する。
【０４９７】
ステップＳ４７０８において、前記各ステップで発生したエラー処理を行い、エラーを処理起動元に通知して、本処理を終了する。
【０４９８】
（ユーザがチェックインを行う処理例）
図４８は、図１に記載された文書管理装置１０１によるチェックイン実行処理の手順例を示すフローチャートである。
【０４９９】
図４８は、クライアント装置１０２のＣＲＴ４０９に表示されている前記図４０のチェックイン画面４００１のボタン４００９を押下することにより起動される。図４８は、文書管理装置１０１の文書チェックイン処理制御部２７１２によって文書のチェックイン処理を行うための処理フローを表したものであり、本処理は図２のＣＰＵ２０１によって実行される。
【０５００】
本処理に必要な入力データは、前記チェックイン画面４００１で指定されている文書ＩＤ４００３、文書ファイル情報表示欄４００７もしくはボタン４００８によって指定された登録文書ファイル、および操作を行っているユーザＩＤである。
【０５０１】
図４８に示すとおり、ステップＳ４８０１において、図４０のチェックイン画面４００１で指定された文書ＩＤの文書に対してチェックイン処理を行う。この処理は、後述の図５０の処理フローにて詳細な説明を行う。本ステップでは、図５０の処理の起動、および処理結果の取得までを行い、処理結果を保管した後、次のステップＳ４８０２に進む。
【０５０２】
ステップＳ４８０２において、前記ステップＳ４８０１のチェックイン処理結果を取得し、結果がエラーだった場合には、次のステップＳ４８１６へ進む。正常に終了している場合には、次のステップＳ４８０３に進む。
【０５０３】
ステップＳ４８０３において、チェックインした文書の文書ＩＤに合致するチェックアウト予約情報２８３１が存在するかどうかを確認する。本ステップでは、チェックアウト予約情報操作部２７０６に対して、以下の条件に合致するチェックアウト予約情報２８３１を取得する。
【０５０４】
検索条件：
文書ＩＤ２８３３＝入力データ「文書ＩＤ４００３」
かつ
チェックアウト予約日付２８３４≦処理実行日付
かつ
チェックイン予定日付２８３６≧処理実行日付
情報の取得処理が終了したら、次のステップＳ４８０４に進む。
【０５０５】
ステップＳ４８０４において、前記ステップＳ４８０３で取得したチェックアウト予約情報２８３１のレコードが存在するかどうかをチェックする。チェックアウト予約情報２８３１のレコードが存在しない場合には、予約処理からのチェックアウトではなく、図３７から始まる図４６の処理フローを使用した画面からの直接チェックアウト処理による実行であると判断する。その場合は、次のステップＳ４８１５へ進む。レコードが存在する場合には、レコードの処理を行うため次のステップＳ４８０５に進む。
【０５０６】
ステップＳ４８０５において、前記ステップＳ４８０３で取得したチェックアウト予約情報２８３１のレコード情報の中から、チェックイン予定日付２８３６を取得する。この情報は、後のステップＳ４８０６、ステップＳ４８０９にて使用するため一時的に保管する。前記レコードのステータス２８３８を「完了」に、チェックイン予定日付２８３６を処理実行日付に変更する。また、文書チェックイン処理制御部２７１２からチェックアウト予約情報操作部２７０６を介してチェックアウト予約情報保管部３０５の中の既存データを更新する。文書情報の更新処理が終了したら、次のステップＳ４８０６へ進む。
【０５０７】
ステップＳ４８０６においては、予約フローの前倒し処理を実施する必要があるかどうかを判断する。前記ステップＳ４８０５において一時的に保管しておいたチェックイン予定日付２８３６と、実際に本処理を行なっている処理実行日付を比較する。
【０５０８】
比較条件：
一時保管したチェックイン予定日付＞処理日付
上記比較を行なうのは「日付」までであり、時刻は含まない。
【０５０９】
上記比較条件が成立する、すなわち真である場合は、予定よりも１日以上早くチェックインが行われたということである。この場合は、この一時保管したチェックイン予定日付と処理日付の差の日数を「前倒し実施日数」として一時的に保管する。「前倒し実施日数」が１日以上である場合、すなわち前述した比較条件が成立する場合は、このチェックインを実施したユーザの予約フローにおいて予約フロー内の調整、すなわち後続の予約の前倒し処理が必要になるのでステップＳ４８０７に進む。上比較条件が成立しない、すなわち偽である場合は、ステップＳ４８０９に進む。
【０５１０】
ステップＳ４８０７においては、前記ステップＳ４８０５において更新したチェックアウト予約情報８３１のレコード情報の中から、予約ＩＤ２８３２を取得する。その予約ＩＤ２８３２と、操作を行っているユーザのユーザＩＤ、前記ステップＳ４８０６において一時保管した「前倒し実施日数」を引き渡して、予約フロー調整処理を実施する。予約フロー調整処理については、後の図４９において詳しく解説する。
【０５１１】
ステップＳ４８０８において、前記ステップＳ４８０７の予約フロー調整処理結果を取得し、結果がエラーだった場合には、次のステップＳ４８１６へ進む。正常に終了している場合には、次のステップＳ４８０９に進む。
【０５１２】
ステップＳ４８０９において、チェックインした文書の次の予約情報を取得する。本ステップでは、チェックアウト予約情報操作部２７０６に対して、以下の条件に合致するチェックアウト予約情報２８３１を取得する。この検索条件に対して、前記ステップＳ４８０５にて一時保管したチェックイン予定日付２８３６を使用する。
【０５１３】
検索条件：
文書ＩＤ２８３３＝入力データ「文書ＩＤ４００３」
かつ
チェックアウト予約日付２８３４≧一時保管のチェックイン予定日付＋１日
かつ
前予約追従フラグ２８３７＝ＴＲＵＥ
上記検索条件による情報の検索処理が終了したら、次のステップＳ４８１０に進む。
【０５１４】
ステップＳ４８１０において、前記ステップＳ４８０９において取得したチェックアウト予約情報２８３１のレコードが存在するかどうかをチェックする。レコードが存在しない場合には、追従させてチェックアウトを前倒しする必要がないため、次のステップＳ４８１５へ進む。レコードが存在する場合には、次のステップＳ４８１１へ進む。
【０５１５】
ステップＳ４８１１において、前記ステップＳ４８０９で取得したチェックアウト予約情報２８３１の予約ユーザＩＤ２８３５を取得しておく。これは、次のステップＳ４８１２を行う際の入力データとして使用するためである。次に、前記レコードのステータス２８３８を「処理中」に、チェックアウト予約日付２８３４を処理実行日付に変更する。また、文書チェックアウト処理制御部２７１１からチェックアウト予約情報操作部２７０６を介してチェックアウト予約情報保管部２７０５の中の既存データを更新する。文書情報の更新処理が終了したら、次のステップＳ４８１２へ進む。
【０５１６】
ステップＳ４８１２において、前記ステップＳ４８１１で保管しておいた予約ユーザＩＤと入力データである文書ＩＤ４００３を渡す。そして、文書チェックアウト処理制御部２７１１の図４７が示すチェックアウト実処理フローによるチェックアウト処理を起動する。このチェックアウト実処理が終了したら、次のステップＳ４８１３へ進む。
【０５１７】
ステップＳ４８１３において、前記ステップＳ４８１２のチェックアウト処理が正常終了したかどうかを判断する。正常に終了していない場合には、エラーとして次のステップＳ４８１６に進む。正常に終了している場合には、次のステップＳ４８１４へ進む。
【０５１８】
ステップＳ４８１４においては、チェックアウト予約を行った対象ユーザに対するメールの送付を行う。そのために、前記ステップＳ４８０９で特定したチェックアウト予約情報レコードの文書ＩＤ２８３３をキーとして、文書情報操作部２７０２を使用して文書情報保管部２７０１から該当する文書情報２８０１を取得する。また、前記ステップＳ４８１１で保管しておいた予約ユーザＩＤをキーに、ユーザ情報操作部２７１０を使用してユーザ情報保管部２７０９から該当するユーザ情報２８６１を取得する。
【０５１９】
本ステップで送信するメールは、前記図４２のメールフォーマット４２０１を使用する。メールフォーマット４２０１に指定する情報は、以下のように設定される。宛先４２０３には、本ステップで取得したユーザ情報２８６１のメールアドレス２８６４が設定される。表題４２０４には「チェックアウト完了」の文字が、文書名称４２０６には本ステップで取得した文書情報２８０１の文書名称２８０３が設定される。チェックアウト期限４２０７には、前記ステップＳ４５０３で特定されたチェックアウト予約情報２８３１のチェックイン予定日付２８３６が設定される。メッセージ４２０８には、「前作業者の作業が早く終わりましたので、前倒しでチェックアウト期間が開始されました。文書に対する作業を始めてください。」と言う旨のメッセージが指定される。作成したメールの送信が終了したら、次のステップＳ４８１５へ進む。
【０５２０】
ステップＳ４８１５において、本処理内で変更の発生した情報すべてを確定する。情報の確定が終了したら、本処理を終了する。
【０５２１】
（文書管理装置１０１における予約フロー調整処理例）
図４９は、図１に記載された文書管理装置１０１による予約フロー調整処理の手順例を示すフローチャートである。
【０５２２】
図４９は、クライアント装置１０２のＣＲＴ４０９に表示されている前記図４０のチェックイン画面４００１のボタン４００９を押下することにより起動されるチェックイン処理（前記図４８において説明済み）によって呼び出される処理である。図４９は、文書管理装置１０１の文書チェックイン処理制御部２７１２によって、図２のＣＰＵ２０１によって実行される。
【０５２３】
本処理に必要な入力データは、図４８のステップＳ４８０７より受け渡される。具体的には、図４８のフローにおいてチェックインが実施されたチェックアウト予約情報２８３１の予約ＩＤ２８３２と、操作を行っているユーザのユーザＩＤ、前倒し実施日数である。
【０５２４】
ステップＳ４９０１において、この処理に引き渡された予約ＩＤ２８３２とユーザＩＤによって、処理対象とする予約フロー情報を取得する。まず、予約フロー情報操作部２７０８に対して、以下の条件に合致する予約フロー構成情報２８５１の取得を指示する。
【０５２５】
検索条件：
予約ＩＤ２８３２＝予約ＩＤ２８５４
これによって取得された予約フロー構成情報２８５１のレコードから、予約フローＩＤ２８５２を取得し、予約フロー情報操作部２７０８に対して、以下の条件に合致する予約フロー情報２８４１の取得を指示する。
【０５２６】
検索条件：
予約フローＩＤ２８５２＝予約フローＩＤ２８４２
かつ
管理ユーザＩＤ＝操作を行なっているユーザのユーザＩＤ
かつ
フロー調整２８４４＝調整する
これによって、以下の場合に、予約フロー情報２８４１のレコード２８４５がヒットするはずである。すなわち、処理対象となっている予約情報を含む予約フロー情報が、処理を行なっているユーザの管理している予約フロー情報であり、文書のチェックインが発生した場合に予約フローの調整を行う対象である予約フロー情報である場合である。情報の取得が終わったら、次のステップＳ４９０２に進む。
【０５２７】
ステップＳ４９０２において、前記ステップＳ４９０１において取得した予約フロー情報のレコード２８４５が存在するかどうかをチェックする。存在しない場合は本処理フローを正常終了したこととして終了する。存在する場合は次のステップＳ４９０３に進む。
【０５２８】
ステップＳ４９０３において、前記ステップＳ４９０２において存在していることが確認された予約フロー情報のレコード２８４５の予約フローＩＤ２８５２を指定する。そして、予約フロー情報操作部２７０８に対して、以下の条件に合致する予約フロー構成情報２８５１の取得を指示する。
【０５２９】
検索条件：
予約フロー情報のレコード２８４５の予約フローＩＤ２８５２
＝予約フローＩＤ２８５２
取得するにあたっては、フロー順序２８５３の昇順で取得するものとする。対象となる予約フロー構成情報２８５１のレコード２８５５が取得できたら、次のステップＳ４９０４に進む。
【０５３０】
ステップＳ４９０４においては、前記ステップＳ４９０３において取得された予約フロー構成情報２８５１のレコード２８５５の予約ＩＤ２８５４に注目する。レコードは２８５５は２件以上取得できている可能性があるが、その中の１件の予約ＩＤ２８５４は、必ず図４８のステップＳ４８０７より受け渡された予約ＩＤ２８３２と同じ値となるはずである。レコード２８５５はフロー順序２８５３の昇順で取得されているので、取得されたレコードの先頭から順次に読む。そして、予約ＩＤ２８５４が図４８のステップＳ４８０７より受け渡された予約ＩＤ２８３２と等しい値になるレコードまで来たら、その等しい値となるレコードより以前の、既に読み終えたレコードは不要となるので破棄する。等しい値となったレコードと、未だ読み込んでいない残されたレコードをもって、次のステップＳ４９０５に進む。
【０５３１】
ステップＳ４９０５において、前記ステップＳ４９０４においては破棄されずに残ったレコードの中に、フロー調整の対象となる後続予約フロー構成情報が存在するかどうかを判断する。
【０５３２】
破棄されずに残ったレコード２８５５のうちの１件は、図４８のステップＳ４８０７より受け渡された予約ＩＤ２８３２と等しい予約ＩＤ２８５４を持つレコードである。このレコードの次のレコードが、フロー調整の対象となる後続予約フロー構成情報となるレコードである。よって、破棄されずに残ったレコード２８５５が２件以上存在しているかどうかをチェックする。
【０５３３】
残ったレコード２８５５が２件未満の場合は、図４８のステップＳ４８０７より受け渡された予約ＩＤ２８３２が示すチェックアウト予約は、そのチェックアウト予約が含まれる予約フローの最も末尾のチェックアウト予約であったということである。その場合は、調整する対象となる後続のチェックアウト予約が存在しないので、本処理が正常終了したものとして、本処理フローを終了する。前記ステップＳ４９０４において、破棄されずに残ったレコード２８５５が２件以上存在している場合は、次のステップＳ４９０６に進む。
【０５３４】
ステップＳ４９０６より、ステップＳ４９１１までは、破棄されずに残ったレコード２８５５の２件目以降の各レコードに対して繰り返し行なわれる処理である。処理対象のレコードがなくなった時点でステップＳ４９１１を抜けて、次に進むものとする。
【０５３５】
ステップＳ４９０７では、破棄されずに残ったレコード２８５５の２件目以降から順次処理を行なうので、必ず１件前のデータが存在する。ステップＳ４９０７では、レコード２８５５の現在の処理対象のレコードと、１件前のレコードを参照して処理を行なう。ステップＳ４９０７においては、予約フローの中での１件前のチェックアウト予約情報のチェックイン予定日付を取得する。１件前のレコード２８５５の予約ＩＤ２８５４を取得して、チェックアウト情報操作部２７０４に対して、以下の条件に合致するチェックアウト予約情報２８３１の取得を指示する。
【０５３６】
検索条件：
１件前のレコードの予約ＩＤ２８５４＝予約ＩＤ２８３２
この条件に合致するレコード２８４９のチェックイン予定日付２８３６を「直前フローチェックイン予定日付」として一時的に記憶する。これは後述するＳ４９０９で使用する。
【０５３７】
ステップＳ４９０８においては、現在の処理対象の予約フロー構成情報のレコード２８５５と同一の文書に対する、直前のチェックアウト予約情報のチェックイン予定日付を取得する。処理対象となるレコード２８５５から予約ＩＤ２８５４を取得して、チェックアウト情報操作部２７０４に対して、以下の条件に合致するチェックアウト予約情報２８３１の取得を指示する。
【０５３８】
検索条件１：
予約ＩＤ２８５４＝予約ＩＤ２８３２
条件を満たすレコード２８３９が取得されたら、まずそのチェックアウト予約日付２８３４を「現在チェックアウト予約日付」として一時的に記憶する。これは後述するＳ４９０９で使用する。
【０５３９】
次に、文書ＩＤ２８３３とチェックアウト予約日付２８３４を取得して、チェックアウト情報操作部２７０４に対して、以下の条件に合致するチェックアウト予約情報２８３１の取得を指示する。
【０５４０】
検索条件２：
検索条件１によって取得した文書ＩＤ２８３３＝文書ＩＤ２８３３
かつ
検索条件１によって取得したチェックアウト予約日付２８３４
＞チェックイン予定日付２８３６
この検索条件２によって取得するチェックアウト予約情報２８３１は、チェックイン予定日付２８３６の昇順にソートされているとする。その様にソートした場合、取得されたレコード２８３９の最も末尾のレコードが最もチェックイン予定日付２８３６が大きいことになる。よって、この末尾のレコード２８３９のチェックイン予定日付２８３６が、現在の処理対象の予約フロー構成情報のレコード２８５５と同一の文書に対する、直前のチェックアウト予約情報のチェックイン予定日付である。このチェックイン予定日付２８３６を「直前予約チェックイン予定日付」として一時的に記憶して、次のステップＳ４９０９に進む。
【０５４１】
なお、検索条件２に該当するレコードが存在しなかった場合は、「直前予約チェックイン予定日付」は＜該当日付無し＞として、次のステップＳ４９０９に進む。
【０５４２】
ステップＳ４９０９においては、以下の情報を使用して、予約フロー内のチェックアウト予約情報のチェックアウト予約日付、チェックイン予定日付が前倒し可能であるかどうかを判断する。
【０５４３】
情報としては、フローの先頭において引き渡された「前倒し実施日数」が使用される。ステップＳ４９０８において取得された「現在チェックアウト予約日付」が使用される。ステップＳ４９０７において取得された「直前フローチェックイン予定日付」が使用される。ステップＳ４９０８において取得された「直前予約チェックイン予定日付」が使用される。
【０５４４】
前倒し可能であるかどうかの判断は、「前倒し可能な日数」を算出し、その日数が１日以上であれば前倒しが可能であると判断する。
【０５４５】
「前倒し可能な日数」の算出は、以下の様に行なう。
【０５４６】
前倒し可能日数算出式１：
前倒し可能日数＝「現在チェックアウト予約日付」
−「直前フローチェックイン予定日付」
上記のような式で差の日数を求める。なお、値がマイナスとなる場合は「０日」とする。
【０５４７】
前倒し可能日数算出式２：
前倒し可能日数＝「現在チェックアウト予約日付」
−「直前予約チェックイン予定日付」
上記のような式で差の日数を求める。なお、値がマイナスとなる場合は「０日」とする。
【０５４８】
又、前記ステップＳ４９０８において「直前予約チェックイン予定日付」が＜該当日付無し＞となっている場合は、差の日数は「前倒し実施日数」と等しいとする。
【０５４９】
上記の「前倒し可能日数算出式１」、「前倒し可能日数算出式２」で求められる差の日数、及び「前倒し実施日数」の３つの日数を比較して、最も短い日数が「前倒し可能な日数」となる。
【０５５０】
上記の様にして求められた「前倒し可能な日数」が１日以上である場合は、前倒しが可能であるとして次のステップＳ４９１０に進む。「前倒し可能な日数」が１日未満であった場合には、前倒しは不可能であるとしてステップＳ４９１１に進む。
【０５５１】
ステップＳ４９１０においては、処理対象となるレコード２８５５から予約ＩＤ２８５４を取得して、チェックアウト情報操作部２７０４に対して、以下の条件に合致するチェックアウト予約情報２８３１の取得を指示する。
【０５５２】
検索条件：
予約ＩＤ２８５４＝予約ＩＤ２８３２
条件を満たすレコード２８３９が取得されたら、まずそのチェックアウト予約日付とチェックイン予定日付を「前倒し可能な日数」だけ前にずらし、レコード２８３９を更新する。
【０５５３】
ステップＳ４９１１においては、ステップ４９０５で破棄されずに残ったレコード２８５５の次のレコードが残っているのであれば、ステップＳ４９０７に戻って処理を繰り返す。レコードが残っていない場合はこのフローを終了する。
【０５５４】
（文書管理装置１０１におけるチェックイン実処理例）
図５０は、図１に記載された文書管理装置１０１による文書チェック処理の手順例を示すフローチャートである。
【０５５５】
図５０は、前記図４８でのチェックイン実行処理フローの中から起動される。図５０は、文書管理装置１０１の文書チェックイン処理制御部２７１２によって文書のチェックイン実処理を行うための処理フローを表したものであり、本処理は図２のＣＰＵ２０１によって実行される。
【０５５６】
本処理に必要な入力データは、チェックアウト対象になる文書ＩＤ、入力画面で指定された登録文書ファイル、および操作を行っているユーザＩＤである。
【０５５７】
図５０に示すとおり、ステップＳ５００１において、以下の検索条件に合致するチェックアウト情報２８２１を検索し取得する。
【０５５８】
検索条件：
文書ＩＤ２８２２＝入力データ「文書ＩＤ」
上記検索条件での情報取得処理が終了したら、次のステップＳ５００２へ進む。
【０５５９】
ステップＳ５００２において、前記ステップＳ５００１で取得したチェックアウト情報２８２１のレコードが存在するかどうかのチェックを行う。チェックアウト中であれば該当するレコードが存在するはずであり、存在している場合には次のステップＳ５００３に進む。存在しない場合にはエラーとして次のステップＳ５００８へ進む。ステップＳ５００３において、前記ステップＳ５００１にて取得したチェックアウト情報２８２１のレコードのチェックアウトユーザＩＤ２８２４が入力として渡された操作を行っているユーザＩＤと同一かどうかをチェックする。同一でない場合には、不正なチェックインアクセスであるためエラーとし、次のステップＳ５００８へ進む。同一ユーザＩＤである場合には、次のステップＳ１６０４へ進む。ステップＳ５００４において、入力データとして渡された登録文書ファイルが存在するかどうかを確認する。文書ファイルが存在しない場合にはエラーとし、次のステップＳ５００８へ進む。存在する場合には、次のステップＳ５００５へ進む。
【０５６０】
ステップＳ５００５において、チェックインの処理として指定文書のバージョン追加処理を行う。そのため、まず、チェックアウト情報操作部２７０４から入力データの文書ＩＤをキーにして、チェックアウト情報保管部３０３に保存してあるバージョン情報から最新バージョンのバージョン番号を取得する。次に、その最新バージョンをインクリメントした値を新規バージョンのバージョン番号とし、新規バージョン情報２８１１のレコードを作成する。
【０５６１】
この新規レコードには、以下の情報を指定する。文書ＩＤ２８１２には入力データの文書ＩＤ、バージョンＩＤ２８１３には前記インクリメントした新規バージョン番号を指定する。また、登録日付２８１４には処理実行日付、登録ユーザＩＤには入力データの操作ユーザＩＤ、ファイル実体２８１６には入力データの登録文書ファイルを指定する。これらのデータによって作成されたレコードは、文書チェックイン処理制御部２７１２から文書情報操作部２７０２の新規バージョン追加操作により文書情報保管部２７０１に新規登録される。バージョン情報レコードの登録が終了したら、次のステップＳ５００６に進む。
【０５６２】
ステップＳ５００６においては、バージョン追加に伴う関係情報の更新を行う。まず、前記ステップＳ５００１で取得したレコードを、文書チェックイン処理制御部２７１２からのチェックアウト情報操作部２７０４の情報削除操作によりチェックアウト情報保管部２７０３から削除する。次に、文書情報操作部２７０２の文書情報取得操作により、文書情報保管部２７０１から入力データである文書ＩＤに合致する文書情報２８０１のレコードを取得する。この取得したレコードのステータス２８０４の値を「正常」に変更して、文書チェックイン処理制御部２７１２から文書情報操作部２７０２の文書情報更新操作により文書情報保管部２７０１に存在する同一文書ＩＤのレコードを更新する。本ステップにおける前記更新処理が終了したら、次のステップＳ５００７に進む。
【０５６３】
ステップＳ５００７において、前記ステップＳ５００５からステップＳ５００６までに行った更新作業を確定する。情報の確定処理が終了したら、本処理を終了する。
【０５６４】
ステップＳ５００８において、前記各ステップで発生したエラー処理を行い、エラーを処理起動元に通知して本処理を終了する。
【０５６５】
なお、本実施形態で示した装置の構成例や、情報の形式例、フローチャートの手順例は、本発明を実現する一例であって、これに限定されない変更が可能であり、それも本発明に含まれる。
【０５６６】
又、本発明は、複数の機器（例えばホストコンピュータ、インターフェース機器、プリンタなど）から構成されるシステムあるいは統合装置に適用しても、ひとつの機器からなる装置に適用してもよい。
【０５６７】
又、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【０５６８】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０５６９】
又、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（OS）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０５７０】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行う。このような処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０５７１】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０５７２】
【図１】本実施形態の文書管理システムの機器構成例を示すブロック図である。
【図２】本実施形態の文書管理装置のハードウエア構成例を示す図である。
【図３】実施形態１の文書管理装置の機能構成例を示す図である。
【図４】本実施形態のクライアント装置のハードウエア構成例を示す図である。
【図５】本実施形態のクライアント装置の機能構成例を示す図である。
【図６Ａ】実施形態１の文書情報のデータ構成例を示す図である。
【図６Ｂ】実施形態１のバージョン情報のデータ構成例を示す図である。
【図６Ｃ】実施形態１のチェックアウト情報のデータ構成例を示す図である。
【図６Ｄ】実施形態１のチェックアウト予約情報のデータ構成例を示す図である。
【図６Ｅ】実施形態１のユーザ情報のデータ構成例を示す図である。
【図７】実施形態１の文書閲覧画面例を示す図である。
【図８】実施形態１の文書情報詳細表示画面例を示す図である。
【図９】実施形態１のチェックアウト予約一覧画面例を示す図である。
【図１０】実施形態１のチェックアウト予約設定画面例を示す図である。
【図１１】実施形態１のチェックアウト予約完了画面例を示す図である。
【図１２】実施形態１のチェックアウト予約キャンセル画面例を示す図である。
【図１３】実施形態１のエラー画面例を示す図である。
【図１４】実施形態１のチェックアウト画面例を示す図である。
【図１５】実施形態１のチェックアウト制限許諾画面例を示す図である。
【図１６】実施形態１のチェックアウト完了画面例を示す図である。
【図１７】実施形態１のチェックイン画面例を示す図である。
【図１８】実施形態１のチェックイン完了画面例を示す図である。
【図１９】実施形態１の送信メールのフォーマット例を示す図である。
【図２０】実施形態１のチェックアウト予約処理の手順例を示すフローチャートである。
【図２１】実施形態１のチェックアウト予約期間終了状況確認処理の手順例を示すフローチャートである。
【図２２】実施形態１のチェックアウト予約期間開始処理の手順例を示すフローチャートである。
【図２３】実施形態１のチェックアウト処理の手順例を示すフローチャートである。
【図２４】実施形態１のチェックアウト実処理の手順例を示すフローチャートである。
【図２５】実施形態１のチェックイン処理の手順例を示すフローチャートである。
【図２６】実施形態１のチェックイン実処理の手順例を示すフローチャートである。
【図２７】実施形態１の文書管理装置の機能構成例を示す図である。
【図２８Ａ】実施形態２の文書情報のデータ構成を表す図である
【図２８Ｂ】実施形態２のバージョン情報のデータ構成を表す図である
【図２８Ｃ】実施形態２のチェックアウト情報のデータ構成を表す図である
【図２８Ｄ】実施形態２のチェックアウト予約情報のデータ構成を表す図である。
【図２８Ｅ】実施形態２の予約フロー情報のデータ構成を表す図である。
【図２８Ｆ】実施形態２の予約フロー構成情報のデータ構成を表す図である。
【図２８Ｇ】実施形態２のユーザ情報のデータ構成を表す図である
【図２９】実施形態２の文書閲覧画面例を示す図である。
【図３０】実施形態２の文書情報詳細表示画面例を示す図である。
【図３１】実施形態２のチェックアウト予約一覧画面例を示す図である。
【図３２】実施形態２の予約フロー指定画面例を示す図である。
【図３３】実施形態２のチェックアウト予約設定画面例を示す図である。
【図３４】実施形態２のチェックアウト予約完了画面例を示す図である。
【図３５】実施形態２のチェックアウト予約キャンセル画面例を示す図である。
【図３６】実施形態２のエラー画面例を示す図である。
【図３７】実施形態２のチェックアウト画面例を示す図である。
【図３８】実施形態２のチェックアウト制限許諾画面例を示す図である。
【図３９】実施形態２のチェックアウト完了画面例を示す図である。
【図４０】実施形態２のチェックイン画面例を示す図である。
【図４１】実施形態２のチェックイン完了画面例を示す図である。
【図４２】実施形態２の送信メールのフォーマット例を示す図である。
【図４３】実施形態２のチェックアウト予約処理の手順例を示すフローチャートである。
【図４４】実施形態２のチェックアウト予約期間終了状況確認処理の手順例を示すフローチャートである。
【図４５】実施形態２のチェックアウト予約期間開始処理の手順例を示すフローチャートである。
【図４６】実施形態２のチェックアウト処理の手順例を示すフローチャートである。
【図４７】実施形態２のチェックアウト実処理の手順例を示すフローチャートである。
【図４８】実施形態２のチェックイン処理の手順例を示すフローチャートである。
【図４９】実施形態２の予約フロー調整処理の手順例を示すフローチャートである。
【図５０】実施形態２のチェックイン実処理の手順例を示すフローチャートである。
【図１】
0005096808.tif 000002
【図２】
0005096808.tif 000003
【図３】
0005096808.tif 000004
【図４】
0005096808.tif 000005
【図５】
0005096808.tif 000006
【図６Ａ】
0005096808.tif 000007
【図６Ｂ】
0005096808.tif 000008
【図６Ｃ】
0005096808.tif 000009
【図６Ｄ】
0005096808.tif 000010
【図６Ｅ】
0005096808.tif 000011
【図７】
0005096808.tif 000012
【図８】
0005096808.tif 000013
【図９】
0005096808.tif 000014
【図１０】
0005096808.tif 000015
【図１１】
0005096808.tif 000016
【図１２】
0005096808.tif 000017
【図１３】
0005096808.tif 000018
【図１４】
0005096808.tif 000019
【図１５】
0005096808.tif 000020
【図１６】
0005096808.tif 000021
【図１７】
0005096808.tif 000022
【図１８】
0005096808.tif 000023
【図１９】
0005096808.tif 000024
【図２０】
0005096808.tif 000025
【図２１】
0005096808.tif 000026
【図２２】
0005096808.tif 000027
【図２３】
0005096808.tif 000028
【図２４】
0005096808.tif 000029
【図２５】
0005096808.tif 000030
【図２６】
0005096808.tif 000031
【図２７】
0005096808.tif 000032
【図２８Ａ】
0005096808.tif 000033
【図２８Ｂ】
0005096808.tif 000034
【図２８Ｃ】
0005096808.tif 000035
【図２８Ｄ】
0005096808.tif 000036
【図２８Ｅ】
0005096808.tif 000037
【図２８Ｆ】
0005096808.tif 000038
【図２８Ｇ】
0005096808.tif 000039
【図２９】
0005096808.tif 000040
【図３０】
0005096808.tif 000041
【図３１】
0005096808.tif 000042
【図３２】
0005096808.tif 000043
【図３３】
0005096808.tif 000044
【図３４】
0005096808.tif 000045
【図３５】
0005096808.tif 000046
【図３６】
0005096808.tif 000047
【図３７】
0005096808.tif 000048
【図３８】
0005096808.tif 000049
【図３９】
0005096808.tif 000050
【図４０】
0005096808.tif 000051
【図４１】
0005096808.tif 000052
【図４２】
0005096808.tif 000053
【図４３】
0005096808.tif 000054
【図４４】
0005096808.tif 000055
【図４５】
0005096808.tif 000056
【図４６】
0005096808.tif 000057
【図４７】
0005096808.tif 000058
【図４８】
0005096808.tif 000059
【図４９】
0005096808.tif 000060
【図５０】
0005096808.tif 000061