JP2022551933A - ロボティック・プロセス・オートメーションのためのアクティビティ対象選択のシステム及び方法 - Google Patents
ロボティック・プロセス・オートメーションのためのアクティビティ対象選択のシステム及び方法 Download PDFInfo
- Publication number
- JP2022551933A JP2022551933A JP2022521760A JP2022521760A JP2022551933A JP 2022551933 A JP2022551933 A JP 2022551933A JP 2022521760 A JP2022521760 A JP 2022521760A JP 2022521760 A JP2022521760 A JP 2022521760A JP 2022551933 A JP2022551933 A JP 2022551933A
- Authority
- JP
- Japan
- Prior art keywords
- target
- candidate
- anchor
- text
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Stored Programmes (AREA)
Abstract
ソフトウェアロボットは、ユーザーインターフェースの対象要素(例えば、ボタン、入力フィールドなど)上でアクティビティ(例えば、マウスクリック、テキスト入力など)を実行するように設計される。ロボットのコード指定は、対象要素の画面上画像、及び対象要素によって表示されるテキストを含むように構成される。ロボットは、ユーザーインターフェースのソースコードで指定された要素IDに従って、実行時に対象要素を自動的に識別し、そのような識別に失敗した場合、ロボットのコードに記憶されたテキスト及び画像に従って対象要素を識別するように構成される。
Description
本発明は、ロボティック・プロセス・オートメーション(RPA)に関し、特に、マウスクリック又はテキスト入力などのアクティビティの対象となるユーザーインターフェース要素を自動的に識別するシステム及び方法に関する。
RPAは、反復的なコンピューティングタスクをオートメーション化することによって生産性を改善させることを目的とした情報技術の新興分野であり、したがって人間のオペレータは、知的に洗練された及び/又は創造的なアクティビティを自由に実施することができる。オートメーション化の対象となる注目すべきタスクは、文書から構造化データを抽出することと、とりわけ、例えばフォームに記入するためにユーザーインターフェースとインタラクトすることと、を含む。
RPA開発の明確な方針は、ソフトウェアロボットのプログラミング及び管理を単純化することに向けられており、高度なプログラミングスキル又はトレーニングを欠くユーザーに、RPA技術の範囲を拡大するという最終的な目標がある。RPAのアクセスを容易にする1つの方法は、コーディング自体ではなく、グラフィカル・ユーザー・インターフェース(GUI)ツールを介してロボットのプログラミングを可能にするRPA指向の統合開発環境(IDE)の開発である。
しかしながら、ユーザーインターフェースとのインタラクションをオートメーション化することは、例えばボタン又はフォームフィールドなどの対象要素を明確に識別する、実質的な技術的課題を提起する。更に、RPAアプリケーションは、それぞれのソフトウェアロボットの設計と実行時との間で生じるインターフェース(例えば、様々な要素の位置付け、配色、フォントなど)の外観の変化のために失敗する可能性がある。したがって、そのような変化に影響されない堅牢でスケーラブルなソフトウェアロボットを開発することに継続的な関心がある。
一態様によれば、方法は、コンピュータシステムの少なくとも1つのハードウェアプロセッサを採用することを含み、コンピュータシステムの少なくとも1つのハードウェアプロセッサは、対象機能のセット及びアンカー機能のセットを備えるRPAスクリプトの受取りに応答して、コンピュータシステムによって公開された実行時ユーザーインターフェース(UI)内の対象要素の実行時インスタンスを自動的に識別することであって、対象機能が、対象UIの対象要素の特性であり、アンカー機能が、対象UIのアンカー要素の特性である、識別することを実施する。方法は、人間のオペレータと対象要素の実行時インスタンスとのインタラクションの結果を再現する操作を自動的に実行することであって、操作が、RPAスクリプトに従って決定される、実行することを更に含む。対象機能のセットは、対象UIのツリー表現内の対象要素の位置を示す対象IDと、対象UI内の対象要素の画像を備える対象画像と、対象UI内の対象要素によって表示される一連の文字を備える対象テキストと、を備える。アンカー機能のセットは、対象UIのツリー表現内のアンカー要素の位置を示すアンカーIDと、対象UI内のアンカー要素の画像を備えるアンカー画像と、対象UI内のアンカー要素によって表示される一連の文字を備えるアンカーテキストと、を備える。本方法は、対象ID、対象画像、対象テキスト、アンカーID、アンカー画像、及びアンカーテキストに従って、対象要素の実行時インスタンスを識別することを含む。
別の態様によれば、コンピュータシステムは、オートメーション化対象アプリケーション及びRPAロボットを遂行するように構成された少なくとも1つのハードウェアプロセッサを備える。オートメーション化対象アプリケーションは、実行時UIを公開するように構成される。RPAロボットは、対象機能のセット及びアンカー機能のセットを備えるRPAスクリプトの受取りに応答して、コンピュータシステムによって公開された実行時UI内の対象要素の実行時インスタンスを自動的に識別することであって、対象機能が、対象UIの対象要素の特性であり、アンカー機能が、対象UIのアンカー要素の特性である、識別することを実施するように構成される。RPAロボットは、人間のオペレータと対象要素の実行時インスタンスとのインタラクションの結果を再現する操作を自動的に実行することであって、操作が、RPAスクリプトに従って決定される、実行することを実施するように更に構成される。対象機能のセットは、対象UIのツリー表現内の対象要素の位置を示す対象IDと、対象UI内の対象要素の画像を備える対象画像と、対象UI内の対象要素によって表示される一連の文字を備える対象テキストと、を備える。アンカー機能のセットは、対象UIのツリー表現内のアンカー要素の位置を示すアンカーIDと、対象UI内のアンカー要素の画像を備えるアンカー画像と、対象UI内のアンカー要素によって表示される一連の文字を備えるアンカーテキストと、を備える。対象要素の実行時インスタンスを自動的に識別することは、対象ID、対象画像、対象テキスト、アンカーID、アンカー画像、及びアンカーテキストに従って、対象要素の実行時インスタンスを識別することを含む。
別の態様によれば、非一時的コンピュータ可読媒体は、命令を記憶し、その命令は、実行時UIを公開するように構成されたコンピュータシステムの少なくとも1つのハードウェアプロセッサによって遂行された場合、コンピュータシステムに、対象機能のセット及びアンカー機能のセットを備えるRPAスクリプトの受取りに応答して、コンピュータシステムによって公開された実行時UI内の対象要素の実行時インスタンスを自動的に識別することであって、対象機能が、対象UIの対象要素の特性であり、アンカー機能が、対象UIのアンカー要素の特性である、識別することを実施させる。命令は更に、コンピュータシステムに、人間のオペレータと対象要素の実行時インスタンスとのインタラクションの結果を再現する操作を自動的に実行することであって、操作が、RPAスクリプトに従って決定される、実行することを更に実施させる。対象機能のセットは、対象UIのツリー表現内の対象要素の位置を示す対象IDと、対象UI内の対象要素の画像を備える対象画像と、対象UI内の対象要素によって表示される一連の文字を備える対象テキストと、を備える。アンカー機能のセットは、対象UIのツリー表現内のアンカー要素の位置を示すアンカーIDと、対象UI内のアンカー要素の画像を備えるアンカー画像と、対象UI内のアンカー要素によって表示される一連の文字を備えるアンカーテキストと、を備える。対象要素の実行時インスタンスを自動的に識別することは、対象ID、対象画像、対象テキスト、アンカーID、アンカー画像、及びアンカーテキストに従って、対象要素の実行時インスタンスを識別することを含む。
本発明の前述の態様及び利点は、以下の詳細な説明を読み、図面を参照すると、良好に理解されるであろう。
以下の説明では、構造間の列挙されたすべての接続が、直接的な動作接続、又は中間構造を介した間接的な動作接続であり得ることが理解される。要素のセットは、1つ又は複数の要素を含む。要素の列挙は、少なくとも1つの要素を指すと理解される。複数の要素は、少なくとも2つの要素を含む。「又は」の任意の使用は、否定排他的論理和を意味する。別段の要求がない限り、記載した方法ステップは、必ずしも特定の例示された順序で実施される必要はない。第2の要素から導出された第1の要素(例えば、データ)は、第2の要素に等しい第1の要素、並びに第2の要素及び任意選択的な他のデータを処理することによって生成された第1の要素を包含する。パラメータに従って決定又は判断を行うことは、パラメータに従って、及び任意選択で他のデータに従って、決定又は判断を行うことを包含する。別段の指定がない限り、いくつかの量/データのインジケータは、量/データ自体、又は量/データ自体とは異なるインジケータであってもよい。コンピュータプログラムは、タスクを実行する一連のプロセッサ命令である。本発明のいくつかの実施形態で説明されるコンピュータプログラムは、スタンドアロンのソフトウェアエンティティ、又は他のコンピュータプログラムのサブエンティティ(例えば、サブルーチン、ライブラリ)であってもよい。「データベース」という用語は、本明細書では、組織化された検索可能なデータの集合を示すために使用される。コンピュータ可読媒体は、磁気、光学、及び半導体記憶媒体(例えば、ハードドライブ、光ディスク、フラッシュメモリ、DRAM)などの非一時的媒体、並びに導電ケーブル及び光ファイバリンクなどの通信リンクを包含する。いくつかの実施形態によれば、本発明は、とりわけ、本明細書に記載の方法を実施するようにプログラムされたハードウェア(例えば、1つ又は複数のプロセッサ)と、本明細書に記載の方法を実施する命令を符号化したコンピュータ可読媒体と、を備えるコンピュータシステムを提供する。
以下の説明は、本発明の実施形態を例として示しており、必ずしも限定するものではない。
図1は、本発明のいくつかの実施形態による、例示的なロボティック・プロセス・オートメーション・システムを示している。複数のRPAクライアント10a~eの各々は、少なくともハードウェアプロセッサと、メモリユニットと、それぞれのRPAクライアントがコンピュータネットワーク及び/又は他のコンピューティングデバイスへの接続を可能にするネットワークアダプタと、を有するコンピューティングデバイスを表す。例示的なRPAクライアント10a~eは、とりわけ、パーソナルコンピュータ、ラップトップ及びタブレットコンピュータ、並びにモバイル通信デバイス(例えば、スマートフォン)を含む。例示的な使用事例シナリオでは、RPAクライアント10a~10dは、企業の会計又は人事部に属するデスクトップコンピュータを表す。図示のRPAクライアント10a~dは、ローカル・エリア・ネットワーク(LAN)を備え得るローカル通信ネットワーク12によって相互接続される。クライアント10a~dは、広域ネットワーク(WAN)及び/又はインターネットを備え得る拡張ネットワーク14に更にアクセスし得る。図1の構成例では、RPAクライアント10eは、拡張ネットワーク14に直接接続されている。そのようなクライアントは、様々なアクセスポイントでネットワーク14に接続するラップトップ、タブレットコンピュータ、又は携帯電話などのモバイルコンピュータを表し得る。
典型的なRPAシナリオでは、会社の従業員は、例えば様々なビジネスクライアントに請求書を発行するために、ビジネスアプリケーション(例えば、ワードプロセッサ、スプレッドシートエディタ、ブラウザ、電子メールアプリケーション)を使用して、反復的なタスクを実施する。それぞれのタスクを実際に実行するために、従業員は、一連の操作/アクションを実施し、これは、本明細書ではビジネスプロセスと見なされる。請求書発行ビジネスプロセスの一部を形成する例示的な操作は、Microsoft Excel(登録商標)スプレッドシートを開くことと、クライアントの会社の詳細を検索することと、それぞれの詳細を請求書テンプレートにコピーすることと、購入された商品を示す請求書フィールドに記入することと、電子メールアプリケーションに切り替えることと、それぞれのクライアントへの電子メールメッセージを作成することと、新規に作成した請求書をそれぞれの電子メールメッセージに添付することと、「送信」ボタンをクリックすることと、を含んでもよい。従業員のコンピュータ上で遂行されるRPAソフトウェアは、それぞれのタスクを実行する過程で、それぞれの人間のオペレータによって実施される操作のセットを模倣することによって、それぞれのビジネスプロセスをオートメーション化し得る。そのようなオートメーション化を典型的に対象とする例示的なプロセスは、支払いの処理、請求書発行、ビジネスクライアントとの通信(例えば、社報及び/又は製品の提供物の配布)、内部通信(例えば、メモ、会議及び/又はタスクのスケジューリング)、給与処理などを含む。
人間の操作/アクションを模倣することは、本明細書では、人間のオペレータがコンピュータ上でそれぞれの操作/アクションを実施するときに発生する一連のコンピューティングイベントを再現することと、人間のオペレータがコンピュータ上で実施したそれぞれの操作結果を再現することと、を包含すると理解される。例えば、グラフィカル・ユーザー・インターフェースのボタンをクリックするアクションを模倣することは、オペレーティングシステムに、マウスポインタをそれぞれのボタンに移動させることと、マウス・クリック・イベントを生成することと、を含んでもよく、又はそれぞれのGUIボタン自体をクリック状態に切り替えることを含んでもよい。
図2は、本発明のいくつかの実施形態による、RPAクライアント10上で遂行される例示的なソフトウェアを示している。RPAクライアント10は、図1のRPAクライアント10a~eのいずれかを表している。RPAクライアント10は、オペレーティングシステム(OS)40、及びビジネスアプリケーション42のセットを遂行する。OS40は、アプリケーション42とRPAクライアント10のハードウェアとの間をインターフェースするソフトウェア層を備える、とりわけ、Microsoft Windows(登録商標)、MacOS(登録商標)、Linux(登録商標)、iOS(登録商標)、又はAndroid(登録商標)などの任意の広く利用可能なオペレーティングシステムを備えてもよい。ビジネスアプリケーション42は、タスクを実行するために、RPAクライアント10の人間のオペレータによって使用される任意のコンピュータプログラムを全般に表す。例示的なビジネスアプリケーション42は、とりわけ、ワードプロセッサ、スプレッドシートアプリケーション、グラフィックアプリケーション、ブラウザ、ソーシャル・メディア・アプリケーション、及び電子通信アプリケーションを含む。少なくとも1つのビジネスアプリケーション42は、以下に詳述するように、オートメーション化の対象となるユーザーインターフェース(UI)を公開するように構成される。
いくつかの実施形態では、RPAクライアント10は、ビジネスプロセスのオートメーション化を集合的に実装する相互接続されたコンピュータプログラムのセットを備えるRPAロボット44を更に遂行する。例示的なRPAロボットは、Microsoft(登録商標)株式会社からのWindows Workflow Foundationアプリケーション・プログラミング・インターフェースを使用して構築される。いくつかの実施形態では、RPAロボット44は、RPAクライアント10上でインスタンス化された別個の専用仮想マシン内で遂行される。
RPAロボット44のコンポーネントは、RPAエージェント43と、ロボットエグゼキュータ45のセットと、を含む。ロボットエグゼキュータ45は、ビジネスプロセスを実行する人間のオペレータのアクションを模倣する一連の操作(アクティビティとして当技術分野でも知られる)を示すRPAスクリプト50を受け取り、それぞれのクライアントマシン上でそれぞれの一連の操作を実際に遂行するように構成される。RPAスクリプト50は通常、プロセス固有であり、すなわち、各別個のビジネスプロセスは、RPAスクリプトの別個のセットによって記述される。RPAスクリプト50は、当技術分野で知られている任意のデータ仕様に従って定式化され得る。好ましい実施形態では、RPAスクリプト50は、拡張可能マークアップ言語(XML)のバージョンで符号化されるが、スクリプト50はまた、C#、Visual Basic、Javaなどのプログラミング言語で定式化されてもよい。あるいは、RPAスクリプト50は、バイトコードのRPA固有のバージョンで、又は英語、スペイン語、日本語などの自然言語で定式化された一連の命令としてでさえ指定されてもよい。いくつかの実施形態では、スクリプト50は、ネイティブプロセッサ命令のセット(例えば、マシンコード)に事前コンパイルされる。
いくつかの実施形態では、ロボットエグゼキュータ45は、それぞれのスクリプトに記載された操作を実行するためのプロセッサ命令を備える実行時パッケージに、RPAスクリプト50を変換するように構成されたインタプリタ(例えば、ジャストインタイムインタプリタ又はコンパイラ)を備える。したがって、スクリプト50を遂行することは、エグゼキュータ45が、RPAスクリプト50を変換することと、結果として得られた実行時パッケージをメモリにロードし、更に実行時パッケージを起動して遂行するように、RPAクライアント10のプロセッサに命令することと、を含んでもよい。
RPAエージェント43は、ロボットエグゼキュータ45の動作を管理し得る。例えば、RPAエージェント43は、人間のオペレータからの入力に従って、及び/又はスケジュールに従って、ロボットエグゼキュータ45による遂行のためのタスク/スクリプトを選択してもよい。エージェント43は、エグゼキュータ45の様々な動作パラメータを更に構成してもよい。ロボット44が複数のエグゼキュータ45を含む場合、エージェント43は、それらのアクティビティ及び/又はプロセス間通信を調整し得る。RPAエージェント43は、RPAロボット44と図1に示すRPAシステムの他のコンポーネントとの間の通信を更に管理し得る。そのようなコンポーネントは、他のRPAクライアント上、及び/又はロボット管理サーバ11a~bのセット上で遂行し得る。そのような一例では、複数のクライアントマシンにわたってRPAアクティビティを調整し、更に複雑なスケジューリング及び/又はライセンス管理を可能にするロボット・オーケストレータ・サービスを、サーバ11a~bは動作させてもよい。サーバ11a~bは、様々な中間値及び/又はRPAスクリプトの遂行結果を示すデータを、個々のRPAロボットから更に受け取ってもよい。そのようなデータは、アクティビティ報告を生成し、ライセンス契約を施行し、及び/又は誤動作を軽減するために使用され得る。
いくつかの実施形態では、RPAクライアント10の人間のオペレータがRPAスクリプト50を作成し、したがってロボットを効果的に設計して、アクティビティのセットを実施し得るように構成されたスクリプト作成アプリケーション46を、RPAクライアント10は更に遂行する。オペレータがビジネスプロセスをモデル化するためのツールのセットとインタラクトすることを可能にするコードエディタ及び/又はユーザーインターフェースを備える統合開発環境(IDE)のように、作成アプリケーション46は機能し得る。例示的な作成アプリケーションは、ユーザーが、ビジネスアプリケーション42を選択することと、それぞれのアプリケーションとインタラクトする所望の方法を示すこと、例えばロボット44によって実施される一連の操作を示すことと、を可能にしてもよい。例示的な操作は、例えば、特定のExcel(登録商標)スプレッドシートを開くこと、データテーブルの特定の行/列からデータを読み取ること、特定の方法でそれぞれのデータを処理すること、特定のボタンをクリックすること、電子メールメッセージを作成及び送信すること、特定の統一された記録場所(URL)にナビゲートすること、などを含む。いくつかの実施形態では、作成アプリケーション46は、RPAロボット44によって読み取り可能なフォーマット(例えば、XML)でRPAスクリプト50を出力する。ネットワーク12及び/又は14を介してRPAクライアント10a~eに通信可能に結合され、RPAクライアント10a~eにアクセス可能なスクリプトリポジトリ15に、RPAスクリプト50を記憶してもよい(図1参照)。好ましい実施形態では、スクリプトリポジトリ15は、ロボット管理サーバ11a~bに直接リンクされる。スクリプトリポジトリ15は、データベース、例えば、基準のセットに従って、スクリプト50の選択的検索を可能にする任意の構造化データ集合として編成されてもよい。
当業者であれば、図2に示すすべてのコンポーネントが、同じ物理プロセッサ又はマシン上で遂行する必要がないことを理解するであろう。典型的なRPA構成では、スクリプト開発/ロボット設計は、1つのマシン上(当技術分野で「設計サイド」として一般的に知られている)で実行される。次に、結果として得られるRPAスクリプト50は、遂行のために複数の他のユーザー及びマシンに配信される(通常、「実行時サイド」又は単に「実行時」として知られている)。
図3は、本発明のいくつかの実施形態による、例示的なユーザーインターフェース(UI)58を示している。UI58は、ビジネスアプリケーション42のいずれかによって公開されてもよい。ユーザーインターフェースは、人間とマシンとのインタラクションを可能にするコンピュータインターフェースであり、例えば、ユーザー入力を受け取り、それぞれの入力に応答するように構成されたインターフェースである。ユーザーインターフェースの一般的な例は、グラフィカル・ユーザー・インターフェース(GUI)として知られており、それは、ユーザーに対して表示する視覚要素のセットを介して人間とマシンとのインタラクションを可能にする。例示的なUI58は、例示的なウィンドウ60a~bのセットと、メニューインジケータ62a、アイコン62b、ボタン62c、及びテキストボックス62dを含む例示的なUI要素のセットと、を有する。他の例示的なUI要素は、とりわけ、ウィンドウ、ラベル、フォーム、個別フォームフィールド、トグル、リンク(例えば、ハイパーリンク、ハイパーテキスト、又は統一資源識別子)を備える。UI要素は、情報を表示し、入力(テキスト、マウスイベント)を受け取り、並びに/あるいはソフトウェアの機能及び/又はそれぞれのコンピュータシステムを制御し得る。
いくつかのUI要素は、それら(例えば、クリックボタン62c)に作用することが挙動/反応をトリガするという意味でインタラクティブである。そのような挙動/反応は通常、それぞれの要素に、又は要素のグループに固有である。例えば、保存ボタンをクリックすることと、印刷ボタンをクリックすることでは、異なる効果が生じる。同じキーボードショートカット(例えば、Ctrl-G)は、1つのウィンドウ/アプリケーションで遂行される場合1つの効果を有し、別のウィンドウ/アプリケーションで遂行される場合、全く異なる効果を有し得る。そのため、操作/アクション(クリックを遂行すること、キーボードキーの組合せを押すこと、一連の文字を書き込むことなど)は同じであるが、それぞれのアクションの結果は、それぞれの操作のオペランドに実質的に依存し得る。オペランドは、本明細書では、クリック又はキーボードイベントなどの現在の操作/アクションによって作用されるUI要素として定義されるか、そうでなければ、それぞれのユーザー入力を受け取るために選択されたUI要素として定義される。「対象」及び「オペランド」という用語は、本明細書では互換的に使用される。UI要素の挙動は要素固有であるため、成功したRPAは、各スクリプト化されたRPAアクティビティのオペランドを明確に、且つ正確に識別する必要があり得る。
図4は、本発明のいくつかの実施形態による、スクリプト作成アプリケーション46によって実施される例示的な一連のステップを示している。ステップ101は、現在のオートメーション化の対象である対象UI、すなわち、ビジネスアプリケーション42のユーザーインターフェースの設計サイドインスタンスを公開する。ステップ101は、例えば、ビジネスアプリケーション42のインスタンスを呼び出すことを含んでもよい。ステップ102において、公開された対象UI上でロボット44によって実施されるべき所望のアクティビティを、ユーザーが示すことを可能にするロボット設計インターフェース(例えば、GUI)を、アプリケーション46は公開し得る。いくつかの実施形態では、アクティビティは、アクティビティメニューの階層を介して達成されてもよい。様々な基準に従って、例えば、ビジネスアプリケーションのタイプ(例えば、MS Excel(登録商標)アクティビティ、ウェブアクティビティ、電子メールアクティビティ)に従って、及び/又はインタラクションのタイプ(例えば、マウスアクティビティ、ホットキーアクティビティ、データ・グラブ・アクティビティ、フォーム記入アクティビティなど)に従って、アクティビティをグループ化し得る。ステップ104は、それぞれのアクティビティを示すユーザー入力を受け取る。例えば、ステップ104は、マウス・クリック・イベントをインターセプトし、ユーザーがアクティビティを選択するためにクリックしたメニュー項目を決定することを含んでもよい。更なるステップ106において、ユーザーがそれぞれのアクティビティの様々な選択肢及び/又はパラメータを構成することを可能にするアクティビティ構成インターフェースを、アプリケーション46は公開し得る。1つの例示的なアクティビティパラメータは、それぞれのアクティビティのオペランド/対象UI要素である。アクティビティがマウスクリックを含む一例では、対象UI要素はボタン、メニュー項目、ハイパーリンクなどであってもよい。アクティビティがフォームに記入することを含む別の例では、対象UI要素は、それぞれのテキスト入力を受容するべき特定のフォームフィールドであってもよい。アプリケーション46により、ユーザーは、様々な方法で対象UI要素を示すことが可能になる。例えば、それは、候補UI要素のメニュー/リストから対象要素を選択するようにユーザーを促してもよい。好ましい実施形態では、アプリケーション46は、対象UI(すなわち、ロボット44が、例えばMS Excel(登録商標)、ブラウザ、電子メールプログラムなどとインタラクトすることになっているビジネスアプリケーションのUI)のインスタンスを公開し、それぞれのUI内のUI要素のサブセットをハイライトし、ユーザーに選択を示すためにいずれかをクリックするように促してもよい。ステップ108において、アプリケーション46は、例えば、特定のOS機能を呼び出してマウスクリックを検出することによって、更にクリックされたUI要素を識別することによって、選択された対象要素を示すユーザー入力を受け取って、処理し得る。
次に、ステップ110において、いくつかの実施形態は、選択された対象要素に関連するアンカーUI要素を自動的に決定し得る。アンカー要素(又は単に「アンカー」)は、本明細書では、対象及びアンカーがそれぞれのユーザーインターフェース内で同時に見えるという意味で、関連する対象UI要素と同時に表示されるUI要素として定義される。更に、アンカー要素及び対象要素は通常、意味的接続を有し、例えば、それらは両方とも、UI要素の同じグループ/コンテナに属し、及び/又はそれらは共に機能を実施する。入力フィールドに関連する例示的なアンカー要素は、とりわけ、それぞれの入力フィールドの近傍に表示されたテキストラベルと、それぞれの入力フィールドを含むフォームのタイトルと、を含む。ボタンに関連する例示的なアンカー要素は、それぞれのボタン、及び同じUIの別のボタンの上に表示されたテキストを含む。図5は、本発明のいくつかの実施形態による、対象要素64及び複数の潜在的なアンカー要素66a~eを有する例示的なUI58を示している。
対象要素のアンカーを決定することは、例えば図6に示すように、候補UI要素のセットからアンカーを選択することを含み得る。ステップ202において、アプリケーション46は、UI58によって表示されたUI要素のセットから選択された候補アンカー要素のセット(例えば、図5のアイテム66a~eを参照)を生成し得る。候補アンカー要素は、それぞれの対象要素の要素タイプ(例えば、ボタン、テキスト、入力フィールドなど)に従って選択され得る。いくつかの実施形態では、候補アンカーが、それぞれの対象と同じ要素/UIコンテナのグループに属するか否かに従って、候補アンカーを選択してもよい。例えば、対象要素がフォームフィールドである場合、いくつかの実施形態は、同じフォームフィールドに属するUI要素の中からのみ、アンカー候補を選択することになる。HTML文書の場合、いくつかの実施形態は、対象要素と同じ<div>又は<span>コンテナからラベル候補を選択してもよい。
次に、ステップ204において、アプリケーション46は、基準のセットに従って各候補アンカー要素を評価し得る。いくつかの実施形態では、ステップ204は、別個の基準に従って評価された複数のサブスコアを組み合わせ得るアンカー適応度スコアを決定することを含んでもよい。例示的な基準は、対象要素に対する候補アンカーの相対位置である。相対位置は、それぞれの対象要素と候補アンカー要素との間の距離、角度、及び/又は重複度のセットに従って決定され得る。そのような決定の例は、図13~図16に関連して以下で詳細に説明する。いくつかの実施形態は、対象要素の近傍に配置される、及び/又は対象要素と実質的に位置合わせされているUI要素が、比較的信頼性の高いアンカーであると考える。そのような実施形態では、そのようなUI要素は、選択された対象要素から離れている、及び/又は選択された対象要素と位置合わせされていない他のUI要素よりも、高い適応度スコアを受け取ってもよい。
他の例示的なアンカー適応度基準は、それぞれのUI要素の画像及び/又はテキストコンテンツを含んでもよい。いくつかの実施形態は、テキストラベルをアンカー要素として優先するので、テキストを含まないUI要素は、テキストの断片を表示する他のUI要素よりも相対的に低い適応度スコアを受け取り得る。別の例示的な基準は、UI要素によって表示されるテキストの長さであってもよく、いくつかの実施形態は、それらは、ラベルである可能性が高いため、小さいテキスト要素を優先してもよい。そのような実施形態では、比較的小さいテキスト要素は、かなりの量のテキストを有するテキスト要素と比較して、比較的高い適応度スコアを受け取り得る。
更に別の例示的な基準は、類似の外観を有するアンカー候補の数、例えば、同一のテキストを表示するUI要素の数を含んでもよい。例示的な一シナリオでは、複数の人物に関するデータを収集するように設計され、「名字」とラベル付けされた複数のフィールドを有するフォームを、対象UI58は含む。そのような状況では、「名字」ラベルは、特定のフォームフィールドを識別する際に極めて信頼できない場合がある。したがって、いくつかの実施形態は、各アンカー候補が(同様の画像を有するか、又は同様のテキストを表示する他のUI要素がないという意味で)、一意であるか否かを判定し、否である場合、比較的低いアンカー適応度スコアを、それぞれのアンカー候補に割り当ててもよい。代替の実施形態は、例えば、それぞれのフォームフィールドの近傍に配置されたラベル、及びそれぞれの入力フォーム又は入力ブロックのタイトルなど、複数のアンカーを同じ対象要素に割り当ててもよい。
次いで、ステップ206は、候補アンカーについて評価されたスコアを比較し得る。明確に当選した候補が存在する場合、ステップ210において、スクリプト作成アプリケーション46は、ステップ108(図4)で決定された対象要素に関連するアンカー要素として、最も高い適応度スコアを有する候補要素を選択し得る。同点の場合、すなわち、複数の候補が同じ適応度スコアを有する場合、いくつかの実施形態は、アンカーとして使用されるUI要素を明示的に示すようにユーザーを促し得る(ステップ208)。
アンカーUI要素を自動的に選択する代替の方法を図7~図8に示す。アプリケーション46が候補要素のセットを生成し、次いで対象要素に対するそれらの位置に従ってそれらの適応度をアンカーとして評価する前述の方法とは対照的に、ステップ222は、例えば、画面座標{X,Y}のペアとして、UI58内の候補配置を生成し得る。そのような実施形態は、テキストラベルなどの信頼可能なアンカーが通常、対象UI58のそれぞれの自然言語のデフォルトの読取り方向に応じて、それらの関連する対象の隣に、例えば、それらの左に、又は真上若しくは真下に見られるという観察に依存する。したがって、いくつかの実施形態は、潜在的なアンカー要素を、そのような配置に明示的に探してもよい。図7は、複数の候補配置65a~dを示している。そのような候補配置は、対象UI要素の画面位置(図7においてアイテム64として示す)に従って、及び/又は対象要素のサイズに従って、決定され得る。いくつかの実施形態では、候補配置は、例えば決定論的コンポーネントとランダムコンポーネントとの和としてランダムに生成される。
次に、ステップ224は、ほぼ候補配置に配置されるすべてのUI要素を識別し得る。いくつかの実施形態では、それぞれの配置がそれぞれの要素の画面境界内にある場合に、要素は、特定の配置に配置されると見なされる。別の実施形態は、それぞれの要素の中心/重心と、それぞれの配置との間の距離が、所定の閾値よりも小さい場合、要素が特定の配置に配置されると考えられてもよい。図7の例では、UI要素66は、候補配置65aに配置されていると考えられ得る。いくつかの実施形態では、ステップ224は、OS40のネイティブ機能に呼出しを発行することを含み、そのそれぞれの機能は、画面の特定の領域を占有するUI要素のリストを返すように構成される。どのUI要素が候補配置に配置されるかを決定する他の方法は、それぞれのUIの基礎となるソースコード(例えば、HTMLスクリプト、スタイルシート)を解析することを含む。
UI要素がそれぞれの候補配置に配置されていない場合、いくつかの実施形態は、別の候補配置を生成するためにステップ222に戻る。そうでなければ、ステップ226において、スクリプト作成アプリケーション46は、アンカー適応度基準のセットに従ってUI要素の識別されたセットをフィルタリングしてもよい。そのような基準は、とりわけ、視認性(例えば、可視UI要素のみがアンカーとして選択され得る)、及び要素タイプ(例えば、テキスト要素が、他のタイプのUI要素よりも好まれ得る)を含んでもよい。他の適応度基準は、図5~図6に関連して上述したものと同様であってもよい。例えば、それぞれのUI要素が対象要素と位置合わせされているか否か、それぞれのUI要素が対象要素と実質的に重複しているか否かなどに従って、アプリケーション46は、位置スコアを評価してもよい。
候補配置に配置されるUI要素のいずれもアンカーに適応していると見なされない場合(例えば、所定の閾値を超える適応度スコアを受け取っていない場合)、いくつかの実施形態は、ステップ222に戻って、別の候補配置を生成してもよい。そうでなければ、ステップ232は、それぞれの対象要素に関連するアンカーとして適格なUI要素を選択し得る。
対象要素及び/又はアンカーUI要素の識別に応答して、一連のステップ112~114(図4)において、スクリプト作成アプリケーション46は、それぞれの対象要素及びアンカー要素の要素特性機能のセットを決定し得る。本発明のいくつかの実施形態による、そのような要素特性機能を図9に示しており、その要素特性機能は、とりわけ、対象要素64及びアンカー要素66をそれぞれ特徴付ける要素ID80a~bのセット、要素テキスト82a~bのセット、及び要素画像84a~bのセットを含む。
要素ID80a~bは、オペレーティングシステム及び/又はそれぞれのビジネスアプリケーション42への各UI要素を、例えば、RPAクライアント10がそれぞれのユーザーインターフェースを表現及び/又はレンダリングするために使用するオブジェクトの階層内の特定のオブジェクトとして、識別する。いくつかの実施形態では、要素ID80a~bは、例えば属性と値とのペアのセットとして、インターフェース58のソースコードに含まれる。ユーザーインターフェースのソースコードという用語は、本明細書では、それぞれのユーザーインターフェースによって表示されるコンテンツのプログラム表現を示すと理解される。ソースコードは、プログラミング言語で書かれたプログラム/スクリプト、並びにRPAクライアント10のメモリに存在するデータ構造を包含し得る。例示的なソースコードは、ウェブ・ブラウザ・アプリケーションによってウェブページとしてレンダリングされるHTML文書を備える。
最新のコンピューティングプラットフォームでは、オペレーティングシステムは通常、UIツリーとして一般に知られている階層データ構造として、各ユーザーインターフェースを表す。例示的なUIツリーは、ブラウザアプリケーションによってレンダリングされたウェブページの基礎となる文書オブジェクトモデル(DOM)を備える。図10は、複数のノード72a~eを有する例示的なUIツリー70を示している。いくつかの実施形態では、各ノード72a~eは、UI58の一部を表すオブジェクトを備える。図5に示すような例示的なUIでは、ルートノード72aは、UIウィンドウ全体を表してもよい。その子ノードは、個々のUI要素(例えば、テキストボックス、ラベル、フォームフィールド、ボタンなど)、要素のグループ、それぞれのUIの別個の領域又はブロックなどを表してもよい。図10のノード72bなどの中間ノードは、そのすべての入力フィールド、ラベル及びボタンを含むフォーム全体を表してもよい。例えば、ノード72cは、HTML文書の<form>又は<fieldset>コンテナのコンテンツを表してもよい。中間ノードの別の例は、<div>又は<span>HTMLコンテナのコンテンツを表してもよい。中間ノードの更に別の例は、文書のヘッダ又はフッタのコンテンツを備える。72b、72d、及び72eなどのエンドノード(当該技術分野ではリーフノードとしても知られる)は、更なる子ノードを持たないノードであり、個々のUI要素(例えば、ボタン、個々のラベル、個々の入力フィールド)を表してもよい。ウェブブラウザUIの一例では、
いくつかの実施形態では、各ノード72a~eは、例えば、とりわけ、それぞれのノードの親ノードの識別情報、それぞれのノードの子ノードの識別情報、名前、及びそれぞれのノードによって表されるUI要素のタイプを示し得る属性と値とのペアのセットを使用して指定される。
いくつかの実施形態では、UI要素を特徴付ける要素IDは、UIツリー70内のノードの配置を集合的に示すノード識別子のセットを備え、そのそれぞれのノードは、それぞれのUI要素を表す。そのような一例では、要素ID80cは、本明細書では、サブツリー(図10の例示的なサブツリー74a~dを参照)と呼ばれるUIツリー70のノードのサブセットを示す。したがって、要素ID80cは、ノード/UI要素を、それぞれのサブツリーに属するものとして識別する。例えば、ノード72dはサブツリー74cに属する。例示的な要素ID80cは、「uidouble.exe」と呼ばれるアプリケーションのウィンドウ内で見える「承認」と呼ばれる「プッシュボタン」 としてそれぞれのUI要素を識別する属性と値とのペアのセットを含む。要素ID80cの図示したフォーマットは、一例としてのみ提供され、当業者であれば、属性と値とのペアのリストの他に、UIツリー内の特定のノードの配置を表す複数の他の方法があり得ることを理解するであろう。
いくつかの実施形態では、対象要素及びアンカー要素をそれぞれ特徴付ける要素ID80a~bを決定することは、対象ユーザーインターフェース58のソースコード(例えば、HTML文書)を解析することと、例えば各UI要素に関連する属性と値とのペアのセットとして、それぞれの要素IDを抽出することと、を含む。
いくつかの実施形態では、各要素テキスト82a~b(図9)は、それぞれのUI要素の画面境界内に表示されるテキスト(一連の英数字文字)のコンピュータ符号化を含む。図示の例では、対象要素64がいかなるテキストも表示しないため、要素テキスト82aは値NULLを有する。一方、要素テキスト82bは、テキスト「現金預入」で構成される。テキストのコンピュータ符号化は、例えば、一連の数字コード(例えば、ユニコード)を含んでもよく、各コードは、要素テキスト82a~bの別個の文字に対応する。
スクリプト作成アプリケーション46の実施形態は、様々な方法を使用して要素テキスト82a~bを決定してもよい。アプリケーション46がUI58のソースコードにアクセスする場合、アプリケーション46は、それぞれのソースコードから要素テキスト82a~bを抽出しようと試みてもよい。例えば、ウェブページのボタン上に表示されるラベルは、それぞれのウェブページに関連するHTML文書を構文解析することによって見つけられ得る。他のビジネスアプリケーション42の場合、スクリプト作成アプリケーション46は、OS40及び/又はビジネスアプリケーション42のデータ構造を解析して、要素テキスト82a~bがUI58のソースコードに含まれるか否かを判定してもよい。
代替の実施形態では、アプリケーション46は、光学文字認識(OCR)コンピュータプログラムなどの画像解析ツールを採用して、要素テキスト82a~bを判定してもよい。そのような一例では、OCRツールは、それぞれの対象要素及び/又はアンカーUI要素を含む画面領域の画像を入力し、テキストトークン(例えば、単語)のセット、及び各テキストトークンについて決定されたバウンディングボックスを返してもよい。例示的なバウンディングボックスは、とりわけ、それぞれのテキストトークンに外接する多角形、及びそれぞれのトークンの凸包を含む。図9では、テキスト「現金預入」を囲む破線の矩形によって、バウンディングボックスを示している。テキストトークン及びバウンディングボックスの受取りに応答して、アプリケーション46は、任意のバウンディングボックスがそれぞれのUI要素と実質的に重複するか否かを判定し、重複する場合、それぞれの対象要素又はアンカーUI要素を特徴付けるテキスト要素82として、それぞれのバウンディングボックス内に配置されるテキストトークンを選択し得る。それぞれのバウンディングボックスの十分な割合(例えば、50%超、通常80~100%)が、それぞれのUI要素の画面境界内に配置される場合、実質的な重複が確立され得る。
いくつかの実施形態では、UI要素を特徴付ける各要素画像84a~b(図9)は、それぞれのUI要素の境界内の画面上に表示された画像のコンピュータ符号化を含む。画像のコンピュータ符号化は、場合によっては複数のチャネル(例えば、RGB)にわたる、それぞれの画面領域に対応する画素値のアレイ、及び/又は画素値のそれぞれのアレイに従って計算された値のセット(例えば、画素値のそれぞれのアレイのJPEG又はウェーブレット表現)を含み得る。各要素画像84a~bを決定することは、UI58のクリッピング、すなわち、それぞれのUI要素を示すUI58の限定された領域のコンテンツをグラブすることを含み得る。
更なるステップ116(図4)において、スクリプト作成アプリケーション46は、選択されたRPAアクティビティに対応するRPAスクリプトを定式化し得る。換言すれば、ステップ116において、アプリケーション46は、実行時に使用されるべきロボットのコードを、例えばスクリプトファイルに出力する。RPAスクリプト50は、当技術分野で知られている任意のコンピュータ可読符号化で、例えばXMLのバージョンで、定式化されてもよく、又は一連のネイティブプロセッサ命令(例えば、マシンコード)にコンパイルされてもよい。
各アクティビティ/オートメーション化ステップについて、作成アプリケーション46は、RPAスクリプト50に、それぞれのアクティビティ(例えば、クリックする、タイプ入力するなど)のインジケータを出力し、更に、ステップ108~110で決定された対象要素及びアンカーUI要素を特徴付ける要素ID80a~b、要素テキスト82a~b、及び要素画像84a~bの符号化を更に出力し得る。特性機能の符号化は、特性データ自体、及び/又はそのようなデータの他の表現、例えば、要素特性データがリモートにアクセスされ得るネットワーク配置のインジケータ(例えば、URL、ネットワークアドレス)を含み得る。
いくつかの実施形態では、アプリケーション46は、例えば属性と値とのペアのセットを使用して、それぞれのアクティビティを構成するためのパラメータ値のセットを、RPAスクリプト50に更に出力してもよい。一例示的なパラメータは、RPAスクリプト50に保存された設計時要素画像84を、候補UI要素(図11~図12に関連して以下の詳細を参照)の実行時画像と比較するための閾値を示す一致精度である。別の例示的なパラメータは、ロボット44が実行時及び/又は対象UI要素を識別しようと試みるために費やし得る最大時間量を示すタイムアウト閾値である。
オートメーション化の設計段階が完了すると、RPAスクリプト50は、遂行のために、スクリプトリポジトリ15に送られてもよく、及び/又は他のRPAクライアントに配信されてもよい(例えば、図1を参照)。図11は、実行時にRPAロボット44によって実行される例示的な一連のステップを示している。RPAスクリプト50の受取りに応答して、ステップ304は、RPAスクリプト50のコンテンツに従って、実施されるべきアクティビティのタイプを決定する。ステップ304は、RPAスクリプト50に従って、それぞれのロボットがインタラクトするように構成される、対象UI及び/又は実行時ビジネスアプリケーション(例えば、MS Excel(登録商標)、Google Chrome(登録商標)など)を更に決定してもよい。ステップ306において、RPAロボット44は、例えば、ローカル・クライアント・マシン上のそれぞれのビジネスアプリケーションのインスタンスを呼び出すことによって、それぞれの対象UIを公開し得る。更なるステップ308は、RPAスクリプト50に記憶された情報に従って、それぞれのアクティビティの実行時対象UI要素を自動的に識別し得る。実行時対象UI要素は、それぞれのアクティビティのオペランド、すなわち、ロボット44が作用(例えば、クリックする、何らかのテキストを入力する、コンテンツをグラブするなど)するように構成された実行時対象UIのUI要素を備える。ステップ308の遂行は、以下に詳細に説明する。実行時対象UI要素を首尾よく識別したことに応答して、ステップ310は、スクリプト化されたアクティビティを自動的に実行する、すなわち、RPAスクリプト50に示されるようにそれぞれのUI要素とインタラクトし得る。
図12は、本発明のいくつかの実施形態による、実行時対象UI要素を自動的に識別するために、ロボット44によって実施される例示的な一連のステップを示している。ステップ312において、ロボット44は、現在のアクティビティの対象のタイプと一致するUI要素を検出し得る。例えば、それぞれのアクティビティがフォームフィールドへのタイプ入力を含む場合、ステップ312は、実行時UI内のフォームフィールドのセットを識別することを含んでもよい。ステップ312は、例えばコンピュータビジョン(例えば、ボタン、テキストボックス、入力フィールドなどの様々なUI要素を自動的に認識するようにトレーニングされたニューラルネットワーク)を使用して、実行時対象UIの下にあるソースコードを解析すること、及び/又は実行時UIの画面上画像に従ってUI要素を識別すること、を含むことができる。意図した対象要素及び/又はアンカー要素がテキストを備える場合、いくつかの実施形態は、OCR技術を更に採用して、テキスト要素を自動的に検出し、更にそれぞれのテキスト要素のためのバウンディングボックスを構築してもよい。
次に、ステップ312によって返されたUI要素のセット内を見て、ステップ314は、要素IDに従って、実行時対象UI要素を識別しようと試み得る(図9~図10に関する上記の説明を参照)。いくつかの実施形態では、ステップ314は、ステップ312によって返されたセット内の各UI要素の要素IDを決定することと、それぞれの要素IDを、設計サイド対象要素(例えば、図10の要素ID80a)の要素IDと比較する、すなわち、対象を特徴付けるものとしてRPAスクリプト50によって指定された要素IDと比較することと、を含む。ステップ316は、任意の要素IDが、現在のアクティビティの意図した対象の要素IDと一致するか否かを判定し、一致する場合、ステップ318は、一致するUI要素を実行時対象として選択し得る。いくつかの実施形態では、ステップ316は、2つの要素ID間で、厳密に一致するものがあるか否かを判定する。要素IDが属性と値とのペアのセットを使用して指定される場合で、対応する属性のすべての値が同一である場合に、完全に一致するのがあり得る。
しかしながら、設計時と実行時との間に発生する対象ユーザーインターフェースの不定期の変化に起因して、実行時対象UIのUI要素が、意図した対象の設計時要素IDと一致しないことが起こり得る。例えば、フォームフィールドの名前が変更された場合がある。UI要素がRPAスクリプト50に示される要素IDと一致しない場合、ロボット44は、利用可能な情報から現在のアクティビティの対象/オペランドを自動的に推論してもよい。本発明のいくつかの実施形態は、要素テキスト82及び要素画像84を、要素IDが一致しない場合に、実行時対象を識別するための代替のフォールバックデータとして使用する。
そのような一例では、一連のステップ322~324は、設計サイド対象要素及びアンカー要素に対してそれぞれRPAスクリプト50で指定された要素IDに従って、候補実行時対象要素のセット及び候補実行時アンカー要素のセットを組み立ててもよい。「候補」という用語は、本明細書では、UI要素を示すために使用され、その要素IDは、意図した対象要素又はアンカー要素のものとそれぞれ同じである。類似性は、様々な方法で決定され得る。例示的な一実施形態では、ロボット44は、正規表現を使用して、2つの要素IDが部分的に一致するか否かを判定してもよい。例示的な正規表現手法では、機能の特定のサブセットが両方の要素IDにおいて同一である場合(例えば、要素タイプが同じであるが、要素名が異なる場合)、2つの要素IDは類似していると見なされる。要素IDがUIツリー内の要素の位置を示す一実施形態では、正規表現を使用する部分一致戦略により、ロボット44は、特定のサブツリー内の候補を検索すること、例えば、それらの要素IDで指定された同じルートノードを有する候補のみを選択することができる(例えば、図10に関連して上述した説明を参照)。例えば、RPAクライアント10が同時に実行されるビジネスアプリケーションの複数のインスタンスを有し、それらのうちの一方のみが意図した対象要素を有する場合に、この状況が生じ得る。固定ノードを用いて候補対象要素を探索することにより、ロボット44は、候補について、それぞれのUIウィンドウのすべてを探索することができる。
別の例示的な候補選択戦略は、2つの要素IDの間で異なる機能の計算に従って、2つの要素IDが類似しているか否かを判定してもよい。そのような手法は、例えば、2つの要素ID間のレーベンシュタイン距離を決定し、それぞれの距離を所定の閾値と比較してもよい。閾値未満の距離だけ離れた要素IDは、類似していると見なされ得る。いくつかの実施形態では、閾値は、設計時に指定され、RPAスクリプト50に含まれてもよい。正規表現を使用した部分一致方法とは対照的に、レーベンシュタイン距離を使用する方法は、比較される2つの要素ID間でどの機能が異なっているかということに影響されない可能性がある。
候補実行時対象のセット及び候補実行時アンカー要素のセットの選択に応答して、ロボット44のいくつかの実施形態は、候補をペア(例えば、対象候補とアンカー候補とのすべての組合せ)で評価して、最も可能性の高い実行時対象を決定してもよい。いくつかの実施形態では、一連のステップ330~332は、それぞれの要素の相対画面位置に従って、及びそれぞれのペアの各メンバのコンテンツ(要素テキスト及び/又は要素画像)に従って、各ペアを評価してもよい。
候補の各ペアについて、いくつかの実施形態は、候補対象が、意図した実行時対象要素である可能性を示すそれぞれの対象とアンカー候補とのペアの位置スコアを評価してもよい(ステップ330)。換言すれば、ステップ330において、いくつかの実施形態は、対象候補要素及びアンカー候補要素の相対位置に従って、対象候補が真の意図した実行時対象であり、更にアンカー候補がRPAスクリプトで指定されたアンカー要素である可能性を判定する。
例示的な位置スコアは、様々な基準に従って、例えば、候補アンカーと候補対象との間の距離に従って、決定されてもよい。図13は、本発明のいくつかの実施形態による、候補対象要素68(この例では、入力フィールド)と候補アンカー要素69(ラベル)とを隔てる例示的な距離のセットを示している。画面の主座標(例えば、水平及び垂直)に沿って、それぞれの要素の中心/重心間の距離d1及びd2を測定することができる。OCRを使用して検出されたテキスト要素の場合、距離は、それぞれのテキスト要素に外接するバウンディングボックスの中心又は重心まで測定され得る。マンハッタン距離、ユークリッド距離などの他の例示的な要素間距離を、d1及びd2に従って評価することができる。いくつかの実施形態は、アンカー要素が通常、その対象要素の近傍に配置されるという観察に依存しているため、候補アンカーと候補対象との間の距離が大きいほど、それぞれのペアが設計時対象要素及びアンカー要素を表す可能性は低い。そのような実施形態では、例示的な位置スコアは、1/D又は(1-D/Dmax)に従って決定されてもよく、ここで、Dは、d1及び/又はd2に従って決定される要素間距離を表し、Dmaxは、所定の閾値を表し、それを超えると2つのUI要素が対象とアンカーとのペアである可能性が低いと考えられる。
別の例示的な位置スコアは、候補アンカー要素と候補対象要素との間の位置合わせ度に従って決定されてもよい。位置合わせは、例えば図14に示すように、距離の別のセットに従って決定されてもよい。例示的な距離d3は、アンカー候補69の左端と対象候補68の左端とを隔てている。一方、距離d4は、アンカー候補69の上端と対象候補68の上端とを隔てている。いくつかの実施形態は、アンカーが通常、それらの対象要素と位置合わせされるという観察に依存しているため、それぞれのアンカー候補要素及び対象候補要素が実際に対象とアンカーとのペアである比較的高い可能性と、比較的小さいd3又はd4距離は、関連付けられ得る。図14は、左及び/又は上の位置合わせをテストするために使用され得る距離のみを示しており、当業者であれば、図示した距離測定値は、右及び/又は下の位置合わせをテストするように改良され得ることを理解するであろう。例示的な適応度スコアは、以下のように計算され得る。
ここで、δは、d3及び/又はd4に従って決定された位置合わせ距離であり、δmaxは、所定の閾値であり、それを超えると2つのUI要素が位置合わせされていないと見なされる。
ここで、δは、d3及び/又はd4に従って決定された位置合わせ距離であり、δmaxは、所定の閾値であり、それを超えると2つのUI要素が位置合わせされていないと見なされる。
別の例示的な位置スコアは、候補アンカーと候補対象との間の角度に従って決定されてもよい。図15は、アンカー候補69と対象候補68との間の例示的な角度Aを示しており、2つのそれぞれの要素の中心/重心を結ぶ直線の角度として決定される。いくつかの実施形態では、角度Aは、図13の表記を使用して、距離測定値、例えばA=d2/d1に従って決定される。いくつかの実施形態では、角度は、対象候補とアンカー候補との位置合わせ度を決定するための手段として機能する。いくつかの実施形態は、対象候補とアンカー候補との間の実行時に計算された角度を、実際のアンカー要素と対象要素との間の設計時に決定された角度と比較することによって、位置スコアを更に計算してもよい。設計時角度は、RPAスクリプト50に含まれてもよい。設計時角度と実行時角度との間の比較的小さい差は、現在の対象とアンカー候補とのペアが設計時対象要素及びアンカー要素とほぼ同じ相対位置にあることを示し、したがって、候補が真に求められる実行時対象要素及びアンカー要素である比較的高い可能性を示し得る。角度に従って決定される例示的な位置スコアは、1/|Ad-Ar|に従って決定されてもよく、ここで、Adは、(例えば、RPAスクリプト50で指定される)真のアンカー要素と対象要素との間の設計時に決定される角度を表し、Arは、候補対象と候補アンカーとの間の実行時に決定される角度を表す。
更に別の例示的な位置スコアは、アンカー候補要素と対象候補要素との間の重複度に従って決定されてもよい。図16は、本発明のいくつかの実施形態による、例示的な重複度67を示しており、重複度67は、一方の要素が他方の要素と交差する割合として、又は換言すれば、一方の要素が他方の要素とどの程度重なるかで、決定される。そのような実施形態では、交差しない2つの要素は重複がゼロであるが、一方の要素が他方を完全に含む2つの要素は、100%の重複を有する。いくつかの実施形態は、ボタンラベルなどの特定のアンカーを識別するために、重複度に従って決定された位置スコアを使用する。ロボット44がボタンタイプの対象要素を探しているそのような一例では、ロボットは、実質的な重複度を有しないすべての対象とアンカー候補とのペアを排除することができる(例えば、90%超)。
更なるステップ332(図12)において、ロボット44のいくつかの実施形態は、対象とアンカー候補とのペアのコンテンツスコアを決定する。コンテンツスコアは、対象候補及びアンカー候補の画面上コンテンツ(画像及び/又はテキスト)を、設計サイド対象及びアンカーのそれぞれのコンテンツと比較した結果に従って、決定され得る。いくつかの実施形態では、画面上コンテンツを比較することは、対象候補によって表示されたテキストと設計サイド対象要素によって表示されたテキストとの間の類似性の数値尺度と、アンカー候補によって表示されたテキストと設計サイドアンカー要素によって表示されたテキストとの間の類似性の別の尺度と、を評価することを含む。設計サイド対象要素及びアンカー要素の要素テキストは、RPA50で指定される(例えば、図9のアイテム82a~b及び関連する説明を参照)。2つのテキスト断片間の類似性は、例えばレーベンシュタイン距離を使用して評価されてもよく、比較的小さい距離は、比較される断片間の比較的高い類似性を示し得る。
ステップ332は、対象候補の画像と設計サイド対象要素の画像との間の類似性の数値尺度と、アンカー候補の画像と設計サイドアンカー要素の画像との間の類似性の別の尺度と、を決定することを更に含んでもよい。設計サイド対象要素及びアンカー要素の要素画像は、RPAスクリプト50で指定される(例えば、図9のアイテム84a~b及び関連する説明を参照)。2つの画像間の類似性のいくつかの尺度は、当技術分野で知られている。
テキストの類似性は、画像の類似性とは無関係に使用されてもよく、又はこれら2つは、集約コンテンツスコアにおいて組み合わされてもよい。テキスト又は対象要素若しくはアンカー要素の画像のいずれかが、設計と実行時との間で変化した状況において、画像及びテキストの態様を集約することは、実行時対象要素を識別するロバストな方法を提供し得る。そのような状況では、画像コンテンツが一致しない場合でも、又はその逆であっても、ロボット44は、テキストコンテンツに従って2つのUI要素が類似していると判定し得る。また、対象要素のみが設計時と実行時との間で変化している一方で、アンカーがほぼ同一のままである状況において、アンカーについて決定されたコンテンツスコアと、対象について決定されたコンテンツスコアとを組み合わせることは、ロバストな方法をもたらし得る。そのような状況では、ロボット44は、候補アンカーのコンテンツに従って、実行時対象を識別し得る場合がある。
代替の実施形態では、ロボット44は、対象とアンカー候補とのペアのフィルタとして、ステップ330を使用する。そのような一例では、各候補ペアについて、ロボット44は、アンカー候補に対する対象候補の相対位置のインジケータのセット、例えば図13~14に関連して上述したような距離のセットを評価してもよい。対象候補及びアンカー候補が、例えば離れすぎている、及び/又は位置合わせされていないために、対象及びアンカー候補が、真に求められる実行時対象とアンカーとのペアである可能性が低いことを、評価した距離が示す場合、それぞれの対象とアンカー候補とのペアは、コンテンツスコア評価について、もはや考慮されない(ステップ332)。このような最適化は、画像解析が通常、リソース消費型であるため、実行時対象を識別する計算コストを大幅に低減し得る。
ステップ336において、対象とアンカー候補とのペアのセットの各々に対して決定された位置スコア及び/又はコンテンツスコアに従って、ロボット44は、ステップ322で識別された対象候補のセットから実行時対象を選択し得る。いくつかの実施形態では、ステップ336は、各ペアについての集約スコアを計算してもよく、集約スコアは、それぞれのペアについて決定された位置スコアとコンテンツスコアとの組合せである。スコアは、当技術分野で知られている様々な方法を使用して、例えば、各スコアに所定の数値重みが乗算された加重平均として、組み合わせられてもよい。重みの値は、それぞれのスコアに関連する信頼度を示し得る(例えば、実行時対象を正しく識別する可能性が高いスコアには、比較的高い重みが与えられてもよい)。
いくつかの実施形態では、集約スコアがRPA50で指定された設計サイド対象とアンカーとのペアに最も高い類似性を示すペアの対象候補要素は、実行時対象要素として選択される。次に、ロボット44は、スクリプト化されたアクティビティに進むことができる(ステップ320)、すなわち、現在のアクティビティを、選択された実行時対象に適用することができる。
図17は、本明細書に記載の方法のいくつかを遂行するようにプログラムされたコンピューティングデバイスの例示的なハードウェア構成を示している。それぞれのコンピューティングデバイスは、図1のRPAクライアント10a~eのいずれか、例えば図18に示すパーソナルコンピュータを表してもよい。携帯電話、タブレットコンピュータ、及びウェアラブルなどの他のコンピューティングデバイスは、わずかに異なる構成を有し得る。プロセッサ22は、信号及び/又はデータのセットを用いて計算演算及び/又は論理演算を遂行するように構成された物理デバイス(例えば、マイクロプロセッサ、半導体基板上に形成されたマルチコア集積回路)を備える。そのような信号又はデータは、符号化され、例えばマシンコードなどのプロセッサ命令の形態でプロセッサ22に送達され得る。プロセッサ22は、中央処理装置(CPU)及び/又はグラフィックス・プロセッシング・ユニット(GPU)のアレイを含み得る。
メモリユニット24は、演算を実行する過程でプロセッサ22によってアクセス又は生成されるデータ/信号/命令符号化を記憶する揮発性コンピュータ可読媒体(例えば、ダイナミック・ランダムアクセス・メモリ-DRAM)を備え得る。入力デバイス26は、コンピュータキーボード、マウス、及びマイクロフォンを含み、とりわけ、ユーザーがデータ及び/又は命令をRPAクライアント10に導入することを可能にするそれぞれのハードウェアインターフェース及び/又はアダプタを含み得る。出力デバイス28は、とりわけモニタ及びスピーカなどのディスプレイデバイス、並びにそれぞれのコンピューティングデバイスがユーザーにデータを通信し得るようにするグラフィックカードなどのハードウェアインターフェース/アダプタを含み得る。いくつかの実施形態では、入力デバイス26及び出力デバイス28は、共通のハードウェア(例えば、タッチスクリーンである。)を共有する。ストレージデバイス32は、ソフトウェア命令及び/又はデータの不揮発性記憶、読取り、及び書込みを可能にするコンピュータ可読媒体を含む。例示的なストレージデバイスは、磁気ディスクデバイス、光ディスクデバイス及びフラッシュメモリデバイス、並びにCD及び/又はDVDディスクなどのリムーバブルメディア及びそれらのドライブを含む。ネットワークアダプタ34により、それぞれのコンピューティングデバイスは、電子通信ネットワーク(例えば、図1のネットワーク12及び14)及び/又は他のデバイス/コンピュータシステムに接続することができる。
コントローラハブ30は、複数のシステムバス、周辺バス、及び/又はチップセットバス、並びに/あるいはプロセッサ22とRPAクライアント10の残りのハードウェアコンポーネントとの間の通信を可能にする他のすべての回路を一般的に表す。例えば、コントローラハブ30は、メモリコントローラ、入力/出力(I/O)コントローラ、及び割込みコントローラを備えてもよい。ハードウェア製造業者に応じて、いくつかのそのようなコントローラは、単一の集積回路に組み込まれてもよく、及び/又はプロセッサ22と統合されてもよい。別の例では、コントローラハブ30は、プロセッサ22をメモリ24に接続するノースブリッジ、並びに/又はプロセッサ22をデバイス26、28、32及び34に接続するサウスブリッジを備えてもよい。
上述の例示的なシステム及び方法は、アクティビティ対象、すなわちロボットソフトウェアによって作用されるユーザーインターフェース要素の自動識別を改善することによって、RPA操作を容易にする。典型的なRPA用途では、対象ユーザーインターフェース(例えば、電子商取引ウェブページ、会計インターフェースなど)は、それぞれのインターフェースとインタラクトするためにロボット設計とは無関係に開発及び維持されるので、対象識別は、実質的な技術的問題を提起する。したがって、対象UIの機能性及び/又は外観は、RPA開発者の知識なしに変化することがある。したがって、成功したRPAは、アクティビティ対象を識別するロバストな方法、すなわち対象ユーザーインターフェースの設計の変動に比較的影響されない方法に依存し得る。
ロボットソフトウェア(設計時として一般に知られているオートメーション化の段階)を設計する場合、RPA開発者は、対象UIのインスタンスを呼び出し、対象要素、及びそれぞれの対象要素に対して実施されるべきアクティビティを示す。例えば、開発者は、対象UIのボタンを示し、それぞれのボタンをクリックするようにロボットを構成してもよい。別の例では、開発者は、入力フィールドを示し、それぞれの入力フィールドに何らかのテキストをタイプ入力するようにロボットを構成してもよい。更に別の例では、開発者は、ユーザーインターフェースのテキストボックスを示し、それぞれのテキストボックスのコンテンツをグラブするようにロボットを構成してもよい。結果として得られるロボットコードは、対象要素のインジケータと、それぞれのアクティビティのインジケータと、を含み得る。次いで、ロボットコードは、RPAクライアントに配信され得る。
実行時として一般に知られているオートメーション化の別の段階では、クライアントマシンは、対象UIの別のクライアントサイドインスタンスとインタラクトしようと試み得るそれぞれのロボットを遂行してもよい。しかしながら、クライアントサイドUIは、設計サイドUIと同一でない場合がある。対象UIがウェブインターフェースを備える場合、特に、それぞれのロボットが複雑なウェブサイトとインタラクトするように設計されている場合、それぞれのユーザーインターフェースは、1日のうちに複数回変化してもよい。それぞれのウェブサイトのウェブ開発者は、例えば、ボタンの位置の変更、メニューの構成の変更、及び/又は様々な要素の配色、フォント、及びサイズの変更など、外観を微調整してもよい。したがって、インターフェースの外観が変化した場合でも、ロボットソフトウェアは、対象要素を首尾よく識別する必要があり得る。
いくつかの従来のRPAシステムは、それぞれのユーザーインターフェースの基礎となるソースコード又はデータ構造(例えば、ウェブページの外観及びコンテンツを指定するHTMLコードで、指定されたその名前又はIDに従って対象要素を識別する。しかしながら、そのようなシステム及び方法は、それぞれの要素の名前が予期せず変化した場合に失敗する可能性がある。特に、かなりの割合のウェブ文書が現在動的に生成されており、ウェブ文書の様々な態様がアルゴリズム的に制御されているため、このような変化は非常に頻繁に発生する可能性がある。
そのような従来の手法とは対照的に、本発明のいくつかの実施形態は、設計時に表示されるその画像及びテキストに従って、対象要素を更に識別する。設計時の画像及びテキストは、ロボットのコードに保存され、RPAクライアントに送られる。実行時に、ロボットは、複数の候補対象要素を識別し、要素IDに従って、更にそれぞれの候補要素によって表示された画像及びテキストに従って、複数の候補対象要素のそれぞれを評価し得る。設計時対象要素のID、画像、及びテキストと少なくとも部分的に一致する候補が、実行時対象として選択され得る。次いで、ロボットは、スクリプト化されたアクティビティを、選択された実行時対象要素に適用し得る。
いくつかの実施形態は、計算リソースを節約し、したがって実行時のRPA効率及びユーザー体験を改善するために、最適化戦略を使用してもよい。第1のフェーズでは、ロボットは、要素IDに従って実行時対象を識別しようと試みてもよく、そのような識別が失敗した場合(例えば、要素の名前がUIのソースコード内で変化したことにより)、テキスト一致及び/又は画像一致をフォールバック位置として使用し得る。候補UI要素は、それらが設計時対象要素の要素IDと部分的に一致するように選択され得る。要素IDと部分的に一致していれば、ロボットは、候補の関連するサブグループ内の対象要素(例えば、設計サイド対象要素と同じUIの領域に属する候補)を検索することができる。
方法の堅牢性を更に改善するために、いくつかの実施形態は、対象インターフェースの別のUI要素の特性データ(例えば、要素ID、画像及びテキストデータ)を採用し、他の要素は、対象要素と同時表示され、対象要素のアンカーと見なされる。実行時において、いくつかの実施形態は、複数の候補アンカー要素を識別し、要素ID、画像、及び/又はデータに従って、各候補を設計時アンカーと一致させるように試みてもよい。アンカー要素データを対象要素データと組み合わせて使用することは、対象とアンカーの両方が設計時と実行時との間で変更された可能性が低いという仮定に依存し、これにより、対象は、そのアンカーを特徴付けるデータに基づいて首尾よく識別され得る。
上記の実施形態が本発明の範囲から逸脱することなく多くの方法で変更され得ることは、当業者には明らかであろう。したがって、本発明の範囲は、以下の特許請求の範囲、及びそれらの法的均等物によって決定されるべきである。
Claims (17)
- コンピュータシステムの少なくとも1つのハードウェアプロセッサを採用することを含む方法であって、前記コンピュータシステムの少なくとも1つのハードウェアプロセッサが、
対象UIの対象要素の特性である対象機能のセット及び前記対象UIのアンカー要素の特性であるアンカー機能のセットを備えるロボティック・プロセス・オートメーション(RPA)スクリプトの受取りに応答して、前記コンピュータシステムによって公開された実行時ユーザーインターフェース(UI)内の前記対象要素の実行時インスタンスを自動的に識別し、
前記RPAスクリプトに従って決定される操作であって、人間のオペレータと前記対象要素の前記実行時インスタンスとのインタラクションの結果を再現する操作を自動的に実行する、方法において、
前記対象機能のセットが、
前記対象UIのツリー表現内の前記対象要素の位置を示す対象IDと、
前記対象UI内の前記対象要素の画像を備える対象画像と、
前記対象UI内の前記対象要素によって表示される一連の文字を備える対象テキストと、を備え、
前記アンカー機能のセットが、
前記対象UIの前記ツリー表現内の前記アンカー要素の位置を示すアンカーIDと、
前記対象UI内の前記アンカー要素の画像を備えるアンカー画像と、
前記対象UI内の前記アンカー要素によって表示される一連の文字を備えるアンカーテキストと、を備え、
前記方法が、前記対象ID、対象画像、対象テキスト、アンカーID、アンカー画像、及びアンカーテキストに従って、前記対象要素の前記実行時インスタンスを識別することを含む、方法。 - 前記対象要素の前記実行時インスタンスを自動的に識別することが、
前記実行時UIの複数の候補UI要素の各候補について、前記実行時UIのツリー表現内の前記各候補の位置を示す前記各候補の要素IDが、前記対象IDと厳密に一致するか否かを判定することと、
それに応答して、前記各候補の前記要素IDが前記対象IDと厳密に一致する場合、前記各候補を、前記対象要素の前記実行時インスタンスとして指定することと、
前記複数の候補UI要素のいずれの候補も前記対象IDと厳密に一致する要素IDがない場合、前記対象画像及び対象テキストに更に従って、前記対象要素の前記実行時インスタンスを識別することと、を備える、請求項1に記載の方法。 - 候補対象を、前記候補対象の要素IDが前記対象IDと部分的に一致するか否かに従って、前記複数の候補UI要素から選択することと、
候補アンカーを、前記候補アンカーの要素IDが前記アンカーIDと部分的に一致するか否かに従って、前記複数の候補UI要素から選択することと、
前記候補対象及び候補アンカーの選択に応答して、前記対象テキストを前記候補対象によって表示されたテキストと比較した結果に従って、及び前記アンカーテキストを前記候補アンカーによって表示されたテキストと比較した結果に更に従って、前記候補対象を、前記対象要素の前記実行時インスタンスとして指定するか否かを判定することと、を更に含む、請求項2に記載の方法。 - 前記候補対象及び候補アンカーの選択に応答して、前記対象画像を前記候補対象の画面上画像と比較した結果に更に従って、及び前記アンカー画像を前記候補アンカーの画面上画像と比較した結果に更に従って、前記候補対象を、前記対象要素の前記実行時インスタンスとして指定するか否かを判定することを更に含む、請求項3に記載の方法。
- 前記候補対象及び候補アンカーの選択に応答して、前記候補アンカーに対する前記候補対象の相対的な画面上位置に更に従って、前記候補対象を、前記対象要素の前記実行時インスタンスとして指定するか否かを判定することを更に含む、請求項3に記載の方法。
- 前記相対的な画面上位置を判定することが、前記候補対象の中心を前記候補アンカーの中心と結ぶ直線の角度を決定することを含む、請求項5に記載の方法。
- 前記相対的な画面上位置を判定することが、前記候補対象と前記候補アンカーとの間の重複度を決定することを含む、請求項5に記載の方法。
- 前記インタラクションが、前記対象要素の前記実行時インスタンス上でマウスクリックを実施することと、キーボードキーの特定の組合せを押すことと、前記対象要素の前記実行時インスタンスに一連の文字を書き込むことと、前記対象要素の前記実行時インスタンスの画面上画像をグラブすることと、前記対象要素の前記実行時インスタンスによって表示されたテキストをグラブすることと、から構成されるグループから選択されたアイテムを備える、請求項1に記載の方法。
- オートメーション化対象アプリケーション及びロボティック・プロセス・オートメーション(RPA)ロボットを遂行するように構成された少なくとも1つのハードウェアプロセッサを備えるコンピュータシステムであって、
前記オートメーション化対象アプリケーションが、実行時ユーザーインターフェース(UI)を公開するように構成され、
前記RPAロボットが、
対象UIの対象要素の特性である対象機能のセット及び前記対象UIのアンカー要素の特性であるアンカー機能のセットを備えるRPAスクリプトの受取りに応答して、前記実行時UI内の前記対象要素の実行時インスタンスを自動的に識別し、
前記RPAスクリプトに従って決定される操作であって、人間のオペレータと前記対象要素の前記実行時インスタンスとのインタラクションの結果を再現する操作を、自動的に実行する、ように構成されたコンピュータシステムにおいて、
前記対象機能のセットが、
前記対象UIのツリー表現内の前記対象要素の位置を示す対象IDと、
前記対象UI内の前記対象要素の画像を備える対象画像と、
前記対象UI内の前記対象要素によって表示される一連の文字を備える対象テキストと、を備え、
前記アンカー機能のセットが、
前記対象UIの前記ツリー表現内の前記アンカー要素の位置を示すアンカーIDと、
前記対象UI内の前記アンカー要素の画像を備えるアンカー画像と、
前記対象UI内の前記アンカー要素によって表示される一連の文字を備えるアンカーテキストと、を備え、
前記対象要素の前記実行時インスタンスを自動的に識別することが、前記対象ID、対象画像、対象テキスト、アンカーID、アンカー画像、及びアンカーテキストに従って、前記対象要素の前記実行時インスタンスを識別することを含む、コンピュータシステム。 - 前記対象要素の前記実行時インスタンスを自動的に識別することが、
前記実行時UIの複数の候補UI要素の各候補について、前記各候補の要素IDが、前記実行時UIのツリー表現内の前記各候補の位置を示す前記対象IDと厳密に一致するか否かを判定することと、
それに応答して、前記各候補の前記要素IDが前記対象IDと厳密に一致する場合、前記各候補を、前記対象要素の前記実行時インスタンスとして指定することと、
前記複数の候補UI要素のいずれの候補も前記対象IDと厳密に一致する要素IDがない場合、前記対象画像及び対象テキストに更に従って、前記対象要素の前記実行時インスタンスを識別することと、を備える、請求項9に記載のコンピュータシステム。 - 前記RPAロボットが、
候補対象を、前記候補対象の要素IDが前記対象IDと部分的に一致するか否かに従って、前記複数の候補UI要素から選択することと、
候補アンカーを、前記候補アンカーの要素IDが前記アンカーIDと部分的に一致するか否かに従って、前記複数の候補UI要素から選択することと、
前記候補対象及び候補アンカーの選択に応答して、前記対象テキストを前記候補対象によって表示されたテキストと比較した結果に従って、及び前記アンカーテキストを前記候補アンカーによって表示されたテキストと比較した結果に更に従って、前記候補対象を、前記対象要素の前記実行時インスタンスとして指定するか否かを判定することと、を実施するように更に構成される、請求項10に記載のコンピュータシステム。 - 前記RPAロボットが、前記候補対象及び候補アンカーの選択に応答して、前記対象画像を前記候補対象の画面上画像と比較した結果に更に従って、及び前記アンカー画像を前記候補アンカーの画面上画像と比較した結果に更に従って、前記候補対象を、前記対象要素の前記実行時インスタンスとして指定するか否かを判定することを実施するように更に構成される、請求項11に記載のコンピュータシステム。
- 前記RPAロボットが、前記候補対象及び候補アンカーの選択に応答して、前記候補アンカーに対する前記候補対象の相対的な画面上位置に更に従って、前記候補対象を、前記対象要素の前記実行時インスタンスとして指定するか否かを判定するように更に構成される、請求項11に記載のコンピュータシステム。
- 前記相対的な画面上位置を判定することが、前記候補対象の中心を前記候補アンカーの中心と結ぶ直線の角度を決定することを含む、請求項13に記載のコンピュータシステム。
- 前記相対的な画面上位置を判定することが、前記候補対象と前記候補アンカーとの間の重複度を決定することを含む、請求項13に記載のコンピュータシステム。
- 前記インタラクションが、前記対象要素の前記実行時インスタンス上でマウスクリックを実施することと、キーボードキーの特定の組合せを押すことと、前記対象要素の前記実行時インスタンスに一連の文字を書き込むことと、前記対象要素の前記実行時インスタンスの画面上画像をグラブすることと、前記対象要素の前記実行時インスタンスによって表示されたテキストをグラブすることと、から構成されるグループから選択されたアイテムを備える、請求項9に記載のコンピュータシステム。
- 命令を記憶する非一時的コンピュータ可読媒体であって、前記命令が、実行時ユーザーインターフェース(UI)を公開するように構成されたコンピュータシステムの少なくとも1つのハードウェアプロセッサによって遂行される場合、前記コンピュータシステムに、
対象UIの対象要素の特性である対象機能のセット及び前記対象UIのアンカー要素の特性であるアンカー機能のセットを備えるロボティック・プロセス・オートメーション(RPA)スクリプトの受取りに応答して、前記実行時UI内の前記対象要素の実行時インスタンスを自動的に識別させ、
前記RPAスクリプトに従って決定される操作であって、人間のオペレータと前記対象要素の前記実行時インスタンスとのインタラクションの結果を再現する操作を自動的に実行させる、コンピュータシステムにおいて、
前記対象機能のセットが、
前記対象UIのツリー表現内の前記対象要素の位置を示す対象IDと、
前記対象UI内の前記対象要素の画像を備える対象画像と、
前記対象UI内の前記対象要素によって表示される一連の文字を備える対象テキストと、を備え、
前記アンカー機能のセットが、
前記対象UIの前記ツリー表現内の前記アンカー要素の位置を示すアンカーIDと、
前記対象UI内の前記アンカー要素の画像を備えるアンカー画像と、
前記対象UI内の前記アンカー要素によって表示される一連の文字を備えるアンカーテキストと、を備え、
前記対象要素の前記実行時インスタンスを自動的に識別することが、前記対象ID、対象画像、対象テキスト、アンカーID、アンカー画像、及びアンカーテキストに従って、前記対象要素の前記実行時インスタンスを識別することを含む、非一時的コンピュータ可読媒体。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/601,200 | 2019-10-14 | ||
US16/601,272 US10885423B1 (en) | 2019-10-14 | 2019-10-14 | Systems and methods of activity target selection for robotic process automation |
US16/601,272 | 2019-10-14 | ||
US16/601,200 US11249729B2 (en) | 2019-10-14 | 2019-10-14 | Providing image and text data for automatic target selection in robotic process automation |
PCT/US2020/045974 WO2021076205A1 (en) | 2019-10-14 | 2020-08-12 | Systems and methods of activity target selection for robotic process automation |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022551933A true JP2022551933A (ja) | 2022-12-14 |
Family
ID=72193681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022521760A Pending JP2022551933A (ja) | 2019-10-14 | 2020-08-12 | ロボティック・プロセス・オートメーションのためのアクティビティ対象選択のシステム及び方法 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP4046011A1 (ja) |
JP (1) | JP2022551933A (ja) |
CN (1) | CN113015956B (ja) |
WO (2) | WO2021076204A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268431B (zh) * | 2021-06-24 | 2022-08-19 | 深圳市凯莱特科技股份有限公司 | 一种rpa机器人软件的学习方法 |
CN114035726B (zh) * | 2021-10-19 | 2023-12-22 | 四川新网银行股份有限公司 | 一种机器人流程自动化页面要素识别过程的方法及系统 |
CN114495109A (zh) * | 2022-01-24 | 2022-05-13 | 山东大学 | 基于目标与场景文字匹配的抓取机器人及抓取方法和系统 |
CN114691265A (zh) * | 2022-03-07 | 2022-07-01 | 达而观信息科技(上海)有限公司 | 一种软件界面结构化元素的批量抓取方法 |
CN115268719B (zh) * | 2022-09-30 | 2022-12-20 | 北京弘玑信息技术有限公司 | 一种定位界面上目标元素的方法、介质及电子设备 |
US20240126978A1 (en) * | 2022-10-14 | 2024-04-18 | Google Llc | Determining attributes for elements of displayable content and adding them to an accessibility tree |
CN115495055B (zh) * | 2022-11-03 | 2023-09-08 | 杭州实在智能科技有限公司 | 基于界面区域识别技术的rpa元素匹配方法及系统 |
CN115983221B (zh) * | 2023-03-17 | 2023-06-20 | 杭州实在智能科技有限公司 | 可视化的rpa表格操作录制与自动执行方法及系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7108192B2 (en) * | 1999-09-17 | 2006-09-19 | Silverbrook Research Pty Ltd | Rotationally symmetric tags |
EP2504748B1 (en) * | 2009-11-23 | 2018-05-30 | EntIT Software LLC | System and method for object relationship identification in a user interface |
US9697012B2 (en) * | 2010-10-22 | 2017-07-04 | Hewlett Packard Enterprise Development Lp | Relation-based identification of automation objects |
JP6326742B2 (ja) * | 2013-08-29 | 2018-05-23 | 富士通株式会社 | シナリオ生成プログラム、シナリオ実行プログラム、シナリオ生成方法、シナリオ実行方法、シナリオ生成装置、及びシナリオ実行装置 |
US9075918B1 (en) * | 2014-02-25 | 2015-07-07 | International Business Machines Corporation | System and method for creating change-resilient scripts |
CN109741118A (zh) * | 2018-06-26 | 2019-05-10 | 平安科技(深圳)有限公司 | 发票开具方法、装置、设备及计算机可读存储介质 |
CN109101231B (zh) * | 2018-08-07 | 2022-09-23 | 百度在线网络技术(北京)有限公司 | 脚本代码生成方法、装置、计算机设备和存储介质 |
CN110035088B (zh) * | 2019-04-26 | 2021-08-24 | 厦门商集网络科技有限责任公司 | 基于rpa远程控制操作系统自动登录的方法及设备 |
-
2020
- 2020-08-12 WO PCT/US2020/045968 patent/WO2021076204A1/en active Application Filing
- 2020-08-12 WO PCT/US2020/045974 patent/WO2021076205A1/en unknown
- 2020-08-12 JP JP2022521760A patent/JP2022551933A/ja active Pending
- 2020-08-12 EP EP20761097.3A patent/EP4046011A1/en active Pending
- 2020-08-12 CN CN202080004692.0A patent/CN113015956B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
WO2021076204A1 (en) | 2021-04-22 |
CN113015956A (zh) | 2021-06-22 |
WO2021076205A1 (en) | 2021-04-22 |
EP4046011A1 (en) | 2022-08-24 |
CN113015956B (zh) | 2022-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11270186B2 (en) | Systems and methods of activity target selection for robotic process automation | |
JP7017613B2 (ja) | 自動検出されるターゲットラベルに基づくロボティックプロセスオートメーションアクティビティのネーミング(名付け) | |
US11556313B2 (en) | Providing image and text data for automatic target selection in robotic process automation | |
CN113015956B (zh) | 用于机器人流程自动化的活动目标选择的系统和方法 | |
US11372517B2 (en) | Fuzzy target selection for robotic process automation | |
US20220108106A1 (en) | Machined learning supporting document data extraction | |
US11886895B2 (en) | Enhanced target selection for robotic process automation | |
US11947443B2 (en) | Robotic process automation (RPA) debugging systems and methods | |
US20210349430A1 (en) | Graphical element search technique selection, fuzzy logic selection of anchors and targets, and/or hierarchical graphical element identification for robotic process automation | |
US20230236910A1 (en) | Systems and Methods for Executing Robotic Process Automation (RPA) Within a Web Browser | |
US20220410398A1 (en) | Triggering dynamic robotic process automation | |
EP4086755B1 (en) | Robotic process automation (rpa) comprising automatic document scrolling | |
US11736556B1 (en) | Systems and methods for using a browser to carry out robotic process automation (RPA) | |
Stephens | Start Here! Fundamentals of Microsoft. NET Programming | |
EP3909722A1 (en) | Graphical element search technique selection, fuzzy logic selection of anchors and targets, and/or hierarchical graphical element identification for robotic process automation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230808 |