(57)【要約】      （修正有）【課題】ロボティック・プロセス・オートメーション（ＲＰＡ）の運用において、リソースの変更に伴うユーザの負担を軽減する装置およびコンピュータプログラムを提供する。【解決手段】装置は、リソースを取得する取得手段と、取得されたリソースに対して、該リソースに対応する所定の操作を自動的に行う操作手段と、を備えるかまたは、その装置とネットワークを介して接続された装置であって、所定の操作に対応するリソースが、以前のものから変更されているか否かを判定する判定手段を備える。【選択図】図７
2020013400.tif 000002
【特許請求の範囲】
【請求項１】
リソースを取得する取得手段と、
取得されたリソースに対して、該リソースに対応する所定の操作を自動的に行う操作手段と、を備える装置であるか、またはその装置とネットワークを介して接続された装置であって、
所定の操作に対応するリソースが、以前のものから変更されているか否かを判定する判定手段を備える装置。
【請求項２】
リソースはウェブページであり、
前記判定手段は、所定の操作に対応するウェブページに含まれる操作可能なオブジェクトが、以前の該ウェブページに含まれる対応するオブジェクトから変更されているか否かを判定する請求項１に記載の装置。
【請求項３】
リソースはウェブページであり、
前記判定手段は、所定の操作に対応するウェブページに含まれるオブジェクトのうち該所定の操作の対象として指定されているオブジェクトが、以前の該ウェブページに含まれる対応するオブジェクトから変更されているか否かを判定する請求項１または２に記載の装置。
【請求項４】
前記判定手段において変更されていると判定されたオブジェクトをユーザに通知する通知手段をさらに備える請求項２または３に記載の装置。
【請求項５】
前記通知手段は、変更前のオブジェクトと変更後のオブジェクトとを対比可能な態様でディスプレイに表示させる請求項４に記載の装置。
【請求項６】
前記判定手段は、前記操作手段における所定の操作の自動的な実行が失敗した場合に判定を行い、自動的な実行が失敗しなかった場合には判定を行わない請求項１から５のいずれか一項に記載の装置。
【請求項７】
前記操作手段における所定の操作の自動的な実行が失敗した場合、所定の操作を示すスクリプトまたはフローチャートにおいて、実行の失敗に係る部分を強調する強調手段をさらに備える請求項６に記載の装置。
【請求項８】
所定の操作ごとに、該所定の操作の対象となるリソースを特定可能な情報と、そのリソースについての前記判定手段における判定の結果と、を対応付けて表示する画面をディスプレイに表示させる表示制御手段をさらに備える請求項１から７のいずれか一項に記載の装置。
【請求項９】
前記画面に表示される情報を、リソースまたはリソースのグループでソートまたはフィルタリングする手段をさらに備える請求項８に記載の装置。
【請求項１０】
ロボティック・プロセス・オートメーションにおいて操作対象となっているウェブページが、以前のものから変更されているか否かを判定する機能と、
変更の有無または変更箇所もしくはその両方をユーザに通知する機能と、をコンピュータに実現させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボティック・プロセス・オートメーションに係る装置およびコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、人間が行う操作を記録して再現する、いわば業務をロボット化（自動化）するソフトウエアであるＲＰＡ（Robotic Process Automation、ロボティック・プロセス・オートメーション）が注目されている（例えば、非特許文献１、２、３参照）。一般に、ＲＰＡでは、予めオペレータが対象のリソースと操作内容とを規定し、ソフトウエアが規定された内容にしたがって自動的に操作を実行する。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】https://www.nri.com/jp/journal/2017/11/20171101/、２０１８年６月１４日検索
【非特許文献２】http://www.nttdata.com/jp/ja/lineup/winactor/index.html、２０１８年６月１４日検索
【非特許文献３】https://www.uipath.com/automate/robotic-process-automation、２０１８年６月１４日検索
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＲＰＡではソフトウエア（機械）が操作を実行するので、操作対象のオブジェクトを正確に指定する必要がある。したがって、例えばウェブページのレイアウトが変更になっただけでも操作を実行できずエラーとなることがある。
【０００５】
デスクトップのアプリケーションはソフトウエア提供側がソフトウエアのアップデートを行ったとしても、ユーザが意図してインストールしなければアップデートされない。したがって、基本的にはユーザはアップデートによりＵＩ（User Interface）等に変更が生じうることを把握することができる。ただし、アップデートの内容を気にしないユーザも一定数はいる。
【０００６】
一方、ウェブアプリケーションについては、ＡＳＰ（Application Service Provider）側がアプリケーションをアップデートすると、ユーザのブラウザはそのアップデートされたアプリケーションを実行する他なく、アップデート前のアプリケーションを使用することはできない。また、ウェブアプリケーションのアップデートはユーザ側の更新無しに可能であるため、ＵＩ及び挙動の変化が少ない場合、ユーザは気付くことなく、使用することになる。
【０００７】
したがって、ＲＰＡでウェブアプリケーションを操作対象としていて、主にＵＩのオブジェクトの変更がある場合には、対象の操作実行が適切に動作しないことがある。ユーザはＲＰＡの操作実行が適切に実行されないことで、その更新に気づき、それに応じた操作設定を余儀なくされている。ＲＰＡの操作対象となっているデスクトップのアプリケーションをアップデートしたがその内容を確認していない場合も同様の不都合が生じうる。
【０００８】
本発明はこうした課題に鑑みてなされたものであり、その目的は、ＲＰＡの運用において、リソースの変更に伴うユーザの負担を軽減できる技術の提供にある。
【課題を解決するための手段】
【０００９】
本発明のある態様は、装置に関する。この装置は、リソースを取得する取得手段と、取得されたリソースに対して、該リソースに対応する所定の操作を自動的に行う操作手段と、を備える装置であるか、またはその装置とネットワークを介して接続された装置であって、所定の操作に対応するリソースが、以前のものから変更されているか否かを判定する判定手段を備える。
【００１０】
本発明の別の態様は、コンピュータプログラムである。このコンピュータプログラムは、ロボティック・プロセス・オートメーションにおいて操作対象となっているウェブページが、以前のものから変更されているか否かを判定する機能と、変更の有無または変更箇所もしくはその両方をユーザに通知する機能と、をコンピュータに実現させる。
【００１１】
なお、以上の構成要素の任意の組み合わせや、本発明の構成要素や表現を装置、方法、システム、コンピュータプログラム、コンピュータプログラムを格納した記録媒体などの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１２】
本発明によれば、ＲＰＡの運用において、リソースの変更に伴うユーザの負担を軽減できる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態に係るＲＰＡシステムの構成を示す模式図である。
【図２】図１のＲＰＡサーバのハードウエア構成図である。
【図３】図１のＲＰＡサーバの機能および構成を示すブロック図である。
【図４】図３の操作内容保持部の一例を示すデータ構造図である。
【図５】図３の操作結果保持部の一例を示すデータ構造図である。
【図６】図３の変更ログ保持部の一例を示すデータ構造図である。
【図７】図１のＲＰＡサーバにおけるエラー発生時の変更判定処理の流れを示すフローチャートである。
【図８】オブジェクトの変更によりエラーが発生した変更後ウェブページの代表画面図である。
【図９】変更が行われる前の変更前ウェブページの代表画面図である。
【図１０】変更詳細画面の代表画面図である。
【図１１】図１のＲＰＡサーバにおける定期的な変更判定処理の流れを示すフローチャートである。
【図１２】ＲＰＡ実行管理画面の代表画面図である。
【発明を実施するための形態】
【００１４】
以下、各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。また、各図面において説明上重要ではない部材の一部は省略して表示する。
【００１５】
図１は、実施の形態に係るＲＰＡシステム２の構成を示す模式図である。ＲＰＡシステム２は、ＲＰＡサーバ４と、ユーザ端末８と、操作実行サーバ１０と、を備える。ＲＰＡサーバ４とユーザ端末８と操作実行サーバ１０とはインターネットなどのネットワーク６を介して通信可能に接続されている。ＲＰＡサーバ４は、ユーザが予め設定した操作の内容を保持する操作内容保持部４２を備え、操作内容保持部４２に規定される操作を操作実行サーバ１０またはユーザ端末８に自動的に実行させる。あるいはまた、ＲＰＡサーバ４は自ら操作を自動的に実行してもよい。どのサーバが操作を実行するかは、操作内容保持部４２に保持される設定による。ユーザ端末８は、ユーザが用いる端末であり、例えばデスクトップＰＣ、ラップトップＰＣ、携帯端末などであってもよい。
【００１６】
ＲＰＡサーバ４は、操作内容保持部４２に規定される操作を実行してまたは実行させてエラーが発生した場合、エラーが生じた操作の対象となっているウェブページなどのリソースを取得して解析することで、リソースに対する変更の有無を判定する。変更の有無の判定は、ユーザが操作を設定したときのリソースなどの以前のリソースと、現在取得されたリソースと、を比較することで行われる。あるいはまた、変更の有無の判定は、エラーが生じた箇所やオブジェクトを、変更された箇所やオブジェクトとして認識することで行われてもよい。ＲＰＡサーバ４は、リソースに対する変更の有無または変更された箇所もしくはその両方を、ネットワーク６およびディスプレイ１００を介してユーザに通知する。なお、エラーの発生を待たずに、変更の有無について操作内容保持部４２に登録されているリソースを周期的に検査してもよい。
【００１７】
本実施の形態では、ユーザがユーザ端末８に情報を入力し、ユーザ端末８が該情報をネットワーク６を介してＲＰＡサーバ４に送信し、ＲＰＡサーバ４が該情報を処理し、処理結果をネットワーク６を介してユーザ端末８に返し、ユーザ端末８が処理結果を表示する、いわゆるＡＳＰを想定する。しかしながら、本実施の形態の技術的思想は、ユーザ端末８や操作実行サーバ１０などのスタンドアローンの端末にＲＰＡ機能、エラー対応機能および変更判定機能のうちの少なくとも一部を実装し、ユーザがその端末に情報を入力し、処理結果を得る場合など、ＡＳＰ以外のシステムにも適用可能である。
【００１８】
図２は、図１のＲＰＡサーバ４のハードウエア構成図である。ユーザ端末８および操作実行サーバ１０は図２に記載のハードウエア構成と同様のハードウエア構成を有してもよい。ＲＰＡサーバ４は、メモリ１３０と、プロセッサ１３２と、通信インタフェース１３４と、ディスプレイ１３６と、入力インタフェース１３８と、を含む。これらの要素はそれぞれバス１４０に接続され、バス１４０を介して互いに通信する。
【００１９】
メモリ１３０は、データやプログラムを記憶するための記憶領域である。データやプログラムは、メモリ１３０に恒久的に記憶されてもよいし、一時的に記憶されてもよい。特にメモリ１３０は操作内容保持部４２として割り当てられた領域を有する。プロセッサ１３２は、メモリ１３０に記憶されているプログラムを実行することにより、ＲＰＡサーバ４における各種機能を実現する。通信インタフェース１３４は、ＲＰＡサーバ４の外部との間でデータの送受信を行うためのインタフェースである。例えば、通信インタフェース１３４はネットワーク６にアクセスするためのインタフェースを含む。ディスプレイ１３６は、各種情報を表示するためのデバイスであり、例えば、液晶ディスプレイや有機ＥＬ（Electroluminescence）ディスプレイなどである。入力インタフェース１３８は、ユーザからの入力を受け付けるためのデバイスである。入力インタフェース１３８は、例えば、マウスやキーボードやディスプレイ１３８上に設けられたタッチパネルを含む。
【００２０】
図３は、図１のＲＰＡサーバ４の機能および構成を示すブロック図である。ここに示す各ブロックは、ハードウエア的には、コンピュータのＣＰＵをはじめとする素子や機械装置で実現でき、ソフトウエア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウエア、ソフトウエアの組合せによっていろいろなかたちで実現できることは、本明細書に触れた当業者には理解されるところである。
【００２１】
ＲＰＡサーバ４は、操作内容保持部１０２と、操作結果保持部１０４と、変更ログ保持部１０６と、ＲＰＡ部１０８と、エラー検出部１１６と、変更判定部１１８と、表示制御部１２２と、操作内容変更部１２４と、ソート／フィルタリング部１２６と、を備える。
【００２２】
図４は、図３の操作内容保持部１０２の一例を示すデータ構造図である。操作内容保持部１０２は、ＲＰＡで実行される操作の内容を保持する。操作内容保持部１０２は、操作を特定する操作ＩＤと、操作を実行する端末である実行端末（例えば、操作実行サーバ１０やＲＰＡサーバ４やユーザ端末８）と、操作対象となるリソースを特定する情報（ウェブページであればＵＲＬ（Uniform Resource Locator）、端末のアプリケーションであればパス）と、操作内容と、繰り返し設定と、を対応付けて保持する。ここで、図４において、操作ＩＤ、実行端末、操作対象、操作内容、並びに、繰り返し設定に加え、タイトル又は使用者、作成者若しくは変更者のデータ属性を加えることもできる。使用者、作成者若しくは変更者を加える場合には実行端末のデータ属性を削除してもよい。使用者は対象のＲＰＡ操作を使用するもので、作成者は対象のＲＰＡ操作を作成したもので、変更者は対象のＲＰＡ操作を変更したものである。
【００２３】
操作内容は、操作対象のリソースに対してどのような操作を行うかを指定する情報である。例えば、操作対象がウェブページであれば、操作内容はウェブページのどのオブジェクトにどのような操作を行うかを指定するコードを含む。したがって操作内容は、操作対象のオブジェクトを特定する情報、例えばＩＤや位置や属性、を含む。
【００２４】
繰り返し設定は、対応する操作をいつ実行するかを指定する情報である。繰り返し設定は、日、週、月、年等の内の決まったタイミングなど、規則的または周期的に操作が実行される状態の指定を可能とすると共に、操作が実行されない状態すなわち非活性化状態の指定（例えば、「障害対応待ち」）をも可能とする。
【００２５】
ユーザは操作内容を操作内容保持部１０２に予め登録する。この登録のための処理やＵＩは例えば非特許文献１、２、３に記載の技術を用いて実現されてもよい。
【００２６】
図５は、図３の操作結果保持部１０４の一例を示すデータ構造図である。操作結果保持部１０４は、ＲＰＡで実行された操作の結果を保持する。操作結果保持部１０４は、操作ＩＤと、実行端末と、操作対象と、直近に実行された操作の実行時刻である前回実行時刻と、直近に実行された操作の結果である前回実行結果と、直近に実行された操作の結果の出力と、操作対象に変更があったか否かを示す情報である変更有無と、変更があった場合にその変更を検出した日にちである変更検出日と、を対応付けて保持する。操作の結果は、操作が正常に実行されエラーが生じなかった場合は「正常」、エラーが生じ操作が実行できなかった場合は「エラー」、となる。
【００２７】
図６は、図３の変更ログ保持部１０６の一例を示すデータ構造図である。変更ログ保持部１０６は、操作ＩＤと、操作対象と、ユーザが操作を操作内容保持部１０２に登録したときの操作対象のコードおよび画面キャプチャデータと、１回目の変更が検出された日にちと、１回目の変更後の操作対象のコードおよび画面キャプチャデータと、２回目の変更が検出された日にちと、２回目の変更後の操作対象のコードおよび画面キャプチャデータと、を対応付けて保持する。３回以上変更が検出された場合はその分エントリに変更検出日、変更後コード、変更後キャプチャが追加される。図６の例では複数の変更が次々と蓄積される構成となっているが、ユーザが複数変更のうち選択した変更についてその変更を非表示にする構成であってもよい。このように複数変更のうち、問題のない変更を非表示とすることでユーザは問題のある変更のみに集中して変更対応を行うことができる。または、ある変更に対してＲＰＡ操作に変更を加える場合には、その変更履歴を保存してもよく、場合によっては変更履歴を用いて一部の変更をキャンセルすることもできる。さらに、その変更履歴を保存する場合に、どの変更に対するＲＰＡ操作の変更かを紐づけて保存することもできる。
【００２８】
図３に戻り、ＲＰＡ部１０８は、操作内容保持部４２に規定される操作を操作実行サーバ１０またはユーザ端末８に自動的に実行させるか、またはＲＰＡサーバ４自身に実行させるための処理を行う。ＲＰＡ部１０８は、ウェブページ取得部１１０と、操作実行部１１２と、結果格納部１１４と、を含む。ＲＰＡの処理自体は例えば非特許文献１、２、３に詳述されているので、本明細書では簡単に説明するに留める。
【００２９】
ウェブページ取得部１１０は、操作内容保持部１０２を参照し、繰り返し設定が現在時刻と合致する操作を特定し、特定された操作の実行端末および対象ＵＲＬを取得する。ウェブページ取得部１１０は、取得した対象ＵＲＬを実行端末に提供することで、実行端末に対象ＵＲＬで特定されるウェブページを取得させる。実行端末がＲＰＡサーバ４自身であれば、ウェブページ取得部１１０は対象ＵＲＬで特定されるウェブページを取得する。
【００３０】
操作実行部１１２は、ウェブページ取得部１１０により特定された操作の操作内容を操作内容保持部１０２から取得する。操作実行部１１２は、取得された操作内容を実行端末に提供することで、実行端末に、操作内容で規定される操作を取得されたウェブページに対して自動的に実行させる。実行端末がＲＰＡサーバ４自身であれば、操作実行部１１２は、取得された操作内容で規定される操作を取得されたウェブページに対して自動的に実行する。「自動的に」は、ユーザからの指示や入力を必要としない態様であってもよい。取得されたウェブページの変更等が原因で、実行端末または操作実行部１１２が規定された操作を実行できなかった場合、操作実行部１１２はエラー信号を生成する。
【００３１】
結果格納部１１４は、ウェブページ取得部１１０により特定された操作が正常に実行された場合、その結果を操作結果保持部１０４に格納する。例えば、結果格納部１１４は、操作結果保持部１０４において、特定された操作に対応する前回実行時刻、前回実行結果および結果出力を今回の実行の結果で更新する。
【００３２】
以下、図７、図１１のフローチャートを参照して、エラー検出部１１６、変更判定部１１８、表示制御部１２２、操作内容変更部１２４の機能を説明する。
図７は、ＲＰＡサーバ４におけるエラー発生時の変更判定処理の流れを示すフローチャートである。ＲＰＡ部１０８は、操作内容保持部１０２に規定される操作を自動的に実行するか実行させ（Ｓ７０２）、操作結果保持部１０４に実行結果および実行時刻を登録する（Ｓ７０４）。エラー検出部１１６は操作の実行時にエラーが発生したか否かを判定する（Ｓ７０６）。エラー検出部１１６は、操作実行部１１２によってエラー信号が生成された場合、ウェブページ取得部１１０により特定された操作の自動的な実行が失敗したと判定する。
【００３３】
エラーの発生が検出された場合（Ｓ７０６のＹ）、変更判定部１１８は、エラーが発生したウェブページが、以前のものから変更されているか否かを判定し、エラーの発生が検出されない場合（Ｓ７０６のＮ）、変更判定部１１８はそのような判定を行わず、処理はステップＳ７０２に戻り、新たな操作が自動的に実行される。
【００３４】
エラーの発生が検出された場合（Ｓ７０６のＹ）、操作内容変更部１２４は、操作内容保持部１０２において、エラーが発生したウェブページのＵＲＬに対応する繰り返し設定を「障害対応待ち」に変更することで、操作を非活性化する（Ｓ７２２）。変更判定部１１８は、ウェブページ取得部１１０が取得したか取得させた、エラーが発生したウェブページのコードと、エラーが発生したウェブページのＵＲＬに対応して変更ログ保持部１０６に保持されている最新のコードと、を取得する。例えば、エラーが発生したウェブページに対してこれまで変更が検出されていない場合、変更判定部１１８はエラーが発生したウェブページの登録時のコードを取得する。エラーが発生したウェブページに対してこれまで二回変更が検出されている場合、変更判定部１１８はその二回のうち検出日が新しいほうの変更後コードを取得する。
【００３５】
変更判定部１１８は、取得した二つのコードを比較することで（Ｓ７０８）、変更の有無を判定し（Ｓ７１０）、変更がある場合（Ｓ７１０のＹ）、変更箇所を特定する（Ｓ７１４）。変更判定部１１８におけるウェブページの変更検出の対象を、操作可能なオブジェクトとしていもよい。この場合、変更判定部１１８は、エラーが発生したウェブページに含まれる操作可能なオブジェクトが、以前の該ウェブページに含まれる対応するオブジェクトから変更されているか否かを判定する。あるいはまた、変更判定部１１８におけるウェブページの変更検出の対象を、ＲＰＡで操作対象として指定されているオブジェクトとしてもよい。この場合、変更判定部１１８は、エラーが発生したウェブページに含まれるオブジェクトのうち該ウェブページに対応する所定の操作の対象として指定されているオブジェクトが、以前の該ウェブページに含まれる対応するオブジェクトから変更されているか否かを判定する。
【００３６】
図８は、オブジェクトの変更によりエラーが発生した変更後ウェブページ２００の代表画面図である。図９は、変更が行われる前の変更前ウェブページ２０２の代表画面図である。変更後ウェブページ２００、変更前ウェブページ２０２はいずれも同一のＵＲＬで指定され、操作対象として操作内容保持部１０２に登録されている。図８、図９の例では、変更前ウェブページ２０２のテキストオブジェクト「Ｔｅｌ：」が変更後ウェブページ２００ではテキストオブジェクト「連絡先：」に変わっている。また、変更前ウェブページ２０２のボタンオブジェクト「更新」、「新規登録」が変更後ウェブページ２００では削除され、代わりに変更後ウェブページ２００ではボタンオブジェクト「登録」が追加されている。また、変更前ウェブページ２０２と変更後ウェブページ２００とでボタンオブジェクト「削除」の位置が変更となっている。
【００３７】
操作可能なオブジェクトを変更検出の対象とする場合、変更判定部１１８は、変更前ウェブページ２０２の操作可能なオブジェクトとして、四つの入力ボックスオブジェクトと三つのボタンオブジェクト「更新」、「新規登録」、「削除」とを特定する。変更判定部１１８は、変更後ウェブページ２００の操作可能なオブジェクトとして、四つの入力ボックスオブジェクトと二つのボタンオブジェクト「登録」、「削除」とを特定する。
【００３８】
変更判定部１１８は、変更前と変更後とで特定された操作可能なオブジェクト同士を比較し、変更後ウェブページ２００の二つのボタンオブジェクト「登録」、「削除」が、変更前ウェブページ２０２に含まれる対応するオブジェクトから変更されていると判定する。具体的には、変更判定部１１８は、ボタンオブジェクト「登録」は変更前ウェブページ２０２に存在せず、したがって新規に追加されたと判定する。変更判定部１１８は、ボタンオブジェクト「削除」の位置が変更されたと判定する。併せて変更判定部１１８は、変更前ウェブページ２０２の三つのボタンオブジェクト「更新」、「新規登録」、「削除」のうち「更新」および「新規登録」が削除されていると判定する。
【００３９】
ＲＰＡで操作対象として指定されているオブジェクトを変更検出の対象とする場合、変更判定部１１８は、操作内容保持部１０２を参照し、エラーが発生した変更後ウェブページ２００のＵＲＬに対応する操作内容を取得する。変更判定部１１８は、取得した操作内容を解析し、操作対象として指定されているオブジェクトを特定する。例えば、操作内容が、四つの入力ボックスオブジェクトに情報を入力し、ボタンオブジェクト「削除」をクリックするというものであれば、変更判定部１１８は、変更後ウェブページ２００および変更前ウェブページ２０２において、四つの入力ボックスオブジェクトおよびボタンオブジェクト「削除」を特定する。
【００４０】
変更判定部１１８は、変更前と変更後とで特定されたオブジェクト同士を比較し、変更後ウェブページ２００のボタンオブジェクト「削除」が、変更前ウェブページ２０２に含まれる対応するオブジェクトから変更されていると判定する。具体的には、変更判定部１１８は、ボタンオブジェクト「削除」の位置が変更されたと判定する。
【００４１】
図７に戻り、ステップＳ７１０で変更がないと判定された場合、表示制御部１２２は、エラーが生じたが変更は検出されなかった旨をユーザに通知する（Ｓ７１２）。例えば表示制御部１２２は、後述の変更詳細画面２０４のフローチャート部分のみをディスプレイ１００に表示させてもよい。その後、処理はステップＳ７０２に戻り、新たな操作が自動的に実行される。
【００４２】
ステップＳ７１４で変更されたオブジェクトが特定されると、変更判定部１１８は、操作結果保持部１０４において、変更が検出されたウェブページに対応する変更有無に「変更有」を登録し、変更検出日を登録する（Ｓ７１８）。変更判定部１１８は、変更ログ保持部１０６において、変更が検出されたウェブページに対応するエントリに、変更検出日と変更後コードと変更後キャプチャとを追加する（Ｓ７２０）。表示制御部１２２は、操作の実行中にエラーが生じ、かつ、対象のウェブページの変更が検出された旨をユーザに通知する（Ｓ７１２）。表示制御部１２２は、検出された変更の詳細を示す変更詳細画面２０４を生成し、ネットワーク６を介してユーザ端末８に送信する。ユーザ端末８は、受信した変更詳細画面２０４をディスプレイ１００に表示させる。図４の別例として、使用者、作成者若しくは変更者を加える例を追加で説明したが、ユーザ端末８で対象ＲＰＡの使用者が変更を知覚したものの、その変更に応じて対象ＲＰＡの変更を行うことができない場合に、作成者若しくは変更者に対して対象のＲＰＡでその変更を明示した上で変更依頼を本実施形態に係るシステム上で依頼可能としてもよい。
【００４３】
図１０は、変更詳細画面２０４の代表画面図である。変更詳細画面２０４は、変更後のウェブページのイメージを表示する変更後表示領域２０６と、変更前のウェブページのイメージを表示する変更前表示領域２０８と、ウェブページに対応する操作のどこでエラーが生じたかを表示するエラー箇所表示領域２１０と、を有する。変更詳細画面２０４は、変更前のオブジェクトと変更後のオブジェクトとを対比可能な態様で表示する。特に変更詳細画面２０４は、変更前のウェブページのイメージと変更後のウェブページのイメージとを並べて一画面内に表示することで、対比を可能としている。
【００４４】
図１０は図８、図９に対応し、特に変更後表示領域２０６には図８の変更後ウェブページ２００の画面キャプチャが表示され、変更前表示領域２０８には図９の変更前ウェブページ２０２の画面キャプチャが表示される。変更前ウェブページ２０２の画面キャプチャは、変更ログ保持部１０６に保持されているキャプチャに基づき生成される。変更前表示領域２０８において、ステップＳ７１４で特定されたオブジェクトが枠２１２で強調表示される。
【００４５】
なお、変更後表示領域２０６にブラウザを組み込むことで、変更後ウェブページ２００の画面キャプチャに代えて、変更後ウェブページ２００のＵＲＬを指定することで取得される実際の変更後ウェブページ２００を表示してもよい。
また、図１０の例では変更前表示領域２０８において変更に係る部分を強調表示したが、これに代えて、変更後表示領域２０６において変更に係る部分を強調表示してもよい。あるいはまた、変更後表示領域２０６、変更前表示領域２０８の両方において変更に係る部分を強調表示してもよい。その場合、変更後表示領域２０６と変更前表示領域２０８とで強調表示の態様を異ならせてもよい。
【００４６】
エラー箇所表示領域２１０は、エラーが発生した操作の操作内容を示すフローチャートを表示する。エラー箇所表示領域２１０はさらに、ステップＳ７１４で特定されたオブジェクトが関係する要素２１４を強調して表示する。ＲＰＡで操作対象として指定されているオブジェクトが変更検出の対象とされる場合、ステップＳ７１４で特定されたオブジェクト（＝変更されたオブジェクト）が関係する要素２１４においてエラーが生じている蓋然性が高い。図１０の例では、ボタンオブジェクト「削除」の位置が変更になったことにより、ボタンオブジェクト「削除」のクリックを定義する要素２１４においてボタンオブジェクト「削除」が見つからず、エラーが発生する。図１０で要素２１４を強調表示することにより、ユーザはエラーの発生の原因をより素早く容易に特定することができる。なお、フローチャートに代えてまたは加えて、エラーが発生した操作のスクリプトを表示してもよい。
【００４７】
図１０に示される変更詳細画面２０４は、変更後表示領域２０６に表示される変更後ウェブページの画面キャプチャにおいて変更後の適切なオブジェクトを画像上で指定すると、画像認識により適切にそのオブジェクトを認識するよう構成される。
【００４８】
一例では、ユーザは、変更後表示領域２０６と変更前表示領域２０８とを見比べることで、エラーの原因がボタンオブジェクト「削除」の移動にあると理解する。ユーザは、変更後表示領域２０６においてボタンオブジェクト「削除」をクリック、範囲指定等により指定する。操作内容変更部１２４は、ユーザにより指定されたボタンオブジェクト「削除」の位置を取得する。操作内容変更部１２４は、操作内容保持部１０２において、エラーが発生した操作の操作内容のうち、ボタンオブジェクト「削除」の位置を取得した新たな位置で更新し、繰り返し設定を「障害対応待ち」から元の値に戻す。
【００４９】
別の例では、ユーザは、変更後表示領域２０６と変更前表示領域２０８とを見比べることで、エラーの原因がボタンオブジェクト「新規登録」の削除にあると理解する。ユーザは、変更後表示領域２０６においてボタンオブジェクト「登録」をクリック、範囲指定等により指定する。操作内容変更部１２４は、ユーザにより指定されたボタンオブジェクト「登録」のＩＤおよび属性を取得する。操作内容変更部１２４は、操作内容保持部１０２において、エラーが発生した操作の操作内容のうち、ボタンオブジェクト「新規登録」のＩＤおよび属性を、新たに取得したボタンオブジェクト「登録」のＩＤおよび属性に置き換え、繰り返し設定を「障害対応待ち」から元の値に戻す。
【００５０】
このように、ユーザは、変更箇所の確認と共に、変更に関連する障害への対応も変更詳細画面２０４を介して済ませることができる。また、ウェブページ内のオブジェクトを指定することで操作内容を変更するので、コードを直接変更する場合と比較して、より直感的な作業が可能となる。
【００５１】
図１１は、ＲＰＡサーバ４における定期的な変更判定処理の流れを示すフローチャートである。変更判定部１１８は、操作内容保持部１０２に保持されるＵＲＬのなかから判定対象とするひとつを選択する（Ｓ７４０）。変更判定部１１８は、選択されたＵＲＬにアクセスし、判定対象のウェブページのコードを取得する（Ｓ７４２）。変更判定部１１８は、判定対象のウェブページのＵＲＬに対応して変更ログ保持部１０６に保持されている最新のコードを取得する。変更判定部１１８は、取得した二つのコードを比較することで（Ｓ７４４）、変更の有無を判定し（Ｓ７１０）、変更がある場合（Ｓ７１０のＹ）、変更箇所を特定する（Ｓ７１４）。
【００５２】
ステップＳ７１０で変更がないと判定された場合、変更判定部１１８は、操作結果保持部１０４において、判定対象のウェブページに対応する変更有無に「変更無」を登録する（Ｓ７４８）。その後、処理はステップＳ７４０に戻り、新たなＵＲＬが判定対象として選択される。
【００５３】
ステップＳ７１４で変更されたオブジェクトが特定されると、変更判定部１１８は、判定対象のウェブページに対する次回の操作時にエラーが発生するか否かを判定する（Ｓ７５２）。例えば、変更判定部１１８は、判定対象のウェブページのＵＲＬに対応する操作内容を操作内容保持部１０２から取得する。変更判定部１１８は、取得した操作内容に変更されたオブジェクトが含まれる場合、次回の操作時にエラーが発生すると判定する。また、変更判定部１１８は、変更されたオブジェクトが操作可能なオブジェクトでない場合、次回の操作時にエラーが発生しないと判定する。
【００５４】
図８、図９の例で、変更前ウェブページ２０２のテキストオブジェクト「Ｔｅｌ：」が変更後ウェブページ２００ではテキストオブジェクト「連絡先：」に変わっているだけで、他のオブジェクトに変更がない場合、ステップＳ７１４で特定されるオブジェクトはテキストオブジェクト「Ｔｅｌ：」のみである。この場合、変更判定部１１８は、変更後ウェブページ２００に対する次回の操作時にエラーが発生しないと判定する。
【００５５】
対して、変更前ウェブページ２０２のボタンオブジェクト「更新」、「新規登録」が変更後ウェブページ２００では削除され、代わりに変更後ウェブページ２００ではボタンオブジェクト「登録」が追加されている場合、ステップＳ７１４で特定されるオブジェクトはボタンオブジェクト「更新」、「新規登録」、「登録」である。この場合、変更判定部１１８は、変更後ウェブページ２００に対する次回の操作時にエラーが発生すると判定する。
【００５６】
ステップＳ７５２でエラーが発生すると判定された場合（Ｓ７５２のＹ）、操作内容変更部１２４は、操作内容保持部１０２において、判定対象のウェブページのＵＲＬに対応する繰り返し設定を「障害対応待ち」に変更することで、操作を非活性化する（Ｓ７５４）。ステップＳ７５２でエラーが発生すると判定されなかった場合（Ｓ７５２のＮ）またはステップＳ７５４の後、表示制御部１２２は、判定対象のウェブページの変更が検出された旨をユーザに通知する（Ｓ７５６）。表示制御部１２２は、図１０に示される変更詳細画面２０４と同様の画面を介して通知を行ってもよい。その後、ステップＳ７１８の操作結果保持部１０４の更新およびステップＳ７２０の変更ログ保持部１０６の更新を経て、処理はステップＳ７４０に戻り、新たなＵＲＬが判定対象として選択される。
【００５７】
表示制御部１２２は、ＲＰＡシステム２の管理者からユーザ端末８を介して要求を受けると、操作内容保持部１０２および操作結果保持部１０４に保持されている操作の実行状態を一覧表示するＲＰＡ実行管理画面２２０を生成し、ネットワーク６を介してユーザ端末８に送信する。ユーザ端末８は、受信したＲＰＡ実行管理画面２２０をディスプレイ１００に表示させる。
【００５８】
図１２は、ＲＰＡ実行管理画面２２０の代表画面図である。ＲＰＡ実行管理画面２２０は、操作内容保持部１０２に保持される操作ＩＤ、実行端末、操作対象、繰り返し設定、および、操作結果保持部１０４に保持される前回実行時刻、前回実行結果、変更有無および日にち、を対応付けて表形式で表示する。ＲＰＡ実行管理画面２２０は、操作ＩＤごとに、その操作ＩＤで特定される操作を実行する端末と、その操作ＩＤで特定される操作の対象となるウェブページのＵＲＬと、操作の繰り返し設定と、その操作の最新の実行結果と、そのウェブページについての変更判定部１１８における変更有無の判定の結果および日にちと、を対応付けて表示する。
【００５９】
表示制御部１２２は、変更有無のセルのいずれかに対する押下を検出すると、対応する操作対象について、図１０に示される変更詳細画面２０４と同様の画面を生成し、ディスプレイ１００に表示させる。表示制御部１２２は、操作対象のセルのいずれかに対する押下を検出すると、対応する操作対象がウェブページであれば当該ウェブページを取得してディスプレイ１００に表示させ、対応する操作対象がソフトウエアであれば当該ソフトウエアを起動する。表示制御部１２２は、繰り返し設定のセルのいずれかに対する押下を検出すると、対応する操作の繰り返し設定を行う画面（不図示）をディスプレイ１００に表示させる。表示制御部１２２は、前回実行時刻のセルのいずれかまたは前回実行結果のセルのいずれかに対する押下を検出すると、対応する操作のログを操作結果保持部１０４から取得し、ディスプレイ１００に表示させる。
【００６０】
ソート／フィルタリング部１２６は、一番上の行の「変更有無」の見出しセル２２２に対する押下を検出すると、ＲＰＡ実行管理画面２２０に表示される情報を「変更有」、「変更無」の別でソートする。ソート／フィルタリング部１２６は、一番上の行の「前回実行結果」の見出しセル２２４に対する押下を検出すると、ＲＰＡ実行管理画面２２０に表示される情報を「正常」、「エラー」の別でソートする。ユーザが「変更有無」の見出しセル２２２、「前回実行結果」の見出しセル２２４の順に押下すると、まず「変更有」、「変更無」で分けられ、さらに「変更有」のものが「正常」、「エラー」で分けられる。その結果、上から、「変更有」かつ「エラー」の操作、「変更有」かつ「正常」の操作、「変更無」かつ「エラー」の操作、「変更無」かつ「正常」の操作が、この順に並ぶこととなる。
【００６１】
ソート／フィルタリング部１２６は、操作対象のサイト（WWWサーバレベル、ページレベル）別に、ＲＰＡ実行管理画面２２０に表示される情報をソートする。ソート／フィルタリング部１２６は、一番上の行の「操作対象」の見出しセル２２６に対する押下を検出すると、ＲＰＡ実行管理画面２２０に表示される情報を操作対象別にソートする。例えば、ソート／フィルタリング部１２６は、同じＵＲＬを操作対象とする操作を連続した行に表示するようＲＰＡ実行管理画面２２０を再構成する。
【００６２】
あるサイトで更新が行われると、それを操作対象とする操作では同様に変更やエラーが生じる。したがって、上記のソートを行うことにより、まとめて障害への対応を行うことができる。これはユーザ利便性の向上に寄与する。
【００６３】
なお、ソート／フィルタリング部１２６は、ＲＰＡ実行管理画面２２０に表示される情報をソートする代わりにまたはそれに加えて、フィルタリングを行ってもよい。この場合、ユーザに指定されたキーに合致するエントリ以外は非表示とされる。例えば、ユーザが所望のＵＲＬを操作対象のキーとして指定した場合、ソート／フィルタリング部１２６は当該ＵＲＬを操作対象とする操作以外の操作のエントリを、ＲＰＡ実行管理画面２２０において非表示とする。
【００６４】
上述の実施の形態において、保持部の例は、ハードディスクや半導体メモリである。また、本明細書の記載に基づき、各部を、図示しないＣＰＵや、インストールされたアプリケーションプログラムのモジュールや、システムプログラムのモジュールや、ハードディスクから読み出したデータの内容を一時的に記憶する半導体メモリなどにより実現できることは本明細書に触れた当業者には理解される。
【００６５】
本実施の形態に係るＲＰＡサーバ４によると、ＲＰＡにおいて自動的な操作の対象となっているウェブページが変更されたか否かが判定され、判定結果がユーザに通知される。したがって、ユーザは、操作対象のウェブページの変更に応じて操作内容を書き換えるなど、そのような変更に適切に対処することができる。
【００６６】
また、本実施の形態に係るＲＰＡサーバ４では、変更に起因するエラーが生じる前の変更の捕捉が可能となっている。したがって、エラーが生じてからエラーの原因を探して対処する場合と比較して、ユーザはＲＰＡをよりスムーズに運用することができる。
【００６７】
また、本実施の形態に係るＲＰＡサーバ４では、変更に起因するエラーが生じた場合でも、エラーの原因となっている変更を特定し、変更詳細画面２０４を介してユーザに知らせることができる。したがって、より素早く効率的な障害対応が可能となる。
【００６８】
以上、実施の形態に係るＲＰＡサーバ４の構成と動作について説明した。この実施の形態は例示であり、各構成要素や各処理の組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解される。
【００６９】
実施の形態では、リソースとして主にウェブページなどのネットワークリソースを採用したが、これに限られず、例えば、ユーザ端末８にインストールされるアプリケーションプログラム（ソフトウエア）などの非ネットワークリソースであってもよい。図４の操作内容保持部１０２、図５の操作結果保持部１０４、図６の変更ログ保持部１０６、図１２のＲＰＡ実行管理画面２２０には、操作対象として指定される非ネットワークリソースの例としてexeファイルが記載されている。
【００７０】
例えばＲＰＡの対象となっているアプリケーションプログラムを更新することによりＵＩ等が変更されたがユーザがそれに気付かなかった場合、そのままでは次回の自動的操作の実行時にエラーが発生する。ユーザは原因も分からないまま障害への対応を余儀なくされる。これに対して、ＲＰＡサーバ４を用いると、ＲＰＡサーバ４が当該変更をユーザに知らせることで、ユーザにエラーの原因となった変更箇所を知らせることができ、またはエラーが発生する前に当該変更への対処を促すことができる。
【符号の説明】
【００７１】
２  ＲＰＡシステム、  ４  ＲＰＡサーバ、  ６  ネットワーク、  ８  ユーザ端末、  １０  操作実行サーバ。
【図１】
2020013400.tif 000003
【図２】
2020013400.tif 000004
【図３】
2020013400.tif 000005
【図４】
2020013400.tif 000006
【図５】
2020013400.tif 000007
【図６】
2020013400.tif 000008
【図７】
2020013400.tif 000009
【図８】
2020013400.tif 000010
【図９】
2020013400.tif 000011
【図１０】
2020013400.tif 000012
【図１１】
2020013400.tif 000013
【図１２】
2020013400.tif 000014