(57)【特許請求の範囲】
【請求項１】
コンピュータによって実行されている単数または複数のアプリケーションプログラムの各実行インスタンスに対するユーザの操作を支援するプログラムであって、
前記コンピュータに、
前記実行インスタンス間で共有するデータを保持しておく共有データバッファ機能と、
前記実行インスタンスの内部データバッファからデータを読み出し、前記共有データバッファ機能に当該データを書き込むデータ読み出し機能と、
前記共有データバッファ機能からデータを読み出し、前記実行インスタンスの内部データバッファに当該データを書き込むデータ書き込み機能と、
前記実行インスタンスを制御する条件と命令の組を含み、ユーザによって任意に定めることが可能な制御ルールを予め保持しておく制御ルール保持機能と、
前記制御ルールに基づいて動作を行う制御ルール適用機能と、
前記実行インスタンスの処理で発生するイベントをトリガーに、当該処理に割り込んで、前記制御ルール適用機能を動作させ、当該動作が完了後、割り込み前に実行されていた処理を再開させる割り込み機能と、を実現させ、
前記制御ルール適用機能は、前記割り込み機能が割り込んだ前記イベントの情報を取得し、前記イベントの情報が前記制御ルールの条件を満たさない場合には、直ちに前記割り込み機能に復帰し、前記制御ルールの条件を満たす場合には、前記制御ルールの命令に従って、前記データ読み出し機能および前記データ書き込み機能のいずれか又はその組合せを１回または複数回動作させた後に、前記割り込み機能に復帰し、
前記イベントの情報は、イベントの識別子と、イベントが発生した前記実行インスタンスの前記アプリケーションプログラムの名称と、当該イベントの識別子毎に固有の１つ又は複数の属性情報とを含み、
前記制御ルールの条件は、イベントの識別子と、前記アプリケーションプログラムの名称と、当該イベントの識別子毎に固有の１つ又は複数の属性情報とを含み、
前記制御ルール適用機能は、前記イベントの情報と前記制御ルールの条件との一致・不一致を比較することで前記制御ルールの条件を満たすか否かを判別することを特徴とする操作支援プログラム。
【請求項２】
請求項１記載の操作支援プログラムにおいて、さらに、
前記コンピュータに、
所与のデータを別のデータに変換する変換テーブルを予め保持しておく変換テーブル保持機能と、
前記共有データバッファ機能からデータを読み出し、当該データを前記変換テーブルに従って変換し、当該変換されたデータを、前記共有データバッファ機能に書き込むデータ変換機能と、を実現させ、
前記制御ルール適用機能は、前記イベントの情報が前記制御ルールの条件を満たす場合には、前記制御ルールの命令に従って、前記データ読み出し機能、前記データ書き込み機能、および前記データ変換機能のいずれか又はその組合せを１回または複数回動作させた後に、前記割り込み機能に復帰することを特徴とする操作支援プログラム。
【請求項３】
請求項２記載の操作支援プログラムにおいて、さらに、
前記コンピュータに、警告画面を表示し、前記割り込み機能が割り込んだ処理をキャンセルする警告表示機能を実現させ、
前記制御ルール適用機能は、前記イベントの情報が前記制御ルールの条件を満たす場合には、前記制御ルールの命令に従って、前記データ読み出し機能、前記データ書き込み機能、前記データ変換機能、および前記警告表示機能のいずれか又はその組合せを１回または複数回動作させた後に、前記割り込み機能に復帰することを特徴とする操作支援プログラム。
【請求項４】
請求項３記載の操作支援プログラムにおいて、さらに、
前記コンピュータに、前記コンピュータに接続された外部記憶装置に格納されたアプリケーションプログラムの実行インスタンスを新規に起動するアプリケーション起動機能を実現させ、
前記制御ルール適用機能は、前記イベントの情報が前記制御ルールの条件を満たす場合には、前記制御ルールの命令に従って、前記データ読み出し機能、前記データ書き込み機能、前記データ変換機能、前記警告表示機能、および前記アプリケーション起動機能のいずれか又はその組合せを１回または複数回動作させた後に、前記割り込み機能に復帰することを特徴とする操作支援プログラム。
【請求項５】
請求項１〜４のいずれか１項に記載の操作支援プログラムにおいて、さらに、
前記コンピュータに、前記制御ルール適用機能の動作に関する履歴情報をログに記録するログ機能を実現させることを特徴とする操作支援プログラム。
【請求項６】
コンピュータによって実行される単数または複数のアプリケーションプログラムの各実行インスタンスに対するユーザの操作を支援するプログラムであって、
前記プログラムは、前記コンピュータに、予めユーザによって設定された制御ルールに基づいて動作を行う制御ルール適用機能を実現させ、
前記制御ルールは、前記各実行インスタンスの処理の過程で生成される複数のイベントの中の少なくとも１個のイベントを特定する条件と、本来前記ユーザの操作に応じて前記各実行インスタンスが行う処理を自動的に実行させるための命令とを含み、
前記イベントは、イベントの識別子と、イベントが発生した前記実行インスタンスの前記アプリケーションプログラムの名称と、当該イベントの識別子毎に固有の１つ又は複数の属性情報とを含み、
前記制御ルール内の条件は、イベントの識別子と、前記アプリケーションプログラムの名称と、当該イベントの識別子毎に固有の１つ又は複数の属性情報とを含み、
前記制御ルール適用機能は、前記各実行インスタンスの処理の過程で前記イベントが生成された際に、当該イベントと前記制御ルール内の条件とを比較し、両者が一致した際に、前記制御ルール内の命令を実行することを特徴とする操作支援プログラム。
【請求項７】
請求項６記載の操作支援プログラムにおいて、
前記制御ルール内の命令の中には、
前記各実行インスタンスの内部データバッファからデータを取得する命令と、
前記取得したデータを前記各実行インスタンスの内部データバッファに書き込む命令とが含まれることを特徴とする操作支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、操作支援プログラムに関し、特に、パーソナルコンピュータ（以下、ＰＣと略す）上で動作するアプリケーションプログラム（以下、ＡＰと略す）に対するユーザの操作を支援するプログラムに関する。
【背景技術】
【０００２】
近年、大量の定型業務を処理する受発注センタ、帳票入力センタ、コンタクトセンタ等を中心に、そこで働く従業員のＰＣ作業を支援するニーズが増大している。特に、ＰＣ上で動作するＡＰに対するユーザの操作を支援する技術が求められている。このようなＡＰに対するユーザの操作を支援する技術として、特許文献１〜特許文献６と、非特許文献１および非特許文献２が提案されている。
【０００３】
特許文献１〜３では、ＡＰ自体が、ＡＰの入力項目に対するユーザの入力値を予測して、ユーザが入力する前に、当該入力項目に自動入力（オートフィル）する技術が提案されている。具体的に説明すると、特許文献１では、ＡＰ自体が、ＡＰの入力項目と、当該入力項目に対してユーザが入力した値の組を蓄積し、ユーザが再び同一の入力項目に入力する際、過去に入力した値を、当該入力項目に自動入力する技術が示されている。特許文献２では、予め、ＡＰ自体が、ＡＰの入力項目と入力すべき値の組をデータベースに格納しておき、ユーザがある入力項目に入力する際、入力項目をキーにデータベースを検索し、該当する値を自動入力する技術が示されている。特許文献３では、ＡＰ自体が、電子メールなどのタグなしテキストデータを構文解析し、ＡＰに入力可能な要素を抽出し、ＡＰの対応する入力項目に自動入力する技術が示されている。
【０００４】
特許文献４〜６および非特許文献１，２では、ＡＰに対するユーザの一連の操作を、バッチ処理により自動実行する技術が提案されている。具体的には、特許文献４〜６では、ＡＰに対するユーザの一連の操作に関する情報をログに記録し、当該ログに従って、ＡＰをバッチ処理により自動実行する技術が示されている。非特許文献１，２では、ＡＰに対するユーザの一連の操作をスクリプト言語で記述し、同スクリプトに従って、ＡＰをバッチ処理により自動実行する技術が示されている。
【０００５】
更に具体的に説明すると、特許文献４では、ＡＰに対するユーザの一連の操作について、ＰＣ内で発生する各種イベントに関する情報をログに記録し、当該ログに従って、ＡＰをバッチ処理により自動実行する技術が示されている。特許文献５では、ＡＰに対するユーザの一連の操作について、操作を特徴付けるマウスの座標やキーボードのキー名と言った情報をログに記録し、当該ログに従って、ＡＰをバッチ処理により自動実行する技術が示されている。特許文献６では、ＡＰに対するユーザの一連の操作に関する情報をログに記録し、ログから頻出する操作のパターンを抽出し、当該パターンに従って、ＡＰをバッチ処理により自動実行する技術が示されている。
【０００６】
また、非特許文献１では、米国マイクロソフト社製のＯｆｆｉｃｅ（登録商標）シリーズ等のＡＰに対するユーザの一連の操作を、専用のスクリプト言語で記述し、同スクリプトに従って、ＡＰをバッチ処理により自動実行する技術が示されている。非特許文献２では、米国アップルコンピュータ社製のｉＬｉｆｅ（登録商標）シリーズ等のＡＰに対するユーザの一連の操作を、専用のスクリプト言語で記述し、同スクリプトに従って、ＡＰをバッチ処理により自動実行する技術が提案されている。
【特許文献１】特開２００６−３１８５０６号公報
【特許文献２】特開平１１−３０６１７１号公報
【特許文献３】特開２００５−２５１２０５号公報
【特許文献４】米国特許６０９９３１７号明細書
【特許文献５】特開２００５−６３２７９号公報
【特許文献６】特開２００２−７０２０号公報
【非特許文献１】「Ｍｉｃｒｏｓｏｆｔ（Ｒ）  Ｖｉｓｕａｌ  Ｂａｓｉｃ（Ｒ）  ｆｏｒ  Ａｐｐｌｉｃａｔｉｏｎｓ（ＶＢＡ）」、［ｏｎｌｉｎｅ］、［平成１９年９月４日検索］、インターネット＜ＵＲＬ：http://www.microsoft.com/japan/msdn/vba/＞
【非特許文献２】「Ａｕｔｏｍａｔｏｒ」、［ｏｎｌｉｎｅ］、［平成１９年９月４日検索］、インターネット＜ＵＲＬ：http://www.apple.com/jp/macosx/features/automator/＞
【発明の開示】
【発明が解決しようとする課題】
【０００７】
例えば、特許文献１〜３の技術を利用するには、入力対象となっている個々のＡＰに、上記技術を実装する必要がある。しかし、定型業務において、作業者は、文書作成ＡＰ、表計算ＡＰと言ったＰＣローカルなＡＰや、Ｗｅｂ  ＡＰ、メインフレームＡＰと言ったサーバ・クライアント型のＡＰなど、多数のＡＰを操作して、ＰＣ作業を遂行している。従って、これら全てのＡＰに上記技術を実装するには膨大な労力が必要となってしまう。
【０００８】
さらに、特許文献１〜３の技術により支援できる作業者の操作の範囲は、上記技術を実装したＡＰ内に限定される。しかし、定型業務において、作業者は、あるＡＰに入力したデータの一部を別のＡＰにも入力する、或いは、あるＡＰの処理結果を別のＡＰに入力するなど、複数のＡＰを連携させてＰＣ作業を遂行している。従って、上記技術では複数のＡＰを連携させるようなＰＣ作業を支援できないということも懸念される。
【０００９】
また、特許文献４〜６および非特許文献１，２の技術を利用する場合には、次のようなことが考えられる。例えば、定型業務において、作業者は、バッチ処理化の対象である、手順が固定された一連の操作（以下、単純作業と呼ぶ）と、作業者の知識や経験に基づいて行うような手順が固定されていない一連の操作（以下、知識作業と呼ぶ）との間を、何度も行き来しながらＰＣ作業を遂行している。上記技術により、各単純作業をバッチ処理に置き換えた場合、作業者は、バッチ処理と知識作業の節目毎に、作業の進捗に照らし合わせて、適切なバッチ処理を選択し、バッチ処理実行の操作を行う必要がある。従って、上記技術の導入により、作業者にとっては、バッチ処理の選択・実行などの新たな作業が発生し、バッチ処理の誤選択・未実行などの新たなミスが発生する余地が生まれてしまう。
【００１０】
本発明は、このような問題点を鑑みてなされたものであり、上記課題の全てまたは、そのうち幾つかを解決する技術を提供することを目的とする。本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば、次の通りである。
【００１２】
本発明の一実施の形態の操作支援プログラムは、単数または複数のアプリケーションプログラムの各実行インスタンスに対するユーザの操作を支援するものであって、予めユーザ等によって単数または複数の制御ルールを設定することができ、この制御ルールに基づいて所定の処理を自動的に実行するものとなっている。ここで、操作支援プログラムは、各制御ルールの中で、各実行インスタンスの処理で生成される各種イベント内容を示した条件と、この条件を満たした際に実行させる命令とをそれぞれ任意に設定できるように構成されたことが特徴となっている。なお、設定可能な代表的な命令としては、例えば、各実行インスタンスの内部データバッファからデータを取得する命令や、逆に、取得したデータを各実行インスタンスの内部データバッファに書き込む命令などが挙げられる。
【００１３】
これによって、操作支援プログラムは、例えば、本来ユーザの操作によって行われる、あるアプリケーションから他のアプリケーションにデータをコピー＆ペーストするような操作を、各実行インスタンスからのイベントをトリガーとして自動的に行うことなどが可能となる。つまり、複数のアプリケーションを連携させたユーザの作業を支援することができる。また、ユーザが知識作業を行う際、操作支援プログラムは、例えば、ユーザが間違った作業を行ったことを各実行インスタンスからのイベントによって検出し、ユーザに警告を促すこともできる。さらに、イベントを判断してそれに応じた処理を行えるため、状況に応じて内容が変わるような作業を単純作業として自動化することも可能である。このようなことから、アプリケーションを改変することなく、アプリケーションに対するユーザの操作を支援することができ、業務効率の向上を容易に実現可能となる。
【発明の効果】
【００１４】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、次の通りである。
【００１５】
本発明の一実施の形態による操作支援プログラムを用いて、ＰＣによって実行される既存のＡＰの実行インスタンスで発生するイベントをトリガーにＡＰを制御することにより、ＡＰを改変することなく、ＡＰに対するユーザの操作を支援することが可能となる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。また、以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。
【００１７】
また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。さらに、以下の実施の形態において、その構成要素（要素ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
【００１８】
まず、本発明の理解を容易にするため、本発明の前提として検討したコンピュータシステムおよびこのコンピュータシステムを利用した作業内容の一例について以下に説明する。図１は、本発明の前提として検討したコンピュータシステムにおいて、そのハードウェア構成の一例を示す概略図である。図１において、ＰＣ１００は、ディスプレイ１０１、キーボード１０２、マウス１０３、ＣＰＵ１０４、ＲＯＭ１０５、ＲＡＭ１０６、通信装置１０７及び外部記憶装置１１０を含む。作業者１２１は、ディスプレイ１０１、キーボード１０２およびマウス１０３を通じてこのＰＣ１００を操作する。
【００１９】
ディスプレイ１０１は、ＰＣ１００のオペレーティングシステム（ＯＳ）やＡＰの状態や結果を表示する。ＣＰＵ１０４は、ＲＯＭ１０５に格納されているＢＩＯＳやプログラム、または外部記憶装置１１０に格納されているプログラムを実行する。ＲＡＭ１０６は、ＣＰＵ１０４が実行する作業エリアとして、また、プログラムが利用するデータの一時的な格納場所として利用される。外部記憶装置１１０は、ＰＣ１００において実行されるＯＳ１１１と、１つまたは複数の既存ＡＰを格納する。図１の例では、既存ＡＰの例として表計算ＡＰ１１２と、ＷｅｂブラウザＡＰ１１３を格納している。通信装置１０７は、通信ネットワーク１２０に接続され、通信ネットワーク１２０を介して、Ｗｅｂサーバ１３０、ファイルサーバ１５０との間でデータの送受信をする。ディスプレイ１０１は、表計算ＡＰ１１２の実行インスタンスのウィンドウ１９１と、ＷｅｂブラウザＡＰ１１３の実行インスタンスのウィンドウ１９２を表示している。
【００２０】
ＰＣ１７０は、ディスプレイ１７１、キーボード１７２、マウス１７３、ＣＰＵ１７４、ＲＯＭ１７５、ＲＡＭ１７６、通信装置１７７及び外部記憶装置１８０を含む。例えば、営業担当者１２２は、ディスプレイ１７１、キーボード１７２およびマウス１７３を通じてこのＰＣ１７０を操作する。
【００２１】
ディスプレイ１７１は、ＰＣ１７０のＯＳやＡＰの状態や結果を表示する。ＣＰＵ１７４は、ＲＯＭ１７５に格納されているＢＩＯＳやプログラム、または外部記憶装置１８０に格納されているプログラムを実行する。ＲＡＭ１７６は、ＣＰＵ１７４が実行する作業エリアとして、また、プログラムが利用するデータの一時的な格納場所として利用される。外部記憶装置１８０は、ＰＣ１７０において実行されるＯＳ１８１と、１つまたは複数の既存ＡＰを格納する。図１の例では、既存ＡＰの例として表計算ＡＰ１８２を格納している。通信装置１７７は、通信ネットワーク１２０に接続され、通信ネットワーク１２０を介して、ファイルサーバ１５０との間でデータの送受信を行う。ディスプレイ１７１は、表計算ＡＰ１８２の実行インスタンスのウィンドウ１９３を表示している。
【００２２】
Ｗｅｂサーバ１３０は、ディスプレイ１３１、キーボード１３２、マウス１３３、ＣＰＵ１３４、ＲＯＭ１３５、ＲＡＭ１３６、通信装置１３７及び外部記憶装置１４０を含む。ディスプレイ１３１は、Ｗｅｂサーバ１３０のＯＳやＡＰの状態や結果を表示する。ＣＰＵ１３４は、ＲＯＭ１３５に格納されているＢＩＯＳやプログラム、または外部記憶装置１４０に格納されているプログラムを実行する。ＲＡＭ１３６は、ＣＰＵ１３４が実行する作業エリアとして、また、プログラムが利用するデータの一時的な格納場所として利用される。
【００２３】
外部記憶装置１４０は、Ｗｅｂサーバ１３０において実行されるＯＳ１４１と、発注ＷｅｂシステムＡＰ１４２を格納する。また、発注ＷｅｂシステムＡＰの発注入力画面のＷｅｂページデータ１４３を格納している。以下では、同データを参照するＵＲＬは“http://www.hitachi.co.jp/order/input.html”であるものとする。通信装置１３７は、通信ネットワーク１２０に接続され、通信ネットワーク１２０を介して、ＰＣ１００との間でデータの送受信を行う。
【００２４】
ファイルサーバ１５０は、ディスプレイ１５１、キーボード１５２、マウス１５３、ＣＰＵ１５４、ＲＯＭ１５５、ＲＡＭ１５６、通信装置１５７及び外部記憶装置１６０を含む。ディスプレイ１５１は、ファイルサーバ１５０のＯＳやＡＰの状態や結果を表示する。ＣＰＵ１５４は、ＲＯＭ１５５に格納されているＢＩＯＳやプログラム、または外部記憶装置１６０に格納されているプログラムを実行する。ＲＡＭ１５６は、ＣＰＵ１５４が実行する作業エリアとして、また、プログラムが利用するデータの一時的な格納場所として利用される。
【００２５】
外部記憶装置１６０は、ファイルサーバ１５０において実行されるＯＳ１６１と、ファイルサーバＡＰ１６２を格納する。通信装置１５７は、通信ネットワーク１２０に接続され、通信ネットワーク１２０を介して、ＰＣ１００およびＰＣ１７０との間でデータの送受信を行う。外部記憶装置１６０は、表計算ＡＰ用のデータファイル、発注依頼書＿日立太郎（発注依頼書データ）１６３を格納する。発注依頼書＿日立太郎１６３は、営業担当者１２２がＰＣ１７０において、表計算ＡＰ１８２の実行インスタンスのウィンドウ１９３、キーボード１７２およびマウス１７３を通じて、ＰＣ１７０および表計算ＡＰ１８２を操作することにより作成し、ファイルサーバ１５０に格納したファイルである。
【００２６】
図２は、図１における表計算ＡＰ１１２とＷｅｂブラウザＡＰ１１３を実行するＰＣ１００の機能ブロック図である。ＰＣ１００の機能２００には、表計算ＡＰ１１２の実行インスタンス２１０と、ＷｅｂブラウザＡＰ１１３の実行インスタンス２２０が含まれる。表計算ＡＰ１１２の実行インスタンス２１０は、処理中のファイルのデータを保持するための内部データバッファ２１１を含む。ＷｅｂブラウザＡＰ１１３の実行インスタンス２２０は、当該実行インスタンスで発生するイベントと処理中のＷｅｂページのデータを保持するための内部データバッファ２２１を含む。
【００２７】
図３Ａと図３Ｂは、図２における表計算ＡＰの実行インスタンス２１０の機能を説明する説明図である。図３Ａは、表計算ＡＰの実行インスタンス２１０が保持する内部データバッファ２１１の一例の説明図である。図３Ａは、表計算ＡＰの実行インスタンス２１０が、通信ネットワーク１２０を介して、ファイルサーバ１５０が保持するファイル、発注依頼書＿日立太郎１６３を読み込み、当該ファイルのデータを内部データバッファ２１１に保持する状況を表している。表計算ＡＰの実行インスタンス２１０は、ファイル“発注依頼書＿日立太郎”のデータを、例えば図３Ａに示すような木構造で格納する。
【００２８】
図３Ａにおいて、四角形は要素を表し、角丸四角形は要素の属性を表す。各要素は０個以上の属性と、０個以上の要素を子として持つ。木構造の根に位置するＦＩＬＥ要素３２０はｎａｍｅ属性３２１、ＳＨＥＥＴ要素３３０及びＳＨＥＥＴ要素３４０を持つ。ＦＩＬＥ要素３２０のｎａｍｅ属性の値は“発注依頼書＿日立太郎”である。ＳＨＥＥＴ要素３３０はｎａｍｅ属性３３１、ＣＥＬＬ要素３５０、ＣＥＬＬ要素３６０、・・・を持つ。尚、ＳＨＥＥＴ要素３３０のｎａｍｅ属性３３１は“発注内容”である。ＣＥＬＬ要素３５０はｒｏｗ属性３５１、ｃｏｌｕｍｎ属性３５２及びｖａｌｕｅ属性３５３を持つ。尚、ＣＥＬＬ要素３５０のｒｏｗ属性３５１の値は１、ｃｏｌｕｍｎ属性３５２の値は１、ｖａｌｕｅ属性３５３の値は“発注者名”である。図３Ａにおけるその他の箇所も同様であり、詳細な説明は省略する。尚、この例では表計算ＡＰの実行インスタンスの内部データバッファのデータ構造として木構造を示したが、本実施の形態はこれに限定されるものではない。
【００２９】
図３Ｂは、表計算ＡＰの実行インスタンス２１０が表示するウィンドウ１９１の一例を示す説明図である。図３Ｂは、表計算ＡＰの実行インスタンス２１０が、図３Ａに示した内部データバッファ２１１に基づいて描画したウィンドウを表す。ウィンドウ１９１はファイル描画部品３００を含む。ファイル描画部品３００は、図３ＡにおけるＦＩＬＥ要素３２０に対応する。ファイル描画部品３００は２つのシート描画部品３０１と３０２を含む。シート描画部品３０１と３０２は、それぞれ図３Ａにおける二つのＳＨＥＥＴ要素３３０と３４０に対応する。１つのシート描画部品は、複数の行と列で構成され、行番号と列番号で一意に指定されるセルに分割される。例えば、シート描画部品３０１の第１行目第２列目のセル３１１は、図３ＡにおけるＣＥＬＬ要素３６０に対応する。このように、表計算ＡＰの実行インスタンス２１０は、内部データバッファ２１１に保持するデータに基づいて、ウィンドウ１９１を描画する。
【００３０】
図４Ａと図４Ｂは、図２におけるＷｅｂブラウザＡＰの実行インスタンス２２０の機能を説明する説明図である。図４Ａは、ＷｅｂブラウザＡＰの実行インスタンス２２０が保持する内部データバッファ２２１の一例の説明図である。作業者１２１がキーボード１０２、マウス１０３を通じて、ＷｅｂブラウザＡＰの実行インスタンス２２０に、ＵＲＬ“http://www.hitachi.co.jp/order.html”のＷｅｂページを開くよう指示すると、ＷｅｂブラウザＡＰの実行インスタンス２２０は、Ｗｅｂサーバ１３０が実行する発注ＷｅｂシステムＡＰ１４２の実行インスタンスと通信し、発注入力画面のＷｅｂページのデータ１４３をダウンロードし、当該データを内部データバッファ２２１に格納する。図４Ａは、発注入力画面のＷｅｂページのデータ１４３を内部データバッファ２２１に保持する状況を表している。ＷｅｂブラウザＡＰの実行インスタンス２２０は、発注入力画面のＷｅｂページのデータを、例えば図４Ａに示すような木構造で格納する。
【００３１】
図４Ａにおいて、四角形は要素を表し、角丸四角形は要素の属性を表す。各要素は０個以上の属性と、０個以上の要素を子として持つ。木構造の根に位置するＨＴＭＬ要素４００はＨＥＡＤ要素４０１及びＢＯＤＹ要素４０３を持つ。ＨＥＡＤ要素４０１はＴＩＴＬＥ要素４０２を、ＢＯＤＹ要素４０３はＦＯＲＭ要素４０４をそれぞれ持つ。ＦＯＲＭ要素４０４はｍｅｔｈｏｄ属性４０５、ａｃｔｉｏｎ属性４０６、Ｐ要素４１０、・・・、Ｐ要素４７０及びＰ要素４８０を持つ。Ｐ要素４１０はＩＮＰＵＴ要素４１１を持ち、ＩＮＰＵＴ要素４１１はｔｙｐｅ属性４１２、ｎａｍｅ属性４１３及びｖａｌｕｅ属性４１４を持つ。尚、ＩＮＰＵＴ要素４１１のｔｙｐｅ属性４１２の値は“ｔｅｘｔ”、ｎａｍｅ属性４１３の値は“ｐｒｏｄｕｃｔ＿ｃｏｄｅ”、ｖａｌｕｅ属性４１４の値はＮＵＬＬである。図４Ａにおけるその他の箇所も同様であり、詳細な説明は省略する。尚、この例ではＷｅｂブラウザＡＰの実行インスタンスの内部データバッファのデータ構造として木構造を示したが、本実施の形態はこれに限定されるものではない。
【００３２】
図４Ｂは、ＷｅｂブラウザＡＰの実行インスタンス２２０が表示するウィンドウ１９２の一例を示す説明図である。図４Ｂは、ＷｅｂブラウザＡＰの実行インスタンス２２０が、図４Ａに示した内部データバッファ２２１に基づいて描画したウィンドウを表す。ウィンドウ１９２はボディ描画部品４９０を含む。ボディ描画部品４９０は、図４ＡにおけるＢＯＤＹ要素に対応する。ボディ描画部品４９０は６つのテキスト入力描画部品４９１，４９２，４９３，４９４，４９５，４９７と、チェックボックス描画部品４９６と、１つのボタン描画部品４９８を持つ。テキスト入力描画部品４９１，４９２，４９３，４９４，４９５，４９７は、それぞれ図４ＡにおけるＩＮＰＵＴ要素４１１，４２１，４３１，４４１，４５１，４７１に対応する。チェックボックス描画部品４９６は、図４ＡにおけるＩＮＰＵＴ要素４６１に対応する。ボタン描画部品４９８は図４ＡのＩＮＰＵＴ要素４８１に対応する。このように、ＷｅｂブラウザＡＰの実行インスタンス２２０は、内部データバッファに保持するデータに基づいて、ウィンドウ１９２を描画する。
【００３３】
以上のようなコンピュータシステムを用いて、作業者１２１が、例えば次のようなＳ１からＳ９までの手順で作業を行っているとする。この作業のトリガーは、営業担当者１２２から作業者１２１への電話やＦＡＸ等による連絡とし、この連絡の中で、営業担当者１２２は、作業者１２１に発注入力を依頼したい案件のファイル名を指定する。
【００３４】
《手順Ｓ１ａ》
作業者１２１は、表計算ＡＰのウィンドウ１９１を参照しながら、キーボード１０２及びマウス１０３を通じて表計算ＡＰの実行インスタンス２１０を操作し、営業担当者１２２が指定したファイルを開いてウィンドウ１９１に表示する。
【００３５】
《手順Ｓ２ａ》
作業者１２１は、ＷｅｂブラウザＡＰのウィンドウ１９２を参照しながら、キーボード１０２及びマウス１０３を通じてＷｅｂブラウザＡＰの実行インスタンス２２０を操作し、Ｗｅｂサーバ１３０が実行する発注ＷｅｂシステムＡＰ１４２の実行インスタンスにログインし、発注入力画面のＷｅｂページのデータ１４３を開いてウィンドウ１９２に表示する。
【００３６】
《手順Ｓ３ａ》
作業者１２１は、表計算ＡＰのウィンドウ１９１を参照しながら、キーボード１０２及びマウス１０３を通じて、製品コード、すなわち、表計算ＡＰのウィンドウ１９１のセル３１３の値を、ＷｅｂブラウザＡＰのウィンドウ１９２のテキスト入力描画部品４９１に入力する（同時に、当該入力値は、ＷｅｂブラウザＡＰの実行インスタンス２２０の内部データバッファ２２１のＩＮＰＵＴ要素４１１のｖａｌｕｅ属性４１４に格納される）。
【００３７】
《手順Ｓ４ａ》
作業者１２１は、表計算ＡＰのウィンドウ１９１を参照しながら、キーボード１０２及びマウス１０３を通じて、製品名、すなわち、表計算ＡＰのウィンドウ１９１のセル３１４の値を、ＷｅｂブラウザＡＰのウィンドウ１９２のテキスト入力描画部品４９２に入力する（同時に、当該入力値は、ＷｅｂブラウザＡＰの実行インスタンス２２０の内部データバッファ２２１のＩＮＰＵＴ要素４２１のｖａｌｕｅ属性４２４に格納される）。ただし、図３Ｂの３１４のように、営業担当者１２２が当該項目の入力を省略していた場合、作業者１２１は、製品カタログを参照し、製品コード（セル３１３の値）に対応する製品名を探し出し、それをＷｅｂブラウザＡＰのウィンドウ１９２のテキスト入力描画部品４９２に入力する。
【００３８】
《手順Ｓ５ａ》
作業者１２１は、表計算ＡＰのウィンドウ１９１を参照しながら、キーボード１０２及びマウス１０３を通じて、数量、すなわち、表計算ＡＰのウィンドウ１９１のセル３１５の値を、ＷｅｂブラウザＡＰのウィンドウ１９２のテキスト入力描画部品４９３に入力する（同時に、当該入力値は、ＷｅｂブラウザＡＰの実行インスタンス２２０の内部データバッファ２２１のＩＮＰＵＴ要素４３１のｖａｌｕｅ属性４３４に格納される）。
【００３９】
《手順Ｓ６ａ》
作業者１２１は、表計算ＡＰのウィンドウ１９１を参照しながら、キーボード１０２及びマウス１０３を通じて、納期、すなわち、表計算ＡＰのウィンドウ１９１のセル３１６の値を、ＷｅｂブラウザＡＰのウィンドウ１９２のテキスト入力描画部品４９４に入力する（同時に、当該入力値は、ＷｅｂブラウザＡＰの実行インスタンス２２０の内部データバッファ２２１のＩＮＰＵＴ要素４４１のｖａｌｕｅ属性４４４に格納される）。
【００４０】
《手順Ｓ７ａ》
作業者１２１は、表計算ＡＰのウィンドウ１９１を参照しながら、キーボード１０２及びマウス１０３を通じて、金額、すなわち、表計算ＡＰのウィンドウ１９１のセル３１７の値を、ＷｅｂブラウザＡＰのウィンドウ１９２のテキスト入力描画部品４９５に入力する（同時に、当該入力値は、ＷｅｂブラウザＡＰの実行インスタンス２２０の内部データバッファ２２１のＩＮＰＵＴ要素４５１のｖａｌｕｅ属性４５４に格納される）。
【００４１】
《手順Ｓ８ａ》
作業者１２１は、表計算ＡＰのウィンドウ１９１の特記事項、すなわち、表計算ＡＰのウィンドウ１９１のセル３１８を参照し、承認者を追加するかどうかを判断する。承認者を追加する必要があると判断した場合には、作業者１２１はキーボード１０２及びマウス１０３を通じて、ＷｅｂブラウザＡＰのウィンドウ１９２のチェックボックス描画部品４９６を選択し、テキスト入力描画部品４９７に、追加する承認者の氏名を入力する（同時に、当該入力値は、ＷｅｂブラウザＡＰの実行インスタンス２２０の内部データバッファ２２１のＩＮＰＵＴ要素４８１のｖａｌｕｅ属性４８４に格納される）。ただし、セル３１８のように具体的な氏名が記載されていない場合には、作業者１２１は、例えば製造第２部の部長が国分寺花子である、と言う知識に基づいて、テキスト入力描画部品４９７に、追加する承認者の氏名、国分寺花子を入力する。
【００４２】
《手順Ｓ９ａ》
作業者１２１は、キーボード１０２及びマウス１０３を通じてＷｅｂブラウザＡＰのウィンドウ１９２のボタン描画部品４９８をクリックして、入力したデータをＷｅｂサーバ１３０に送信するよう、ＷｅｂブラウザＡＰの実行インスタンス２２０に指示する（同時に、ＷｅｂブラウザＡＰの実行インスタンス２２０は、ＷｅｂブラウザＡＰの実行インスタンス２２０の内部データバッファ２２１のＩＮＰＵＴ要素４８１に対するマウスクリックに紐付けられた動作、すなわち、ＦＯＲＭ要素４０４で定義されたデータ送信の動作を実行する）。
【００４３】
尚、この例では、チェックボックス描画部品４９６が選択されて、テキスト入力描画部品４９７が空欄のまま、ボタン描画部品４９８をクリックしてデータ送信を実行すると、Ｗｅｂサーバ１３０が実行する発注ＷｅｂシステムＡＰ１４２の実行インスタンスで障害が発生することが知られているとする。また、上記コンピュータシステムと作業の手順は、以降に説明する本発明の実施の形態の効果を訴求するために挙げた一例に過ぎず、本実施の形態は上記コンピュータシステムと作業の手順に限定されるものではない。
【００４４】
ここで、上記作業に、特許文献１〜６および非特許文献１，２の技術を適用することを検討する。まず、特許文献１〜３の技術の適用について検討する。特許文献１〜３の技術は、対象となるＡＰ、すなわち、表計算ＡＰとＷｅｂブラウザＡＰに専用の機能を造り込む必要があるが、表計算ＡＰやＷｅｂブラウザＡＰは、一般に市販のパッケージ製品であり、手を加えるのは不可能である。従って、特許文献１〜３の技術を適用することは困難である。
【００４５】
次に、特許文献４〜６および非特許文献１，２の技術の適用について検討する。手順Ｓ１ａにおいて、作業者１２１は、電話やＦＡＸなど電子化されていない情報を利用して、ＰＣ１００を操作する必要がある。すなわち、手順Ｓ１ａは知識作業であるので、手順Ｓ１ａのバッチ処理化は困難である。手順Ｓ２ａは、ログインＩＤやパスワードの入力などの手順が固定された一連の操作であるため、手順Ｓ２ａのバッチ処理化は可能である。しかし、ログインＩＤやパスワード入力が不要になることはセキュリティ上大きな問題であるため、手順Ｓ２ａのバッチ処理化は適切ではない。
【００４６】
手順Ｓ３ａ、Ｓ５ａ、Ｓ６ａ、Ｓ７ａは単にデータを表計算ＡＰからＷｅｂブラウザＡＰにコピーする、手順が固定された一連の操作である。すなわち、上記手順は単純作業であるので、上記手順のバッチ処理化は可能である。手順Ｓ４ａは、製品カタログのデータベース化により、手順が固定された一連の操作に帰着する。すなわち、手順Ｓ４ａは単純作業であるので、手順Ｓ４ａのバッチ処理化は可能である。
【００４７】
手順Ｓ８ａにおいて、作業者１２１は、表計算ＡＰのウィンドウ１９１の特記事項、すなわち、表計算ＡＰのウィンドウ１９１のセル３１８に書かれた文章を読んで、承認者を追加するかどうかを判断する。さらに、製造第２部の部長の氏名が国分寺花子である、と言う作業者１２１の知識を利用する必要がある。すなわち、手順Ｓ８ａは知識作業であるので、手順Ｓ８ａのバッチ処理化は困難である。手順Ｓ９ａは、単にボタンをクリックするだけの単純作業であるので、バッチ処理化は可能である。
【００４８】
このように特許文献４〜６および非特許文献１，２の技術により各単純作業をバッチ処理に置き換えた場合、作業者１２１は、バッチ処理と知識作業の節目毎に、作業の進捗に照らし合わせて、適切なバッチ処理を選択し、バッチ処理実行の操作を行う必要がある。従って、上記技術を導入した場合でも、作業者１２１にとっては、バッチ処理の選択・実行などの新たな作業が発生し、同時に、バッチ処理の誤選択・未実行などの新たなミスが発生する余地が生まれるという問題点がある。
【００４９】
以上の説明では、手順数が少ない作業を例として取り上げているが、現実の定型業務の現場では、作業者は、バッチ処理化の対象である単純作業と、作業者の知識や経験に基づいて行う知識作業との間を、何度も行き来しながらＰＣ作業を遂行しており、上記問題点はより深刻である。そこで、以上のような従来のコンピュータシステムと作業を例として、以下に説明する本発明の実施の形態を用いることで上記問題点の解決を図る。
【００５０】
図５は、本発明の一実施の形態によるコンピュータシステムにおいて、そのハードウェア構成の一例を示す概略図である。図５に示すコンピュータシステムは、図１で述べたＰＣ１００に、本実施の形態の主要な特徴である操作支援プログラム１１４が導入された構成例となっている。それ以外の構成要素に関しては図１と同様であるため詳細な説明は省略する。
【００５１】
図６は、図５のコンピュータシステムにおいて、そのＰＣ１００の機能の一例を示すブロック図である。図６に示すＰＣ１００の機能２００は、図２に示したＰＣ１００の機能２００に、さらに操作支援プログラム１１４を実行するための各種機能が加わったものとなっている。すなわち、操作支援プログラム１１４は、図６に示すように、共有データバッファ機能２３０、データ読み出し機能２４１、データ書き込み機能２４２、制御ルール保持機能２５０、割り込み機能２６０、制御ルール適用機能２７０、変換テーブル保持機能２８０、データ変換機能２４３、警告表示機能２４４、アプリケーション起動機能２４５、ログ機能２９０を含む。
【００５２】
共有データバッファ機能２３０は、ＰＣ１００が実行する複数ＡＰの実行インスタンス間で共有するデータを一時的に保持するための共有データバッファ２３１の記憶領域を確保する。図６では例として、共有データバッファ２３１は、Ｂｕｆ［０］２３２からＢｕｆ［４］２３６までの５つのバッファを保持している状況を示す。制御ルール保持機能２５０は、予め、ＰＣ１００が実行するＡＰの実行インスタンスを制御する条件セットと命令セットを含む制御ルールを１つまたは複数保持する。図６では例として、制御ルール保持機能２５０は、第１の制御ルール２５１、第２の制御ルール２５４、第３の制御ルール２５７を保持する状況を示しているが、勿論３つに限定されるものではない。
【００５３】
変換テーブル保持機能２８０は、所与のデータを別のデータに変換する変換テーブル２８１を予め保持する。割り込み機能２６０は、表計算ＡＰの実行インスタンス２１０の処理、またはＷｅｂブラウザＡＰの実行インスタンス２２０の処理で発生するイベントをトリガーに、当該処理に割り込んで、制御ルール適用機能２７０を動作させ、制御ルール適用機能２７０の動作が完了後、元の処理（割り込み前に実行されていた処理）を再開する。ここで、イベントとは、ＡＰの実行インスタンスの処理で、何が起きたかを示すプログラムメッセージであり、イベントの識別子や、イベントが発生する処理やタイミングは、予め、ＯＳやＡＰに実装されている。
【００５４】
本実施の形態の中では、例として、表計算ＡＰ１１２に実装されている複数のイベントのうち、識別子が“ＦＩＬＥ＿ＯＰＥＮ＿ＣＯＭＰＬＥＴＥ”であるイベントを利用する。このイベントは、実行インスタンスがファイルを開く処理を完了する直前に発生する。尚、このイベントが発生した時点で、当該ファイルのデータは、既に表計算ＡＰの実行インスタンス２１０の内部データバッファ２１１に読み込まれている。
【００５５】
また、本実施の形態の中では、例として、ＷｅｂブラウザＡＰ１１３に実装されている複数のイベントのうち、次の２つのイベントを利用する。まず、識別子が“ＵＲＬ＿ＯＰＥＮ＿ＣＯＭＰＬＥＴＥ”であるイベントは、実行インスタンスがＵＲＬを開く処理を完了する直前に発生する。尚、このイベントが発生した時点で、当該ＵＲＬのＷｅｂページのデータは、既にＷｅｂブラウザＡＰの実行インスタンス２２０の内部データバッファ２２１に読み込まれている。次に、識別子が“ＯＮ＿ＭＯＵＳＥ＿ＣＬＩＣＫ”であるイベントは、実行インスタンスがマウスクリックに関連付けられた処理を開始する直前に発生する。
【００５６】
ここで、ＡＰの実行インスタンスの処理で発生するイベントをトリガーに、当該処理に割り込んで任意のユーザ関数を実行させる技術として、例えば、ＰＣ１００のオペレーティングシステムがＷｉｎｄｏｗｓ（登録商標）の場合、メッセージフック技術、ＣＯＭ（Component Object Model）技術、ＡＰＩ（Application Program Interface）フック技術等が知られている。割り込み機能２６０はこのような技術を利用して実現するが、詳細な実装方法の説明は省略する。メッセージフック技術に関しては、例えば「ＵＲＬ：http://msdn2.microsoft.com/en-us/library/ms632589.aspx」（参考文献１）に、ＣＯＭ技術に関しては、例えば「ＵＲＬ：http://www.microsoft.com/com/default.mspx」（参考文献２）に記載されている。また、ＡＰＩフック技術に関しては、例えば「“Ａｄｖａｎｃｅｄ  Ｗｉｎｄｏｗｓ（登録商標）”、Ｊｅｆｆｒｅｙ  Ｒｉｃｈｔｅｒ著、Ｍｉｃｒｏｓｏｆｔ  Ｐｒｅｓｓ」（参考文献３）に記載されている。尚、ここでは、メッセージブック技術、ＣＯＭ技術、ＡＰＩフック技術について述べたが、本実施の形態はこれらの公知技術に限定されるものではない。
【００５７】
制御ルール適用機能２７０は、割り込み機能２６０が割り込んだイベントに関する情報（以下、イベント情報）を取得し、当該イベント情報が、制御ルール保持機能２５０の保持するいずれかの制御ルールの条件を満たすか否かを判定する。ここで、どの制御ルールの条件も満たさない場合には、直ちに割り込み機能２６０に復帰する。一方、いずれかの制御ルールの条件を満たす場合には、当該制御ルールの命令に従って、データ読み出し機能２４１、データ書き込み機能２４２、データ変換機能２４３、警告表示機能２４４、アプリケーション起動機能２４５のいずれか又はその組合せを、１回または複数回動作させた後に、割り込み機能２６０に復帰する。
【００５８】
データ読み出し機能２４１は、制御ルール適用機能２７０からの指示に従って、ＡＰの実行インスタンスの内部データバッファからデータを読み出し、当該データを共有データバッファ２３１に書き込む。例えば、データ読み出し機能２４１は、表計算ＡＰの実行インスタンス２１０の内部データバッファ２１１からデータを読み出し、当該データを共有データバッファ２３１に書き込む。
【００５９】
データ書き込み機能２４２は、制御ルール適用機能２７０からの指示に従って、共有データバッファ２３１からデータを読み出し、当該データをＡＰの実行インスタンスの内部データバッファに書き込む。例えば、データ書き込み機能２４２は、制御ルール適用機能２７０からの指示に従って、共有データバッファ２３１からデータを読み出し、ＷｅｂブラウザＡＰの実行インスタンス２２０の内部データバッファ２２１に当該データを書き込む。
【００６０】
データ変換機能２４３は、制御ルール適用機能２７０からの指示に従って、共有データバッファ２３１からデータを読み出し、当該データを変換テーブル２８１に従って変換し、当該変換されたデータを、共有データバッファ２３１に書き込む。警告表示機能２４４は、制御ルール適用機能２７０からの指示に従って、警告ウィンドウをディスプレイに表示し、割り込み機能２６０が割り込んだ処理をキャンセルする。アプリケーション起動機能２４５は、制御ルール適用機能２７０からの指示に従って、ＰＣ１００の外部記憶装置１１０に格納された各種ＡＰの実行インスタンスを新規に起動する。ログ機能２９０は、制御ルール適用機能２７０の動作に関する履歴情報をログに記録する。
【００６１】
図７Ａ、図７Ｂ、図７Ｃは、それぞれ、図６の制御ルール適用機能２７０が取得するイベント情報の第１の例５００、第２の例５１０、第３の例５２０の説明図である。イベント情報は以下に例示するように、１つまたは複数の小項目から構成され、また、イベント情報の各小項目は項目名とそれに対応する内容から構成される。ここで、項目名とは、制御ルール適用機能２７０が取得したイベントに関する各情報の名称であり、本実施の形態では、例として、以下の５つを扱う。
（１）イベントの識別子：対応する内容は、イベントを識別する文字列を表す。
（２）アプリケーション名：対応する内容は、イベントが発生した実行インスタンスのアプリケーションの名前を表す。
（３）ファイル名：対応する内容は、イベントが発生した実行インスタンスで処理中だったファイルの名前を表す。
（４）ＵＲＬ：対応する内容は、イベントが発生した実行インスタンスで処理中だったＷｅｂページのデータのＵＲＬを表す。
（５）ＨＴＭＬ要素名：対応する内容は、イベントが発生したＨＴＭＬ要素の名前を表す。
【００６２】
図７Ａに示すイベント情報５００は、表計算ＡＰの実行インスタンス２１０の処理でイベントが発生した際に、制御ルール適用機能２７０が取得した情報の例である。イベント情報５００は５０１、５０２、５０３の３つの小項目から構成され、各小項目は項目名５０４と、当該項目名に対応する内容５０５から構成される。小項目５０１は、イベントの識別子が“ＦＩＬＥ＿ＯＰＥＮ＿ＣＯＭＰＬＥＴＥ”であることを表す。小項目５０２は、アプリケーション名が“表計算ＡＰ”であることを表す。小項目５０３は、ファイル名が“発注依頼書＿日立太郎”であることを表す。すなわち、イベント情報５００は、当該イベントが、表計算ＡＰの実行インスタンスにおいて、ファイル“発注依頼書＿日立太郎”を開く処理が完了する直前に発生したことを表す。
【００６３】
図７Ｂに示すイベント情報５１０と図７Ｃに示すイベント情報５２０は、ＷｅｂブラウザＡＰの実行インスタンス２２０の処理でイベントが発生した際に、制御ルール適用機能２７０が取得した情報の例である。イベント情報５１０は５１１、５１２、５１３の３つの小項目から構成され、各小項目は項目名５１４と、当該項目名に対応する内容５１５から構成される。小項目５１１は、イベントの識別子が“ＵＲＬ＿ＯＰＥＮ＿ＣＯＭＰＬＥＴＥ”であることを表す、小項目５１２は、アプリケーション名が“ＷｅｂブラウザＡＰ”であることを表す。小項目５１３は、ＵＲＬが“http://www.hitachi.co.jp/order.html”であることを表す。すなわち、イベント情報５１０は、当該イベントが、ＷｅｂブラウザＡＰの実行インスタンスにおいて、ＵＲＬ“http://www.hitachi.co.jp/order.html”を開く処理が完了する直前に発生したことを表す。
【００６４】
イベント情報５２０は５２１、５２２、５２３、５２４の４つの小項目から構成され、各小項目は項目名５２５と、当該項目名に対応する内容５２６から構成される。小項目５２１は、イベントの識別子が“ＯＮ＿ＭＯＵＳＥ＿ＣＬＩＣＫ”であることを表す。小項目５２２は、アプリケーション名が“ＷｅｂブラウザＡＰ”であることを表す。小項目５２３は、ＵＲＬが“http://www.hitachi.co.jp/order.html”であることを表す。小項目５２４は、ＨＴＭＬ要素名が“ｏｒｄｅｒ”であることを表す。すなわち、イベント情報５２０は、当該イベントが、ＷｅｂブラウザＡＰの実行インスタンスにおいて、ＵＲＬ“http://www.hitachi.co.jp/order.html”のＨＴＭＬ要素“ｏｒｄｅｒ”へのマウスクリックに関連付けされた処理が開始される直前に発生したことを表す。
【００６５】
尚、本実施の形態では、上記３つのイベントを例として扱うが、本実施の形態は、勿論これに限定されるものではない。一般にＯＳや各ＡＰには、数十から数百種類のイベントが実装されており、本実施の形態の操作支援プログラム１１４は、以降の説明からも明らかとなるが、それらすべてのイベントに対応することができる。なお、イベントの種類や発生条件については、例えば、前述した参考文献１〜３などに記載されている。
【００６６】
図９は、図６の変換テーブル２８１の一例を示す説明図である。変換テーブル２８１は、複数のレコード（行）から構成され、各レコードはキー（変換前のデータ）７０１と、それに対応する値（変換後のデータ）７０２から構成され、キー７０１と値７０２は、それぞれ、製品コードとそれに対応する製品名を表す。
【００６７】
図８Ａ、図８Ｂ、図８Ｃは、それぞれ、図６の第１の制御ルール２５１、第２の制御ルール２５４、第３の制御ルール２５７の一例を示す説明図である。制御ルールは条件セットと命令セットから構成される。条件セットは１つまたは複数の小条件から構成され、各小条件は項目名とそれに対応する内容から構成される。ここで、条件セットの項目名の定義は、図７Ａ〜図７Ｃで述べたイベント情報の項目名の定義と同じである。命令セットは１つまたは複数の小命令から構成され、各小命令は命令名と小命令に対する２つの引数から構成される。ここで、命令名とは、制御ルール適用機能２７０に対する命令の名称であり、本実施の形態では、例として、以下の５つを扱う。
【００６８】
（１）ＲＥＡＤ：この命令により、制御ルール適用機能２７０は、データ読み出し機能２４１を動作させ、割り込み機能２６０が割り込んだ実行インスタンスの内部データバッファからデータを読み出し、当該読み出したデータを共有データバッファ２３１に書き出す。ここで、ＲＥＡＤの第１引数は、データの読み出し元を表し、割り込み機能２６０が割り込んだ実行インスタンスの内部データバッファにおける、特定のバッファを表す。また第２引数は、当該読み込んだデータの書き込み先を表し、共有データバッファ２３１における、特定のバッファを表す。
【００６９】
（２）ＷＲＩＴＥ：この命令により、制御ルール適用機能２７０は、データ書き込み機能２４２を動作させ、共有データバッファ２３１からデータを読み出し、当該読み出したデータを、割り込み機能２６０が割り込んだ実行インスタンスの内部データバッファに書き込む。ここで、ＷＲＩＴＥの第１引数は、データの読み出し元を表し、共有データバッファにおける特定のバッファを表す。また第２引数は、当該読み込んだデータの書き込み先を表し、割り込み機能２６０が割り込んだ実行インスタンスの内部データバッファにおける、特定のバッファを表す。
【００７０】
（３）ＴＲＡＮＳＬＡＴＥ：この命令により、制御ルール適用機能２７０は、データ変換機能２４３を動作させ、共有データバッファ２３１からデータを読み出し、当該読み出したデータを変換テーブル２８１に従って変換し、当該変換されたデータを、共有データバッファ２３１に書き込む。ここで、ＴＲＡＮＳＬＡＴＥの第１引数は、データの読み出し元を表し、共有データバッファ２３１の特定のバッファを表す。また第２引数は、データの書き込み先を表し、共有データバッファ２３１の特定のバッファを表す。
【００７１】
（４）ＡＬＥＲＴ：この命令により、制御ルール適用機能２７０は、第１引数の論理式を評価し、評価結果が真であった場合のみ、警告表示機能２４４を動作させ、割り込み機能２６０が割り込んだ実行インスタンスの処理をキャンセルし、後述する警告ウィンドウ１９４をディスプレイに表示する。ここでＡＬＥＲＴの第１引数は、制御ルール適用機能２７０が警告表示機能２４４を動作させるか否かを判断するための論理式である。第２引数は、警告ウィンドウ１９４に表示される文字列を表す。
【００７２】
また、ＲＥＡＤ、ＷＲＩＴＥ、ＴＲＡＮＳＬＡＴＥの引数として利用される、読み出し先のバッファ、または書き込み先のバッファを指定する方法として、本実施の形態では、以下の４つを扱う。
【００７３】
（１）ＳＨＥＥＴ（ｎａｍｅ＝Ｘ）．ＣＥＬＬ（ｒｏｗ＝Ｒ，ｃｏｌｕｍｎ＝Ｃ）．ｖａｌｕｅ：この指定方法は、表計算ＡＰの実行インスタンスが内部データバッファに格納しているファイルのデータにおける、シート名がＸであるシートの、第Ｒ行、第Ｃ列のセルのｖａｌｕｅ属性を格納するバッファを表す。
【００７４】
（２）ＩＮＰＵＴ（ｎａｍｅ＝Ｘ）．ｖａｌｕｅ：この指定方法は、ＷｅｂブラウザＡＰの実行インスタンスが内部データバッファに格納しているＷｅｂページのデータにおける、名前がＸであるＩＮＰＵＴ要素のｖａｌｕｅ属性を格納するバッファを表す。
【００７５】
（３）ＩＮＰＵＴ（ｎａｍｅ＝Ｘ）．ｃｈｅｃｋｅｄ：この指定方法は、ＷｅｂブラウザＡＰの実行インスタンスが内部データバッファに格納しているＷｅｂページのデータにおける、名前がＸであるＩＮＰＵＴ要素のｃｈｅｃｋｅｄ属性を格納するバッファを表す。
【００７６】
（４）Ｂｕｆ［Ｘ］：この指定方法は、共有データバッファ２３１内の第Ｘ番のバッファを表す。
【００７７】
制御ルール適用機能２７０が取得したイベント情報が、条件セットの全ての小条件を満たす場合、制御ルール適用機能２７０は、命令セットの全ての小命令を順に実行する。
【００７８】
図８Ａに示す第１の制御ルール２５１は、条件セット２５２と命令セット２５３から構成される。条件セット２５２は６０１、６０２、６０３の３つの小条件から構成され、各小条件は項目名６０４と当該項目名に対応する内容６０５から構成される。小条件６０１は、制御ルール適用機能２７０が取得したイベント情報について、イベントの識別子が“ＦＩＬＥ＿ＯＰＥＮ＿ＣＯＭＰＬＥＴＥ”に一致することを要請する。小条件６０２は、アプリケーション名が“表計算ＡＰ”に一致することを要請する。小条件６０３は、ファイル名が“発注依頼書＊”に一致することを要請する。ここで記号＊は、０文字以上の任意の文字列を表すメタキャラクタであり、例えば、“発注依頼書＿日立太郎”は“発注依頼書＊”に一致すると判定される。
【００７９】
命令セット２５３は、６１１、６１２、６１３、６１４、６１５の５つの小命令から構成され、各小命令は命令名６１６と、当該小命令に対する６１７、６１８の２つの引数から構成される。制御ルール適用機能２７０が取得したイベント情報が、条件セット２５２の６０１、６０２、６０３の３つの小条件を全て満たす場合、制御ルール適用機能２７０は、命令セット２５３の６１１、６１２、６１３、６１４、６１５の５つの小命令を順に実行する。
【００８０】
小命令６１１により、制御ルール適用機能２７０は、表計算ＡＰの実行インスタンスが内部データバッファに格納しているファイルのデータにおける、シート“発注内容”の第３行第２列のセルのｖａｌｕｅ属性を格納しているバッファからデータを読み出し、当該データを共有データバッファ２３１内の第０番のバッファ２３２に書き込む。小命令６１２により、制御ルール適用機能２７０は、共有データバッファ２３１内の第０番のバッファ２３２からデータを読み出し、当該読み出したデータを、変換テーブル２８１に従って変換し、当該変換されたデータを、共有データバッファ２３１内の第１番のバッファ２３３に書き込む。
【００８１】
小命令６１３により、制御ルール適用機能２７０は、表計算ＡＰの実行インスタンスが内部データバッファに格納しているファイルのデータにおける、シート“発注内容”の第５行第２列のセルのｖａｌｕｅ属性を格納しているバッファからデータを読み出し、当該データを共有データバッファ２３１内の２番目のバッファ２３４に書き込む。小命令６１４により、制御ルール適用機能２７０は、表計算ＡＰの実行インスタンスが内部データバッファに格納しているファイルのデータにおける、シート“発注内容”の第６行第２列のセルのｖａｌｕｅ属性を格納しているバッファからデータを読み出し、当該データを共有データバッファ２３１内の３番目のバッファ２３５に書き込む。小命令６１５により、制御ルール適用機能２７０は、表計算ＡＰが内部データバッファに格納しているファイルのデータにおける、シート“発注内容”の第７行第２列のセルのｖａｌｕｅ属性を格納しているバッファからデータを読み出し、当該データを共有データバッファ２３１内の４番目のバッファ２３６に書き込む。
【００８２】
図８Ｂに示す第２の制御ルール２５４は、条件セット２５５と命令セット２５６から構成される。条件セット２５５は６２１、６２２、６２３の３つの小条件から構成され、各小条件は項目名６２４と当該項目名に対応する内容６２５から構成される。小条件６２１は、制御ルール適用機能２７０が取得したイベント情報について、イベントの識別子が“ＵＲＬ＿ＯＰＥＮ＿ＣＯＭＰＬＥＴＥ”に一致することを要請する。小条件６２２は、アプリケーション名が“ＷｅｂブラウザＡＰ”に一致することを要請する。小条件６２３は、ＵＲＬが“http://www.hitachi.co.jp/order.html”に一致することを要請する。
【００８３】
命令セット２５６は、６３１、６３２、６３３、６３４、６３５の５つの小命令からなり、各小命令は命令名６３６と、当該小命令に対する６３７、６３８の２つの引数からなる。制御ルール適用機能２７０が取得したイベント情報が、条件セット２５５の６２１、６２２、６２３の３つの小条件を全て満たす場合には、制御ルール適用機能２７０は、命令セット２５６の６３１、６３２、６３３、６３４、６３５の５つの小命令を順に実行する。
【００８４】
小命令６３１により、制御ルール適用機能２７０は、共有データバッファ２３１内の第０番のバッファ２３２からデータを読み出し、ＷｅｂブラウザＡＰの実行インスタンスの内部データバッファに格納するＷｅｂページのデータにおける、名前が“ｐｒｏｄｕｃｔ＿ｃｏｄｅ”のＩＮＰＵＴ要素のｖａｌｕｅ属性のバッファに、当該読み出したデータを書き込む。小命令６３２により、制御ルール適用機能２７０は、共有データバッファ２３１内の第１番のバッファ２３３からデータを読み出し、ＷｅｂブラウザＡＰの実行インスタンスの内部データバッファに格納するＷｅｂページのデータにおける、名前が“ｐｒｏｄｕｃｔ＿ｎａｍｅ”のＩＮＰＵＴ要素のｖａｌｕｅ属性のバッファに、当該読み出したデータを書き込む。
【００８５】
小命令６３３により、制御ルール適用機能２７０は、共有データバッファ２３１内の第２番のバッファ２３４からデータを読み出し、ＷｅｂブラウザＡＰの実行インスタンスの内部データバッファに格納するＷｅｂページのデータにおける、名前が“ｑｕａｎｔｉｔｙ”のＩＮＰＵＴ要素のｖａｌｕｅ属性のバッファに、当該読み出したデータを書き込む。小命令６３４により、制御ルール適用機能２７０は、共有データバッファ２３１内の第３番のバッファ２３５からデータを読み出し、ＷｅｂブラウザＡＰの実行インスタンスの内部データバッファに格納するＷｅｂページのデータにおける、名前が“ｄｅｌｉｖｅｒｙ＿ｄａｔｅ”のＩＮＰＵＴ要素のｖａｌｕｅ属性のバッファに、当該読み出したデータを書き込む。小命令６３５により、制御ルール適用機能２７０は、共有データバッファ２３１内の第４番のバッファ２３６からデータを読み出し、ＷｅｂブラウザＡＰの実行インスタンスの内部データバッファに格納するＷｅｂページのデータにおける、名前が“ｐｒｉｃｅ”のＩＮＰＵＴ要素のｖａｌｕｅ属性のバッファに、当該読み出したデータを書き込む。
【００８６】
図８Ｃに示す第３の制御ルール２５７は、条件セット２５８と命令セット２５９から構成される。条件セット２５８は６４１、６４２、６４３、６４４の４つの小条件から構成され、各小条件は項目名６４５と当該項目名に対応する内容６４６から構成される。小条件６４１は、制御ルール適用機能２７０が取得したイベント情報について、イベントの識別子が“ＯＮ＿ＭＯＵＳＥ＿ＣＬＩＣＫ”に一致することを要請する。小条件６４２は、アプリケーション名が“ＷｅｂブラウザＡＰ”に一致することを要請する。小条件６４３は、ＵＲＬが“http://www.hitachi.co.jp/order.html”に一致することを要請する。小条件６４４は、ＨＴＭＬ要素名が“ｏｒｄｅｒ”に一致することを要請する。
【００８７】
命令セット２５９は、６５１、６５２、６５３の３つの小命令から構成され、各小命令は命令名６５６と、当該小命令に対する６５７、６５８の２つの引数からなる。制御ルール適用機能２７０が取得したイベント情報が、条件セット２５８の６４１、６４２、６４３、６４４の４つの小条件を全て満たす場合には、制御ルール適用機能２７０は、命令セット２５９の６５１、６５２、６５３の３つの小命令を順に実行する。
【００８８】
小命令６５１により、制御ルール適用機能２７０は、ＷｅｂブラウザＡＰの実行インスタンスが内部データバッファに格納しているＷｅｂページのデータにおける、名前が“ａｄｄ＿ａｃｋｎｏｗｌｅｄｇｅｒ”のＩＮＰＵＴ要素のｖａｌｕｅ属性のバッファからデータを読み出し、当該データを共有データバッファ２３１内の第０番のバッファ２３２に書き込む。小命令６５２により、制御ルール適用機能２７０は、ＷｅｂブラウザＡＰの実行インスタンスが内部データバッファに格納しているＷｅｂページのデータにおける、名前が“ａｃｋｎｏｗｌｅｄｇｅｒ”のＩＮＰＵＴ要素のｖａｌｕｅ属性のバッファからデータを読み出し、当該データを共有データバッファ２３１内の第１番のバッファ２３３に書き込む。
【００８９】
小命令６５３により、制御ルール適用機能２７０は、第１引数６５７の論理式（Ｂｕｆ［０］＝＝“ｔｒｕｅ”）ＡＮＤ（Ｂｕｆ［１］＝＝ＮＵＬＬ）、すなわち、「共有データバッファ２３１の第０番バッファに格納された値が“ｔｒｕｅ”であり、かつ共有データバッファ２３１の第１番バッファに格納された値がＮＵＬＬである」の真偽を評価する。ここで、評価結果が真の場合、警告表示機能２４４を動作させ、割り込み機能２６０が割り込んだ処理をキャンセルし、“追加する承認者の氏名が未記入です”と記した警告ウィンドウ１９４をディスプレイに表示する。
【００９０】
図１０は、図６の制御ルール適用機能２７０の処理の一例を表すフローチャートである。尚、図１０において、制御ルール保持機能２５０が保持する制御ルールの数をＮ、第Ｉ番目の制御ルールにおける条件セットの小条件数をＭ［Ｉ］、命令セットの小命令数をＬ［Ｉ］と記す。また、第Ｉ番目の制御ルールの条件セットにおける、第Ｊ番目の小条件をＣｎｄ［Ｉ，Ｊ］、第Ｋ番目の小命令をＣｏｍ［Ｉ，Ｋ］と記す。
【００９１】
処理８１０は、割り込み機能２６０が割り込んだイベントに関する情報を取得する。処理８２０は、処理８１０で取得したイベント情報が、第１番目の制御ルールから第Ｎ番目の制御ルールのいずれかの条件セットを満たすかどうかを判定する。処理８２０内において、処理８２１は、変数Ｉを０で初期化する。処理８２２は、変数Ｉに１を加算する。処理８２３は、変数ＩがＮ＋１未満かどうか、すなわち、第Ｉ番目の制御ルールが存在するかどうかを判定する。処理８３０は、当該イベント情報が、第Ｉ番目の制御ルールの条件セットの全小条件を満たすかどうかを判定する。
【００９２】
処理８３０内において、処理８３１は、変数Ｊを０で初期化する。処理８３２は、変数Ｊに１を加算する。処理８３３は、当該イベント情報が、Ｃｎｄ［Ｉ，Ｊ］を満たすかどうかを判定する。処理８３４は、変数ＪがＭ［Ｉ］と等しいかどうか、すなわち、第Ｉ番目の制御ルールにおいて、第Ｊ番目の小条件が最後の小条件かどうかを判定する。この判定結果を満たした場合、第Ｉ番目の制御ルール内に含まれる全ての条件セットを満たしたことになり、処理８４０へ移行する。一方、この判定結果を満たさない場合は、処理８３３を介して次の制御ルール内に含まれる条件セットの判定に移行する。
【００９３】
処理８４０は、第Ｉ番目の制御ルールの命令セットの全小命令を順に実行する。処理８４０において、処理８４１は、変数Ｋを０で初期化する。処理８４２は、変数Ｋに１を加算する。処理８４３は、小命令Ｃｏｍ［Ｉ，Ｋ］を実行する。処理８４４は、変数ＫがＬ［Ｉ］に等しいかどうか、すなわち、第Ｉ番目の制御ルールにおいて、第Ｋ番目の小命令が最後の小命令かどうかを判定する。
【００９４】
図１５は、図６のログ機能２９０が記録したログ２９１の一例を示す説明図である。ログ２９１の各レコードは、７１０から７１８までのカラムを含む。カラム７１０は、制御ルール適用機能２７０がイベント情報を取得した時刻、または制御ルール適用機能２７０が命令を実行した時刻を表す。カラム７１１は、制御ルール適用機能２７０が取得したイベント情報のイベント識別子を表す。カラム７１２は、制御ルール適用機能２７０が取得したイベント情報のアプリケーション名を表す。カラム７１３は、制御ルール適用機能２７０が取得したイベント情報のファイル名、またはＵＲＬを表す。
【００９５】
カラム７１４は、制御ルール適用機能２７０が取得したイベント情報のＨＴＭＬ要素名を表す。カラム７１５は、制御ルール適用機能２７０が実行した命令について、当該命令が属する制御ルールの番号を表す。カラム７１６は、制御ルール適用機能２７０が実行した命令について、当該命令の名前を表す。カラム７１７は、制御ルール適用機能２７０が実行した命令について、カラム７１６の命令名がＲＥＡＤの場合には読み出した値を、命令名がＷＲＩＴＥの場合には書き込んだ値を、命令名がＴＲＡＮＳＬＡＴＥの場合には変換前の値を、命令名がＡＬＥＲＴの場合には警告画面に表示する文字列を表す。カラム７１８は、制御ルール適用機能２７０が実行した命令について、カラム７１６の命令名がＲＥＡＤの場合にはデータの読み出し元を、命令名がＷＲＩＴＥの場合にはデータの書き込み先を、命令名がＴＲＡＮＳＬＡＴＥの場合には変換後の値を表す。
【００９６】
このように、ログ機能２９０は、制御ルール適用機能２７０が取得したイベント情報と、制御ルールに従って命令を実行した場合には、その処理内容に関する情報を、時系列データとしてログに記録する。これにより、作業者１２１の操作によってＰＣ１００で動作する各ＡＰがどのように動作し、操作支援プログラム１１４がどのようなタイミングでどのように支援を実施したかを記録する事ができる。
【００９７】
次に、前述した図１のコンピュータシステムを用いた場合の作業者１２１の作業内容（《手順Ｓ１ａ》〜《手順Ｓ９ａ》）と対応させて、本実施の形態となる操作支援プログラム１１４を備えた図５のコンピュータシステムを用いた場合の作業者１２１の作業内容の一例について以下に説明する。
【００９８】
《手順Ｓ１ｂ》
作業者１２１がＰＣ１００を用いて手順Ｓ１ａの操作を行うと、表計算ＡＰの実行インスタンス２１０ではファイルを開く処理が実行され、その過程で各種のイベントが発生する。実行インスタンス２１０の処理でイベントが発生する度に、割り込み機能２６０は、当該処理に割り込んで、制御ルール適用機能２７０を動作させ、制御ルール適用機能２７０の動作が完了後、元の処理（割り込み前に実行されていた処理）を再開する。制御ルール適用機能２７０は、当該処理からイベント情報を取得し、当該イベント情報が、制御ルール２５１，２５４，２５７のいずれかに適合しない限り、直ちに割り込み機能２６０に復帰する。
【００９９】
表計算ＡＰの実行インスタンス２１０において、ファイルを開く処理が完了する直前にイベントが発生すると、割り込み機能２６０は、当該処理に割り込んで、制御ルール適用機能２７０を動作させ、制御ルール適用機能２７０は、当該処理からイベント情報を取得する。この時に取得したイベント情報は、前述した図７Ａのイベント情報５００と同じである。尚、先に述べたように、当該イベントが発生した時点で、表計算ＡＰの実行インスタンス２１０の内部データバッファ２１１は、ファイル“発注依頼書＿日立太郎”のデータを格納している。この時点での、表計算ＡＰの実行インスタンス２１０の内部データバッファ２１１の状態は、前述した図３Ａと同じである。また、表計算ＡＰの実行インスタンス２１０が表示するウィンドウ１９１は、前述した図３Ｂと同じである。
【０１００】
制御ルール適用機能２７０は、イベント情報５００が、第１の制御ルール２５１の条件セット２５２の全小条件を満たすか否かを判断する。イベント情報５００の小項目５０１は条件セット２５２の小条件６０１を満たし、かつ、イベント情報５００の小項目５０２は条件セット２５２の小条件６０２を満たし、かつ、イベント情報５００の小項目５０３は条件セット２５２の小条件６０３を満たす。よって、イベント情報５００は、制御ルール２５１の条件セット２５２の全小条件を満たすので、制御ルール適用機能２７０は、制御ルール２５１の命令セット２５３の全小命令を順に実行する。
【０１０１】
命令セット２５３の小命令６１１により、制御ルール適用機能２７０は、表計算ＡＰの実行インスタンスが内部データバッファ２１１に格納しているファイルのデータにおける、シート“発注内容”の第３行第２列のセルのｖａｌｕｅ属性を格納しているバッファからデータ“ＡＷ３７Ｗ５Ｕ”を読み出し、当該データを共有データバッファ２３１内の第０番のバッファ２３２に書き込む。命令セット２５３の小命令６１２により、制御ルール適用機能２７０は、共有データバッファ２３１内の第０番のバッファ２３２からデータ“ＡＷ３７Ｗ５Ｕ”を読み出し、当該読み出したデータを、変換テーブル２８１に従って変換し、当該変換されたデータ“Ｐｒｉｕｓ  Ｔｙｐｅ  Ｗ”を、共有データバッファ２３１内の第１番のバッファ２３３に書き込む。
【０１０２】
命令セット２５３の小命令６１３により、制御ルール適用機能２７０は、表計算ＡＰの実行インスタンスが内部データバッファ２１１に格納しているファイルのデータにおける、シート“発注内容”の第５行第２列のセルのｖａｌｕｅ属性を格納しているバッファからデータ“１台”を読み出し、当該データを共有データバッファ２３１内の２番目のバッファ２３４に書き込む。命令セット２５３の小命令６１４により、制御ルール適用機能２７０は、表計算ＡＰの実行インスタンスが内部データバッファ２１１に格納しているファイルのデータにおける、シート“発注内容”の第６行第２列のセルのｖａｌｕｅ属性を格納しているバッファからデータ“２００７／０２／１４”を読み出し、当該データを共有データバッファ２３１内の３番目のバッファ２３５に書き込む。
【０１０３】
命令セット２５３の小命令６１５により、制御ルール適用機能２７０は、表計算ＡＰが内部データバッファ２１１に格納しているファイルのデータにおける、シート“発注内容”の第７行第２列のセルのｖａｌｕｅ属性を格納しているバッファからデータ“￥３２０，０００円”を読み出し、当該データを共有データバッファ２３１内の４番目のバッファ２３６に書き込み、制御ルール適用機能２７０は、割り込み機能２６０に復帰する。制御ルール適用機能２７０の動作が完了後、割り込み機能２６０は元の処理（割り込み前に行われていた処理）を再開し、表計算ＡＰの実行インスタンス２１０のファイルを開く処理が完了する。
【０１０４】
図１１は、表計算ＡＰの実行インスタンス２１０によるファイルを開く処理が完了した時点での、共有データバッファ２３１の説明図である。この時点で、表計算ＡＰの内部データバッファ２１１が格納するファイル“発注依頼書＿日立太郎”のデータの一部が、共有データバッファ２３１にコピーされている。すなわち、共有データバッファ２３１において、第０番のバッファ２３２はデータ“ＡＷ３７Ｗ５Ｕ”を格納し、第１番のバッファ２３３はデータ“Ｐｒｉｕｓ  Ｔｙｐｅ  Ｗ”を格納し、第２番のバッファ２３４はデータ“１台”を格納し、第３番のバッファ２３５はデータ“２００７／０２／１４”を格納し、第４番のバッファ２３６はデータ“￥３２０，０００円”を格納している。
【０１０５】
尚、操作支援プログラム１１４によるＰＣ１００の上記動作は一瞬であるため、作業者１２１には、従来通り、手順Ｓ１ａを行ったようにしか感じられない。
【０１０６】
《手順Ｓ２ｂ》
続いて、作業者１２１が手順Ｓ２ａの操作を行うと、ＷｅｂブラウザＡＰの実行インスタンス２２０ではＷｅｂページを開く処理が実行され、その過程で各種のイベントが発生する。実行インスタンス２２０の処理でイベントが発生する度に、割り込み機能２６０は、当該処理に割り込んで、制御ルール適用機能２７０を動作させ、制御ルール適用機能２７０の動作が完了後、元の処理（割り込み前に実行されていた処理）を再開する。制御ルール適用機能２７０は、当該処理からイベント情報を取得し、当該イベント情報が、制御ルール２５１，２５４，２５７のいずれかに適合しない限り、直ちに割り込み機能２６０に復帰する。
【０１０７】
ＷｅｂブラウザＡＰの実行インスタンス２２０において、Ｗｅｂページを開く処理が完了する直前にイベントが発生すると、割り込み機能２６０は、当該処理に割り込んで、制御ルール適用機能２７０を動作させ、制御ルール適用機能２７０は、当該処理からイベント情報を取得する。この時に取得したイベント情報は、前述した図７Ｂのイベント情報５１０と同じである。尚、先に述べたように、当該イベントが発生した時点で、ＷｅｂブラウザＡＰの実行インスタンス２２０の内部データバッファ２２１は、ＵＲＬ“http://www.hitachi.co.jp/order.html”のＷｅｂページのデータ１４３を格納している。この時点での、ＷｅｂブラウザＡＰの実行インスタンス２２０の内部データバッファ２２１の状態は図４Ａと同じである。また、ＷｅｂブラウザＡＰの実行インスタンス２２０が表示するウィンドウ１９２は、前述した図４Ｂと同じである。
【０１０８】
制御ルール適用機能２７０は、イベント情報５１０が、第１の制御ルール２５１の条件セット２５２の全小条件を満たすか否かを判断する。イベント情報５１０の小項目５１１は条件セット２５２の小条件６０１を満たさないので、制御ルール適用機能２７０は、イベント情報５１０が、第２の制御ルール２５４の条件セット２５５の全小条件を満たすか否かを判断する。イベント情報５１０の小項目５１１は条件セット２５５の小条件６２１を満たし、かつ、イベント情報５１０の小項目５１２は条件セット２５５の小条件６２２を満たし、かつ、イベント情報５１０の小項目５１３は条件セット２５５の小条件６２３を満たす。よって、イベント情報５１０は、第２の制御ルール２５４の条件セット２５５の全小条件を満たすので、制御ルール適用機能２７０は、第２の制御ルール２５４の命令セット２５６の全小命令を順に実行する。
【０１０９】
命令セット２５６の小命令６３１により、制御ルール適用機能２７０は、共有データバッファ２３１内の第０番のバッファ２３２からデータ“ＡＷ３７Ｗ５Ｕ”を読み出し、当該データを、ＷｅｂブラウザＡＰの実行インスタンスが内部データバッファ２２１に格納しているＷｅｂページのデータにおける、名前が“ｐｒｏｄｕｃｔ＿ｃｏｄｅ”のＩＮＰＵＴ要素のｖａｌｕｅ属性のバッファ４１４に書き込む。命令セット２５６の小命令６３２により、制御ルール適用機能２７０は、共有データバッファ２３１内の第１番のバッファ２３３からデータ“Ｐｒｉｕｓ  Ｔｙｐｅ  Ｗ”を読み出し、当該データを、ＷｅｂブラウザＡＰの実行インスタンスが内部データバッファ２２１に格納しているＷｅｂページのデータにおける、名前が“ｐｒｏｄｕｃｔ＿ｎａｍｅ”のＩＮＰＵＴ要素のｖａｌｕｅ属性のバッファ４２４に書き込む。
【０１１０】
命令セット２５６の小命令６３３により、制御ルール適用機能２７０は、共有データバッファ２３１内の第２番のバッファ２３４からデータ“１台”を読み出し、当該データを、ＷｅｂブラウザＡＰの実行インスタンスが内部データバッファ２２１に格納しているＷｅｂページのデータにおける、名前が“ｑｕａｎｔｉｔｙ”のＩＮＰＵＴ要素のｖａｌｕｅ属性のバッファ４３４に書き込む。命令セット２５６の小命令６３４により、制御ルール適用機能２７０は、共有データバッファ２３１内の第３番のバッファ２３５からデータ“２００７／０２／１４”を読み出し、当該データを、ＷｅｂブラウザＡＰの実行インスタンスが内部データバッファ２２１に格納しているＷｅｂページのデータにおける、名前が“ｄｅｌｉｖｅｒｙ＿ｄａｔｅ”のＩＮＰＵＴ要素のｖａｌｕｅ属性のバッファ４４４に書き込む。
【０１１１】
命令セット２５６の小命令６３５により、制御ルール適用機能２７０は、共有データバッファ２３１内の第４番のバッファ２３６からデータ“￥３２０，０００円”を読み出し、当該データを、ＷｅｂブラウザＡＰの実行インスタンスが内部データバッファ２２１に格納しているＷｅｂページのデータにおける、名前が“ｐｒｉｃｅ”のＩＮＰＵＴ要素のｖａｌｕｅ属性のバッファ４５４に書き込み、その後、割り込み機能２６０に復帰する。制御ルール適用機能２７０の動作が完了後、割り込み機能２６０は元の処理（割り込み前に行われていた処理）を再開し、ＷｅｂブラウザＡＰの実行インスタンス２２０のＵＲＬを開く処理が完了する。
【０１１２】
図１２Ａは、ＷｅｂブラウザＡＰの実行インスタンス２２０によるＵＲＬを開く処理が完了した時点での、ＷｅｂブラウザＡＰの実行インスタンス２２０の内部データバッファ２２１の説明図である。この時点で、共有データバッファ２３１が格納するデータが、ＷｅｂブラウザＡＰの内部データバッファ２２１にコピーされている。すなわち、ＷｅｂブラウザＡＰの実行インスタンス２２０の内部データバッファ２２１において、ＩＮＰＵＴ要素４１１のｖａｌｕｅ属性のバッファ４１４はデータ“ＡＷ３７Ｗ５Ｕ”を格納し、ＩＮＰＵＴ要素４２１のｖａｌｕｅ属性のバッファ４２４はデータ“Ｐｒｉｕｓ  Ｔｙｐｅ  Ｗ”を格納し、ＩＮＰＵＴ要素４３１のｖａｌｕｅ属性のバッファ４３４はデータ“１台”を格納し、ＩＮＰＵＴ要素４４１のｖａｌｕｅ属性のバッファ４４４はデータ“２００７／０２／１４”を格納し、ＩＮＰＵＴ要素４５１のｖａｌｕｅ属性のバッファ４５４はデータ“￥３２０，０００円”を格納している。
【０１１３】
図１２Ｂは、ＷｅｂブラウザＡＰの実行インスタンス２２０によるＵＲＬを開く処理が完了した時点での、ＷｅｂブラウザＡＰの実行インスタンス２２０が表示するウィンドウ１９２の説明図である。この時点で、ウィンドウ１９２は、ＷｅｂブラウザＡＰの内部データバッファ２２１のデータに基づいて描画されている。すなわち、ウィンドウ１９２において、テキスト入力描画部品４９１には、データ“ＡＷ３７Ｗ５Ｕ”が描画され、テキスト入力描画部品４９２には、データ“Ｐｒｉｕｓ  Ｔｙｐｅ  Ｗ”が描画され、テキスト入力描画部品４９３には、データ“１台”が描画され、テキスト入力描画部品４９４には、データ“２００７／０２／１４”が描画され、テキスト入力描画部品４９５には、データ“￥３２０，０００円”が描画されている。
【０１１４】
尚、操作支援プログラム１１４によるＰＣ１００の上記動作は一瞬であるため、作業者１２１には、従来通り、作業手順Ｓ２ａを行ったようにしか感じられないが、この時点で、既に従来の作業手順Ｓ３ａから手順Ｓ７ａまでが完了している。このように、本実施の形態による操作支援プログラム１１４を導入したＰＣ１００は、表計算ＡＰの実行インスタンス２１０とＷｅｂブラウザＡＰの実行インスタンス２２０で発生するイベントをトリガーに従来の作業手順Ｓ３ａから手順Ｓ７ａまでの作業を自動実行することにより、作業者１２１の操作を支援することができる。
【０１１５】
《手順Ｓ３ｂから手順Ｓ７ｂ》
この時点で、既に手順Ｓ３ａから手順Ｓ７ａは完了しているため、作業者１２１は、直ちに手順Ｓ８ａの操作を開始することができ、結果として業務効率が著しく向上する。
【０１１６】
《手順Ｓ８ｂ》
先に述べたように、手順Ｓ８ａは知識作業であるため、作業者１２１は自身の知識等に基づいて手順Ｓ８ａの操作を行う。ここで、作業者１２１は、チェックボックス描画部品４９６にチェックを入れ、誤ってテキスト入力描画部品４９７に承認者の氏名を入力し忘れた状態で作業を完了したものとする。
【０１１７】
図１３Ａは、作業者１２１が、手順Ｓ８ｂの操作を完了した時点での、ＷｅｂブラウザＡＰの実行インスタンス２２０の内部データバッファ２２１の説明図である。図１２Ａとの違いは、ＩＮＰＵＴ要素４６１のｃｈｅｃｋｅｄ属性４６４が“ｆａｌｓｅ”から“ｔｒｕｅ”になっている点である。ＩＮＰＵＴ要素４７１のｖａｌｕｅ属性４７４がＮＵＬＬであること、すなわち、氏名が未記入であることに留意されたい。図１３Ｂは、作業者１２１が、手順Ｓ８ｂの操作を完了した時点での、ＷｅｂブラウザＡＰの実行インスタンス２２０が表示するウィンドウ１９２の説明図である。図１２Ｂとの違いは、チェックボックス描画部品４９６にチェックが入っている点である。テキスト入力描画部品４９７が空欄であること、すなわち、氏名が未記入であることに留意されたい。
【０１１８】
すなわち、この状態で、作業者１２１が手順Ｓ９ａを実行すると、従来のコンピュータシステムならば、Ｗｅｂサーバ１３０が実行する発注ＷｅｂシステムＡＰ１４２の実行インスタンスで障害が発生し、復旧が完了まで業務が停止するため、業務効率は大幅にさがってしまう。しかし、本実施の形態による操作支援プログラムを導入したＰＣ１００は、以下のように動作し、作業者１２１のミスを検知し、障害を未然に防ぐことができる。
【０１１９】
《手順Ｓ９ｂ》
作業者１２１が手順９ａの操作を行うと、ＷｅｂブラウザＡＰの実行インスタンス２２０では、マウスクリックの処理が実行され、その過程で各種のイベントが発生する。実行インスタンス２２０の処理でイベントが発生する度に、割り込み機能２６０は、当該処理に割り込んで、制御ルール適用機能２７０を動作させ、制御ルール適用機能２７０の動作が完了後、元の処理（割り込み前に実行されていた処理）を再開する。制御ルール適用機能２７０は、当該処理からイベント情報を取得し、当該イベント情報が、制御ルール２５１，２５４，２５７のいずれかに適合しない限り、直ちに割り込み機能２６０に復帰する。
【０１２０】
ＷｅｂブラウザＡＰの実行インスタンス２２０において、マウスクリックに関連付けられた処理が開始される直前にイベントが発生すると、割り込み機能２６０は、当該処理に割り込んで、制御ルール適用機能２７０を動作させ、制御ルール適用機能２７０は、当該処理からイベント情報を取得する。この時に取得したイベント情報は、図７Ｃのイベント情報５２０となる。
【０１２１】
制御ルール適用機能２７０は、イベント情報５２０が、第１の制御ルール２５１の条件セット２５２の全小条件を満たすか否かを判断する。イベント情報５２０の小項目５２１は条件セット２５２の小条件６０１を満たさないので、制御ルール適用機能２７０は、イベント情報５２０が、第２の制御ルール２５４の条件セット２５５の全小条件を満たすか否かを判断する。イベント情報５２０の小項目５２１は条件セット２５５の小条件６２１を満たさないので、制御ルール適用機能２７０は、イベント情報５２０が、第３の制御ルール２５７の条件セット２５８の全小条件を満たすか否かを判断する。
【０１２２】
イベント情報５２０の小項目５２１は条件セット２５８の小条件６４１を満たし、かつ、イベント情報５２０の小項目５２２は条件セット２５８の小条件６４２を満たし、かつ、イベント情報５２０の小項目５２３は条件セット２５８の小条件６４３を満たし、かつ、イベント情報５２０の小項目５２４は条件セット２５８の小条件６４４を満たす。よって、イベント情報５２０は、第３の制御ルール２５７の条件セット２５８の全小条件を満たすので、制御ルール適用機能２７０は、第３の制御ルール２５７の命令セット２５９の全小命令を順に実行する。
【０１２３】
命令セット２５９の小命令６５１により、制御ルール適用機能２７０は、ＷｅｂブラウザＡＰの実行インスタンス２２０が内部データバッファ２２１に格納しているＷｅｂページのデータにおける、名前が“ａｄｄ＿ａｃｋｎｏｗｌｅｄｇｅｒ”のＩＮＰＵＴ要素４６１のｃｈｅｃｋｅｄ属性のバッファ４６４からデータ“ｔｒｕｅ”を読み出し、当該データを共有データバッファ２３１内の第０番のバッファ２３２に書き込む。命令セット２５９の小命令６５２により、制御ルール適用機能２７０は、ＷｅｂブラウザＡＰの実行インスタンス２２０が内部データバッファ２２１に格納しているＷｅｂページのデータにおける、名前が“ａｃｋｎｏｗｌｅｄｇｅｒ”のＩＮＰＵＴ要素４７１のｖａｌｕｅ属性のバッファ４７４からデータ“ＮＵＬＬ”を読み出し、当該データを共有データバッファ２３１内の第１番のバッファ２３３に書き込む。
【０１２４】
命令セット２５９の小命令６５３により、制御ルール適用機能２７０は、第１引数６５７の論理式（Ｂｕｆ［０］＝＝“ｔｒｕｅ”）ＡＮＤ（Ｂｕｆ［１］＝＝ＮＵＬＬ）、すなわち、「共有データバッファ２３１の第０番バッファ２３２に格納された値が“ｔｒｕｅ”であり、かつ共有データバッファ２３１の第１番バッファ２３３に格納された値がＮＵＬＬである」を真であると評価し、警告表示機能２４４を動作させ、割り込み機能２６０が割り込んだ処理をキャンセルし、“追加する承認者の氏名が未記入です”と記した警告ウィンドウ１９４をディスプレイに表示する。制御ルール適用機能２７０の動作が完了後、割り込み機能２６０は元の処理（割り込み前に行われていた処理）を再開するが、当該処理がキャンセルされているため、ＷｅｂブラウザＡＰの実行インスタンス２２０はマウスクリックの処理をキャンセルする。
【０１２５】
図１４は、ＷｅｂブラウザＡＰの実行インスタンスにおける、マウスクリックの処理がキャンセルされた時点での、警告表示機能２４４が表示する警告ウィンドウ１９４の説明図である。この時点で、ＷｅｂブラウザＡＰの実行インスタンスの状態は、作業者１２１が手順Ｓ９ｂを開始する直前の状態に戻っている。
【０１２６】
尚、操作支援プログラム１１４によるＰＣ１００の上記動作は一瞬であるため、作業者１２１には、従来通り、作業手順Ｓ９ａを行ったところ、ミスを指摘する警告ウィンドウが表示され、ボタン描画部品４９８のクリックがキャンセルされたように見える。このように、本実施の形態による操作支援プログラム１１４を導入したＰＣ１００は、ＷｅｂブラウザＡＰの実行インスタンス２２０で発生するイベントをトリガーに、従来の手順Ｓ９ａにおける作業者１２１のミスの有無を自動的にチェックすることにより、作業者１２１の操作を支援することができる。
【０１２７】
以上、本発明者よりなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【図面の簡単な説明】
【０１２８】
【図１】本発明の前提として検討したコンピュータシステムにおいて、そのハードウェア構成の一例を示す概略図である。
【図２】図１における表計算ＡＰとＷｅｂブラウザＡＰを実行するＰＣの機能ブロック図である。
【図３Ａ】図２における表計算ＡＰの実行インスタンスの機能を説明する説明図である。
【図３Ｂ】図２における表計算ＡＰの実行インスタンスの機能を説明する他の説明図である。
【図４Ａ】図２におけるＷｅｂブラウザＡＰの実行インスタンスの機能を説明する説明図である。
【図４Ｂ】図２におけるＷｅｂブラウザＡＰの実行インスタンスの機能を説明する他の説明図である。
【図５】本発明の一実施の形態によるコンピュータシステムにおいて、そのハードウェア構成の一例を示す概略図である。
【図６】図５のコンピュータシステムにおいて、そのＰＣの機能の一例を示すブロック図である。
【図７Ａ】図６の制御ルール適用機能が取得するイベント情報の一例を示す説明図である。
【図７Ｂ】図６の制御ルール適用機能が取得するイベント情報の他の一例を示す説明図である。
【図７Ｃ】図６の制御ルール適用機能が取得するイベント情報の更に他の一例を示す説明図である。
【図８Ａ】図６の第１の制御ルールの一例を示す説明図である。
【図８Ｂ】図６の第２の制御ルールの一例を示す説明図である。
【図８Ｃ】図６の第３の制御ルールの一例を示す説明図である。
【図９】図６の変換テーブルの一例を示す説明図である。
【図１０】図６の制御ルール適用機能の処理の一例を表すフローチャートである。
【図１１】図５のコンピュータシステムにおいて、表計算ＡＰの実行インスタンスによるファイルを開く処理が完了した時点での、共有データバッファの内容例を示す説明図である。
【図１２Ａ】図５のコンピュータシステムにおいて、ＷｅｂブラウザＡＰの実行インスタンスによるＵＲＬを開く処理が完了した時点での、ＷｅｂブラウザＡＰの実行インスタンスの内部データバッファの内容例を示す説明図である。
【図１２Ｂ】図１２Ａに対応して、ＷｅｂブラウザＡＰの実行インスタンスが表示するウィンドウの一例を示す説明図である。
【図１３Ａ】図５のコンピュータシステムにおいて、作業者が知識作業を行う段階での、ＷｅｂブラウザＡＰの実行インスタンスの内部データバッファの内容例を示す説明図である。
【図１３Ｂ】図１３Ａに対応して、ＷｅｂブラウザＡＰの実行インスタンスが表示するウィンドウの一例を示す説明図である。
【図１４】図６の警告表示機能が表示する警告ウィンドウの一例を示す説明図である。
【図１５】図６のログ機能が記録したログの一例を示す説明図である。
【符号の説明】
【０１２９】
１００，１７０  ＰＣ
１０１，１３１，１５１，１７１  ディスプレイ
１０２，１３２，１５２，１７２  キーボード
１０３，１３３，１５３，１７３  マウス
１０４，１３４，１５４，１７４  ＣＰＵ
１０５，１３５，１５５，１７５  ＲＯＭ
１０６，１３６，１５６，１７６  ＲＡＭ
１０７，１３７，１５７，１７７  通信装置
１１０，１４０，１６０，１８０  外部記憶装置
１１１，１４１，１６１，１８１  ＯＳ
１１２，１８２  表計算ＡＰ
１１３  ＷｅｂブラウザＡＰ
１１４  操作支援プログラム
１２０  通信ネットワーク
１２１  作業者
１２２  営業担当者
１３０  Ｗｅｂサーバ
１４２  発注ＷｅｂシステムＡＰ
１４３  Ｗｅｂページデータ
１５０  ファイルサーバ
１６３  発注依頼書データ
１９１，１９２，１９３  ウィンドウ
１９４  警告ウィンドウ
２００  機能
２１０，２２０  実行インスタンス
２１１，２２１  内部データバッファ
２３０  共有データバッファ機能
２３１  共有データバッファ
２３２〜２３６  バッファ
２４１  データ読み出し機能
２４２  データ書き込み機能
２４３  データ変換機能
２４４  警告表示機能
２４５  アプリケーション起動機能
２５０  制御ルール保持機能
２５１，２５４，２５７  制御ルール
２５２，２５５，２５８  条件セット
２５３，２５６，２５９  命令セット
２６０  割り込み機能
２７０  制御ルール適用機能
２８０  変換テーブル保持機能
２８１  変換テーブル
２９０  ログ機能
２９１  ログ
３００  ファイル描画部品
３０１，３０２  シート描画部品
４９０  ボディ描画部品
４９１〜４９５，４９７  テキスト入力描画部品
４９６  チェックボックス描画部品
４９８  ボタン描画部品
５００，５１０，５２０  イベント情報
【図１】
0005226997.tif 000002
【図２】
0005226997.tif 000003
【図３Ａ】
0005226997.tif 000004
【図３Ｂ】
0005226997.tif 000005
【図４Ａ】
0005226997.tif 000006
【図４Ｂ】
0005226997.tif 000007
【図５】
0005226997.tif 000008
【図６】
0005226997.tif 000009
【図７Ａ】
0005226997.tif 000010
【図７Ｂ】
0005226997.tif 000011
【図７Ｃ】
0005226997.tif 000012
【図８Ａ】
0005226997.tif 000013
【図８Ｂ】
0005226997.tif 000014
【図８Ｃ】
0005226997.tif 000015
【図９】
0005226997.tif 000016
【図１０】
0005226997.tif 000017
【図１１】
0005226997.tif 000018
【図１２Ａ】
0005226997.tif 000019
【図１２Ｂ】
0005226997.tif 000020
【図１３Ａ】
0005226997.tif 000021
【図１３Ｂ】
0005226997.tif 000022
【図１４】
0005226997.tif 000023
【図１５】
0005226997.tif 000024