以下、図面を参照して、本発明の実施の形態の一例を説明する。
図1は、本発明の情報処理システムの構成の一例を示すシステム構成図である。図1に示すように、本発明の情報処理システムは、複数の情報処理端末101や102、業務システムサーバ103,データベースサーバ104などがネットワーク105で接続されている。
業務システムサーバ103は、様々な業務処理を実行するサーバである。情報処理端末101や102からユーザの入力を受け付け、データベースサーバ104と情報を送受信し、データを加工するなどして業務処理を実行する。本実施例では、作業員への作業指示と作業場所の割り当てを実行する処理を一例として説明する。
情報処理端末101、102は、ユーザから入力を受け付け、業務システムサーバ103に情報を送信し、データの加工や表示形式が形成された後に、情報処理端末101.102のディスプレイ210に結果を表示する。本実施例では、作業指示を行う管理者が情報処理端末101を使用して作業指示や作業員を割り振り、作業指示を受け付けた作業員が作業場所を登録する処理を情報処理端末102で行う例で説明する。
データベースサーバ104は、業務システムサーバから受信するデータをデータベースに登録し、必要な時にデータの検索や参照が可能なサーバである。データベースサーバ104のデータは、後述する業務ロックデータテーブルに登録されているデータを排他制御(ロック)し、業務ロックデータテーブルに登録されていなければ、排他制御しない論理的ロック機能を備えた長時間トランザクション処理に対応したデータベースである。
以上が、本発明の情報処理システムのシステム構成の一例の説明である。
次に、図2を参照して、図1の情報処理端末101,102、業務システムサーバ103、データベースサーバ104に適用可能な情報処理装置のハードウェア構成の一例について説明する。
図2において、201はCPUで、システムバス204に接続される各デバイスやコントローラを統括的に制御する。また、ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、TEサーバ101や情報処理端末102、システムサーバ103が実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。
202はRAMで、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM203あるいは外部メモリ211からRAM202にロードして、該ロードしたプログラムを実行することで後述する各種動作を実現するものである。
また、205は入力コントローラで、キーボードやポインティングデバイス等の入力装置209からの入力を制御する。206はビデオコントローラで、ディスプレイ装置210等の表示器への表示を制御する。これらは必要に応じて操作者が使用するものである。
207はメモリコントローラで、ブートプログラム,各種のアプリケーション,フォントデータ,ユーザファイル,編集ファイル,各種データ等を記憶するハードディスク(HD)や、フレキシブルディスク(FD)、或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
208は通信I/F(インタフェース)コントローラで、ネットワーク(例えば、図1に示したネットワーク104)を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
なお、CPU201は、例えばRAM202内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ装置210上での表示を可能としている。また、CPU201は、ディスプレイ装置210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
本発明を実現するための後述するフローチャートに示す各ステップの処理は、コンピュータで読み取り実行可能なプログラムにより実行され、そのプログラムは外部メモリ211に記録されている。そして、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。また、さらに、上記プログラムの実行時に用いられる定義ファイル及び各種情報テーブル等も、外部メモリ211に格納されており、これらについての詳細な説明も後述する。
次に、図3~図12を参照して、本発明における情報処理システムの処理手順を説明する。
本発明における実施例では、まず業務管理者が、情報処理端末101から作業員にどのような作業を行わせるのかの作業指示を指定する。続いて業務管理者が、作業を実行する作業員を割り当てる。その後、作業を割り当てられた作業員が情報処理端末102から自分の行う作業を確認し、作業場所を登録する。以上の処理を図3~図5を中心に説明する。
図3は、本発明の実施形態における情報処理システムの作業指示依頼画面表示の制御処理手段の一例を示すフローチャートである。この処理は、操作者が使用する情報処理端末101のCPU201、業務システムサーバ103のCPU201、及びデータベースサーバ104のCPU201がそれぞれのROM203等に格納されたプログラムをRAM202に展開して実行することにより実現される。
まず、情報処理端末101において、業務管理者からのブラウザ画面が起動されると、図3のフローチャートの処理を開始する。
ステップS301において、情報処理端末101のCPU201は、ブラウザ画面の起動を受け付け、ディスプレイ210上にブラウザ画面を表示する。
次に、ステップS302において、情報処理端末101のCPU201は、ユーザから特定のURLを入力される、或いはお気に入りに登録された特定のURLを選択される、または検索エンジンから特定のURLを検索されるなどして、ブラウザ上のURL入力欄にURLを入力し、業務システムサーバ103へと接続する。また、業務システムサーバ103において作業指示画面データを得るための表示対象の作業ID(作業指示を紐付けたIDである。詳細は後述する)を作成し、同時に業務システムサーバ103に送信する。情報処理端末101は、業務システムサーバ103からの表示画面を受け付ける状態に遷移し、後述するステップS311以降で表示画面情報を受信して作業指示画面を表示する。
次に、ステップS303において、業務システムサーバ103のCPU201は、情報処理端末101から表示依頼があったブラウザの画面に対する会話番号を設定する。会話番号とは、ブラウザが開いている画面毎に設定されているIDであり、ブラウザ画面毎にユニークな番号が設定される。ステップS303の詳細な処理を図6を参照して説明する。
図6は、本発明の実施形態における業務システムサーバ104の会話番号管理の制御処理手段の一例を示すフローチャートである。この処理は、業務システムサーバ103のCPU201がROM203等に格納されたプログラムをRAM202に展開して実行することにより実現される。
図6のフローチャートの処理は、業務システムサーバが画面表示依頼を受けたタイミングで開始される。たとえば、図3のステップS303における作業指示登録画面表示依頼時や、図4のステップS403における作業員紐付け画面表示依頼時、または図5のステップS509における作業場所登録画面表示依頼時などに開始される。
図6のステップS601において、業務システムサーバ103のCPU201は、情報処理端末101から受信したリクエスト情報を取得して、リクエスト情報を解析する。ステップS302から受信したリクエスト情報について説明するために、図13を参照して説明する。
図13は、本発明の実施形態における業務ロックテーブルを示すデータベースの一例である。これら1レコード分が業務ロックされるデータの例である。なお、この業務ロックデータは、データベースサーバ104に保持されており、ステップS305やステップS307、ステップS405、ステップS407、ステップS511、ステップS513において、参照や登録されるデータベースである。
1301は、たとえばステップS302で情報処理端末101から送信されるリクエスト情報に含まれる作業ID(=ロックID)であり、情報処理端末がアクセスしたアプリケーション毎にユニークに振られたIDである。
1302のデータ種別は、たとえばステップS302から送信されるリクエスト情報に含まれる業務ロックすべきデータの種別である。図3の例であれば、作業指示画面の表示依頼なので、データ種別は「ORDER」である。他の例として本実施例では、作業員紐付け画面の表示依頼であれば「WORKER」、作業場所登録画面の表示依頼であれば「ORDERPLACE」などが存在する。これらの名前は、それぞれ業務ロックするデータベースの名前に対応する。
1303のログインIDは、情報処理端末101や102でアクセスしているユーザを特定するIDである。1304のセッションIDは、業務システムサーバ103がセッション管理するための発行するIDである。1305の会話番号は、情報処理端末に表示されるブラウザの画面毎に業務システムサーバもしくは情報処理端末で付与されるIDであり、最初のステップS303に遷移した状態では設定されてはいない。
1306のロック開始日時は本発明の業務ロックを開始する日時である。1307のユーザはログインIDに対応したユーザ名であり、1308のサーバ名は、接続されているサーバ名(=業務システムサーバ103)である。1309のアプリケーション名は、業務システムサーバ上で稼働しているアプリケーションの名前であり、作業指示画面と作業場所登録画面を表示するためには、「ORDER-WEB」アプリケーションを使用し、作業員紐付け画面を表示するためには、「WORKER-WEB」アプリケーションを使用する。図13のデータベース例の説明を終えて、図6のフローチャートの説明に戻る。
図6のステップS601において、受信したリクエスト情報を解析し、図13のようなデータを取得すると、次のステップS602において、業務システムサーバ103のCPU201は、解析し取得したデータに会話番号が設定されているかを判断する。会話番号が設定されている場合(ステップS602で有の場合)は、図6のフローチャートを終了し、元のフローチャートの処理へと戻る。会話番号が設定されていない場合(ステップS602で無の場合)は、次のステップS603へと処理を遷移する。
ステップS603へと処理を遷移すると、業務システムサーバ103のCPU201は、設定されていない会話番号を発番して、図6のフローチャートの処理を終える。図3のフローチャートの説明に戻る。
図3のステップS303において、会話番号が割り振られると、次のステップS304において、業務システムサーバ103のCPU201は、ステップS302で指定されたアプリケーションである「ORDER-WEB」(図13の1310のレコードに対応)を起動し、作業指示情報をデータベースサーバ104から取得する処理を行う。
業務システムサーバ103が、作業指示情報を取得するために、データベースサーバ104のCPU201は、作業指示データベースから該当する作業IDのデータを検索する。検索する作業指示データベースの例を図14を参照して説明する。
図14は、本発明の実施形態における業務ロックの対象となる作業指示テーブルを示すテーブルの一例である。これら1レコード分のデータが業務ロックされるデータの例であり、同じデータベースを全て業務ロックしても良いし、該当レコードだけを業務ロックしても良い。
1401はステップS302で情報処理端末101から送信される作業IDであり、1402の作業名や1403の作業内容は、図4のステップS401の処理以降で業務管理者から入力される、作業員の理解を助けるための文言である。図3のフローチャートの説明に戻る。
図3のステップS304において、業務システムサーバ103は、データベースサーバ104から作業指示情報を取得するため、データベースサーバ104のステップS344において、図14のようなテーブルから該当する作業IDのデータを検索させる。当初は、作業指示情報は入力されていないはずなので、空データを取得することになる。
次に、ステップS305において、業務システムサーバ103のCPU201は、作業指示データベースがロックされているかを判断するための情報を取得する。作業指示データベースがロックされているかどうかは、データベースサーバ104の業務ロックデータベース(図13)に、該当する作業ID(ロックキー)1301とデータ種別1302が一致しているデータがあるかどうかで判断する。業務ロックデータベースに同じ作業ID1301で且つ同じデータ種別1302のデータがあれば、該当するデータレコードもしくはデータベース自体をロック(排他制御)されていると判断される。
データベースサーバ104のステップS345において、データベースサーバ104のCPU201は、図13のようなテーブルから該当する作業ID(ロックキー)1301とデータ種別1302のデータを検索する。当初は、業務ロックデータベースには登録されていないはずなので、検索結果は無しとなる。一方、他のクライアントや他のブラウザ画面から既にアクセスされているデータの場合は、1310の作業ID1301、データ種別1302のように、レコードに値が登録されている。
次に、ステップS306において、業務システムサーバ103のCPU201は、ステップS305で該当の作業ID(ロックキー)とデータ種別が検索されたかどうかを判断する。検索の結果、同じ作業IDとデータ種別が存在した場合は、ロック不可の処理(ステップS306の不可)へと処理を遷移し、ステップS309へと進む。一方、S305の結果、同じ作業IDとデータ種別が存在しなかった場合は、ロック可能の処理(ステップS306の可)へと処理を遷移し、ステップS307へと進む。ステップS309へと処理を進める場合の処理を先に説明する。
ステップS309へと処理をすすめると、業務システムサーバ103のCPU201は、該当の作業IDを有するデータレコードもしくはデータベース自体を表示モードとして設定する。すなわち、該当データは既に他のクライアントもしくは他のブラウザ画面により使用されているため、データの参照のみを許可し、データの修正を許可しない表示モードとして、次のステップS310に処理を進める。
一方、ステップS306において、ロック可能の処理(ステップS306の可)へと処理を遷移し、ステップS307へと進めた場合、業務システムサーバ103のCPU201は、データベースサーバ104に、作業指示情報データのロック(排他制御)を登録する。この段階で、図13の1レコード分のデータが登録される。
ステップS347において、データベースサーバ104のCPU201は、業務システムサーバ103により送信された図13の1レコード分のデータを業務ロックデータテーブルに登録する。この業務ロックデータテーブル図13に登録されると、他のクライアントや他のブラウザ画面からの編集アクセスを禁止することができる。
ステップS307の処理が終了すると、現在アクセスしているユーザで同じ会話番号を有するブラウザからのデータ編集は可能とさせるために、次にステップS308において、作業指示データベースの該当作業IDのデータを編集可能な編集モードとして設定する。
次に、ステップS310において、業務システムサーバ103のCPU201は、ステップS307で登録したデータと共に、作業指示画面を描画する指示を情報処理端末101に送信(指示)する。
次に、ステップS311において、情報処理端末101は、業務システムサーバ103から、ステップS307で登録されたデータを受信する。
次に、ステップS312において、情報処理端末101は、会話番号画面管理処理を行う。この処理は、情報処理端末101側で会話番号を所持しておらず、また業務システムサーバ103からも会話番号が通知されなかった場合に、情報処理端末101側で新たに会話番号を付与する処理である。図7を参照してステップS312の詳細な処理を説明する。
図7は、本発明の実施形態における情報処理端末101もしくは102の会話番号画面管理の制御処理手段の一例を示すフローチャートである。この処理は、情報処理端末のCPU201がROM203等に格納されたプログラムをRAM202に展開して実行することにより実現される。
図7のフローチャートの処理は、情報処理端末101や102が業務システムサーバから画面描画指示を受けた際に開始される。たとえば、図3のステップS312における作業指示登録画面描画指示時や、図4のステップS412における作業員紐付け画面描画指示時、または図5のステップS505における作業確認画面描画指示時、ステップS518における作業場所登録画面描画指示時などに開始される。なお、これらの画面描画指示は、1つのブラウザソフトからタブを用いて別のブラウザ画面として表示される場合を含む。
まず、図7のステップS701において、情報処理端末のCPU201は、ステップS311などで取得したレスポンス情報を解析する。解析される情報は、たとえば図13の1レコード分の情報を持つデータで、このデータをたとえば、ロックキーや会話番号等のデータに分解しそれぞれの情報を取得する。
次に、ステップS702において、情報処理端末のCPU201は、ステップS701で解析されたデータに会話番号が含まれているかを判断する。会話番号が含まれている場合(ステップS702で有)、その会話番号を情報処理端末のセッションストレージに登録する処理(ステップS706の処理)へと遷移し、図7のフローチャートの処理を終える。なお、このセッションストレージは、情報処理端末のブラウザ画面(タブブラウザの場合はタブ)毎に保持している記憶領域であり、サーバと共通のIDを有するセッションIDとは直接関係はない。
一方、ステップS702において、ステップS701で解析されたデータに会話番号が含まれていない場合は、ステップS703へと処理をすすめる。会話番号が含まれていない場合とは、ブラウザソフトからタブを用いて別のブラウザ画面を表示した場合などがある。
ステップS703において、情報処理端末のCPU201は、情報処理端末が有しているセッションストレージから会話番号を検索する処理を行う。
ステップS704において、情報処理端末のCPU201は、セッションストレージに会話番号があるかどうかによって処理を分ける。会話番号がある場合(ステップS704で有の場合)は、図7の処理を終了し、セッションストレージにある会話番号を継続して使用する。一方、セッションストレージに会話番号がない場合(ステップS704で無の場合)は、会話番号を新たに付与するために、ステップS705へと処理を遷移する。
ステップS705へと遷移すると、情報処理端末のCPU201は、ユニークな会話番号を新たに付与して、次のステップS706で付与された会話番号をセッションストレージに登録し、図7の処理を終える。図3のフローチャートの説明に戻る。
図3のステップS312の処理(図7の処理)が終わると、次に図4のフローチャートに遷移する。
図4は、本発明の実施形態における情報処理システムの作業員紐付け画面表示の制御処理手段の一例を示すフローチャートである。この処理は、操作者が使用する情報処理端末101のCPU201、業務システムサーバ103のCPU201、及びデータベースサーバ104のCPU201がそれぞれのROM203等に格納されたプログラムをRAM202に展開して実行することにより実現される。
図4のフローチャートは、図3のステップS312の処理の後で開始される処理の流れである。
まず、ステップS401において、情報処理端末101のCPU201は、ブラウザ画面上にステップS311において受信した作業指示情報を画面上に表示する。表示された画面イメージを図17を参照して説明する。
図17は、本発明の実施形態における情報処理端末101のディスプレイ210に表示される作業指示登録画面の一例である。
図17の1700画面内にある1701は、予め入力されている作業IDであり、作業名欄や作業内容欄1702は当初は空欄で、図17の画面が表示された後でユーザにより入力される記述事項である。図4のフローチャートの説明に戻る。
図4のステップS401において、作業指示画面をブラウザに表示し、ユーザにより1702のような入力を受け付けると、次にステップS402において、情報処理端末のCPU201は、図17の画面上の作業員紐付けボタン1703の押下を受け付け、作業員紐付け画面表示依頼を業務システムサーバ103に送信する。この依頼の送信の際に、ユニークな作業員IDを発番する(たとえば、図13の2行目のレコードの「WRK00001」に対応)。発番された作業員IDを元に、業務システムサーバ103は、作業員紐付け情報を取得し、後述するステップS411で表示画面情報を送信して作業員紐付け画面を表示する。
次に、ステップS403において、業務システムサーバ103のCPU201は、情報処理端末101から表示依頼があったブラウザの画面に対する会話番号を設定する。この会話番号は、図3のステップS312で設定されたブラウザ画面毎にユニークに振られたIDを継承している。ステップS403の詳細な処理を図6を参照して説明する。
図6のフローチャートにおいて、ステップS601では、業務システムサーバ103のCPU201は、情報処理端末101から受信したリクエスト情報を取得して、リクエスト情報を解析する。当初のステップS303の段階では、会話番号は付与されていなかったが、ステップS403の段階では、ステップS312において、会話番号が付与されているので、ステップS602の判断分岐は有へと遷移し、新たに会話番号の発番は行わない。図4のフローチャートの説明に戻る。
図4のステップS403において、会話番号が再確認されると、次のステップS404において、業務システムサーバ103のCPU201は、ステップS402で指定されたアプリケーションである「WORKER-WEB」(図13の2行目のレコードに対応)を起動し、作業員情報をデータベースサーバ104から取得する処理を行う。
その後、業務システムサーバ103が作業員情報を取得するために、データベースサーバ104のCPU201は、作業員データベースから該当する作業員IDのデータを検索する。検索する作業員データベースの例を図16を参照して説明する。
図16は、本発明の実施形態における業務ロックの対象となる作業員情報テーブルを示すテーブルの一例である。これら1レコード分のデータが業務ロックされるデータの例であり、同じデータベースを全て業務ロックしても良いし、該当レコードだけを業務ロックしても良い。
1601はステップS402で情報処理端末101から送信される作業員IDであり、1602は作業員の名前、1603は作業予定である作業IDに該当する。図4のフローチャートの説明に戻る。
図4のステップS404において、業務システムサーバ103は、データベースサーバ104から作業員情報を取得するため、データベースサーバ104のステップS444において、図16のようなテーブルから該当する作業員のデータを検索させる。当初は、作業員情報は入力されていないはずなので、空データを取得することになる。
次に、ステップS405において、業務システムサーバ103のCPU201は、作業員データベースがロックされているかを判断するための情報を取得する。作業員データベースがロックされているかどうかは、データベースサーバ104の業務ロックデータベース(図13)に、該当するロックキー(作業員ID)1301が一致しているデータがあるかどうかで判断する。業務ロックデータベースに同じロックキー1301のデータがあれば、該当するデータレコードもしくはデータベース自体をロック(排他制御)されていると判断される。
データベースサーバ104のステップS445において、データベースサーバ104のCPU201は、図13のようなテーブルから該当するロックキー(作業員ID)1301のデータを検索する。当初は、業務ロックデータベースには登録されていないはずなので、検索結果は無しとなる。一方、他のクライアントや他のブラウザ画面から既に作業員データベースがアクセスされている場合は、たとえば、図13の2行目の1301列の欄にある「WRK00001」のように、レコードに値が登録されている。
次に、ステップS406において、業務システムサーバ103のCPU201は、ステップS405で該当のロックキー(作業員ID)が検索されたかどうかを判断する。検索の結果、同じロックキーが存在した場合は、ロック不可の処理(ステップS406の不可)へと処理を遷移し、ステップS409へと進む。一方、S405の結果、同じロックキーが存在しなかった場合は、ロック可能の処理(ステップS406の可)へと処理を遷移し、ステップS407へと進む。ステップS409へと処理を進める場合の処理を先に説明する。
ステップS409へと処理をすすめると、業務システムサーバ103のCPU201は、該当の作業員IDを有するデータレコードもしくはデータベース自体を表示モードとして設定する。すなわち、該当データは既に他のクライアントもしくは他のブラウザ画面により使用されているため、データの参照のみを許可し、データの修正を許可しない表示モードとして、次のステップS410に処理を進める。
一方、ステップS406において、ロック可能の処理(ステップS406の可)へと処理を遷移し、ステップS407へと進めた場合、業務システムサーバ103のCPU201は、データベースサーバ104に、作業員紐付けデータのロック(排他制御)を登録する。この段階で、図13の1レコード分のデータ(たとえば、図13の2行目のレコード)が登録される。
ステップS447において、データベースサーバ104のCPU201は、業務システムサーバ103により送信された図13の1レコード分のデータ(たとえば、図13の2行目のレコード)を業務ロックデータテーブルに登録する。この業務ロックデータテーブル図13に登録されると、他のクライアントや他のブラウザ画面からの編集アクセスを禁止することができる。
ステップS407の処理が終了すると、現在アクセスしているユーザで同じ会話番号を有するブラウザからのデータ編集は可能とさせるために、次にステップS408において、作業員データベースの該当作業員IDのデータを編集可能な編集モードとして設定する。
次に、ステップS410において、業務システムサーバ103のCPU201は、ステップS407で登録したデータと共に、作業員紐付け画面を描画する指示を情報処理端末101に送信(指示)する。
次に、ステップS411において、情報処理端末101のCPU201は、業務システムサーバ103から、ステップS407で登録されたデータを受信する。
次に、ステップS412において、情報処理端末101のCPU201は、会話番号画面管理処理を行う。この処理は、ステップS312と同様に図7のフローチャートの処理となる。説明は省略する。
ステップS412の処理(図7の処理)が終わると、次にステップS413の処理へと遷移する。
ステップS413において、情報処理端末101のCPU201は、作業員紐付け画面の描画処理を行う。ブラウザ画面上にステップS411において受信した作業員紐付け情報を画面上に表示する。表示された画面イメージを図18を参照して説明する。
図18は、本発明の実施形態における情報処理端末101のディスプレイ210に表示される作業員紐付け画面の一例である。
図18の1800画面内にあるグレーで色塗られた部分1801は、予め入力されている作業IDであり、業務管理者はこの画面では変更できない。作業員名の欄1802は当初は空欄であり、業務管理者が作業員名もしくはユーザIDなどを入力して、作業指示に紐付ける作業員を入力する。その後、登録ボタン1803を押下すると、最終的に、図16の1行目のレコードのように、データベースサーバ104の作業員データベースに登録される。
この後、作業員ユーザ(たとえば、図16の例では、1行目のレコードの「梅崎七郎」)が情報処理端末102にログインし、作業場所を登録する処理を実施する。作業場所登録処理の詳細を図5を参照して説明する。
図5は、本発明の実施形態における情報処理システムの作業場所登録画面表示の制御処理手段の一例を示すフローチャートである。この処理は、操作者が使用する情報処理端末101のCPU201、業務システムサーバ103のCPU201、及びデータベースサーバ104のCPU201がそれぞれのROM203等に格納されたプログラムをRAM202に展開して実行することにより実現される。
図5のフローチャートは、作業員ユーザが情報処理端末102にログインし、作業場所を登録しようとしてブラウザ画面を起動した際に開始される処理の流れである。
まず、ステップS501において、情報処理端末102のCPU201は、ブラウザ画面の起動を受け付け、ディスプレイ210上にブラウザ画面を表示する。
次に、ステップS502において、情報処理端末101のCPU201は、作業員ユーザから作業指示の確認画面を表示する依頼を受け付け、業務システムサーバ103へと接続する。業務システムサーバ103に接続する際に、操作している作業員ユーザのユーザID情報を送信する。
次に、ステップS503において、業務システムサーバ103のCPU201は、ステップS502から取得したユーザID情報をデータベースサーバ104に送信し、データベースサーバ104から作業指示情報を取得する。
データベースサーバ104では、CPU201が、ステップS543において、作業員データベースの該当の作業員ユーザのユーザID1601に対応する作業予定1603を取得し、作業予定1603のデータから作業指示データベースの作業ID1401と一致する作業指示データベースの情報を取得する。取得した作業指示情報を業務システムサーバ103に送信する。
ステップS503で作業指示情報を取得すると、次のステップS504において、業務システムサーバ103のCPU201は、ステップS503で取得したデータと共に、作業指示画面を描画する指示を情報処理端末101に送信する。
次に、ステップS505において、情報処理端末102のCPU201は、業務システムサーバ103から、ステップS503で取得したデータを受信する。
次に、ステップS506において、情報処理端末102のCPU201は、会話番号画面管理処理を行う。この処理は、ステップS312と同様に図7のフローチャートの処理となる。
図7のフローチャートでは、情報処理端末102ではまだ会話番号が設定されていないはずなので、ステップS702とステップS704でそれぞれ無しの判断になり、ステップS705において会話番号が発番され、ステップS706においてセッションストレージに登録される。
ステップS506の処理(図7の処理)が終わると、次にステップS507の処理へと遷移する。
ステップS507において、情報処理端末101のCPU201は、作業指示画面の描画処理を行う。ブラウザ画面上にステップS503において受信した作業指示情報を画面上に表示する。表示された画面イメージを図19を参照して説明する。
図19は、本発明の実施形態における情報処理端末101のディスプレイ210に表示される作業指示確認画面の一例である。
図19の1900画面内のデータはボタン以外はグレーで色塗られており(1901)、データの修正などはできない仕様になっている。
図19が表示されている状況で作業場所登録ボタン1902が押下されると、次のステップS508へと処理を遷移する。図5のフローチャートの説明に戻る。
ステップS508において、情報処理端末のCPU201は、図19の画面上の作業場所登録ボタン1902の押下を受け付け、作業場所登録画面表示依頼を業務システムサーバ103に送信する。この依頼の送信の際に、ステップS503で取得した作業IDとステップS506で発番された会話番号情報を業務システムサーバ103に送信する。
次に、ステップS509において、業務システムサーバ103のCPU201は、情報処理端末101から表示依頼があったブラウザの画面に対する会話番号を設定する。この会話番号は、ステップS506で設定されたIDを継承する。詳細はステップS403と同様に図6で参照される処理であるため、説明は省略する。
図5のステップS509において、会話番号が再確認されると、次のステップS510において、業務システムサーバ103のCPU201は、ステップS508で指定されたアプリケーションである「ORDER-WEB」(たとえば、図13の1312のレコードに対応)を起動し、作業場所情報をデータベースサーバ104から取得する処理を行う。
その後、業務システムサーバ103が作業場所情報を取得するために、データベースサーバ104のCPU201は、ステップS550において、作業場所データベースからステップS508で取得した作業IDのデータの作業場所を検索する。検索する作業場所データベースの例を図15を参照して説明する。
図15は、本発明の実施形態における業務ロックの対象となる作業場所情報テーブルを示すテーブルの一例である。これら1レコード分のデータが業務ロックされるデータの例であり、同じデータベースを全て業務ロックしても良いし、該当レコードだけを業務ロックしても良い。
1501はステップS508で情報処理端末101から送信される作業IDであり、1502は作業予定日、1503は作業開始予定時間、1504は作業終了予定時間、1505はこのフローチャートで設定される作業場所である。作業員ユーザは1502から1505の時間と場所にて作業を行うことを作業場所データベースに登録する。図5のフローチャートの説明に戻る。
ステップS510において、作業場所情報を取得すると、次にステップS511において、作業場所データがロック可能かどうかの判断のため、データベースサーバ104に作業場所データベースが既にロックされているか、業務ロックデータテーブルを検索する命令を送信する。
次に、ステップS551において、データベースサーバ104のCPU201は、業務ロックデータテーブルの中からステップS508で取得した作業ID(ロックキー)で、データ種別が「ORDERPLACE」であるデータを検索し、検索結果を業務システムサーバ103に送信する。
ステップS511で業務ロックデータテーブルから、作業場所データを取得すると、次のステップS512において、業務システムサーバ103のCPU201は、該当する作業場所データをロックできるかどうかを判断する。ステップS511において業務ロックデータテーブルに、該当する作業IDのデータ種別が「ORDERPLACE」であるデータが見つからなかった場合は、その作業IDのデータベースはロックされていないので、業務ロックが可能である。一方、ステップS511において業務ロックデータテーブルに、該当する作業IDのデータ種別が「ORDERPLACE」であるデータがすでにある場合、すなわち、他のクライアントや他のブラウザ画面から既に作業場所データベースがアクセスされている場合は、業務ロックはできない。たとえば、作業場所データベースであるORDERPLACEデータが既に他のクライアントや他のブラウザ画面からアクセスされている場合は、図13の1311の行のように、1302のデータ種別が「ORDERPLACE」で、アクセスしている作業ID(ロックキー)が、たとえば「ORD201710_01」などと登録されている。この場合は、業務ロックはできないと判断される。
ステップS512において、業務システムサーバ103のCPU201は、業務ロックできるかどうかによってあとの処理を分ける。業務ロックできる場合(ステップS512で可)は、ステップS513へと処理を遷移し、業務ロックできない場合(ステップS512で不可)は、ステップS515へと処理を遷移する。ステップS515へと処理を進める場合の処理を先に説明する。
ステップS515へと処理をすすめると、業務システムサーバ103のCPU201は、該当の作業場所データのデータレコードもしくはデータベース自体を表示モードとして設定する。すなわち、該当データは既に他のクライアントもしくは他のブラウザ画面により使用されているため、データの参照のみを許可し、データの修正を許可しない表示モードとして、次のステップS516に処理を進める。
一方、ステップS512において、ロック可能の処理(ステップS512の可)へと処理を遷移し、ステップS513へと進めた場合の処理を説明する。業務システムサーバ103のCPU201は、ステップS513において、データベースサーバ104に、作業場所データベースのロック(排他制御)を登録するデータを送信する。図13の1レコード分のデータ(たとえば、図13の1311行が当初なければ、1311の行のデータ)がデータベースサーバ104に送信される。
ステップS553において、データベースサーバ104のCPU201は、業務システムサーバ103により送信された図13の1レコード分のデータ(たとえば、図13の1311行のレコード)を業務ロックデータテーブルに登録する。この業務ロックデータテーブル図13にデータが登録されると、他のクライアントや他のブラウザ画面からの編集アクセスを禁止することができる。
ステップS513の処理が終了すると、現在アクセスしているユーザで同じ会話番号を有するブラウザからのデータ編集は可能とさせるために、次にステップS514において、業務システムサーバ103のCPU201は、作業場所データベースの該当作業員IDのデータを編集可能な編集モードとして設定する。
次に、ステップS516において、業務システムサーバ103のCPU201は、ステップS513で登録したデータと共に、作業場所登録画面を描画する指示を情報処理端末101に送信(指示)する。
次に、ステップS517において、情報処理端末101のCPU201は、業務システムサーバ103から、ステップS516で送信されたデータを受信する。
次に、ステップS518において、情報処理端末101のCPU201は、会話番号画面管理処理を行う。この処理は、ステップS312と同様に図7のフローチャートの処理となる。説明は省略する。
ステップS518の処理(図7の処理)が終わると、次にステップS519の処理へと遷移する。
ステップS519において、情報処理端末101のCPU201は、作業場所登録画面の描画処理を行う。ブラウザ画面上にステップS517において受信した作業場所情報を画面上に表示する。表示された画面イメージを図20を参照して説明する。
図20は、本発明の実施形態における情報処理端末101のディスプレイ210に表示される作業場所登録画面の一例である。
図20の2000画面内にあるグレーで色塗られた部分2001は、予め入力されている作業IDであり、作業員ユーザはこの画面では変更できない。作業予定日や場所の入力欄2002は当初は空欄であり、作業員ユーザが2000の画面が表示された段階で作業予定開始日時や作業場所を入力する。その後、登録ボタン2003を押下すると、最終的に、図15の1行目のレコードのように、データベースサーバ104の作業場所データベースに登録される。
以上の処理により、複数のデータベースにアクセスする際に各ブラウザ毎、或いは同じブラウザソフト内でもタブによって別れているブラウザ毎に会話番号を有することで、それぞれのブラウザ毎にアクセスしているデータベースを管理することが出来、複数のブラウザを並行して処理する場合であっても、データの排他制御を問題なく行うことができる。
次に、ブラウザの画面遷移が所定の順序通りではなく、元の画面に戻る場合の処理を図8を参照して説明する。
図8は、本発明の実施形態における情報処理システムの作業指示画面戻りの制御処理手段の一例を示すフローチャートである。この処理は、操作者が使用する情報処理端末101のCPU201、業務システムサーバ103のCPU201、及びデータベースサーバ104のCPU201がそれぞれのROM203等に格納されたプログラムをRAM202に展開して実行することにより実現される。
図8のフローチャートは、業務管理者が図18のような画面を入力している際に、一つ前の画面に遷移させるため、1804の「戻る」ボタンを押下した際に開始される処理の流れである。
まず、ステップS801において、情報処理端末101のCPU201は、ブラウザ画面の「戻る」ボタンの押下を受け付け、作業員紐付け画面から作業指示画面に戻す処理を受け付ける。この処理を受け付けると、情報処理端末101は、現在開いている画面情報(図18の場合、図13の2行目のレコードデータ)を業務システムサーバ103に送信する。
次に、ステップS802において、業務システムサーバ103のCPU201は、ステップS801で戻ることになった画面に関係するデータベースの排他制御を解除する処理を行う。そのために、データベースサーバ104にある業務ロックデータテーブルの内の、ステップS801で戻ることになった画面に関係する業務ロックデータを削除する命令をデータベースサーバ104に送信する。削除する業務ロックデータを特定するために、ロックキーやデータ種別、ログインID、会話番号をデータベースサーバ104に送信する。
データベースサーバ104のCPU201は、ステップS842において、業務ロックデータ削除命令を受けて、該当する業務ロックデータを削除する。業務ロックデータが削除されると、その中に登録されていたデータベース(図13の1302)は他のクライアントや他のブラウザなどで編集アクセス可能になる。
次に、ステップS803において、業務システムサーバ103のCPU201は、遷移(戻る)画面である作業指示画面を表示するための情報をデータベースサーバ104から取得する処理を行う。
データベースサーバ104のCPU201は、ステップS843において、ステップS801で取得した業務ロックデータ(図18の場合、図13の2行目のレコードデータ)の作業ID(ロックキー)1301を業務システムサーバ103から取得し、該当する作業指示情報を業務システムサーバ103に送信する。
ステップS803において、作業指示情報を受信する(図18の場合、図14の1行目のレコードデータ)と、次のステップS804において、業務システムサーバ103のCPU201は、ステップ803で取得したデータを元に、作業指示画面を描画する指示を情報処理端末101に送信(指示)する。
次に、ステップS805において、情報処理端末101のCPU201は、業務システムサーバ103から、ステップS804で送信されたデータを受信する。
次に、ステップS806において、情報処理端末101のCPU201は、会話番号画面管理処理を行う。この処理は、ステップS312と同様に図7のフローチャートの処理となる。説明は省略する。
ステップS806の処理(図7の処理)が終わると、次にステップS807の処理へと遷移する。
ステップS807において、情報処理端末101のCPU201は、作業指示画面の描画処理を行う。ブラウザ画面上にステップS805において受信した作業指示情報を画面上に表示する。表示される画面イメージ例は図17である。
以上の処理により、遷移する画面が戻る場合も、業務ロックデータを削除することにより、データベースのロックを解除することができる。
次に、業務管理者もしくは作業員ユーザがブラウザ画面を閉じる処理をする際に実行される処理を図9を参照して説明する。
図9は、本発明の実施形態における情報処理システムのブラウザ画面終了の制御処理手段の一例を示すフローチャートである。この処理は、情報処理端末のCPU201、業務システムサーバ103のCPU201、及びデータベースサーバ104のCPU201がそれぞれのROM203等に格納されたプログラムをRAM202に展開して実行することにより実現される。
図9のフローチャートは、業務管理者もしくは作業員ユーザがブラウザ画面を閉じる操作をすると開始される処理の流れである。
まず、ステップS901において、情報処理端末のCPU201は、ユーザからのブラウザ画面終了処理を受け付ける。ブラウザ画面の終了処理は、ブラウザソフト自体を閉じる処理でも良いし、タブで表示されているブラウザ画面のみを閉じる処理でも良い。
次に、ステップS902において、情報処理端末のCPU201は、閉じられるブラウザの会話番号を業務システムサーバ103に送信し、ブラウザ画面を終了することを通知する。その後、ステップS904において、情報処理端末のCPU201は、通常のブラウザの終了処理を行う。
通知を受けた業務システムサーバ103のCPU201は、ステップS903において、ステップS902から受信した会話番号に関するデータベースのロックを解除する処理を行う。具体的には、データベースサーバ104にある業務ロックデータの内、ステップS902から受信した会話番号を持つデータを削除させる命令をデータベースサーバ104に送信する。
データベースサーバ104のCPU201は、ステップS943において、データを削除する命令を受信すると、該当の会話番号の業務ロックデータを業務ロックデータテーブルから削除する。
以上の処理により、データベースアクセスを終了させずにブラウザ画面を終了させた場合でもデータベースサーバ104のデータベースをロックさせたまま終了することを防ぐことができる。
次に、業務管理者もしくは作業員ユーザがブラウザ画面からログアウト処理を実行した際の処理を図10を参照して説明する。
図10は、本発明の実施形態における情報処理システムのログアウト処理時の制御処理手段の一例を示すフローチャートである。この処理は、情報処理端末のCPU201、業務システムサーバ103のCPU201、及びデータベースサーバ104のCPU201がそれぞれのROM203等に格納されたプログラムをRAM202に展開して実行することにより実現される。
図10のフローチャートは、業務管理者もしくは作業員ユーザが情報処理端末からログアウト、もしくはブラウザ内でアクセスしているサイトをログアウトしようとした際に開始される処理の流れである。
まず、ステップS1001において、情報処理端末のCPU201は、ユーザからのログアウト処理を受け付ける。ログアウト処理は情報処理端末からのログアウトでも良いし、Webサーバの特定のサイトからのログアウト処理でも良い。
次に、ステップS1002において、情報処理端末のCPU201は、ログアウトされるログインIDを業務システムサーバ103に送信し、ログアウト処理を業務システムサーバ103に通知する。
通知を受けた業務システムサーバ103のCPU201は、ステップS1003において、ステップS1002から受信したログインIDに関するデータベースのロックを解除する処理を行う。具体的には、データベースサーバ104にある業務ロックデータの内、ステップS1002から受信したログインIDを持つデータを削除させる命令をデータベースサーバ104に送信する。
データベースサーバ104のCPU201は、ステップS1043において、データを削除する命令を受信すると、該当のログインIDの業務ロックデータを業務ロックデータテーブルから削除する。
次に、業務システムサーバ103のCPU201は、ステップS1004において、通常のWebサイトのログアウト処理を実施する。なお、情報処理端末のログアウトの場合は、情報処理端末の通常のログアウト処理を実施する。
以上の処理により、データベースアクセスを終了させずにログアウトした場合でもデータベースサーバ104のデータベースをロックさせたまま終了することを防ぐことができる。
次に、業務システムサーバ103のアプリケーションを終了させた際の処理を図11を参照して説明する。
図11は、本発明の実施形態における情報処理システムのアプリケーション終了処理時の制御処理手段の一例を示すフローチャートである。この処理は、情報処理端末のCPU201、業務システムサーバ103のCPU201、及びデータベースサーバ104のCPU201がそれぞれのROM203等に格納されたプログラムをRAM202に展開して実行することにより実現される。
図11のフローチャートは、業務管理者など業務システムサーバ103のアプリケーションを停止させる際に開始される処理の流れである。
まず、ステップS1101において、業務システムサーバ103のCPU201は、業務管理者などからアプリケーションを停止する指示を検知する。なお、このアプリケーション停止の検知は、ユーザによる情報処理端末からの指示でも良いし、サーバに備え付けている無停電電源装置(UPS)などの指示でも良い。
次に、業務システムサーバ103のCPU201は、ステップS1102において、終了させるアプリケーションに関するデータベースのロックを解除する処理を行う。具体的には、データベースサーバ104にある業務ロックデータの内、業務システムサーバ103のサーバ名と、終了させるアプリケーション名とが一致すると業務ロックデータを削除させる命令をデータベースサーバ104に送信する。
データベースサーバ104のCPU201は、ステップS1142において、データを削除する命令を受信すると、該当のサーバ名・アプリケーション名の業務ロックデータを業務ロックデータテーブルから削除する。
次に、業務システムサーバ103のCPU201は、ステップS1103において、通常のアプリケーションを停止させる処理を実施する。
以上の処理により、データベースアクセスを終了させずに業務システムサーバ103のアプリケーションを終了させた場合でもデータベースサーバ104のデータベースをロックさせたまま終了することを防ぐことができる。
次に、業務ロックの確認や強制的に解除する際の処理を図12のフローチャートを参照して説明する。
図12は、本発明の実施形態における情報処理システムの業務ロック強制解除の制御処理手段の一例を示すフローチャートである。この処理は、情報処理端末101のCPU201、業務システムサーバ103のCPU201、及びデータベースサーバ104のCPU201がそれぞれのROM203等に格納されたプログラムをRAM202に展開して実行することにより実現される。
図12のフローチャートは、業務管理者などが業務ロック状況を確認する際、あるいは、何らかの原因で業務ロックが残ってしまったときに解除する、もしくは早急の対応が必要なデータの場合に多少の問題が出ても業務ロックを強制的に奪う際などに開始される処理の流れである。
まず、ステップS1201において、情報処理端末101のCPU201は、業務ロックデータ閲覧画面を表示する依頼を業務システムサーバ103に送信する。
次に、ステップS1202において、業務システムサーバ103のCPU201は、データベースサーバ104の有する業務ロックデータを全て、もしくは業務システムサーバ103のアプリケーションだけ取得する命令をデータベースサーバ104に送信する。
業務ロックデータを送信する命令を受けたデータベースサーバ104のCPU201は、ステップS1242において、業務ロックデータテーブルのデータを業務システムサーバ103に送信する。
業務システムサーバ103のCPU201は、ステップS1202で業務ロックデータテーブルのデータを受信すると、次のステップS1203において、情報処理端末101に業務ロックデータ閲覧画面を描画する指示を情報処理端末101に送信(指示)する。
次に、ステップS1204において、情報処理端末101のCPU201は、業務強制ロック解除画面をディスプレイ210に表示する。表示された画面イメージを図21を参照して説明する。
図21は、本発明の実施形態における情報処理端末101のディスプレイ210に表示される業務ロックデータ閲覧画面の一例である。
図21の2100画面内にあるデータリスト2101が現在管理されている業務ロックのデータであり、このリストを業務管理者などが確認して、業務ロックの状況を把握するための画面イメージである。
2100には、業務ロックを強制解除するボタン2102を備えていて、業務管理者などが指定した業務ロックを強制的に解除することができるボタンである。図12のフローチャートの説明に戻る。
次のステップS1205において、情報処理端末101のCPU201は、ユーザから図示していないマウスなどにより2101のリストの1行、もしくは複数行の選択を受け付ける。
ステップS1205で選択を受け付けたリストの行を他の行と区別して表示させるために、ステップS1206において、情報処理端末101のCPU201は、ステップS1205で選択されたリスト(行)を他のリストと識別可能に表示する(図示していない)。
次に、ステップS1207において、情報処理端末101のCPU201は、図21に表記されているような強制解除ボタン2102の押下を受け付ける。
次に、ステップS1208において、情報処理端末101のCPU201は、ステップS1205で選択されたリストの業務ロックの解除を命じる処理を業務システムサーバ103に送信する。業務ロック解除の命令を送信する際に、業務システムサーバ103には、ロックキー1301、ログインID1303、会話番号1305などを送信する。
業務ロック解除命令を受信した業務システムサーバ103のCPU201は、次のステップS1209において、ステップS1208により送られてきた情報に該当する業務ロックデータを削除する命令をデータベースサーバ104に送信する。
業務データロックの削除命令を受信したデータベースサーバ104のCPU201は、ステップS1249において、該当する業務ロックデータを業務ロックデータテーブルから削除する。
次に、業務システムサーバ103のCPU201は、ステップS1210において、再度データベースサーバ104の有する業務ロックデータを全て、もしくは業務システムサーバ103のアプリケーションだけ取得する命令をデータベースサーバ104に送信する。
業務ロックデータを送信する命令を受けたデータベースサーバ104のCPU201は、ステップS1242において、削除された業務ロックデータテーブルのデータを業務システムサーバ103に再び送信する。
次に、業務システムサーバ103のCPU201は、ステップS1210で受信した業務ロックデータを、ステップS1211において、情報処理端末101に再び業務ロックデータ閲覧画面として描画する指示を情報処理端末101に送信(指示)する。
次に、ステップS1212において、情報処理端末101のCPU201は、再び業務強制ロック解除画面をディスプレイ210に表示する。表示された画面イメージからは、ステップS1205で選択された業務ロックデータは削除されている。
以上の処理により、業務管理者などのユーザが、誰が業務ロックをしているのかを確認したい場合に容易に確認することができる。また、何らかの原因で業務ロックが残ってしまっている場合や、急遽業務ロックを解除しなければならない場合に、業務ロックを容易に解除することを可能とする。
以上の処理により、セッションIDを利用せずに、同一端末及び同一セッションでの複数ウィンドウを並行して処理する場合であっても、データの排他制御を問題なく行うことができ、また、データベースとのセッションを終了させずブラウザを閉じたり、ログアウトさせたりした際でも、業務ロックを自動的に解除することにより、データベースがロックされたままになることを防ぐことができる。
さらに、業務ロックが何らかの原因で接続されたままになった場合でも、業務ロックデータを削除するだけで業務ロックを解除することができる。
以上、実施形態例を詳述したが、本発明は、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能である。
また、本発明におけるプログラムは、各処理方法をコンピュータが実行可能(読み取り可能)なプログラムであり、本発明の記録媒体は、各処理方法をコンピュータが実行可能なプログラムが記憶されている。
なお、本発明におけるプログラムは、各装置の処理方法ごとのプログラムであってもよい。
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読取り実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD-ROM,CD-R,DVD-ROM,磁気テープ,不揮発性のメモリカード,ROM,EEPROM,シリコンディスク等を用いることができる。
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ,データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。