(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-08
(45)【発行日】2024-07-17
(54)【発明の名称】装置およびコンピュータプログラム
(51)【国際特許分類】
G06F 11/07 20060101AFI20240709BHJP
G06F 3/0481 20220101ALI20240709BHJP
G06F 9/451 20180101ALI20240709BHJP
G06F 11/32 20060101ALI20240709BHJP
G06F 11/36 20060101ALI20240709BHJP
【FI】
G06F11/07 169
G06F3/0481
G06F9/451
G06F11/07 140T
G06F11/32 130
G06F11/36 188
(21)【出願番号】P 2022194420
(22)【出願日】2022-12-05
(62)【分割の表示】P 2018136063の分割
【原出願日】2018-07-19
【審査請求日】2022-12-05
(73)【特許権者】
【識別番号】000155469
【氏名又は名称】株式会社野村総合研究所
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(74)【代理人】
【識別番号】100076428
【氏名又は名称】大塚 康徳
(74)【代理人】
【識別番号】100115071
【氏名又は名称】大塚 康弘
(74)【代理人】
【識別番号】100112508
【氏名又は名称】高柳 司郎
(74)【代理人】
【識別番号】100116894
【氏名又は名称】木村 秀二
(74)【代理人】
【識別番号】100130409
【氏名又は名称】下山 治
(74)【代理人】
【識別番号】100134175
【氏名又は名称】永川 行光
(74)【代理人】
【識別番号】100177390
【氏名又は名称】大出 純哉
(72)【発明者】
【氏名】田中 達雄
(72)【発明者】
【氏名】須崎 正士
(72)【発明者】
【氏名】新井 克典
(72)【発明者】
【氏名】豊崎 祐一郎
【審査官】山本 俊介
(56)【参考文献】
【文献】特開2015-125472(JP,A)
【文献】中国特許出願公開第106557484(CN,A)
【文献】特開2015-109059(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00- 8/77
G06F 11/00-11/36
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
ウェブページを取得する取得手段と、
取得されたウェブページに対して、該ウェブページに対応する所定の操作を自動的に行う操作手段と、を備える装置であるか、またはその装置とネットワークを介して接続された装置であって、
所定の操作に対応するウェブページに含まれる操作可能なオブジェクトが、以前の該ウェブページに含まれる対応するオブジェクトから変更されているか否かを判定する判定手段と、
前記判定手段においてオブジェクトが変更されていると判定された場合に、変更後のウェブページのコードと該変更後のウェブページのキャプチャとを登録する登録手段と、
前記判定手段においてオブジェクトが変更されていると判定された場合に、前記変更されていると判定されたオブジェクトが関連する要素を強調して表示するように、前記所定の操作を示すスクリプトまたはフローチャートを含む画面をディスプレイに表示させる表示制御手段と、を備え
、
前記表示制御手段は、登録された前記変更後のウェブページのキャプチャと、該キャプチャの登録前に登録された該ウェブページの変更前のキャプチャとを前記画面に表示する装置。
【請求項2】
前記判定手段は、所定の操作に対応するウェブページに含まれるオブジェクトのうち該所定の操作の対象として指定されているオブジェクトが、以前の該ウェブページに含まれる対応するオブジェクトから変更されているか否かを判定する請求項1に記載の装置。
【請求項3】
前記判定手段は、前記操作手段における所定の操作の自動的な実行が失敗した場合に判定を行い、自動的な実行が失敗しなかった場合には判定を行わない請求項1または2に記載の装置。
【請求項4】
前記画面は、変更されていると判定されたオブジェクトについて変更前のオブジェクトと変更後のオブジェクトとを対比可能な態様で含む、請求項1から3のいずれか一項に記載の装置。
【請求項5】
前記表示制御手段は、所定の操作ごとに、該所定の操作の対象となるウェブページを特定可能な情報と、そのウェブページについての前記判定手段における判定の結果と、を対応付けて表示する画面を更にディスプレイに表示させる、請求項1から4のいずれか一項に記載の装置。
【請求項6】
前記画面に表示される情報を、ウェブページまたはウェブページのグループでソートまたはフィルタリングする手段をさらに備える請求項5に記載の装置。
【請求項7】
ロボティック・プロセス・オートメーションにおいて操作対象となっているウェブページが、以前のものから変更されているか否かを判定する機能と、
前記判定する機能においてオブジェクトが変更されていると判定された場合に、変更後のウェブページのコードと該変更後のウェブページのキャプチャとを登録する機能と、
前記判定する機能においてオブジェクトが変更されていると判定された場合に、前記判定された変更箇所が関連する要素を強調して表示するように、前記ロボティック・プロセス・オートメーションにおける操作を示すスクリプトまたはフローチャートを含む画面をディスプレイに表示させる機能と、をコンピュータに実現させ
、
前記表示させる機能は、登録された前記変更後のウェブページのキャプチャと、該キャプチャの登録前に登録された該ウェブページの変更前のキャプチャとを前記画面に表示させる、ためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボティック・プロセス・オートメーションに係る装置およびコンピュータプログラムに関する。
【背景技術】
【0002】
近年、人間が行う操作を記録して再現する、いわば業務をロボット化(自動化)するソフトウエアであるRPA(Robotic Process Automation、ロボティック・プロセス・オートメーション)が注目されている(例えば、非特許文献1、2、3参照)。一般に、RPAでは、予めオペレータが対象のリソースと操作内容とを規定し、ソフトウエアが規定された内容にしたがって自動的に操作を実行する。
【先行技術文献】
【非特許文献】
【0003】
【文献】https://www.nri.com/jp/journal/2017/11/20171101/、2018年6月14日検索
【文献】http://www.nttdata.com/jp/ja/lineup/winactor/index.html、2018年6月14日検索
【文献】https://www.uipath.com/automate/robotic-process-automation、2018年6月14日検索
【発明の概要】
【発明が解決しようとする課題】
【0004】
RPAではソフトウエア(機械)が操作を実行するので、操作対象のオブジェクトを正確に指定する必要がある。したがって、例えばウェブページのレイアウトが変更になっただけでも操作を実行できずエラーとなることがある。
【0005】
デスクトップのアプリケーションはソフトウエア提供側がソフトウエアのアップデートを行ったとしても、ユーザが意図してインストールしなければアップデートされない。したがって、基本的にはユーザはアップデートによりUI(User Interface)等に変更が生じうることを把握することができる。ただし、アップデートの内容を気にしないユーザも一定数はいる。
【0006】
一方、ウェブアプリケーションについては、ASP(Application Service Provider)側がアプリケーションをアップデートすると、ユーザのブラウザはそのアップデートされたアプリケーションを実行する他なく、アップデート前のアプリケーションを使用することはできない。また、ウェブアプリケーションのアップデートはユーザ側の更新無しに可能であるため、UI及び挙動の変化が少ない場合、ユーザは気付くことなく、使用することになる。
【0007】
したがって、RPAでウェブアプリケーションを操作対象としていて、主にUIのオブジェクトの変更がある場合には、対象の操作実行が適切に動作しないことがある。ユーザはRPAの操作実行が適切に実行されないことで、その更新に気づき、それに応じた操作設定を余儀なくされている。RPAの操作対象となっているデスクトップのアプリケーションをアップデートしたがその内容を確認していない場合も同様の不都合が生じうる。
【0008】
本発明はこうした課題に鑑みてなされたものであり、その目的は、RPAの運用において、リソースの変更に伴うユーザの負担を軽減できる技術の提供にある。
【課題を解決するための手段】
【0009】
本発明のある態様は、装置に関する。この装置は、ウェブページを取得する取得手段と、取得されたウェブページに対して、該ウェブページに対応する所定の操作を自動的に行う操作手段と、を備える装置であるか、またはその装置とネットワークを介して接続された装置であって、所定の操作に対応するウェブページに含まれる操作可能なオブジェクトが、以前の該ウェブページに含まれる対応するオブジェクトから変更されているか否かを判定する判定手段と、前記判定手段においてオブジェクトが変更されていると判定された場合に、変更後のウェブページのコードと該変更後のウェブページのキャプチャとを登録する登録手段と、前記判定手段においてオブジェクトが変更されていると判定された場合に、前記変更されていると判定されたオブジェクトが関連する要素を強調して表示するように、前記所定の操作を示すスクリプトまたはフローチャートを含む画面をディスプレイに表示させる表示制御手段と、を備え、前記表示制御手段は、登録された前記変更後のウェブページのキャプチャと、該キャプチャの登録前に登録された該ウェブページの変更前のキャプチャとを前記画面に表示する。
【0010】
本発明の別の態様は、コンピュータプログラムである。このコンピュータプログラムは、ロボティック・プロセス・オートメーションにおいて操作対象となっているウェブページが、以前のものから変更されているか否かを判定する機能と、前記判定する機能においてオブジェクトが変更されていると判定された場合に、変更後のウェブページのコードと該変更後のウェブページのキャプチャとを登録する機能と、前記判定する機能においてオブジェクトが変更されていると判定された場合に、前記判定された変更箇所が関連する要素を強調して表示するように、前記ロボティック・プロセス・オートメーションにおける操作を示すスクリプトまたはフローチャートを含む画面をディスプレイに表示させる機能と、をコンピュータに実現させ、前記表示させる機能は、登録された前記変更後のウェブページのキャプチャと、該キャプチャの登録前に登録された該ウェブページの変更前のキャプチャとを前記画面に表示させる。
【0011】
なお、以上の構成要素の任意の組み合わせや、本発明の構成要素や表現を装置、方法、システム、コンピュータプログラム、コンピュータプログラムを格納した記録媒体などの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【0012】
本発明によれば、RPAの運用において、リソースの変更に伴うユーザの負担を軽減できる。
【図面の簡単な説明】
【0013】
【
図1】実施の形態に係るRPAシステムの構成を示す模式図である。
【
図2】
図1のRPAサーバのハードウエア構成図である。
【
図3】
図1のRPAサーバの機能および構成を示すブロック図である。
【
図4】
図3の操作内容保持部の一例を示すデータ構造図である。
【
図5】
図3の操作結果保持部の一例を示すデータ構造図である。
【
図6】
図3の変更ログ保持部の一例を示すデータ構造図である。
【
図7】
図1のRPAサーバにおけるエラー発生時の変更判定処理の流れを示すフローチャートである。
【
図8】オブジェクトの変更によりエラーが発生した変更後ウェブページの代表画面図である。
【
図9】変更が行われる前の変更前ウェブページの代表画面図である。
【
図11】
図1のRPAサーバにおける定期的な変更判定処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0014】
以下、各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。また、各図面において説明上重要ではない部材の一部は省略して表示する。
【0015】
図1は、実施の形態に係るRPAシステム2の構成を示す模式図である。RPAシステム2は、RPAサーバ4と、ユーザ端末8と、操作実行サーバ10と、を備える。RPAサーバ4とユーザ端末8と操作実行サーバ10とはインターネットなどのネットワーク6を介して通信可能に接続されている。RPAサーバ4は、ユーザが予め設定した操作の内容を保持する操作内容保持部42を備え、操作内容保持部42に規定される操作を操作実行サーバ10またはユーザ端末8に自動的に実行させる。あるいはまた、RPAサーバ4は自ら操作を自動的に実行してもよい。どのサーバが操作を実行するかは、操作内容保持部42に保持される設定による。ユーザ端末8は、ユーザが用いる端末であり、例えばデスクトップPC、ラップトップPC、携帯端末などであってもよい。
【0016】
RPAサーバ4は、操作内容保持部42に規定される操作を実行してまたは実行させてエラーが発生した場合、エラーが生じた操作の対象となっているウェブページなどのリソースを取得して解析することで、リソースに対する変更の有無を判定する。変更の有無の判定は、ユーザが操作を設定したときのリソースなどの以前のリソースと、現在取得されたリソースと、を比較することで行われる。あるいはまた、変更の有無の判定は、エラーが生じた箇所やオブジェクトを、変更された箇所やオブジェクトとして認識することで行われてもよい。RPAサーバ4は、リソースに対する変更の有無または変更された箇所もしくはその両方を、ネットワーク6およびディスプレイ100を介してユーザに通知する。なお、エラーの発生を待たずに、変更の有無について操作内容保持部42に登録されているリソースを周期的に検査してもよい。
【0017】
本実施の形態では、ユーザがユーザ端末8に情報を入力し、ユーザ端末8が該情報をネットワーク6を介してRPAサーバ4に送信し、RPAサーバ4が該情報を処理し、処理結果をネットワーク6を介してユーザ端末8に返し、ユーザ端末8が処理結果を表示する、いわゆるASPを想定する。しかしながら、本実施の形態の技術的思想は、ユーザ端末8や操作実行サーバ10などのスタンドアローンの端末にRPA機能、エラー対応機能および変更判定機能のうちの少なくとも一部を実装し、ユーザがその端末に情報を入力し、処理結果を得る場合など、ASP以外のシステムにも適用可能である。
【0018】
図2は、
図1のRPAサーバ4のハードウエア構成図である。ユーザ端末8および操作実行サーバ10は
図2に記載のハードウエア構成と同様のハードウエア構成を有してもよい。RPAサーバ4は、メモリ130と、プロセッサ132と、通信インタフェース134と、ディスプレイ136と、入力インタフェース138と、を含む。これらの要素はそれぞれバス140に接続され、バス140を介して互いに通信する。
【0019】
メモリ130は、データやプログラムを記憶するための記憶領域である。データやプログラムは、メモリ130に恒久的に記憶されてもよいし、一時的に記憶されてもよい。特にメモリ130は操作内容保持部42として割り当てられた領域を有する。プロセッサ132は、メモリ130に記憶されているプログラムを実行することにより、RPAサーバ4における各種機能を実現する。通信インタフェース134は、RPAサーバ4の外部との間でデータの送受信を行うためのインタフェースである。例えば、通信インタフェース134はネットワーク6にアクセスするためのインタフェースを含む。ディスプレイ136は、各種情報を表示するためのデバイスであり、例えば、液晶ディスプレイや有機EL(Electroluminescence)ディスプレイなどである。入力インタフェース138は、ユーザからの入力を受け付けるためのデバイスである。入力インタフェース138は、例えば、マウスやキーボードやディスプレイ138上に設けられたタッチパネルを含む。
【0020】
図3は、
図1のRPAサーバ4の機能および構成を示すブロック図である。ここに示す各ブロックは、ハードウエア的には、コンピュータのCPUをはじめとする素子や機械装置で実現でき、ソフトウエア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウエア、ソフトウエアの組合せによっていろいろなかたちで実現できることは、本明細書に触れた当業者には理解されるところである。
【0021】
RPAサーバ4は、操作内容保持部102と、操作結果保持部104と、変更ログ保持部106と、RPA部108と、エラー検出部116と、変更判定部118と、表示制御部122と、操作内容変更部124と、ソート/フィルタリング部126と、を備える。
【0022】
図4は、
図3の操作内容保持部102の一例を示すデータ構造図である。操作内容保持部102は、RPAで実行される操作の内容を保持する。操作内容保持部102は、操作を特定する操作IDと、操作を実行する端末である実行端末(例えば、操作実行サーバ10やRPAサーバ4やユーザ端末8)と、操作対象となるリソースを特定する情報(ウェブページであればURL(Uniform Resource Locator)、端末のアプリケーションであればパス)と、操作内容と、繰り返し設定と、を対応付けて保持する。ここで、
図4において、操作ID、実行端末、操作対象、操作内容、並びに、繰り返し設定に加え、タイトル又は使用者、作成者若しくは変更者のデータ属性を加えることもできる。使用者、作成者若しくは変更者を加える場合には実行端末のデータ属性を削除してもよい。使用者は対象のRPA操作を使用するもので、作成者は対象のRPA操作を作成したもので、変更者は対象のRPA操作を変更したものである。
【0023】
操作内容は、操作対象のリソースに対してどのような操作を行うかを指定する情報である。例えば、操作対象がウェブページであれば、操作内容はウェブページのどのオブジェクトにどのような操作を行うかを指定するコードを含む。したがって操作内容は、操作対象のオブジェクトを特定する情報、例えばIDや位置や属性、を含む。
【0024】
繰り返し設定は、対応する操作をいつ実行するかを指定する情報である。繰り返し設定は、日、週、月、年等の内の決まったタイミングなど、規則的または周期的に操作が実行される状態の指定を可能とすると共に、操作が実行されない状態すなわち非活性化状態の指定(例えば、「障害対応待ち」)をも可能とする。
【0025】
ユーザは操作内容を操作内容保持部102に予め登録する。この登録のための処理やUIは例えば非特許文献1、2、3に記載の技術を用いて実現されてもよい。
【0026】
図5は、
図3の操作結果保持部104の一例を示すデータ構造図である。操作結果保持部104は、RPAで実行された操作の結果を保持する。操作結果保持部104は、操作IDと、実行端末と、操作対象と、直近に実行された操作の実行時刻である前回実行時刻と、直近に実行された操作の結果である前回実行結果と、直近に実行された操作の結果の出力と、操作対象に変更があったか否かを示す情報である変更有無と、変更があった場合にその変更を検出した日にちである変更検出日と、を対応付けて保持する。操作の結果は、操作が正常に実行されエラーが生じなかった場合は「正常」、エラーが生じ操作が実行できなかった場合は「エラー」、となる。
【0027】
図6は、
図3の変更ログ保持部106の一例を示すデータ構造図である。変更ログ保持部106は、操作IDと、操作対象と、ユーザが操作を操作内容保持部102に登録したときの操作対象のコードおよび画面キャプチャデータと、1回目の変更が検出された日にちと、1回目の変更後の操作対象のコードおよび画面キャプチャデータと、2回目の変更が検出された日にちと、2回目の変更後の操作対象のコードおよび画面キャプチャデータと、を対応付けて保持する。3回以上変更が検出された場合はその分エントリに変更検出日、変更後コード、変更後キャプチャが追加される。
図6の例では複数の変更が次々と蓄積される構成となっているが、ユーザが複数変更のうち選択した変更についてその変更を非表示にする構成であってもよい。このように複数変更のうち、問題のない変更を非表示とすることでユーザは問題のある変更のみに集中して変更対応を行うことができる。または、ある変更に対してRPA操作に変更を加える場合には、その変更履歴を保存してもよく、場合によっては変更履歴を用いて一部の変更をキャンセルすることもできる。さらに、その変更履歴を保存する場合に、どの変更に対するRPA操作の変更かを紐づけて保存することもできる。
【0028】
図3に戻り、RPA部108は、操作内容保持部42に規定される操作を操作実行サーバ10またはユーザ端末8に自動的に実行させるか、またはRPAサーバ4自身に実行させるための処理を行う。RPA部108は、ウェブページ取得部110と、操作実行部112と、結果格納部114と、を含む。RPAの処理自体は例えば非特許文献1、2、3に詳述されているので、本明細書では簡単に説明するに留める。
【0029】
ウェブページ取得部110は、操作内容保持部102を参照し、繰り返し設定が現在時刻と合致する操作を特定し、特定された操作の実行端末および対象URLを取得する。ウェブページ取得部110は、取得した対象URLを実行端末に提供することで、実行端末に対象URLで特定されるウェブページを取得させる。実行端末がRPAサーバ4自身であれば、ウェブページ取得部110は対象URLで特定されるウェブページを取得する。
【0030】
操作実行部112は、ウェブページ取得部110により特定された操作の操作内容を操作内容保持部102から取得する。操作実行部112は、取得された操作内容を実行端末に提供することで、実行端末に、操作内容で規定される操作を取得されたウェブページに対して自動的に実行させる。実行端末がRPAサーバ4自身であれば、操作実行部112は、取得された操作内容で規定される操作を取得されたウェブページに対して自動的に実行する。「自動的に」は、ユーザからの指示や入力を必要としない態様であってもよい。取得されたウェブページの変更等が原因で、実行端末または操作実行部112が規定された操作を実行できなかった場合、操作実行部112はエラー信号を生成する。
【0031】
結果格納部114は、ウェブページ取得部110により特定された操作が正常に実行された場合、その結果を操作結果保持部104に格納する。例えば、結果格納部114は、操作結果保持部104において、特定された操作に対応する前回実行時刻、前回実行結果および結果出力を今回の実行の結果で更新する。
【0032】
以下、
図7、
図11のフローチャートを参照して、エラー検出部116、変更判定部118、表示制御部122、操作内容変更部124の機能を説明する。
図7は、RPAサーバ4におけるエラー発生時の変更判定処理の流れを示すフローチャートである。RPA部108は、操作内容保持部102に規定される操作を自動的に実行するか実行させ(S702)、操作結果保持部104に実行結果および実行時刻を登録する(S704)。エラー検出部116は操作の実行時にエラーが発生したか否かを判定する(S706)。エラー検出部116は、操作実行部112によってエラー信号が生成された場合、ウェブページ取得部110により特定された操作の自動的な実行が失敗したと判定する。
【0033】
エラーの発生が検出された場合(S706のY)、変更判定部118は、エラーが発生したウェブページが、以前のものから変更されているか否かを判定し、エラーの発生が検出されない場合(S706のN)、変更判定部118はそのような判定を行わず、処理はステップS702に戻り、新たな操作が自動的に実行される。
【0034】
エラーの発生が検出された場合(S706のY)、操作内容変更部124は、操作内容保持部102において、エラーが発生したウェブページのURLに対応する繰り返し設定を「障害対応待ち」に変更することで、操作を非活性化する(S722)。変更判定部118は、ウェブページ取得部110が取得したか取得させた、エラーが発生したウェブページのコードと、エラーが発生したウェブページのURLに対応して変更ログ保持部106に保持されている最新のコードと、を取得する。例えば、エラーが発生したウェブページに対してこれまで変更が検出されていない場合、変更判定部118はエラーが発生したウェブページの登録時のコードを取得する。エラーが発生したウェブページに対してこれまで二回変更が検出されている場合、変更判定部118はその二回のうち検出日が新しいほうの変更後コードを取得する。
【0035】
変更判定部118は、取得した二つのコードを比較することで(S708)、変更の有無を判定し(S710)、変更がある場合(S710のY)、変更箇所を特定する(S714)。変更判定部118におけるウェブページの変更検出の対象を、操作可能なオブジェクトとしていもよい。この場合、変更判定部118は、エラーが発生したウェブページに含まれる操作可能なオブジェクトが、以前の該ウェブページに含まれる対応するオブジェクトから変更されているか否かを判定する。あるいはまた、変更判定部118におけるウェブページの変更検出の対象を、RPAで操作対象として指定されているオブジェクトとしてもよい。この場合、変更判定部118は、エラーが発生したウェブページに含まれるオブジェクトのうち該ウェブページに対応する所定の操作の対象として指定されているオブジェクトが、以前の該ウェブページに含まれる対応するオブジェクトから変更されているか否かを判定する。
【0036】
図8は、オブジェクトの変更によりエラーが発生した変更後ウェブページ200の代表画面図である。
図9は、変更が行われる前の変更前ウェブページ202の代表画面図である。変更後ウェブページ200、変更前ウェブページ202はいずれも同一のURLで指定され、操作対象として操作内容保持部102に登録されている。
図8、
図9の例では、変更前ウェブページ202のテキストオブジェクト「Tel:」が変更後ウェブページ200ではテキストオブジェクト「連絡先:」に変わっている。また、変更前ウェブページ202のボタンオブジェクト「更新」、「新規登録」が変更後ウェブページ200では削除され、代わりに変更後ウェブページ200ではボタンオブジェクト「登録」が追加されている。また、変更前ウェブページ202と変更後ウェブページ200とでボタンオブジェクト「削除」の位置が変更となっている。
【0037】
操作可能なオブジェクトを変更検出の対象とする場合、変更判定部118は、変更前ウェブページ202の操作可能なオブジェクトとして、四つの入力ボックスオブジェクトと三つのボタンオブジェクト「更新」、「新規登録」、「削除」とを特定する。変更判定部118は、変更後ウェブページ200の操作可能なオブジェクトとして、四つの入力ボックスオブジェクトと二つのボタンオブジェクト「登録」、「削除」とを特定する。
【0038】
変更判定部118は、変更前と変更後とで特定された操作可能なオブジェクト同士を比較し、変更後ウェブページ200の二つのボタンオブジェクト「登録」、「削除」が、変更前ウェブページ202に含まれる対応するオブジェクトから変更されていると判定する。具体的には、変更判定部118は、ボタンオブジェクト「登録」は変更前ウェブページ202に存在せず、したがって新規に追加されたと判定する。変更判定部118は、ボタンオブジェクト「削除」の位置が変更されたと判定する。併せて変更判定部118は、変更前ウェブページ202の三つのボタンオブジェクト「更新」、「新規登録」、「削除」のうち「更新」および「新規登録」が削除されていると判定する。
【0039】
RPAで操作対象として指定されているオブジェクトを変更検出の対象とする場合、変更判定部118は、操作内容保持部102を参照し、エラーが発生した変更後ウェブページ200のURLに対応する操作内容を取得する。変更判定部118は、取得した操作内容を解析し、操作対象として指定されているオブジェクトを特定する。例えば、操作内容が、四つの入力ボックスオブジェクトに情報を入力し、ボタンオブジェクト「削除」をクリックするというものであれば、変更判定部118は、変更後ウェブページ200および変更前ウェブページ202において、四つの入力ボックスオブジェクトおよびボタンオブジェクト「削除」を特定する。
【0040】
変更判定部118は、変更前と変更後とで特定されたオブジェクト同士を比較し、変更後ウェブページ200のボタンオブジェクト「削除」が、変更前ウェブページ202に含まれる対応するオブジェクトから変更されていると判定する。具体的には、変更判定部118は、ボタンオブジェクト「削除」の位置が変更されたと判定する。
【0041】
図7に戻り、ステップS710で変更がないと判定された場合、表示制御部122は、エラーが生じたが変更は検出されなかった旨をユーザに通知する(S712)。例えば表示制御部122は、後述の変更詳細画面204のフローチャート部分のみをディスプレイ100に表示させてもよい。その後、処理はステップS702に戻り、新たな操作が自動的に実行される。
【0042】
ステップS714で変更されたオブジェクトが特定されると、変更判定部118は、操作結果保持部104において、変更が検出されたウェブページに対応する変更有無に「変更有」を登録し、変更検出日を登録する(S718)。変更判定部118は、変更ログ保持部106において、変更が検出されたウェブページに対応するエントリに、変更検出日と変更後コードと変更後キャプチャとを追加する(S720)。表示制御部122は、操作の実行中にエラーが生じ、かつ、対象のウェブページの変更が検出された旨をユーザに通知する(S712)。表示制御部122は、検出された変更の詳細を示す変更詳細画面204を生成し、ネットワーク6を介してユーザ端末8に送信する。ユーザ端末8は、受信した変更詳細画面204をディスプレイ100に表示させる。
図4の別例として、使用者、作成者若しくは変更者を加える例を追加で説明したが、ユーザ端末8で対象RPAの使用者が変更を知覚したものの、その変更に応じて対象RPAの変更を行うことができない場合に、作成者若しくは変更者に対して対象のRPAでその変更を明示した上で変更依頼を本実施形態に係るシステム上で依頼可能としてもよい。
【0043】
図10は、変更詳細画面204の代表画面図である。変更詳細画面204は、変更後のウェブページのイメージを表示する変更後表示領域206と、変更前のウェブページのイメージを表示する変更前表示領域208と、ウェブページに対応する操作のどこでエラーが生じたかを表示するエラー箇所表示領域210と、を有する。変更詳細画面204は、変更前のオブジェクトと変更後のオブジェクトとを対比可能な態様で表示する。特に変更詳細画面204は、変更前のウェブページのイメージと変更後のウェブページのイメージとを並べて一画面内に表示することで、対比を可能としている。
【0044】
図10は
図8、
図9に対応し、特に変更後表示領域206には
図8の変更後ウェブページ200の画面キャプチャが表示され、変更前表示領域208には
図9の変更前ウェブページ202の画面キャプチャが表示される。変更前ウェブページ202の画面キャプチャは、変更ログ保持部106に保持されているキャプチャに基づき生成される。変更前表示領域208において、ステップS714で特定されたオブジェクトが枠212で強調表示される。
【0045】
なお、変更後表示領域206にブラウザを組み込むことで、変更後ウェブページ200の画面キャプチャに代えて、変更後ウェブページ200のURLを指定することで取得される実際の変更後ウェブページ200を表示してもよい。
また、
図10の例では変更前表示領域208において変更に係る部分を強調表示したが、これに代えて、変更後表示領域206において変更に係る部分を強調表示してもよい。あるいはまた、変更後表示領域206、変更前表示領域208の両方において変更に係る部分を強調表示してもよい。その場合、変更後表示領域206と変更前表示領域208とで強調表示の態様を異ならせてもよい。
【0046】
エラー箇所表示領域210は、エラーが発生した操作の操作内容を示すフローチャートを表示する。エラー箇所表示領域210はさらに、ステップS714で特定されたオブジェクトが関係する要素214を強調して表示する。RPAで操作対象として指定されているオブジェクトが変更検出の対象とされる場合、ステップS714で特定されたオブジェクト(=変更されたオブジェクト)が関係する要素214においてエラーが生じている蓋然性が高い。
図10の例では、ボタンオブジェクト「削除」の位置が変更になったことにより、ボタンオブジェクト「削除」のクリックを定義する要素214においてボタンオブジェクト「削除」が見つからず、エラーが発生する。
図10で要素214を強調表示することにより、ユーザはエラーの発生の原因をより素早く容易に特定することができる。なお、フローチャートに代えてまたは加えて、エラーが発生した操作のスクリプトを表示してもよい。
【0047】
図10に示される変更詳細画面204は、変更後表示領域206に表示される変更後ウェブページの画面キャプチャにおいて変更後の適切なオブジェクトを画像上で指定すると、画像認識により適切にそのオブジェクトを認識するよう構成される。
【0048】
一例では、ユーザは、変更後表示領域206と変更前表示領域208とを見比べることで、エラーの原因がボタンオブジェクト「削除」の移動にあると理解する。ユーザは、変更後表示領域206においてボタンオブジェクト「削除」をクリック、範囲指定等により指定する。操作内容変更部124は、ユーザにより指定されたボタンオブジェクト「削除」の位置を取得する。操作内容変更部124は、操作内容保持部102において、エラーが発生した操作の操作内容のうち、ボタンオブジェクト「削除」の位置を取得した新たな位置で更新し、繰り返し設定を「障害対応待ち」から元の値に戻す。
【0049】
別の例では、ユーザは、変更後表示領域206と変更前表示領域208とを見比べることで、エラーの原因がボタンオブジェクト「新規登録」の削除にあると理解する。ユーザは、変更後表示領域206においてボタンオブジェクト「登録」をクリック、範囲指定等により指定する。操作内容変更部124は、ユーザにより指定されたボタンオブジェクト「登録」のIDおよび属性を取得する。操作内容変更部124は、操作内容保持部102において、エラーが発生した操作の操作内容のうち、ボタンオブジェクト「新規登録」のIDおよび属性を、新たに取得したボタンオブジェクト「登録」のIDおよび属性に置き換え、繰り返し設定を「障害対応待ち」から元の値に戻す。
【0050】
このように、ユーザは、変更箇所の確認と共に、変更に関連する障害への対応も変更詳細画面204を介して済ませることができる。また、ウェブページ内のオブジェクトを指定することで操作内容を変更するので、コードを直接変更する場合と比較して、より直感的な作業が可能となる。
【0051】
図11は、RPAサーバ4における定期的な変更判定処理の流れを示すフローチャートである。変更判定部118は、操作内容保持部102に保持されるURLのなかから判定対象とするひとつを選択する(S740)。変更判定部118は、選択されたURLにアクセスし、判定対象のウェブページのコードを取得する(S742)。変更判定部118は、判定対象のウェブページのURLに対応して変更ログ保持部106に保持されている最新のコードを取得する。変更判定部118は、取得した二つのコードを比較することで(S744)、変更の有無を判定し(S710)、変更がある場合(S710のY)、変更箇所を特定する(S714)。
【0052】
ステップS710で変更がないと判定された場合、変更判定部118は、操作結果保持部104において、判定対象のウェブページに対応する変更有無に「変更無」を登録する(S748)。その後、処理はステップS740に戻り、新たなURLが判定対象として選択される。
【0053】
ステップS714で変更されたオブジェクトが特定されると、変更判定部118は、判定対象のウェブページに対する次回の操作時にエラーが発生するか否かを判定する(S752)。例えば、変更判定部118は、判定対象のウェブページのURLに対応する操作内容を操作内容保持部102から取得する。変更判定部118は、取得した操作内容に変更されたオブジェクトが含まれる場合、次回の操作時にエラーが発生すると判定する。また、変更判定部118は、変更されたオブジェクトが操作可能なオブジェクトでない場合、次回の操作時にエラーが発生しないと判定する。
【0054】
図8、
図9の例で、変更前ウェブページ202のテキストオブジェクト「Tel:」が変更後ウェブページ200ではテキストオブジェクト「連絡先:」に変わっているだけで、他のオブジェクトに変更がない場合、ステップS714で特定されるオブジェクトはテキストオブジェクト「Tel:」のみである。この場合、変更判定部118は、変更後ウェブページ200に対する次回の操作時にエラーが発生しないと判定する。
【0055】
対して、変更前ウェブページ202のボタンオブジェクト「更新」、「新規登録」が変更後ウェブページ200では削除され、代わりに変更後ウェブページ200ではボタンオブジェクト「登録」が追加されている場合、ステップS714で特定されるオブジェクトはボタンオブジェクト「更新」、「新規登録」、「登録」である。この場合、変更判定部118は、変更後ウェブページ200に対する次回の操作時にエラーが発生すると判定する。
【0056】
ステップS752でエラーが発生すると判定された場合(S752のY)、操作内容変更部124は、操作内容保持部102において、判定対象のウェブページのURLに対応する繰り返し設定を「障害対応待ち」に変更することで、操作を非活性化する(S754)。ステップS752でエラーが発生すると判定されなかった場合(S752のN)またはステップS754の後、表示制御部122は、判定対象のウェブページの変更が検出された旨をユーザに通知する(S756)。表示制御部122は、
図10に示される変更詳細画面204と同様の画面を介して通知を行ってもよい。その後、ステップS718の操作結果保持部104の更新およびステップS720の変更ログ保持部106の更新を経て、処理はステップS740に戻り、新たなURLが判定対象として選択される。
【0057】
表示制御部122は、RPAシステム2の管理者からユーザ端末8を介して要求を受けると、操作内容保持部102および操作結果保持部104に保持されている操作の実行状態を一覧表示するRPA実行管理画面220を生成し、ネットワーク6を介してユーザ端末8に送信する。ユーザ端末8は、受信したRPA実行管理画面220をディスプレイ100に表示させる。
【0058】
図12は、RPA実行管理画面220の代表画面図である。RPA実行管理画面220は、操作内容保持部102に保持される操作ID、実行端末、操作対象、繰り返し設定、および、操作結果保持部104に保持される前回実行時刻、前回実行結果、変更有無および日にち、を対応付けて表形式で表示する。RPA実行管理画面220は、操作IDごとに、その操作IDで特定される操作を実行する端末と、その操作IDで特定される操作の対象となるウェブページのURLと、操作の繰り返し設定と、その操作の最新の実行結果と、そのウェブページについての変更判定部118における変更有無の判定の結果および日にちと、を対応付けて表示する。
【0059】
表示制御部122は、変更有無のセルのいずれかに対する押下を検出すると、対応する操作対象について、
図10に示される変更詳細画面204と同様の画面を生成し、ディスプレイ100に表示させる。表示制御部122は、操作対象のセルのいずれかに対する押下を検出すると、対応する操作対象がウェブページであれば当該ウェブページを取得してディスプレイ100に表示させ、対応する操作対象がソフトウエアであれば当該ソフトウエアを起動する。表示制御部122は、繰り返し設定のセルのいずれかに対する押下を検出すると、対応する操作の繰り返し設定を行う画面(不図示)をディスプレイ100に表示させる。表示制御部122は、前回実行時刻のセルのいずれかまたは前回実行結果のセルのいずれかに対する押下を検出すると、対応する操作のログを操作結果保持部104から取得し、ディスプレイ100に表示させる。
【0060】
ソート/フィルタリング部126は、一番上の行の「変更有無」の見出しセル222に対する押下を検出すると、RPA実行管理画面220に表示される情報を「変更有」、「変更無」の別でソートする。ソート/フィルタリング部126は、一番上の行の「前回実行結果」の見出しセル224に対する押下を検出すると、RPA実行管理画面220に表示される情報を「正常」、「エラー」の別でソートする。ユーザが「変更有無」の見出しセル222、「前回実行結果」の見出しセル224の順に押下すると、まず「変更有」、「変更無」で分けられ、さらに「変更有」のものが「正常」、「エラー」で分けられる。その結果、上から、「変更有」かつ「エラー」の操作、「変更有」かつ「正常」の操作、「変更無」かつ「エラー」の操作、「変更無」かつ「正常」の操作が、この順に並ぶこととなる。
【0061】
ソート/フィルタリング部126は、操作対象のサイト(WWWサーバレベル、ページレベル)別に、RPA実行管理画面220に表示される情報をソートする。ソート/フィルタリング部126は、一番上の行の「操作対象」の見出しセル226に対する押下を検出すると、RPA実行管理画面220に表示される情報を操作対象別にソートする。例えば、ソート/フィルタリング部126は、同じURLを操作対象とする操作を連続した行に表示するようRPA実行管理画面220を再構成する。
【0062】
あるサイトで更新が行われると、それを操作対象とする操作では同様に変更やエラーが生じる。したがって、上記のソートを行うことにより、まとめて障害への対応を行うことができる。これはユーザ利便性の向上に寄与する。
【0063】
なお、ソート/フィルタリング部126は、RPA実行管理画面220に表示される情報をソートする代わりにまたはそれに加えて、フィルタリングを行ってもよい。この場合、ユーザに指定されたキーに合致するエントリ以外は非表示とされる。例えば、ユーザが所望のURLを操作対象のキーとして指定した場合、ソート/フィルタリング部126は当該URLを操作対象とする操作以外の操作のエントリを、RPA実行管理画面220において非表示とする。
【0064】
上述の実施の形態において、保持部の例は、ハードディスクや半導体メモリである。また、本明細書の記載に基づき、各部を、図示しないCPUや、インストールされたアプリケーションプログラムのモジュールや、システムプログラムのモジュールや、ハードディスクから読み出したデータの内容を一時的に記憶する半導体メモリなどにより実現できることは本明細書に触れた当業者には理解される。
【0065】
本実施の形態に係るRPAサーバ4によると、RPAにおいて自動的な操作の対象となっているウェブページが変更されたか否かが判定され、判定結果がユーザに通知される。したがって、ユーザは、操作対象のウェブページの変更に応じて操作内容を書き換えるなど、そのような変更に適切に対処することができる。
【0066】
また、本実施の形態に係るRPAサーバ4では、変更に起因するエラーが生じる前の変更の捕捉が可能となっている。したがって、エラーが生じてからエラーの原因を探して対処する場合と比較して、ユーザはRPAをよりスムーズに運用することができる。
【0067】
また、本実施の形態に係るRPAサーバ4では、変更に起因するエラーが生じた場合でも、エラーの原因となっている変更を特定し、変更詳細画面204を介してユーザに知らせることができる。したがって、より素早く効率的な障害対応が可能となる。
【0068】
以上、実施の形態に係るRPAサーバ4の構成と動作について説明した。この実施の形態は例示であり、各構成要素や各処理の組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解される。
【0069】
実施の形態では、リソースとして主にウェブページなどのネットワークリソースを採用したが、これに限られず、例えば、ユーザ端末8にインストールされるアプリケーションプログラム(ソフトウエア)などの非ネットワークリソースであってもよい。
図4の操作内容保持部102、
図5の操作結果保持部104、
図6の変更ログ保持部106、
図12のRPA実行管理画面220には、操作対象として指定される非ネットワークリソースの例としてexeファイルが記載されている。
【0070】
例えばRPAの対象となっているアプリケーションプログラムを更新することによりUI等が変更されたがユーザがそれに気付かなかった場合、そのままでは次回の自動的操作の実行時にエラーが発生する。ユーザは原因も分からないまま障害への対応を余儀なくされる。これに対して、RPAサーバ4を用いると、RPAサーバ4が当該変更をユーザに知らせることで、ユーザにエラーの原因となった変更箇所を知らせることができ、またはエラーが発生する前に当該変更への対処を促すことができる。
【符号の説明】
【0071】
2 RPAシステム、 4 RPAサーバ、 6 ネットワーク、 8 ユーザ端末、 10 操作実行サーバ。