(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024014066
(43)【公開日】2024-02-01
(54)【発明の名称】制御プログラム、制御方法および制御装置
(51)【国際特許分類】
G06F 11/34 20060101AFI20240125BHJP
G06F 11/07 20060101ALI20240125BHJP
B25J 9/22 20060101ALI20240125BHJP
【FI】
G06F11/34 176
G06F11/34 138
G06F11/07 178
B25J9/22 Z
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022116634
(22)【出願日】2022-07-21
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】古賀 奨
【テーマコード(参考)】
3C707
5B042
【Fターム(参考)】
3C707JS01
3C707JU02
3C707MS15
5B042GB07
5B042KK07
5B042KK14
5B042MA08
5B042MC37
5B042MC38
(57)【要約】
【課題】トラブルの解決にかかる時間を短縮化することを課題とする。
【解決手段】ロボットは、所定の操作を実行し、所定の操作を実行すると、所定の操作による操作対象の撮像および所定の操作により発生する操作データの取得を実行する。ロボットは、撮像された操作対象に関する撮像データおよび取得された操作データを記憶部に保存する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
コンピュータに、
所定の操作を実行し、
前記所定の操作を実行すると、前記所定の操作による操作対象の撮像および前記所定の操作により発生する操作データの取得を実行し、
撮像された前記操作対象に関する撮像データおよび取得された前記操作データを記憶部に保存する、
処理を実行させることを特徴とする制御プログラム。
【請求項2】
前記コンピュータは、RPA(Robotic Process Automation)技術を適用したRPAロボットであり、
前記所定の操作は、前記RPA技術を用いて前記操作対象を操作するRPA操作であり、
前記実行する処理は、外部リソースに対する指定された前記RPA操作を実行し、
前記実行する処理は、前記外部リソースに対する前記RPA操作の過程の撮像、および、前記RPA操作で発生するログ情報の取得を実行し、
前記保存する処理は、前記RPA操作の過程が撮像された撮像データ、および、前記RPA操作のログ情報を前記記憶部に保存する、
ことを特徴とする請求項1に記載の制御プログラム。
【請求項3】
前記実行する処理は、前記RPA操作として前記外部リソースに対するGUI(Graphical User Interface)操作を実行し、
前記実行する処理は、前記GUI操作で発生する各画面の遷移過程の動画と前記遷移過程における各画面の撮像、および、前記ログ情報の取得を実行し、
前記保存する処理は、前記各画面の遷移過程の動画データと前記各画面の画像データを含む前記撮像データ、および、前記ログ情報を前記記憶部に保存する、
ことを特徴とする請求項2に記載の制御プログラム。
【請求項4】
前記実行する処理は、
前記GUI操作中にエラーが発生した場合に、前記GUI操作の操作速度を低下させ、
前記操作速度を低下させた状態で、前記各画面の遷移過程の動画の撮像と前記遷移過程における各画面の撮像を実行する、
ことを特徴とする請求項3に記載の制御プログラム。
【請求項5】
前記実行する処理は、
前記各画面の遷移過程の動画および前記遷移過程における各画面の撮像を開始した開始時刻と、前記GUI操作の開始から前記ログ情報の出力までに要した経過時間とを取得し、
前記保存する処理は、
前記開始時刻に前記経過時間を加算した時刻に基づき、前記GUI操作の操作時刻と前記ログ情報とを関連付ける、
ことを特徴とする請求項4に記載の制御プログラム。
【請求項6】
コンピュータが、
所定の操作を実行し、
前記所定の操作を実行すると、前記所定の操作による操作対象の撮像および前記所定の操作により発生する操作データの取得を実行し、
撮像された前記操作対象に関する撮像データおよび取得された前記操作データを記憶部に保存する、
処理を実行させることを特徴とする制御方法。
【請求項7】
所定の操作を実行し、
前記所定の操作を実行すると、前記所定の操作による操作対象の撮像および前記所定の操作により発生する操作データの取得を実行し、
撮像された前記操作対象に関する撮像データおよび取得された前記操作データを記憶部に保存する、
制御部を有することを特徴とする制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御プログラム、制御方法および制御装置に関する。
【背景技術】
【0002】
RPA(Robotic Process Automation)技術を使用し、人手により実施していた業務を自動化または効率化する業務改善や業務改革が進んでいる。RPAは、RPA用の開発環境を用いてRPAロボット(以下、ロボットと記載する)を生成し、生成したロボットを実行させることにより、予め規定した業務をロボットに代行させる。ロボットの処理を開発環境で開発、動作検証、テストを行った後、実際にユーザの業務を代行させる本番環境に、開発したロボットのプロセスを配備し、ロボットを運用することが一般的である。
【0003】
ロボットの開発会社等は、ロボットの運用者に対して、ロボットの運用および保守の支援サービスを提供している。例えば、開発会社等は、支援サービスとして、顧客のRPAシステムやロボットに対して処理修正、処理追加の実装、バージョンアップを含むメンテナンスやエンハンスを提供する。そして、開発会社等は、トラブルが発生した際に、顧客からメール等でQ&Aを受け付け、顧客内トラブルの解決を支援する。また、開発会社等は、RPA検証環境内でのトラブル事象再現、トラブルの解決手段の調査や検証を行い、トラブル解決に向けた支援も行う。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記支援サービスでは、運用者側のトラブルの認識違い等により、運用者側から提供されるトラブル時の情報に不足や漏れが発生し、トラブル事象を再現することができず、トラブルの解決が長期化することがある。
【0006】
一つの側面では、トラブルの解決にかかる時間を短縮化することができる制御プログラム、制御方法および制御装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
第1の案では、制御プログラムは、コンピュータに、所定の操作を実行し、前記所定の操作を実行すると、前記所定の操作による操作対象の撮像および前記所定の操作により発生する操作データの取得を実行し、撮像された前記操作対象に関する撮像データおよび取得された前記操作データを記憶部に保存する、処理を実行させることを特徴とする。
【発明の効果】
【0008】
一実施形態によれば、トラブルの解決にかかる時間を短縮化することができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施例1にかかるロボット制御システムの全体構成例を説明する図である。
【
図2】
図2は、実施例1にかかるロボット制御システムにおけるエラー対応を説明する図である。
【
図3】
図3は、実施例1にかかるロボットの機能構成を示す機能ブロック図である。
【
図5】
図5は、通知情報管理DBを説明する図である。
【
図6】
図6は、エラー発生時の採取処理を説明する図である。
【
図7】
図7は、実施例1にかかるロボット制御システムが実行する処理の流れを示すフローチャートである。
【
図8】
図8は、実施例2にかかるロボットの機能構成を示す機能ブロック図である。
【
図9】
図9は、操作時刻管理DBを説明する図である。
【
図10】
図10は、実施例2にかかる処理を説明する図である。
【
図11】
図11は、実施例2にかかるロボット制御システムが実行する処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に、本願の開示する制御プログラム、制御方法および制御装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例0011】
(全体構成)
図1は、実施例1にかかるロボット制御システムの全体構成例を説明する図である。
図1に示すように、ロボット制御システムは、RPA(Robotic Process Automation)技術が適用されたロボット50を有し、ロボット50がRPAによる自動操作対象リソース90に関する操作(RPA操作)を自動実行するシステムである。
【0012】
ロボット50は、開発段階で、ロボット開発者により実施例1で説明する機能が実装された制御装置の一例であり、開発完了後に本番環境に配備される。すなわち、ロボット50は、RPAロボットのエージェントアプリケーションがインストールされ、RPA操作を実行する。
【0013】
例えば、ロボット50は、ロボット運用者が使用するコンピュータから、実行リクエスト(命令)を受信し、RPAによる自動操作対象リソース90に関する操作を実行する。例えば、RPAによる自動操作対象リソースとは、Webサイト、社内外サイト、デスクトップアプリケーションなどの予め操作対象として指定されたリソースである。RPAによる自動操作対象リソースに関する操作とは、これらのリソースに対するアクセスや所定情報の検索などを含むモニタリングや定期チェックなどの定期的に行われる操作である。
【0014】
ロボットの開発会社等は、ロボットの運用者に対して、ロボットの運用および保守の支援サービスを提供しているが、運用者側のトラブルの認識違い等により、運用者側から提供されるトラブル時の情報に不足や漏れが発生し、トラブル事象を再現することができず、トラブルの解決が長期化することがある。
【0015】
(参考技術の問題点)
ここで、RPAロボット50の実行時のエラーによりトラブルが発生した場合に、顧客自体が完全に再現手順を把握できていないこともあり、以下の理由により、詳細な再現手順が不明確となることがある。
【0016】
例えば、サービス提供元でトラブル調査を行うにあたり、顧客環境内で発生したトラブル情報や環境情報等を元にトラブルの再現から事象確認と、エラー情報の詳細確認からトラブルの解決方法の検討と、根本原因究明と、解決方法による解決確認と、顧客への解決方法の回答、の手順が行われる。しかし、顧客側からの情報提供が不足している場合や、顧客自体がトラブル発生の再現手順や情報に誤解がある場合は、上記手順を行う前提が崩れてしまう。つまり、顧客側がトラブル情報を正確に採取できない限り、正しいトラブル解決方法の回答ができず、かつ顧客トラブル解決に至らない。トラブル解決が難航するケースでは、顧客自体がトラブルの再現手順を正確に把握できず、サポート側での調査やトラブル再現、解決方法の検討や回答が遅延することが原因となる。
【0017】
このようなことから、近年では、ロボット50の開発や運用環境のサポートを行う状況下において、トラブルの詳細な再現手順を明確化させる手法が要求されている。ところが、トラブルの詳細な再現手順を明確化させる手法を難しくさせる理由として、RPA固有の問題も上げられる。
【0018】
例えば、トラブル事象の再現時において、再現時の考慮事項が「RPAの処理」に閉じていない。つまり、ロボット50の処理や操作の設定が行われたソースコード等の調査がデバッグでは解決できない。ロボット50(RPA)は、外部のシステム、アプリケーション、Webサイト等を直接操作することを前提としたソフトウェアのエージェントアプリケーションである。ロボット50の運用や保守時において発生したトラブルは、そのロボット50が操作対象とする全ての外部システム、アプリケーション、Webサイトの影響を受ける可能性がある。従って、ロボット50の運用および保守時のトラブル解決は、一般的なアプリケーションやシステム等のトラブル解決よりも難航する可能性が高い。
【0019】
ここで、RPA固有の問題点の具体例を説明する。例えば、RPAロボットでシステムAの自動操作を行っているケースを例に挙げる。ここでシステムAの「××ボタン」をクリックする処理について、このクリック処理は特定のブラウザの特定のバージョンであれば動作するが、それ以外のブラウザもしくは他バージョンを使用していると動作しないと仮定する。保守時において、保守者がブラウザを変更ないしバージョンアップすると、システムAの「××ボタン」をクリックする処理が正常稼働せずにエラーが発生する。ここで、保守者はブラウザのバージョンアップが直接的なトラブル影響原因と想定し、解決方法の回答を支援サービス者に連絡するが、「RPA」の支援サービス者は上記システムAの「××ボタン」の仕様についてはこの段階では把握できないため、トラブル解決が難航する。なぜなら、この事象の根本原因は、システムAの構築者ないしは運用者しかわからないためである。
【0020】
(参考技術の改善策)
上記RPA固有の課題を解決する手法として、(1)RPA製品のログ等の情報採取ツールを使用する手法、(2)ロボットの操作対象システムの運用者に問い合わせる手法、(3)トラブルが発生した顧客環境のシステムで再現調査および検証を行う手法が知られている。
【0021】
(1)について、RPA製品では、ロボットやシステムから出力されるログファイル、及びその他の情報採取ツールが提供されている場合がある。この情報採取ツールを使用することにより、ロボットのトラブル発生時の情報採取を円滑かつ自動的に行わせる。
【0022】
(2)について、RPAロボットの操作エラーが発生した対象システムの運用者に仕様を問い合わせし確認するが、システム仕様が公開されている場合、公開情報を調査する。(3)について、実際にトラブルが発生した顧客環境(ロボット動作環境)を直接または間接で使用させてもらい、トラブルの再現調査および検証を行う。
【0023】
ところが、上記(1)、(2)、(3)についても以下の課題がある。(1)についての課題は、RPA製品のログ等の情報採取ツールを使用しても、トラブルの再現手順に関する情報自体は得られないことである。あくまでも、ロボットのログ情報やロボットの動作環境情報のみしか採取できない。
【0024】
(2)についての課題は、顧客がサポートサービス員に問い合わせを行う際に、システムの仕様影響によるトラブル発生と想定しない場合、本対処の実施優先度が下がるため、結果的にトラブル調査が難航することである。また、初期調査の段階では、RPA製品がエラー原因か、システム仕様影響がエラー原因かの判断は顧客には困難であるため、実質初期対処でこの方法を取ることができないことである。
【0025】
(3)についての課題は、トラブル調査において最終的に採用する方法であり、初期調査段階では顧客運用への影響等から実施できないことであり、また、顧客環境固有のトラブル発生要因が生じていることを特定できない限り、顧客運用影響から採用されないことである。
【0026】
上述したように、いずれの手法(1)、(2)、(3)を用いたとしても、上記問題点を端的に解決できず、トラブルの解決にかかる時間を短縮化できるとは言い難い。
【0027】
(実施例1の説明)
上記問題点に対して、実施例1にかかるロボット50は、所定の操作を実行し、所定の操作を実行すると、所定の操作による操作対象の撮像および所定の操作により発生する操作データの取得を実行する。そして、ロボット50は、撮像された操作対象に関する撮像データおよび取得された操作データを記憶部に保存する。
【0028】
図2を用いて具体的に説明する。
図2は、実施例1にかかるロボット制御システムにおけるエラー対応を説明する図である。
図2に示すように、ロボット50は、ロボット運用者の指示操作やスケジュールによる自動実行により、自動化対象90に対する所定の操作を実行する(S1)。
【0029】
そして、ロボット50は、所定の操作が実行されると、所定の操作による操作対象の撮像および所定の操作により発生する操作データの取得を実行する(S2)。例えば、ロボット50は、エラー発生に備えて、ロボット50がWebサイトから検索結果を取得するための一連の操作の動画データを撮像し、Webサイトのキャプチャ画像を撮像し、エラーが発生する前から操作が完了するまでに出力されたログデータを取得し、エラーの発生箇所を示すURL(Uniform Resource Locator)などを採取する。
【0030】
続いて、ロボット50は、撮像された操作対象に関する撮像データおよび採取された操作データを記憶部に保存する(S3)。例えば、ロボット50は、エラーを特定する情報に対応付けて、一連の操作の動画データ、Webサイトのキャプチャ画像し、ログデータを取得し、エラーの発生箇所を示すURLを保存する。
【0031】
その後、ロボット50は、エラーの発生およびエラー情報の採取完了をロボット開発者、ロボット運用者、サポートサービス員などの関係者に通知し、関係者が収集された情報を用いてエラー解析を実行する(S4)。
【0032】
つまり、ロボット50は、RPA操作の実行過程において、エラーが発生した前後の外部リソース90の操作過程情報を自動的に取得することで、エラー発生時のロボットの外部リソース操作履歴及びエラー発生に関与した外部リソース情報を全て採取する。この結果、ロボット50は、トラブル時の情報に不足や漏れを抑制し、トラブル事象の再現を短時間で適切に実行できる情報を提供することで、トラブルの解決にかかる時間を短縮化することができる。
【0033】
(機能構成)
図3は、実施例1にかかるロボット50の機能構成を示す機能ブロック図である。
図3に示すように、ロボット50は、通信部51、出力部52、記憶部53、制御部60を有する。
【0034】
通信部51は、他の装置の間の通信を制御する処理部であり、例えば通信インタフェースなどにより実現される。例えば、通信部51は、ロボット運用者から命令(実行リクエスト)を受信し、関係者に各種情報やエラー通知などを送信する。
【0035】
出力部52は、各種情報を表示出力する処理部である。例えば、出力部52は、ロボット50がRPAによる自動操作対象リソース90に関する操作対象であるWebサイト等を表示する。
【0036】
記憶部53は、各種データや制御部60が実行するプログラムなどを記憶する処理部であり、例えばメモリやハードディスクなどにより実現される。この記憶部53は、操作管理DB54、通知情報管理DB55、採取結果DB56を記憶する。
【0037】
操作管理DB54は、RPA操作に関する情報を記憶するデータベースである。具体的には、操作管理DB54は、GUI操作の内容および操作対象を記憶する。
図4は、操作管理DB54を説明する図である。
図4に示すように、操作管理DB54は、「プロセスID、GUI操作ID、GUI操作処理、GUI詳細情報」を対応付けて記憶する。
【0038】
ここで記憶される「プロセスID」は、プロセスを識別する情報である。「GUI操作ID」は、RPA操作の一例であるGUI操作を識別する情報である。「GUI操作処理」は、GUI操作の処理内容を示す情報である。「GUI詳細情報」は、GUI操作の具体的な処理内容を示す情報である。
図4の例では、プロセスID=1が付与されたGUI操作ID=1のGUI操作は、HTML(Hyper Text Markup Language)アプリの「ch.exe」を実行して「タイトル=test」のWebサイトを表示し、SPANタグで指定される「test1.tag」をRPA操作対象のエレメント(aaname)として選択し、選択した「test1.tag」の「クリック操作」を実行する操作であることが定義されている。
【0039】
なお、操作管理DB54は、
図4に示した情報以外にも、実行頻度などを記憶することもできる。例えば、操作管理DB54は、「プロセスID=1」に対して、「実行頻度=毎日13:00」などをさらに記憶することもできる。つまり、操作管理DB54は、スケジュールにより自動実行のための情報を記憶することもできる。
【0040】
通知情報管理DB55は、エラー発生の通知やエラー情報の取得完了などの通知先を記憶するデータベースである。
図5は、通知情報管理DB55を説明する図である。
図5に示すように、通知情報管理DB55は、「ID、プロセスID、通知先メールアドレス」を対応付けて記憶する。
【0041】
ここで記憶される「ID」は、通知情報管理DB55内のレコードを識別する情報である。「プロセスID」は、プロセスを識別する情報である。「通知先メールアドレス」は、管理者等のメールアドレスである。
図5の例では、プロセスID=1のRPA操作でエラーが発生した場合の通知先が「aaa@xxx.com」であることが定義されている。なお、「通知先メールアドレス」以外にも電話番号やSNS(Social Networking Service)の番号のように、様々な連絡先を採用することができる。
【0042】
採取結果DB56は、RPA操作時に採取された各種データであって、エラーが発生したRPA操作時の採取結果を記憶するデータベースである。例えば、採取結果DB56は、RPA操作またはエラーごとに、ロボット50がWebサイトから検索結果を取得するための一連の操作さ撮像された動画データし、Webサイトのキャプチャ画像、エラーが発生する前から操作が完了するまでに出力されたログデータ、エラーの発生箇所を示すURLなどを記憶する。
【0043】
制御部60は、ロボット50全体を司る処理部であり、例えばプロセッサなどにより実現される。この制御部60は、操作実行部61、エラー検知部62、採取部63、通知部64を有する。なお、操作実行部61、エラー検知部62、採取部63、通知部64は、プロセッサが有する電子回路やプロセッサが実行するプロセスなどにより実現される。
【0044】
操作実行部61は、RPA操作を実行する処理部である。具体的には、操作実行部61は、操作管理DB54に記憶される情報、または、図示しないロボット50を遠隔操作するRPAサーバからの実行リクエストにしたがって、RPA操作として外部リソース90に対するGUI操作を実行する。例えば、操作実行部61は、プロセスID=1の実行リクエストを受信した場合、
図4に示す「クリック操作」を実行する。なお、操作実行部61は、実行結果を記憶部に記憶させたり、予め指定された指定先に通知したりする。
【0045】
エラー検知部62は、RPA操作実行時のエラー発生を検知する処理部である。例えば、エラー検知部62は、RPA操作実行時に、操作対象のリソース90からの応答によりエラーを検知すると、エラー発生を採取部63に通知する。なお、エラー検知部62は、RPA操作実行時に、ロボット50へのログインエラー、ロボット50のメモリ不足、ロボット50のRPA操作の読み取りエラーなどを含むロボット50内のエラーも検知する。すなわち、エラー検知部62は、ロボット50自体のエラー、RPA操作自体のエラー、操作対象のリソース90側のエラーなどエラー種別に関係なく検知する。
【0046】
採取部63は、RPA操作実行中に、外部リソース90に対するRPA操作の過程の撮像、および、RPA操作で発生するログ情報の取得を実行する処理部である。例えば、採取部63は、GUI操作で発生する各画面の遷移過程の動画と遷移過程における各画面の撮像、および、ログ情報の取得を実行する。そして、採取部63は、エラー検知部62によりエラー発生が検知され後、RPA操作が終了すると、動画の撮像や画像の撮像を終了し、採取された各データを採取結果DB56に格納する。なお、採取部63は、RPA操作がエラー検知部62によりエラー発生が検知されずに正常終了した場合、動画の撮像や画像の撮像を終了し、採取された各データを削除する。
【0047】
図6は、エラー発生時の採取処理を説明する図である。
図6に示すように、時刻T0で、操作実行部61がWebサイトAにアクセスし、時刻T1で、操作実行部61がクリック操作(RPA操作)を実行する。そして、時刻T2で、エラー検知部62によりエラーが検出され、その後の時刻T7まで操作実行部61によりダブルクリック操作(RPA操作)が実行される。
【0048】
この場合、採取部63は、RPA操作の開始と同時に、動画を撮像するカメラを起動し、エラー発生後のGUI操作で発生する各画面の遷移過程の動画データを採取する。例えば、採取部63は、時刻T1のクリック操作から、エラー発生後の時刻T2を含むRPA操作が終了する時刻T7までに実行される一連の操作および表示画面を含む動画を撮像して動画データを採取する(
図6の(a)参照)。
【0049】
また、採取部63は、画像を撮像するカメラを起動し、PRA操作開始後の各GUI操作で発生する各画面の画像データを採取する。例えば、採取部63は、時刻T1のクリック操作の画面、時刻T3で出力されるエラー画面B、時刻T4でダブルクリック操作後の時刻T5で出力されるエラー画面C、時刻T6で操作実行部61がRPA操作を終了した後の時刻T7で出力される終了画面Dを撮像して画像データを採取する。
【0050】
また、採取部63は、時刻T2のエラー発生に伴い出力されるログA2、時刻T3のエラー画面Bの表示に伴い出力されるログA3、時刻T4のダブルクリック操作に伴い出力されるログA4、リトライ後の時刻T5のエラー画面Cの表示に伴い出力されるログA5、時刻T6のRPA操作終了に伴い出力されるログA6、時刻T7の終了画面の出力に伴い出力されるログA7を採取する。さらに、採取部63は、エラー発生の起点となったRPA操作(クリック操作)実行に伴い時刻T1で出力されたログA1も採取する。
【0051】
すなわち、採取部63は、RPA固有要因として、単純に「RPAのロボットエージェント、及びその上で動作するプロセス」の処理過程情報を採取するわけではなく、RPAが外部リソース90の操作を実施するがゆえに、内部アプリケーションのログおよび内部アプリケーション以外のログ情報も取得する。そして、採取部63は、採取された各データを採取結果DB56に格納し、採取が完了したことを通知部64に通知する。
【0052】
ここで、RPA操作の動画撮像について更なる工夫について説明する。ロボット50に対して、特定システムにブラウザでアクセスしてログインし、特定の画面遷移を経て、特定のデータ登録処理を行う操作を自動化させた場合に、動画の撮像だけでは画面遷移速度が速すぎる場合や画像撮像では局所的な情報採取にしかなりかねない場合がある。例えば、RPAでは数ミリ秒単位でのシステム操作が可能であるため、動画撮像による画面確認や記録が追い付かないケースがある。したがって、動画データやキャプチャ画像データの採取だけでは採取しきれない情報を、トラブル時の情報採取時に限り実行可能な採取ツールを具現化する要求される。また、開発環境上でデバッガを使用して動作確認する手法も存在するが、運用環境上での動作方法でなければエラーを再現できないケースもあり、適切な手法とは言い難い。
【0053】
そこで、実施例1にかかるロボット50の採取部63は、GUI操作中にエラーが発生した場合に、GUI操作の操作速度を低下させ、操作速度を低下させた状態で、各画面の遷移過程の動画の撮像と遷移過程における各画面の撮像を実行する。
【0054】
具体的には、採取部63は、動画の撮像に際し、撮像時に画面遷移が高速すぎるがゆえに操作過程情報の確認が行えないケースを鑑み、ロボット50の実行モードを切り替え、画面遷移操作を目視確認可能なレベルにスローダウンさせる処理を実行する。処理の切り替えは、外部引数により指定可能とする。例えば、ロボット50は、デバッグモードで実行させるために、外部引数により処理の切り替えを実現する。同様に、採取部63は、通常は採取しないログも上記デバッグモードでの実行時のみ採取する方式を取ることにより、通常のロボット50の実行時は不要なログ出力や処理速度低下を防ぎつつ、トラブル調査時の情報確認を容易化させる。
【0055】
通知部64は、各種情報をRPAの関係者に通知する処理部である。具体的には、通知部64は、プロセスID=1のGUI操作でエラーが発生した場合、
図5にしたがって「aaa@xxx.com」にエラー情報等が送信される。例えば、通知部64は、エラー検知部62によりエラーが検知されると、エラーが発生したことをロボット開発者、ロボット運用者、サポートサービス員などの関係者に通知する。また、通知部64は、採取部63によるエラー情報の採取が完了すると、採取完了を示す通知または採取された各種データをロボット開発者、ロボット運用者、サポートサービス員などの関係者に通知する。
【0056】
(処理の流れ)
図7は、実施例1にかかるロボット制御システムが実行する処理の流れを示すフローチャートである。
図7に示すように、ロボット50の操作実行部61は、実行リクエストを受信すると(S101)、実行リクエストにトラブル情報採取処理用の外部引数が設定されているか否かを判定する(S102)。なお、トラブル情報採取処理用の外部引数は、実行リクエストではなく、操作管理DB54にプロセスIDに対応付けて記憶されていてもよい。
【0057】
ここで、操作実行部61は、実行リクエストにトラブル情報採取処理用の外部引数が設定されていない場合(S102:No)、通常のロボット操作(RPA操作)を実行する(S103)。
【0058】
一方、操作実行部61は、実行リクエストにトラブル情報採取処理用の外部引数が設定されている場合(S102:Yes)、通常のロボット操作を実行し、エラー処理を実行する(S104)。具体的には、エラー検知部62は、GUI操作の開始と同時に、GUI操作で発生する各画面の遷移過程の動画データの採取、遷移過程における各画面の画面データの採取、および、ログ情報の取得を実行する。
【0059】
その後、エラー検知部62がエラー発生を検知し、RPA操作が終了すると(S105:Yes)、採取部63は、エラー処理を終了する(S106)。具体的には、エラー検知部62は、GUI操作で発生する各画面の遷移過程の動画データの採取、遷移過程における各画面の画面データの採取、および、ログ情報の取得を終了する。
【0060】
そして、採取部63は、エラー処理で得られた各種データを採取結果DB56に保存する(S107)。また、通知部64は、採取された各種データを関係者に通知する(S108)。
【0061】
(効果)
上述したように、ロボット50は、運用中に実行エラーなどのトラブルが発生した場合、外部引数を設定した上でエラー処理を実行する。例えば、ロボット50は、画面操作処理部分のスローダウン、操作過程の画面キャプチャの撮像、ロボット起動中の動画撮像、操作証跡を示すログを採取する。したがって、ロボット50は、通常運用時のロボット50の処理速度やログ出力量を変更することなく、エラー調査時のみエラー調査に必要となるロボット50の外部リソース操作の過程の情報を採取することができる。この結果、ロボット50は、トラブル時の情報に不足や漏れを抑制し、トラブル事象の再現を短時間で適切に実行できる情報を提供することで、トラブルの解決にかかる時間を短縮化することができる。
【0062】
また、ロボット50は、採取されたエラー情報を、ロボット実行者、ロボット運用者、サポートサービス員などの関係者にメール等で通知する。この結果、ロボット50は、エラー情報を遅滞なく通知することができ、トラブルの解決にかかる時間の更なる短縮化を実現することができる。
ところで、エラー発生時刻と、スローダウン後の操作の録画開始時刻とは、別々に管理されることから、複数のエラーが短時間で発生した場合など、動画データとエラー処理との対応付けが煩雑になることがある。
そこで、実施例2では、ロボット50が、動画撮像の開始時刻を別途管理し、ロボット50によるGUI操作のスローダウン処理開始後のGUI操作のログ出力時刻と動画データ内のGUI操作の時刻との紐づけを実行する。
例えば、ログは、通常、特定の標準時刻に沿って日時が出力されるが、採取部63は、動画撮像の開始時刻、及び撮像時刻からの経過時間を別途管理し、動画撮像の開始時刻から経過時間を加算する。これにより、動画データ内の特定のGUI操作がどの操作ログと紐づいているかを判断可能とさせる。また、ログ情報には、GUI操作の処理情報、操作機能情報、ロボット50のソース情報と対象のログが紐づけ可能な情報を出力させる。
上記により、動画データの再生中の特定の再生時間と、ログの時刻とを比較することにより、動画データ内の画面操作がログのどの出力結果(操作ログ)と紐づいているかを判定可能とさせる。例えば、繰り返し同一画面を操作する処理の実行時に、どの操作ログがどのタイミングの動画内の画面操作と紐づいているか判断が難しい場合に特に有効である。
その後、動画データ内の時刻表記で「01:00」に特定のGUI操作Aが実施され、ログが出力されたとする。この場合、採取部63は、ログの実際の出力時刻「2022/1/1 12:01:00」と、動画撮像の開始時刻「2022/1/1 12:00:00」に動画データ内の経過時刻「01:00」を加算した時刻とを一致させて管理することができる。
さらにその後、動画データ内の時刻表記で「01:00」にエラーが発生し、ログが出力されたとする。この場合、採取部63は、ログの実際の出力時刻「2022/1/1 12:03:00」と、動画撮像の開始時刻「2022/1/1 12:00:00」に動画データ内の経過時刻「03:00」を加算した時刻とを一致させて管理する。これらの結果、採取部63は、動画データ内の時刻とログの紐づけ(実際時刻情報から関連付け)が可能となる。
ここで、操作実行部61は、実行リクエストにトラブル情報採取処理用の外部引数が設定されていない場合(S202:No)、通常のロボット操作を実行する(S203)。
一方、操作実行部61は、実行リクエストにトラブル情報採取処理用の外部引数が設定されている場合(S202:Yes)、通常のロボット操作を実行し、エラー処理を実行する(S204)。
その後、エラー検知部62がエラー発生し、RPA操作が終了すると(S205:Yes)、採取部63は、エラー処理を終了する(S206)。続いて、採取部63は、各種データを採取結果DB56に保存し(S207)、ログ出力時刻と動画撮像の開始時刻からの経過時間情報とを元に、動画データの時刻とログ情報の出力時刻との紐づけを実行する(S208)。また、通知部64は、採取された各種データを関係者に通知する(S209)。
上述したように、実施例2にかかるロボット50は、動画撮像の開始時刻を別途管理し、ロボット50によるGUI操作のスローダウン処理開始後のGUI操作のログ出力時刻と動画データ内のGUI操作の時刻との紐づけを実行することができる。この結果、ロボット50は、複数のエラーが短時間で発生した場合であっても、動画データとエラー処理とを容易に対応付けることができるので、関係者の負担を軽減し、トラブル解決にかかる時間の短縮化に貢献できる。