IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社オービックの特許一覧

特許7633127RPA管理装置、RPA管理方法、および、RPA管理プログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-10
(45)【発行日】2025-02-19
(54)【発明の名称】RPA管理装置、RPA管理方法、および、RPA管理プログラム
(51)【国際特許分類】
   G06Q 10/00 20230101AFI20250212BHJP
【FI】
G06Q10/00
【請求項の数】 10
(21)【出願番号】P 2021140633
(22)【出願日】2021-08-31
(65)【公開番号】P2023034403
(43)【公開日】2023-03-13
【審査請求日】2023-12-19
(73)【特許権者】
【識別番号】398040527
【氏名又は名称】株式会社オービック
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】河合 優佑
(72)【発明者】
【氏名】矢野 雅之
(72)【発明者】
【氏名】廣木 健人
(72)【発明者】
【氏名】上野 剛光
【審査官】牧 裕子
(56)【参考文献】
【文献】特開2021-039433(JP,A)
【文献】特開2005-173643(JP,A)
【文献】特開2015-049550(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 - 99/00
(57)【特許請求の範囲】
【請求項1】
記憶部と制御部とを備えたRPA管理装置であって、
前記記憶部は、
RPAにて実行されるRPAフローのフロー定義を設定した定義マスタと、
前記RPAフローの実行状況を設定した実行状況テーブルと、
前記RPAフローにおける操作対象アプリケーションを実行するRPAロボットの状態を特定するロボットプロセスIDを設定したロボットプロセス管理テーブルと、
を備え、
前記制御部は、
前記RPAロボットと、
前記RPAロボットの起動制御を含む前記RPAフローに定義された各タスクを実行し、前記実行状況テーブルを更新するフロー実行部と、
前記実行状況テーブルに設定された前記RPAフローの前記実行状況をチェックし、前記RPAフローの実行制御を行うエージェントと、
前記実行状況を表示させる実行状況モニタと、
を備え、
前記実行状況モニタは、
ユーザにより前記RPAフローの即時停止指示が入力された場合、前記実行状況テーブルに設定された前記実行状況を即時停止中に更新し、
前記エージェントは、
前記実行状況が前記即時停止中であると検出した場合、前記RPAロボットによるプロセスを強制終了させ、
前記フロー実行部は、
対象プロセスが終了するまで待機し、
前記エージェントは、
前記対象プロセスを終了させた後、前記ロボットプロセス管理テーブルに設定された前記ロボットプロセスIDをNULLに書き換え、
前記フロー実行部は、
前記RPAフローにトライキャッチの例外処理が含まれ、且つ、トライブロック内処理実行中に前記実行状況が前記即時停止中であると検出した場合、キャッチブロック内処理実行後に、前記RPAフローのフロー終了処理を実行することを特徴とするRPA管理装置。
【請求項2】
前記フロー実行部は、
前記RPAフローに複数の前記トライキャッチの例外処理が含まれ、且つ、前記トライブロック内処理実行中に前記実行状況が前記即時停止中であると検出した場合、当該トライブロック内処理を含む前記トライキャッチの例外処理の階層関係を特定し、当該階層関係の最下位の前記トライキャッチの例外処理から最上位の前記トライキャッチの例外処理に順番に前記キャッチブロック内処理実行後に、前記RPAフローのフロー終了処理を実行することを特徴とする請求項に記載のRPA管理装置。
【請求項3】
前記フロー実行部は、
前記RPAフローに前記トライキャッチの例外処理が含まれず、且つ、前記実行状況が前記即時停止中であると検出した場合、前記RPAフローのフロー終了処理を実行することを特徴とする請求項1に記載のRPA管理装置。
【請求項4】
前記実行状況モニタは、
前記ユーザにより前記RPAフローの安全停止指示が入力された場合、前記実行状況テーブルに設定された前記実行状況を安全停止中に更新し、
前記フロー実行部は、
前記実行状況が前記安全停止中であると検出した場合、前記RPAフローに含まれるループ処理の開始タイミングで、前記ループ処理を終了させ、前記RPAフローのフロー終了処理を実行することを特徴とする請求項1に記載のRPA管理装置。
【請求項5】
前記記憶部は、
前記ユーザによる前記RPAフローに対する即時停止権限を設定したフローセキュリティマスタ、
を更に備え、
前記実行状況モニタは、
前記ユーザにより前記RPAフローの前記即時停止指示が入力され、且つ、前記フローセキュリティマスタに当該ユーザの前記即時停止権限が設定されている場合、前記実行状況テーブルに設定された前記実行状況を前記即時停止中に更新することを特徴とする請求項1からのいずれか一つに記載のRPA管理装置。
【請求項6】
前記記憶部は、
前記ユーザによる前記RPAフローに対する安全停止権限を設定したフローセキュリティマスタ、
を更に備え、
前記実行状況モニタは、
前記ユーザにより前記RPAフローの前記安全停止指示が入力され、且つ、前記フローセキュリティマスタに当該ユーザの前記安全停止権限が設定されている場合、前記実行状況テーブルに設定された前記実行状況を前記安全停止中に更新することを特徴とする請求項に記載のRPA管理装置。
【請求項7】
前記記憶部は、
前記ユーザによる前記RPAフローに対する実行権限を設定したフローセキュリティマスタ、
を更に備え、
前記制御部は、
実行指示画面を表示させ、前記ユーザにより前記RPAフローの実行指示が入力され、且つ、前記フローセキュリティマスタに当該ユーザの前記実行権限が設定されている場合、前記実行状況テーブルに設定された前記実行状況を実行待機中に更新する実行指示手段、
を更に備え、
前記エージェントは、
前記実行状況テーブルに設定された前記RPAフローの前記実行状況をチェックし、前記実行状況が前記実行待機中であると検出した場合、前記RPAフローの開始を実行制御することを特徴とする請求項1からのいずれか一つに記載のRPA管理装置。
【請求項8】
前記記憶部は、
前記ユーザが管理者であることを示す管理者フラグを設定したユーザグループ管理マスタ、
を更に備え、
前記制御部は、
前記ユーザグループ管理マスタに基づいて、前記ユーザが前記管理者である場合、入力系フローである前記RPAフローに対する当該ユーザによる前記即時停止権限を前記フローセキュリティマスタに設定するマスタ設定手段、
を更に備えたことを特徴とする請求項に記載のRPA管理装置。
【請求項9】
記憶部と制御部とを備えたRPA管理装置に実行させるためのRPA管理方法であって、
前記記憶部は、
RPAにて実行されるRPAフローのフロー定義を設定した定義マスタと、
前記RPAフローの実行状況を設定した実行状況テーブルと、
前記RPAフローにおける操作対象アプリケーションを実行するRPAロボットの状態を特定するロボットプロセスIDを設定したロボットプロセス管理テーブルと、
を備え、
前記制御部は、
前記RPAロボットと、
前記RPAロボットの起動制御を含む前記RPAフローに定義された各タスクを実行し、前記実行状況テーブルを更新するフロー実行部と、
前記実行状況テーブルに設定された前記RPAフローの前記実行状況をチェックし、前記RPAフローの実行制御を行うエージェントと、
前記実行状況を表示させる実行状況モニタと、
を備え、
前記実行状況モニタにおいて実行さる、
ユーザにより前記RPAフローの即時停止指示が入力された場合、前記実行状況テーブルに設定された前記実行状況を即時停止中に更新するステップと、
前記エージェントにおいて実行さる、
前記実行状況が前記即時停止中であると検出した場合、前記RPAロボットによるプロセスを強制終了させるステップと、
前記フロー実行部において実行さる、
対象プロセスが終了するまで待機するステップと、
前記エージェントにおいて実行される、
前記対象プロセスを終了させた後、前記ロボットプロセス管理テーブルに設定された前記ロボットプロセスIDをNULLに書き換えるステップと、
前記フロー実行部において実行される、
前記RPAフローにトライキャッチの例外処理が含まれ、且つ、トライブロック内処理実行中に前記実行状況が前記即時停止中であると検出した場合、キャッチブロック内処理実行後に、前記RPAフローのフロー終了処理を実行するステップと、
を含むことを特徴とするRPA管理方法。
【請求項10】
記憶部と制御部とを備えたRPA管理装置に実行させるためのRPA管理プログラムであって、
前記記憶部は、
RPAにて実行されるRPAフローのフロー定義を設定した定義マスタと、
前記RPAフローの実行状況を設定した実行状況テーブルと、
前記RPAフローにおける操作対象アプリケーションを実行するRPAロボットの状態を特定するロボットプロセスIDを設定したロボットプロセス管理テーブルと、
を備え、
前記制御部は、
前記RPAロボットと、
前記RPAロボットの起動制御を含む前記RPAフローに定義された各タスクを実行し、前記実行状況テーブルを更新するフロー実行部と、
前記実行状況テーブルに設定された前記RPAフローの前記実行状況をチェックし、前記RPAフローの実行制御を行うエージェントと、
前記実行状況を表示させる実行状況モニタと、
を備え、
前記実行状況モニタにおいて
ユーザにより前記RPAフローの即時停止指示が入力された場合、前記実行状況テーブルに設定された前記実行状況を即時停止中に更新するステップ
を実行させ
前記エージェントにおいて
前記実行状況が前記即時停止中であると検出した場合、前記RPAロボットによるプロセスを強制終了させるステップ
を実行させ
前記フロー実行部において
対象プロセスが終了するまで待機するステップ、
を実行させ、
前記エージェントにおいて、
前記対象プロセスを終了させた後、前記ロボットプロセス管理テーブルに設定された前記ロボットプロセスIDをNULLに書き換えるステップ、
を実行させ、
前記フロー実行部において、
前記RPAフローにトライキャッチの例外処理が含まれ、且つ、トライブロック内処理実行中に前記実行状況が前記即時停止中であると検出した場合、キャッチブロック内処理実行後に、前記RPAフローのフロー終了処理を実行するステップ、
を実行させるためのRPA管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、RPA管理装置、RPA管理方法、および、RPA管理プログラムに関する。
【背景技術】
【0002】
特許文献1には、RPA(Robotic Process Automation:ロボティックプロセスオートメーション)により実行されるスクリプトの実行状況を監視し、スクリプト開始から終了迄のエラーを収集・提示する構成が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2021-56763号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1記載の発明においては、RPAによるスクリプト実行途中に、RPAを即時停止(強制終了)させた場合、停止後のリカバリ作業が困難になってしまうという課題があった。
【0005】
本発明は、上記問題点に鑑みてなされたものであって、RPAフロー開始後、ユーザによる即時停止指示に応じて、リカバリ容易に即時停止可能とするRPA管理装置、RPA管理方法、および、RPA管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するために、本発明に係るRPA管理装置は、記憶部と制御部とを備えたRPA管理装置であって、前記記憶部は、RPAにて実行されるRPAフローのフロー定義を設定した定義マスタと、前記RPAフローの実行状況を設定した実行状況テーブルと、を備え、前記制御部は、操作対象アプリケーションを実行するRPAロボットと、前記RPAロボットの起動制御を含む前記RPAフローに定義された各タスクを実行し、前記実行状況テーブルを更新するフロー実行部と、前記実行状況テーブルに設定された前記RPAフローの前記実行状況をチェックし、前記RPAフローの実行制御を行うエージェントと、前記実行状況を表示させる実行状況モニタと、を備え、前記実行状況モニタは、ユーザによりRPAフローの即時停止指示が入力された場合、前記実行状況テーブルに設定された前記実行状況を即時停止中に更新し、前記エージェントは、前記実行状況が前記即時停止中であると検出した場合、前記RPAロボットによるプロセスを強制終了させ、前記フロー実行部は、前記実行状況が前記即時停止中であると検出した場合、所定の即時停止処理を実行することを特徴とする。
【0007】
また、本発明に係るRPA管理装置において、前記フロー実行部は、前記RPAフローにトライキャッチの例外処理が含まれ、且つ、トライブロック内処理実行中に前記実行状況が前記即時停止中であると検出した場合、キャッチブロック内処理実行後に、前記RPAフローのフロー終了処理を実行することを特徴とする。
【0008】
また、本発明に係るRPA管理装置において、前記フロー実行部は、前記RPAフローに複数の前記トライキャッチの例外処理が含まれ、且つ、前記トライブロック内処理実行中に前記実行状況が前記即時停止中であると検出した場合、当該トライブロック内処理を含む前記トライキャッチの例外処理の階層関係を特定し、当該階層関係の最下位の前記トライキャッチの例外処理から最上位の前記トライキャッチの例外処理に順番に前記キャッチブロック内処理実行後に、前記RPAフローのフロー終了処理を実行することを特徴とする。
【0009】
また、本発明に係るRPA管理装置において、前記フロー実行部は、前記RPAフローにトライキャッチの例外処理が含まれず、且つ、前記実行状況が前記即時停止中であると検出した場合、前記RPAフローのフロー終了処理を実行することを特徴とする。
【0010】
また、本発明に係るRPA管理装置において、前記実行状況モニタは、前記ユーザにより前記RPAフローの安全停止指示が入力された場合、前記実行状況テーブルに設定された前記実行状況を安全停止中に更新し、前記フロー実行部は、前記実行状況が前記安全停止中であると検出した場合、前記RPAフローに含まれるループ処理の開始タイミングで、前記ループ処理を終了させ、前記RPAフローのフロー終了処理を実行することを特徴とする。
【0011】
また、本発明に係るRPA管理装置において、前記記憶部は、前記ユーザによる前記RPAフローに対する即時停止権限を設定したフローセキュリティマスタ、を更に備え、前記実行状況モニタは、前記ユーザにより前記RPAフローの前記即時停止指示が入力され、且つ、前記フローセキュリティマスタに当該ユーザの前記即時停止権限が設定されている場合、前記実行状況テーブルに設定された前記実行状況を前記即時停止中に更新することを特徴とする。
【0012】
また、本発明に係るRPA管理装置において、前記記憶部は、前記ユーザによる前記RPAフローに対する安全停止権限を設定したフローセキュリティマスタ、を更に備え、前記実行状況モニタは、前記ユーザにより前記RPAフローの前記安全停止指示が入力され、且つ、前記フローセキュリティマスタに当該ユーザの前記安全停止権限が設定されている場合、前記実行状況テーブルに設定された前記実行状況を前記安全停止中に更新することを特徴とする。
【0013】
また、本発明に係るRPA管理装置において、前記記憶部は、前記ユーザによる前記RPAフローに対する実行権限を設定したフローセキュリティマスタ、を更に備え、前記制御部は、実行指示画面を表示させ、前記ユーザにより前記RPAフローの実行指示が入力され、且つ、前記フローセキュリティマスタに当該ユーザの前記実行権限が設定されている場合、前記実行状況テーブルに設定された前記実行状況を実行待機中に更新する実行指示手段、を更に備え、前記エージェントは、前記実行状況テーブルに設定された前記RPAフローの前記実行状況をチェックし、前記実行状況が前記実行待機中であると検出した場合、前記RPAフローの開始を実行制御することを特徴とする。
【0014】
また、本発明に係るRPA管理装置において、前記記憶部は、前記ユーザが管理者であることを示す管理者フラグを設定したユーザグループ管理マスタ、を更に備え、前記制御部は、前記ユーザグループ管理マスタに基づいて、前記ユーザが前記管理者である場合、入力系フローである前記RPAフローに対する当該ユーザによる前記即時停止権限を前記フローセキュリティマスタに設定するマスタ設定手段、を更に備えたことを特徴とする。
【0015】
また、本発明に係るRPA管理方法は、記憶部と制御部とを備えたRPA管理装置に実行させるためのRPA管理方法であって、前記記憶部は、RPAにて実行されるRPAフローのフロー定義を設定した定義マスタと、前記RPAフローの実行状況を設定した実行状況テーブルと、を備え、前記制御部は、操作対象アプリケーションを実行するRPAロボットと、前記RPAロボットの起動制御を含む前記RPAフローに定義された各タスクを実行し、前記実行状況テーブルを更新するフロー実行部と、前記実行状況テーブルに設定された前記RPAフローの前記実行状況をチェックし、前記RPAフローの実行制御を行うエージェントと、前記実行状況を表示させる実行状況モニタと、を備え、前記実行状況モニタで実行させる、ユーザによりRPAフローの即時停止指示が入力された場合、前記実行状況テーブルに設定された前記実行状況を即時停止中に更新するステップと、前記エージェントで実行させる、前記実行状況が前記即時停止中であると検出した場合、前記RPAロボットによるプロセスを強制終了させるステップと、前記フロー実行部で実行させる、前記実行状況が前記即時停止中であると検出した場合、所定の即時停止処理を実行するステップと、を含むことを特徴とする。
【0016】
また、本発明に係るRPA管理プログラムは、記憶部と制御部とを備えたRPA管理装置に実行させるためのRPA管理プログラムであって、前記記憶部は、RPAにて実行されるRPAフローのフロー定義を設定した定義マスタと、前記RPAフローの実行状況を設定した実行状況テーブルと、を備え、前記制御部は、操作対象アプリケーションを実行するRPAロボットと、前記RPAロボットの起動制御を含む前記RPAフローに定義された各タスクを実行し、前記実行状況テーブルを更新するフロー実行部と、前記実行状況テーブルに設定された前記RPAフローの前記実行状況をチェックし、前記RPAフローの実行制御を行うエージェントと、前記実行状況を表示させる実行状況モニタと、を備え、前記実行状況モニタで実行させる、ユーザによりRPAフローの即時停止指示が入力された場合、前記実行状況テーブルに設定された前記実行状況を即時停止中に更新するステップと、前記エージェントで実行させる、前記実行状況が前記即時停止中であると検出した場合、前記RPAロボットによるプロセスを強制終了させるステップと、前記フロー実行部で実行させる、前記実行状況が前記即時停止中であると検出した場合、所定の即時停止処理を実行するステップと、を実行させることを特徴とする。
【発明の効果】
【0017】
本発明によれば、RPA実行によるサーバ負荷、RPAの暴走に対して対策を行うことができるという効果を奏する。また、本発明によれば、間違えて実行したRPAフローを即座かつ安定的に停止させることで、業務を効率化できるという効果を奏する。また、本発明によれば、実行停止後のリカバリ作業内容を明確化でき、業務を効率化できるという効果を奏する。また、本発明によれば、RPAを即座に停止させる「即時停止機能」とRPAを安定的に停止させる「安全停止機能」とのふたつの機能を提供し、様々なRPA活用用途において運用をより効率化することができるという効果を奏する。また、本発明によれば、安全停止機能・即時停止機能を使い分けることで、停止後のリカバリにかかる余計なコストを削減することができるという効果を奏する。
【図面の簡単な説明】
【0018】
図1図1は、本実施形態におけるRPA管理処理の一例を示す図である。
図2図2は、本実施形態におけるRPA管理処理の一例を示す図である。
図3図3は、本実施形態におけるフロー定義の一例を示す図である。
図4図4は、本実施形態におけるRPA管理装置の構成の一例を示すブロック図である。
図5図5は、本実施形態における実行状況テーブルの一例を示す図である。
図6図6は、本実施形態における実行状況の一例を示す図である。
図7図7は、本実施形態におけるフローセキュリティマスタの一例を示す図である。
図8図8は、本実施形態におけるユーザグループ管理マスタの一例を示す図である。
図9図9は、本実施形態におけるロボットプロセス管理テーブルの一例を示す図である。
図10図10は、本実施形態における実行状況モニタの一例を示す図である。
図11図11は、本実施形態における実行状況モニタの一例を示す図である。
図12図12は、本実施形態におけるRPA管理装置の処理の一例を示すフローチャートである。
図13図13は、本実施形態におけるRPA管理処理の一例を示す図である。
図14図14は、本実施形態におけるRPA管理処理の一例を示す図である。
図15図15は、本実施形態におけるフロー定義の一例を示す図である。
図16図16は、本実施形態における実行状況テーブルの一例を示す図である。
図17図17は、本実施形態におけるログファイルの一例を示す図である。
図18図18は、本実施形態におけるRPA即時停止処理の一例を示す図である。
図19図19は、本実施形態におけるRPA即時停止処理の一例を示す図である。
図20図20は、本実施形態におけるRPA即時停止処理の一例を示す図である。
図21図21は、本実施形態における即時停止指示後の待機処理の一例を示す図である。
図22図22は、本実施形態におけるRPA管理処理の一例を示す図である。
図23図23は、本実施形態におけるRPA管理処理の一例を示す図である。
図24図24は、本実施形態におけるフロー定義の一例を示す図である。
図25図25は、本実施形態におけるログファイルの一例を示す図である。
図26図26は、本実施形態におけるフロー定義の一例を示す図である。
【発明を実施するための形態】
【0019】
本発明の実施形態を図面に基づいて詳細に説明する。なお、本発明は本実施形態により限定されるものではない。
【0020】
[1.概要]
まず、図1から図3を参照して、本発明の概要を説明する。図1および図2は、本実施形態におけるRPA管理処理の一例を示す図である。図3は、本実施形態におけるフロー定義の一例を示す図である。
【0021】
図1に示すように、通常、RPA(ロボティックプロセスオートメーション)を実行するシステムにおいては、RPAの実行者により、フロー作成画面、実行指示画面、実行状況モニタおよびログビューア(RPA実行ログを確認する画面)を起動可能なRPAメニュー画面にて実行指示画面が選択され、実行指示画面にて実行したいRPAフローが選択された場合、実行状況テーブルの実行状況が「実行待機中」に設定される。そして、図1に示すように、RPA実行システムにおいては、ユーザ操作とは別にバックグラウンドで非同期的に実行端末上にて常に起動しているアプリケーションであるエージェントにより、実行状況テーブルの実行状況が「実行待機中」であると確認された場合、フロー実行指示が、ロボット実行タスク等が定義された各タスクを実行するフロー実行部に送信され、フロー実行部によりRPAフローが開始され、フロー実行部により実行状況テーブルの実行状況が「実行中」に更新される。そして、図1に示すように、RPA実行システムにおいては、フロー実行部によりRPAフローが終了され、実行状況テーブルの実行状況が「正常終了」に更新される。ここで、本実施形態におけるロボット(RPAロボット)とは、操作対象アプリケーション毎に定義された、1回の処理実行に必要な一連の操作命令が定義された纏まりの単位となるソフトウェアロボットであり、操作対象アプリケーション毎に作成されるため、アプリケーションとロボットとが1:1の関係となる。
【0022】
また、図2に示すように、通常、RPA実行システムにおいて、(1)ユーザによりRPAメニュー画面にて実行指示画面が起動され、(2)ユーザにより実行指示画面にて、図3に示すフローAのフロー定義が選択された場合、フローAの実行が開始され、(3)実行指示画面から実行状況テーブルに情報が追加され、(4)エージェントは実行指示を確認し、フロー実行部を起動し、(5)フロー実行部は実行状況テーブルの実行状況を「実行中」に更新し、(6)フロー実行部は対象のロボットを起動し、(7)ロボットは操作対象アプリケーションを起動・操作し、(8)フローAが終了した場合、フロー実行部は実行状況テーブルの実行状況を「正常終了」に更新する。
【0023】
ここで、RPAを実行した後に設定ミスに気付く場合、または、RPA実行により予期せぬサーバ負荷がかかってしまう場合等の、RPA実行後に終了を待たずに停止させたい場合において、従来は、システムが想定していない手法でRPAが強制終了された際、実行失敗したRPA処理のリカバリが困難になってしまうという課題があった。
【0024】
例えば、従来のRPAシステムにおいては、操作対象アプリの排他データが残ってしまうケース、RPAフローの排他データが残ってしまうケース、RPAフロー内部にトライキャッチ処理が実装されている際に、システムが想定していない強制終了によってトライキャッチ処理が意図したとおりに行われないケース、または、RPAを実行停止した証跡が残らずにエラーの原因特定が困難になってしまうケースにおいて、実行失敗したRPA処理のリカバリが困難になってしまうことがあった。
【0025】
そこで、本実施形態においては、即時停止指示が行われた場合、リカバリ困難とならないように即座停止する仕組み、RPAフロー内にて実行中断しても問題ない箇所に安全停止ポイントを配置し、安全停止指示が行われた場合、停止ポイントで処理を中断する仕組み、ユーザ別フロー別にセキュリティ設定を行い、停止指示処理の権限を付与できる仕組み、および、RPAシステムに停止指示処理を組み込むことで、適切なログ出力を行うことができる仕組みを提供している。
【0026】
[2.構成]
本実施形態に係るRPA管理装置100の構成の一例について、図4から図11を参照して説明する。図4は、本実施形態におけるRPA管理装置100の構成の一例を示すブロック図である。
【0027】
図4に示すように、RPA管理装置100は、市販のデスクトップ型パーソナルコンピュータである。なお、RPA管理装置100は、デスクトップ型パーソナルコンピュータのような据置型情報処理装置に限らず、市販されているノート型パーソナルコンピュータ、PDA(Personal Digital Assistants)、スマートフォン、タブレット型パーソナルコンピュータなどの携帯型情報処理装置であってもよい。
【0028】
RPA管理装置100は、制御部102と通信インターフェース部104と記憶部106と入出力インターフェース部108と、を備えている。RPA管理装置100が備えている各部は、任意の通信路を介して通信可能に接続されている。
【0029】
通信インターフェース部104は、ルータ等の通信装置および専用線等の有線または無線の通信回線を介して、RPA管理装置100をネットワーク300に通信可能に接続する。通信インターフェース部104は、他の装置と通信回線を介してデータを通信する機能を有する。ここで、ネットワーク300は、RPA管理装置100とサーバ200とを相互に通信可能に接続する機能を有し、例えばインターネットやLAN(Local Area Network)等である。
【0030】
入出力インターフェース部108には、入力装置112および出力装置114が接続されている。出力装置114には、モニタ(タッチパネルを含む)の他、スピーカやプリンタを用いることができる。入力装置112には、キーボード、マウス、およびマイクの他、マウスと協働してポインティングデバイス機能を実現するモニタを用いることができる。なお、以下では、出力装置114をモニタ114またはプリンタ114とし、入力装置112をキーボード112またはマウス112として記載する場合がある。
【0031】
記憶部106には、各種のデータベース、テーブル、およびファイルなどが格納される。記憶部106には、OS(Operating System)と協働してCPU(Central Processing Unit)に命令を与えて各種処理を行うためのコンピュータプログラムが記録される。記憶部106として、例えば、RAM(Random Access Memory)・ROM(Read Only Memory)等のメモリ装置、ハードディスクのような固定ディスク装置、フレキシブルディスク、および光ディスク等を用いることができる。記憶部106は、定義マスタ106aと実行状況テーブル106bとフローセキュリティマスタ106cとユーザグループ管理マスタ106dとログファイル106eとロボットプロセス管理テーブル106fとを備えている。
【0032】
定義マスタ106aは、RPAにて実行されるRPAフローのフロー定義を設定したマスタである。
【0033】
実行状況テーブル106bは、RPAフローの実行状況を設定したテーブルである。例えば、実行状況テーブル106bは、RPAフローの実行状況、実行端末名、実行開始日時、ユーザID、ユーザ名、フローID、フロー名および/または実行ID等が設定されていてもよい。
【0034】
ここで、図5および図6を参照して、本実施形態における実行状況テーブル106bの一例について説明する。図5は、本実施形態における実行状況テーブル106bの一例を示す図である。図6は、本実施形態における実行状況の一例を示す図である。
【0035】
図5に示すように、本実施形態における実行状況テーブル106bにおいては、実行主体であるユーザおよび端末が特定されているRPAフローの実行状況がリアルタイムに更新される。ここで、図6に示すように、本実施形態における実行状況テーブル106bにセットされる実行状況としては、実行待機中、実行中、正常終了、エラー終了、即時停止中、即時停止終了、安全停止中または安全停止終了等であってもよい。また、本実施形態における実行IDは、RPAフロー実行ごとに生成されるIDであって、Guid値で生成されることで、実行中のRPAフローが一意に特定可能となる。
【0036】
図4に戻り、フローセキュリティマスタ106cは、ユーザによるRPAフローに対する即時停止権限を設定したマスタである。ここで、フローセキュリティマスタ106cは、ユーザによるRPAフローに対する安全停止権限が設定されていてもよい。また、フローセキュリティマスタ106cは、ユーザによるRPAフローに対する実行権限が設定されていてもよい。例えば、フローセキュリティマスタ106cは、フローID、フロー名、ユーザグループID、ユーザグループ名、RPAフローに対する実行権限、RPAフローに対する安全停止権限および/またはRPAフローに対する即時停止権限等が設定されていてもよい。
【0037】
ここで、図7を参照して、本実施形態におけるフローセキュリティマスタ106cの一例について説明する。図7は、本実施形態におけるフローセキュリティマスタ106cの一例を示す図である。
【0038】
図7に示すように、本実施形態におけるフローセキュリティマスタ106cは、各RPAフローに対して、ユーザグループ毎に「実行」、「安全停止」および「即時停止」をできるか、設定値によって、実行指示画面から実行指示を出せるか、ならびに、実行状況モニタ102cから停止指示を出せるかが設定される。ここで、本実施形態におけるフローセキュリティマスタ106cは、あらかじめ管理者により設定されていてもよい。また、本実施形態におけるフローセキュリティマスタ106cにおける実行権限は、RPAフローを実行する権限であり、権限のないユーザに実行指示画面からの対象フローの実行を制限する権限であってもよい。また、本実施形態におけるフローセキュリティマスタ106cにおける安全停止権限は、RPAフローを安全停止する権限であり、権限のないユーザに実行状況モニタからの対象フローの安全停止を制限する権限であってもよい。また、本実施形態におけるフローセキュリティマスタ106cにおける即時停止権限は、RPAフローを即時停止する権限であり、権限のないユーザに実行状況モニタからの対象フローの即時停止を制限する権限であってもよい。
【0039】
図4に戻り、ユーザグループ管理マスタ106dは、ユーザが管理者であることを示す管理者フラグを設定したマスタである。例えば、ユーザグループ管理マスタ106dは、ユーザID、ユーザ名、ユーザグループID、ユーザグループ名および/またはユーザが管理者であることを示す管理者フラグ等が設定されていてもよい。
【0040】
ここで、図8を参照して、本実施形態におけるユーザグループ管理マスタ106dの一例について説明する。図8は、本実施形態におけるユーザグループ管理マスタ106dの一例を示す図である。
【0041】
図8に示すように、本実施形態におけるユーザグループ管理マスタ106dは、ユーザの所属グループが設定され、ユーザが管理者かどうかについて設定される。
【0042】
図4に戻り、ログファイル106eは、RAPフローのログを設定したファイルである。例えば、ログファイル106eは、実行ログの更新順に付与される連番(例えば、SEQ等)、実行結果、タスク種別、実行ログの概要および/または実行ログの詳細等が設定されていてもよい。
【0043】
ロボットプロセス管理テーブル106fは、RPAロボット102fの状態を設定したテーブルである。例えば、ロボットプロセス管理テーブル106fは、ロボット名、ロボットプロセスIDおよび/または実行ID等が設定されていてもよい。
【0044】
ここで、図9を参照して、本実施形態におけるロボットプロセス管理テーブル106fの一例について説明する。図9は、本実施形態におけるロボットプロセス管理テーブル106fの一例を示す図である。
【0045】
図9に示すように、本実施形態におけるロボットプロセス管理テーブル106fは、実行IDにより特定される実行中のRAPフローにおけるRPAロボット102fの状態がロボットプロセスIDを用いて設定される。ここで、本実施形態においては、エージェント102dが対象プロセスを強制終了させる場合、図9に示すロボットプロセス管理テーブル106fで保持されているロボットプロセスIDから操作対象アプリのプロセスが全て特定され、RPAロボット102fのプロセスが終了され、操作対象アプリのプロセスが終了される。このように、本実施形態においては、RPAロボット102fのプロセスと操作対象アプリのプロセスとが親子関係になっているため、「.NET Framework」等のアプリケーション開発・実行環境の機能でRPAロボット102fのプロセスから操作対象アプリのプロセスを特定することができる。また、本実施形態においては、操作対象アプリのプロセスが先に消えた場合、RPAロボット102fが操作対象アプリの操作を続行しようとして操作エラーログが記録され、状態が判別困難となる可能性があるため、「RPAロボット102f」>「操作対象アプリ」の順でプロセスを停止させている。
【0046】
図4に戻り、制御部102は、RPA管理装置100を統括的に制御するCPU等である。制御部102は、OS等の制御プログラム・各種の処理手順等を規定したプログラム・所要データなどを格納するための内部メモリを有し、格納されているこれらのプログラムに基づいて種々の情報処理を実行する。制御部102は、機能概念的に、マスタ設定部102aと実行指示部102bと実行状況モニタ102cとエージェント102dとフロー実行部102eとRPAロボット102fとを備えている。
【0047】
マスタ設定部102aは、各種マスタを設定する。ここで、マスタ設定部102aは、ユーザグループ管理マスタ106dに基づいて、ユーザが管理者である場合、入力系フローであるRPAフローに対する当該ユーザによる即時停止権限をフローセキュリティマスタ106cに設定してもよい。
【0048】
実行指示部102bは、実行指示画面を表示させ、ユーザによりRPAフローの実行指示が入力された場合、実行状況テーブル106bに設定された実行状況を実行待機中に更新する。ここで、実行指示部102bは、実行指示画面を表示させ、ユーザによりRPAフローの実行指示が入力され、且つ、前記フローセキュリティマスタに当該ユーザの前記実行権限が設定されている場合、実行状況テーブル106bに設定された実行状況を実行待機中に更新してもよい。また、実行指示部102bは、ユーザによるRPAメニュー画面における起動対象画面(例えば、フロー作成画面、フロー実行画面、実行状況モニタ102cまたはログビューア等)選択により、実行指示画面を起動させてもよい。また、RPAメニュー画面は、ログイン画面における(ユーザIDおよびパスワード入力による)ユーザ認証成立により、起動されてもよい。
【0049】
実行状況モニタ102cは、RPAフローの実行状況を表示させる。ここで、実行状況モニタ102cは、ユーザによりRPAフローの即時停止指示が入力された場合、実行状況テーブル106bに設定された実行状況を即時停止中に更新してもよい。また、実行状況モニタ102cは、ユーザによりRPAフローの安全停止指示が入力された場合、実行状況テーブル106bに設定された実行状況を安全停止中に更新してもよい。また、実行状況モニタ102cは、ユーザによりRPAフローの即時停止指示が入力され、且つ、フローセキュリティマスタ106cに当該ユーザの即時停止権限が設定されている場合、実行状況テーブル106bに設定された実行状況を即時停止中に更新してもよい。また、実行状況モニタ102cは、ユーザによりRPAフローの安全停止指示が入力され、且つ、フローセキュリティマスタ106cに当該ユーザの安全停止権限が設定されている場合、実行状況テーブル106bに設定された実行状況を安全停止中に更新してもよい。
【0050】
ここで、図10および図11を参照して、本実施形態における実行状況モニタ102cの一例について説明する。図10および図11は、本実施形態における実行状況モニタ102cの一例を示す図である。
【0051】
まず、本実施形態における実行状況モニタ102cは、RPAフローの実行状況をデータベース(DB)106を介して確認することができ、実行中のRPAに対してDB106を介して停止指示を行うことができるアプリケーションである。ここで、本実施形態における実行状況モニタ102cは、対象のRPAロボット102fを停止させる機能、および、停止ボタンがクリックされた場合、対象のRPAロボット102fを停止させる機能を備え、実行状況およびフローセキュリティマスタ106cの設定により停止指示の入力可否が決定され、停止指示が不可の場合、画面上のボタンがロックされてもよい。例えば、本実施形態における実行状況モニタ102cにおいては、実行状況が「~終了」の場合、停止指示を入力不可とし、実行状況が「即時停止中」の場合、停止指示を入力不可とし、実行状況が「安全停止中」の場合、即時停止指示のみ入力可(フローセキュリティマスタ106c設定で制限されている場合、停止指示を入力不可)とし、実行状況がこれら以外の場合、安全停止指示および即時停止指示ともに入力可(フローセキュリティマスタ106c設定で制限されている場合、停止指示を入力不可)と設定されてもよい。
【0052】
ここで、図10に示すように、本実施形態における管理端末用の実行状況モニタ102cにおいては、システム管理者の利用を想定し、管理対象の全てのRPAフローの実行状況を確認可能とし、定期的にDB106を確認しているため、リアルタイムで最新状況を表示させる実行状況表示機能を備え、プルダウンメニュー選択により表示データの並び替え・抽出を可能とし、全てのRPAロボット102fの実行状況を表示させることでデータ数が膨大になっても、対象データを素早く特定できるようにするためのフィルタ機能を備えている。なお、図10に示すように、本実施形態における管理端末用の実行状況モニタ102cにおいては、ログインユーザがシステム管理者かどうかをユーザグループ管理マスタ106dの設定によって決めることが可能であり、システム管理者がログインした場合のみRPAメニュー画面から起動できてもよい。
【0053】
また、図11に示すように、本実施形態における実行端末用の実行状況モニタ102cにおいては、RPA実行者の利用を想定し、同端末上で実行中のRPAフローの実行状況のみを確認可能とし、実行端末名でデータを絞って最新状況を表示させ、定期的にDB106を確認しているため、リアルタイムで最新状況が表示される実行状況表示機能を備えている。なお、図11に示すように、本実施形態における実行端末用の実行状況モニタ102cにおいては、ログインユーザがRPA実行者かどうかをユーザグループ管理マスタ106dの設定によって決めることが可能であり、システム管理者以外がログインした場合、RPAメニュー画面から起動できてもよい。
【0054】
図4に戻り、エージェント102dは、実行状況テーブル106bに設定されたRPAフローの実行状況をチェックし、RPAフローの実行制御を行う。ここで、エージェント102dは、実行状況テーブル106bに設定されたRPAフローの実行状況が即時停止中であると検出した場合、RPAロボット102fによるプロセスを強制終了させてもよい。また、エージェント102dは、実行状況テーブル106bに設定されたRPAフローの実行状況をチェックし、実行状況が実行待機中であると検出した場合、RPAフローの開始を実行制御してもよい。
【0055】
フロー実行部102eは、RPAロボット102fの起動制御を含むRPAフローに定義された各タスクを実行し、実行状況テーブル106bを更新する。ここで、フロー実行部102eは、実行状況テーブル106bに設定されたRPAフローの実行状況が即時停止中であると検出した場合、所定の即時停止処理を実行してもよい。また、フロー実行部102eは、RPAフローにトライキャッチの例外処理が含まれ、且つ、トライブロック内処理実行中に実行状況が即時停止中であると検出した場合、キャッチブロック内処理実行後に、RPAフローのフロー終了処理を実行してもよい。また、フロー実行部102eは、RPAフローに複数のトライキャッチの例外処理が含まれ、且つ、トライブロック内処理実行中に実行状況が即時停止中であると検出した場合、当該トライブロック内処理を含むトライキャッチの例外処理の階層関係を特定し、当該階層関係の最下位のトライキャッチの例外処理から最上位のトライキャッチの例外処理に順番にキャッチブロック内処理実行後に、RPAフローのフロー終了処理を実行してもよい。また、フロー実行部102eは、RPAフローにトライキャッチの例外処理が含まれず、且つ、実行状況が即時停止中であると検出した場合、RPAフローのフロー終了処理を実行してもよい。また、フロー実行部102eは、実行状況テーブル106bに設定されたRPAフローの実行状況が安全停止中であると検出した場合、RPAフローに含まれるループ処理の開始タイミングで、ループ処理を終了させ、RPAフローのフロー終了処理を実行してもよい。
【0056】
RPAロボット102fは、操作対象アプリケーションを実行するソフトウェアロボットである。
【0057】
[3.具体例]
本実施形態の具体例について、図12から図26を参照して説明する。
【0058】
[RPA管理処理]
ここで、図12を参照して、本実施形態におけるRPA管理処理の一例について説明する。図12は、本実施形態におけるRPA管理装置100の処理の一例を示すフローチャートである。
【0059】
図12に示すように、実行指示部102bは、実行指示画面を出力装置114に表示させ、ユーザにより入力装置112を介してRPAフローの実行指示が入力された場合、実行状況テーブル106bに設定された実行状況を実行待機中に更新する(ステップSA-1)。
【0060】
そして、エージェント102dは、実行状況テーブル106bに設定されたRPAフローの実行状況をチェックし、実行状況が実行待機中であると検出した場合、RPAフローの開始を実行制御し、フロー実行部102eは、RPAロボット102fの起動制御を含むRPAフローに定義された各タスクを実行し、実行状況テーブル106bに設定された実行状況を実行中に更新する(ステップSA-2)。
【0061】
そして、実行状況モニタ102cは、ユーザにより入力装置112を介してRPAフローの即時停止指示が入力されたか否かを判定する(ステップSA-3)。
【0062】
そして、実行状況モニタ102cは、RPAフローの即時停止指示が入力されと判定した場合(ステップSA-3:Yes)、処理をステップSA-4に移行させる。
【0063】
そして、実行状況モニタ102cは、実行状況テーブル106bに設定された実行状況を即時停止中に更新する(ステップSA-4)。
【0064】
そして、エージェント102dは、実行状況テーブル106bに設定されたRPAフローの実行状況をチェックし、実行状況テーブル106bに設定されたRPAフローの実行状況が即時停止中であると検出した場合、RPAロボット102fによるプロセスを強制終了させる(ステップSA-5)。
【0065】
そして、フロー実行部102eは、実行状況テーブル106bに設定されたRPAフローの実行状況をチェックし、実行状況テーブル106bに設定されたRPAフローの実行状況が即時停止中であると検出した場合、所定の即時停止処理を実行し(ステップSA-6)、処理を終了する。
【0066】
一方、実行状況モニタ102cは、RPAフローの即時停止指示が入力されていないと判定した場合(ステップSA-3:No)、処理をステップSA-7に移行させる。
【0067】
そして、実行状況モニタ102cは、ユーザにより入力装置112を介してRPAフローの安全停止指示が入力されたか否かを判定する(ステップSA-7)。
【0068】
そして、実行状況モニタ102cは、RPAフローの安全停止指示が入力されと判定した場合(ステップSA-7:Yes)、処理をステップSA-8に移行させる。
【0069】
そして、実行状況モニタ102cは、実行状況テーブル106bに設定された実行状況を安全停止中に更新する(ステップSA-8)。
【0070】
そして、フロー実行部102eは、実行状況テーブル106bに設定されたRPAフローの実行状況をチェックし、実行状況テーブル106bに設定されたRPAフローの実行状況が安全停止中であると検出した場合、RPAフローのフロー終了処理を実行し(ステップSA-9)、処理を終了する。
【0071】
一方、実行状況モニタ102cは、RPAフローの安全停止指示が入力されていないと判定した場合(ステップSA-7:No)、処理をステップSA-10に移行させる。
【0072】
そして、エージェント102dは、実行状況テーブル106bに設定されたRPAフローの実行状況をチェックし、フロー実行部102eによりRPAフローが実行完了され、実行状況テーブル106bに設定された実行状況が正常終了に更新されたか否かを判定する(ステップSA-10)。
【0073】
そして、エージェント102dは、実行状況テーブル106bに設定された実行状況が正常終了に更新されていないと判定した場合(ステップSA-10:No)、処理をステップSA-3に移行させる。
【0074】
一方、エージェント102dは、実行状況テーブル106bに設定された実行状況が正常終了に更新されていると判定した場合(ステップSA-10:Yes)、処理をステップSA-11に移行させる。
【0075】
そして、フロー実行部102eは、RPAフローのフロー終了処理を実行し(ステップSA-11)、処理を終了する。
【0076】
ここで、図13から図17を参照して、本実施形態におけるRPA即時停止処理の一例について説明する。図13および図14は、本実施形態におけるRPA管理処理の一例を示す図である。図15は、本実施形態におけるフロー定義の一例を示す図である。図16は、本実施形態における実行状況テーブル106bの一例を示す図である。図17は、本実施形態におけるログファイル106eの一例を示す図である。
【0077】
図13に示すように、本実施形態においては、システム管理者により実行状況モニタ102cにてRPAフローの即時停止指示が入力された場合、実行状況モニタ102cにより実行状況テーブル106bに設定された実行状況が即時停止中に更新される。そして、図13に示すように、本実施形態においては、エージェント102dにより、実行状況テーブル106bに設定されたRPAフローの実行状況が常時確認され、ロボットAおよび操作対象アプリAのプロセスが終了される。そして、図13に示すように、本実施形態においては、フロー実行部102eによりRPAフローの即時停止処理が実行され、即時停止処理終了後に、実行状況テーブル106bに設定された実行状況が即時停止終了に更新される。
【0078】
また、図14に示すように、本実施形態においては、ユーザにより実行指示画面にて、図15に示すフローAのフロー定義が選択された場合、エージェント102dにより実行指示が確認され、フロー実行部102eが起動され、フロー実行部102eにより実行状況テーブル106bの実行状況が「実行中」に更新され、フロー実行部102eにより対象のロボット(RPAロボット)102fが起動され、RPAロボット102fにより操作対象アプリケーションが起動されて操作され、エージェント102dにより実行状況テーブル106bのフローAの実行状況が常時確認される。
【0079】
そして、図14に示すように、本実施形態において、ユーザにより実行状況モニタ102cにてフローAの即時停止指示が入力された場合、(1)実行状況モニタ102cはフローAの実行状況を「即時停止中」に更新し、(2)実行状況モニタ102cは実行ログとして「即時停止指示」を記録することでログファイル106eを更新し、(3)エージェント102dおよびRPAロボット102fは即時停止指示を確認し、(4)エージェント102dは対象とするRPAロボット102fのプロセスを強制終了させ、(5)フロー実行部102eはRPAロボット102fのプロセス終了を確認した後、実行状況テーブル106bの実行状況を確認し、(6)実行状況テーブル106bの実行状況が「即時停止中」である場合、フロー実行部102eは対象プロセスが終了するまで待機し、(7)エージェント102dは操作対象アプリのプロセスを強制終了させ、(8)エージェント102dは対象プロセスを終了させた後、ロボットプロセス管理テーブル106fの「ロボットプロセスID」を「NULL」に書き換え、(9)フロー実行部102eはロボットプロセス管理テーブルから対象プロセスの終了を確認し、即時停止処理を行い、(10)フロー実行部102eは実行状況テーブル106bのフローAの実行状況を「即時停止終了」に更新し、(11)フロー実行部102eは実行ログとして「即時停止終了」を記録することでログファイル106eを更新し、フロー実行を終了する。これにより、本実施形態においては、実行ユーザがログを確認し、即時停止されたことを把握することができる。
【0080】
ここで、図16に示すように、本実施形態においては、排他制御がかかるRPAフロー(フローA)について、実行状況テーブル106bの実行状況が「実行中」の場合、操作対象アプリケーションまたはフローAの排他データが残っているため、排他制御がかかり、実行完了まで同フローの実行をすることができないが、実行状況テーブル106bの実行状況が「即時停止終了」の場合、即時停止処理が完了しており、排他制御が解除されているため、リカバリ処理無しに同フローの実行をすることができる。
【0081】
また、図17に示すように、本実施形態におけるログファイル106eにおいては、図14(2)の処理によりSEQ:9のログが追加され、図14(11)の処理によりSEQ:10のログが追加される。このように、本実施形態においては、即時停止後実行状況を「即時停止終了」へ更新するため、実行フローの排他データが残らない。また、本実施形態においては、トライキャッチ処理が定義されている場合、キャッチ処理を実行してからフローを停止させるため、フローに予め定義されている後処理の実行が担保され、排他解除等を行うことができる。また、本実施形態においては、実行ログに即時停止した旨が書き込まれるため、どのタイミングで即時停止指示が行われ、どこで停止したかが判断確認可能となり、ユーザが必要なリカバリ作業の判断を適切に早く行うことができる。
【0082】
更に、図18から図20を参照して、本実施形態におけるRPA即時停止処理の一例について説明する。図18から図20は、本実施形態におけるRPA即時停止処理の一例を示す図である。
【0083】
図18に示すように、本実施形態において、RPAフローにトライキャッチ処理が無い場合、即時停止処理は、単にRPAフロー終了処理を行うものである。また、図19に示すように、本実施形態において、即時停止させたロボット実行処理がトライ処理の内部に配置されている場合、即時停止処理は、対応するキャッチ処理を実行した上で、RPAフロー終了処理を行うものである。また、図20に示すように、本実施形態において、RPAフローにトライキャッチ処理が複数含まれる場合、RPAフローの親子関係からキャッチ処理の内容・実行順序を特定し、順番に実行する。このように、本来、キャッチ処理は、トライ処理の内部が正常終了しなかった場合に実行したい処理が実装されるため、即時停止処理を行った場合でも、キャッチ処理が実行されるべきであるため、本実施形態においては、それを実現している。
【0084】
また、図21を参照して、本実施形態における即時停止指示後の待機処理の一例について説明する。図21は、本実施形態における即時停止指示後の待機処理の一例を示す図である。
【0085】
図21に示すように、本実施形態においては、L1およびL3の「実施状況チェック」のタイミングで、即時停止指示が行われたか判定し、即時停止中の場合、処理が進むことを防ぐため、後続処理を打ち切り即時停止が終了するまで待機する。ここで、本実施形態においては、フロー定義者がRPAフローで予期せぬエラーが発生した場合の後処理をキャッチ処理として実装しており、その処理を即時停止時にも実行されるようにしている。また、本実施形態においては、即時停止中にRPAロボット102fの後続処理を止めることで、別の操作対象アプリを起動してしまう等のRPAロボット102fの暴走を防ぐことができる。
【0086】
また、図22から図26を参照して、本実施形態におけるRPA安全停止処理の一例について説明する。図22および図23は、本実施形態におけるRPA管理処理の一例を示す図である。図24および図26は、本実施形態におけるフロー定義の一例を示す図である。図25は、本実施形態におけるログファイル106eの一例を示す図である。
【0087】
図22に示すように、本実施形態においては、システム管理者またはRPA実行者により実行状況モニタ102cにてRPAフローの安全停止指示が入力された場合、実行状況モニタ102cにより実行状況テーブル106bに設定された実行状況が安全停止中に更新される。そして、図22に示すように、本実施形態においては、エージェント102dにより、RPAフローに含まれるループ開始タイミングで実行状況テーブル106bに設定されたRPAフローの実行状況が常時確認され、実行状況が「安全停止中」となっている場合、フロー実行部102eによりループが終了され、安全停止終了タスクに移行する。そして、図22に示すように、本実施形態においては、フロー実行部102eによりRPAフローの安全停止処理が実行され、安全停止処理終了後に、実行状況テーブル106bに設定された実行状況が安全停止終了に更新される。
【0088】
また、図23に示すように、本実施形態においては、ユーザにより実行指示画面にて、図24に示すフローAのフロー定義が選択された場合、フロー実行部102eが起動され、フロー実行部102eにより実行状況テーブル106bの実行状況が「実行中」に更新され、フロー実行部102eにより対象のロボット(RPAロボット)102fが起動され、RPAロボット102fにより操作対象アプリケーションが起動されて操作される。
【0089】
そして、図23に示すように、本実施形態において、ユーザにより実行状況モニタ102cにてフローAの安全停止指示が入力された場合、(1)実行状況モニタ102cは実行状況テーブル106bのフローAの実行状況を「安全停止中」に更新し、(2)実行状況モニタ102cは実行ログとして「安全停止指示」を記録することでログファイル106eを更新し、(3)フロー実行部102eは「安全停止判定」のタイミングで安全停止指示を確認し、(4)フロー実行部102eはRPAフローに含まれるループを終了し、安全停止処理へ移行し、(5)フロー実行部102eは実行状況テーブル106bの実行状況を「安全停止終了」に更新し、(6)フロー実行部102eは実行ログとして「安全停止終了」を記録することでログファイル106eを更新し、フロー実行を終了する。これにより、本実施形態においては、実行ユーザがログを確認し、安全停止されたことを把握することができる。
【0090】
ここで、図25に示すように、本実施形態におけるログファイル106eにおいては、図23(2)の処理によりSEQ:5のログが追加され、図14(6)の処理によりSEQ:9のログが追加される。
【0091】
また、図26に示すように、本実施形態におけるRPAフローにおいては、フロー作成時に、安全停止判定をループ開始タイミングで必ず行うように定義してもよく、RPAフローに安全停止判定を自由に追加できるようにしてもよい。
【0092】
このように、本実施形態においては、RPAロボット102fが起動中に停止しないため、操作対象アプリの排他や入力データの不整合が起こらない。また、本実施形態においては、実行フローが安全停止終了タスクを経て終了されるため、RPAフローの排他データが残らない。また、本実施形態においては、ユーザがログを確認することで何ループ目まで入力済みか確認することができるため、データソースのみ修正するだけでリトライ実行を容易に行うことができる。また、本実施形態においては、安全停止判定がループ開始のタイミングに自動的に配置されることによって、フロー作成者が意識せずとも安全停止するフローを作成することができる。また、本実施形態においては、フロー作成時に、任意のタイミングで停止指示判定タスクを置くことができるので、安全停止の自由度も高くなる。
【0093】
[4.国連が主導する持続可能な開発目標(SDGs)への貢献]
本実施形態により、業務効率化や企業の適切な経営判断を推進することに寄与することができるので、SDGsの目標8及び9に貢献することが可能となる。
【0094】
また、本実施形態により、廃棄ロス削減や、ペーパレス・電子化を推進することに寄与することができるので、SDGsの目標12、13及び15に貢献することが可能となる。
【0095】
また、本実施形態により、統制、ガバナンス強化に寄与することができるので、SDGsの目標16に貢献することが可能となる。
【0096】
[5.他の実施形態]
本発明は、上述した実施形態以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施形態にて実施されてよいものである。
【0097】
例えば、実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【0098】
また、本明細書中や図面中で示した処理手順、制御手順、具体的名称、各処理の登録データや検索条件等のパラメータを含む情報、画面例、データベース構成については、特記する場合を除いて任意に変更することができる。
【0099】
また、RPA管理装置100に関して、図示の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
【0100】
例えば、RPA管理装置100が備える処理機能、特に制御部102にて行われる各処理機能については、その全部または任意の一部を、CPUおよび当該CPUにて解釈実行されるプログラムにて実現してもよく、また、ワイヤードロジックによるハードウェアとして実現してもよい。尚、プログラムは、本実施形態で説明した処理を情報処理装置に実行させるためのプログラム化された命令を含む一時的でないコンピュータ読み取り可能な記録媒体に記録されており、必要に応じてRPA管理装置100に機械的に読み取られる。すなわち、ROMまたはHDD(Hard Disk Drive)などの記憶部などには、OSと協働してCPUに命令を与え、各種処理を行うためのコンピュータプログラムが記録されている。このコンピュータプログラムは、RAMにロードされることによって実行され、CPUと協働して制御部を構成する。
【0101】
また、このコンピュータプログラムは、RPA管理装置100に対して任意のネットワークを介して接続されたアプリケーションプログラムサーバに記憶されていてもよく、必要に応じてその全部または一部をダウンロードすることも可能である。
【0102】
また、本実施形態で説明した処理を実行するためのプログラムを、一時的でないコンピュータ読み取り可能な記録媒体に格納してもよく、また、プログラム製品として構成することもできる。ここで、この「記録媒体」とは、メモリーカード、USB(Universal Serial Bus)メモリ、SD(Secure Digital)カード、フレキシブルディスク、光磁気ディスク、ROM、EPROM(Erasable Programmable Read Only Memory)、EEPROM(登録商標)(Electrically Erasable and Programmable Read Only Memory)、CD-ROM(Compact Disk Read Only Memory)、MO(Magneto-Optical disk)、DVD(Digital Versatile Disk)、および、Blu-ray(登録商標) Disc等の任意の「可搬用の物理媒体」を含むものとする。
【0103】
また、「プログラム」とは、任意の言語または記述方法にて記述されたデータ処理方法であり、ソースコードまたはバイナリコード等の形式を問わない。なお、「プログラム」は必ずしも単一的に構成されるものに限られず、複数のモジュールやライブラリとして分散構成されるものや、OSに代表される別個のプログラムと協働してその機能を達成するものをも含む。なお、本実施形態に示した各装置において記録媒体を読み取るための具体的な構成および読み取り手順ならびに読み取り後のインストール手順等については、周知の構成や手順を用いることができる。
【0104】
記憶部106に格納される各種のデータベース等は、RAM、ROM等のメモリ装置、ハードディスク等の固定ディスク装置、フレキシブルディスク、および、光ディスク等のストレージ手段であり、各種処理やウェブサイト提供に用いる各種のプログラム、テーブル、データベース、および、ウェブページ用ファイル等を格納する。
【0105】
また、RPA管理装置100は、既知のパーソナルコンピュータまたはワークステーション等の情報処理装置として構成してもよく、また、任意の周辺装置が接続された当該情報処理装置として構成してもよい。また、RPA管理装置100は、当該装置に本実施形態で説明した処理を実現させるソフトウェア(プログラムまたはデータ等を含む)を実装することにより実現してもよい。
【0106】
更に、装置の分散・統合の具体的形態は図示するものに限られず、その全部または一部を、各種の付加等に応じてまたは機能負荷に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。すなわち、上述した実施形態を任意に組み合わせて実施してもよく、実施形態を選択的に実施してもよい。
【産業上の利用可能性】
【0107】
本発明は、RPAを利用する様々な業界において有用である。
【符号の説明】
【0108】
100 RPA管理装置
102 制御部
102a マスタ設定部
102b 実行指示部
102c 実行状況モニタ
102d エージェント
102e フロー実行部
102f RPAロボット
104 通信インターフェース部
106 記憶部
106a 定義マスタ
106b 実行状況テーブル
106c フローセキュリティマスタ
106d ユーザグループ管理マスタ
106e ログファイル
106f ロボットプロセス管理テーブル
108 入出力インターフェース部
112 入力装置
114 出力装置
200 サーバ
300 ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26