JP7568371B2 - System and method for activity target selection for robotic process automation - Patents.com - Google Patents
System and method for activity target selection for robotic process automation - Patents.com Download PDFInfo
- Publication number
- JP7568371B2 JP7568371B2 JP2022521760A JP2022521760A JP7568371B2 JP 7568371 B2 JP7568371 B2 JP 7568371B2 JP 2022521760 A JP2022521760 A JP 2022521760A JP 2022521760 A JP2022521760 A JP 2022521760A JP 7568371 B2 JP7568371 B2 JP 7568371B2
- Authority
- JP
- Japan
- Prior art keywords
- target
- anchor
- candidate
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 44
- 238000004801 process automation Methods 0.000 title claims description 8
- 230000000694 effects Effects 0.000 title description 50
- 238000013515 script Methods 0.000 claims description 58
- 230000006870 function Effects 0.000 claims description 31
- 230000004044 response Effects 0.000 claims description 21
- 230000003993 interaction Effects 0.000 claims description 12
- 238000003825 pressing Methods 0.000 claims description 3
- 230000003362 replicative effect Effects 0.000 claims 2
- 238000013461 design Methods 0.000 description 23
- 238000004891 communication Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000009471 action Effects 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 238000012015 optical character recognition Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 101100467407 Rattus norvegicus Rab3il1 gene Proteins 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000010191 image analysis Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 208000014633 Retinitis punctata albescens Diseases 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
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)
Description
本発明は、ロボティック・プロセス・オートメーション(RPA)に関し、特に、マウスクリック又はテキスト入力などのアクティビティの対象となるユーザーインターフェース要素を自動的に識別するシステム及び方法に関する。 The present invention relates to robotic process automation (RPA), and more particularly to a system and method for automatically identifying user interface elements that are the target of an activity such as a mouse click or text entry.
RPAは、反復的なコンピューティングタスクをオートメーション化することによって生産性を改善させることを目的とした情報技術の新興分野であり、したがって人間のオペレータは、知的に洗練された及び/又は創造的なアクティビティを自由に実施することができる。オートメーション化の対象となる注目すべきタスクは、文書から構造化データを抽出することと、とりわけ、例えばフォームに記入するためにユーザーインターフェースとインタラクトすることと、を含む。 RPA is an emerging field of information technology that aims to improve productivity by automating repetitive computing tasks, thus freeing human operators to perform intellectually sophisticated and/or creative activities. Notable tasks targeted for automation include extracting structured data from documents and interacting with user interfaces, for example to fill out forms, among others.
RPA開発の明確な方針は、ソフトウェアロボットのプログラミング及び管理を単純化することに向けられており、高度なプログラミングスキル又はトレーニングを欠くユーザーに、RPA技術の範囲を拡大するという最終的な目標がある。RPAのアクセスを容易にする1つの方法は、コーディング自体ではなく、グラフィカル・ユーザー・インターフェース(GUI)ツールを介してロボットのプログラミングを可能にするRPA指向の統合開発環境(IDE)の開発である。 A clear direction of RPA development is aimed at simplifying the programming and management of software robots, with the ultimate goal of expanding the reach of RPA technology to users who lack advanced programming skills or training. One way to make RPA more accessible is the development of RPA-oriented integrated development environments (IDEs) that allow programming of robots via graphical user interface (GUI) tools rather than coding itself.
しかしながら、ユーザーインターフェースとのインタラクションをオートメーション化することは、例えばボタン又はフォームフィールドなどの対象要素を明確に識別する、実質的な技術的課題を提起する。更に、RPAアプリケーションは、それぞれのソフトウェアロボットの設計と実行時との間で生じるインターフェース(例えば、様々な要素の位置付け、配色、フォントなど)の外観の変化のために失敗する可能性がある。したがって、そのような変化に影響されない堅牢でスケーラブルなソフトウェアロボットを開発することに継続的な関心がある。 However, automating interactions with a user interface poses substantial technical challenges, e.g., unambiguously identifying target elements such as buttons or form fields. Furthermore, RPA applications may fail due to changes in the appearance of the interface (e.g., positioning of various elements, color schemes, fonts, etc.) that occur between the design and run-time of the respective software robot. There is therefore a continuing interest in developing robust and scalable software robots that are immune to such changes.
一態様によれば、方法は、コンピュータシステムの少なくとも1つのハードウェアプロセッサを採用することを含み、コンピュータシステムの少なくとも1つのハードウェアプロセッサは、対象機能のセット及びアンカー機能のセットを備えるRPAスクリプトの受取りに応答して、コンピュータシステムによって公開された実行時ユーザーインターフェース(UI)内の対象要素の実行時インスタンスを自動的に識別することであって、対象機能が、対象UIの対象要素の特性であり、アンカー機能が、対象UIのアンカー要素の特性である、識別することを実施する。方法は、人間のオペレータと対象要素の実行時インスタンスとのインタラクションの結果を再現する操作を自動的に実行することであって、操作が、RPAスクリプトに従って決定される、実行することを更に含む。対象機能のセットは、対象UIのツリー表現内の対象要素の位置を示す対象IDと、対象UI内の対象要素の画像を備える対象画像と、対象UI内の対象要素によって表示される一連の文字を備える対象テキストと、を備える。アンカー機能のセットは、対象UIのツリー表現内のアンカー要素の位置を示すアンカーIDと、対象UI内のアンカー要素の画像を備えるアンカー画像と、対象UI内のアンカー要素によって表示される一連の文字を備えるアンカーテキストと、を備える。本方法は、対象ID、対象画像、対象テキスト、アンカーID、アンカー画像、及びアンカーテキストに従って、対象要素の実行時インスタンスを識別することを含む。 According to one aspect, the method includes employing at least one hardware processor of a computer system, which performs, in response to receiving an RPA script comprising a set of target functions and a set of anchor functions, automatically identifying a runtime instance of a target element in a runtime user interface (UI) exposed by the computer system, where the target function is a property of the target element of the target UI and the anchor function is a property of the anchor element of the target UI. The method further includes automatically performing an operation that reproduces a result of an interaction between a human operator and the runtime instance of the target element, where the operation is determined according to the RPA script. The set of target functions comprises a target ID indicating a location of the target element in a tree representation of the target UI, a target image comprising an image of the target element in the target UI, and a target text comprising a sequence of characters displayed by the target element in the target UI. The set of anchor functions comprises an anchor ID indicating a location of the anchor element in a tree representation of the target UI, an anchor image comprising an image of the anchor element in the target UI, and an anchor text comprising a sequence of characters displayed by the anchor element in the target UI. The method includes identifying a runtime instance of a target element according to a target ID, a target image, a target text, an anchor ID, an anchor image, and an anchor text.
別の態様によれば、コンピュータシステムは、オートメーション化対象アプリケーション及びRPAロボットを遂行するように構成された少なくとも1つのハードウェアプロセッサを備える。オートメーション化対象アプリケーションは、実行時UIを公開するように構成される。RPAロボットは、対象機能のセット及びアンカー機能のセットを備えるRPAスクリプトの受取りに応答して、コンピュータシステムによって公開された実行時UI内の対象要素の実行時インスタンスを自動的に識別することであって、対象機能が、対象UIの対象要素の特性であり、アンカー機能が、対象UIのアンカー要素の特性である、識別することを実施するように構成される。RPAロボットは、人間のオペレータと対象要素の実行時インスタンスとのインタラクションの結果を再現する操作を自動的に実行することであって、操作が、RPAスクリプトに従って決定される、実行することを実施するように更に構成される。対象機能のセットは、対象UIのツリー表現内の対象要素の位置を示す対象IDと、対象UI内の対象要素の画像を備える対象画像と、対象UI内の対象要素によって表示される一連の文字を備える対象テキストと、を備える。アンカー機能のセットは、対象UIのツリー表現内のアンカー要素の位置を示すアンカーIDと、対象UI内のアンカー要素の画像を備えるアンカー画像と、対象UI内のアンカー要素によって表示される一連の文字を備えるアンカーテキストと、を備える。対象要素の実行時インスタンスを自動的に識別することは、対象ID、対象画像、対象テキスト、アンカーID、アンカー画像、及びアンカーテキストに従って、対象要素の実行時インスタンスを識別することを含む。 According to another aspect, a computer system comprises at least one hardware processor configured to execute an automated target application and an RPA robot. The automated target application is configured to expose a runtime UI. The RPA robot is configured to automatically identify a runtime instance of a target element in the runtime UI exposed by the computer system in response to receiving an RPA script comprising a set of target functions and a set of anchor functions, where the target function is a property of the target element of the target UI and the anchor function is a property of the anchor element of the target UI. The RPA robot is further configured to automatically execute an operation that reproduces the result of an interaction between a human operator and the runtime instance of the target element, where the operation is determined according to the RPA script. The set of target functions comprises a target ID indicating a position of the target element in a tree representation of the target UI, a target image comprising an image of the target element in the target UI, and a target text comprising a sequence of characters displayed by the target element in the target UI. The set of anchor features includes an anchor ID indicating a location of the anchor element in a tree representation of the target UI, an anchor image comprising an image of the anchor element in the target UI, and anchor text comprising a sequence of characters displayed by the anchor element in the target UI. Automatically identifying a runtime instance of the target element includes identifying a runtime instance of the target element according to the target ID, the target image, the target text, the anchor ID, the anchor image, and the anchor text.
別の態様によれば、非一時的コンピュータ可読媒体は、命令を記憶し、その命令は、実行時UIを公開するように構成されたコンピュータシステムの少なくとも1つのハードウェアプロセッサによって遂行された場合、コンピュータシステムに、対象機能のセット及びアンカー機能のセットを備えるRPAスクリプトの受取りに応答して、コンピュータシステムによって公開された実行時UI内の対象要素の実行時インスタンスを自動的に識別することであって、対象機能が、対象UIの対象要素の特性であり、アンカー機能が、対象UIのアンカー要素の特性である、識別することを実施させる。命令は更に、コンピュータシステムに、人間のオペレータと対象要素の実行時インスタンスとのインタラクションの結果を再現する操作を自動的に実行することであって、操作が、RPAスクリプトに従って決定される、実行することを更に実施させる。対象機能のセットは、対象UIのツリー表現内の対象要素の位置を示す対象IDと、対象UI内の対象要素の画像を備える対象画像と、対象UI内の対象要素によって表示される一連の文字を備える対象テキストと、を備える。アンカー機能のセットは、対象UIのツリー表現内のアンカー要素の位置を示すアンカーIDと、対象UI内のアンカー要素の画像を備えるアンカー画像と、対象UI内のアンカー要素によって表示される一連の文字を備えるアンカーテキストと、を備える。対象要素の実行時インスタンスを自動的に識別することは、対象ID、対象画像、対象テキスト、アンカーID、アンカー画像、及びアンカーテキストに従って、対象要素の実行時インスタンスを識別することを含む。 According to another aspect, a non-transitory computer-readable medium stores instructions that, when executed by at least one hardware processor of a computer system configured to expose a runtime UI, cause the computer system to automatically identify a runtime instance of a target element in a runtime UI exposed by the computer system in response to receiving an RPA script comprising a set of target functions and a set of anchor functions, where the target function is a property of the target element of the target UI and the anchor function is a property of the anchor element of the target UI. The instructions further cause the computer system to automatically perform an operation that reproduces a result of an interaction between a human operator and the runtime instance of the target element, where the operation is determined according to the RPA script. The set of target functions comprises a target ID indicating a location of the target element in a tree representation of the target UI, a target image comprising an image of the target element in the target UI, and a target text comprising a sequence of characters displayed by the target element in the target UI. The set of anchor features includes an anchor ID indicating a location of the anchor element in a tree representation of the target UI, an anchor image comprising an image of the anchor element in the target UI, and anchor text comprising a sequence of characters displayed by the anchor element in the target UI. Automatically identifying a runtime instance of the target element includes identifying a runtime instance of the target element according to the target ID, the target image, the target text, the anchor ID, the anchor image, and the anchor text.
本発明の前述の態様及び利点は、以下の詳細な説明を読み、図面を参照すると、良好に理解されるであろう。 The foregoing aspects and advantages of the present invention will be better understood upon reading the following detailed description and upon reference to the drawings.
以下の説明では、構造間の列挙されたすべての接続が、直接的な動作接続、又は中間構造を介した間接的な動作接続であり得ることが理解される。要素のセットは、1つ又は複数の要素を含む。要素の列挙は、少なくとも1つの要素を指すと理解される。複数の要素は、少なくとも2つの要素を含む。「又は」の任意の使用は、否定排他的論理和を意味する。別段の要求がない限り、記載した方法ステップは、必ずしも特定の例示された順序で実施される必要はない。第2の要素から導出された第1の要素(例えば、データ)は、第2の要素に等しい第1の要素、並びに第2の要素及び任意選択的な他のデータを処理することによって生成された第1の要素を包含する。パラメータに従って決定又は判断を行うことは、パラメータに従って、及び任意選択で他のデータに従って、決定又は判断を行うことを包含する。別段の指定がない限り、いくつかの量/データのインジケータは、量/データ自体、又は量/データ自体とは異なるインジケータであってもよい。コンピュータプログラムは、タスクを実行する一連のプロセッサ命令である。本発明のいくつかの実施形態で説明されるコンピュータプログラムは、スタンドアロンのソフトウェアエンティティ、又は他のコンピュータプログラムのサブエンティティ(例えば、サブルーチン、ライブラリ)であってもよい。「データベース」という用語は、本明細書では、組織化された検索可能なデータの集合を示すために使用される。コンピュータ可読媒体は、磁気、光学、及び半導体記憶媒体(例えば、ハードドライブ、光ディスク、フラッシュメモリ、DRAM)などの非一時的媒体、並びに導電ケーブル及び光ファイバリンクなどの通信リンクを包含する。いくつかの実施形態によれば、本発明は、とりわけ、本明細書に記載の方法を実施するようにプログラムされたハードウェア(例えば、1つ又は複数のプロセッサ)と、本明細書に記載の方法を実施する命令を符号化したコンピュータ可読媒体と、を備えるコンピュータシステムを提供する。 In the following description, it is understood that all enumerated connections between structures may be direct operational connections or indirect operational connections through intermediate structures. A set of elements includes one or more elements. An enumeration of elements is understood to refer to at least one element. A plurality of elements includes at least two elements. Any use of "or" means a negative exclusive or. Unless otherwise required, the described method steps need not necessarily be performed in the particular illustrated order. A first element (e.g., data) derived from a second element includes a first element equal to the second element, as well as a first element generated by processing the second element and optionally other data. Making a decision or judgment according to a parameter includes making a decision or judgment according to the parameter and optionally other data. Unless otherwise specified, an indicator of some quantity/data may be the quantity/data itself or an indicator different from the quantity/data itself. A computer program is a sequence of processor instructions that perform a task. Computer programs described in some embodiments of the invention may be standalone software entities or subentities (e.g., subroutines, libraries) of other computer programs. The term "database" is used herein to denote an organized, searchable collection of data. Computer-readable media encompass non-transitory media such as magnetic, optical, and semiconductor storage media (e.g., hard drives, optical disks, flash memory, DRAM), as well as communication links such as conductive cables and fiber optic links. According to some embodiments, the invention provides a computer system comprising, among other things, hardware (e.g., one or more processors) programmed to perform the methods described herein, and a computer-readable medium encoding instructions for performing the methods described herein.
以下の説明は、本発明の実施形態を例として示しており、必ずしも限定するものではない。 The following description illustrates exemplary embodiments of the present invention and is not intended to be limiting.
図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に接続するラップトップ、タブレットコンピュータ、又は携帯電話などのモバイルコンピュータを表し得る。 1 illustrates an exemplary robotic process automation system according to some embodiments of the present invention. Each of a plurality of RPA clients 10a-e represents a computing device having at least a hardware processor, a memory unit, and a network adapter that enables the respective RPA client to connect to a computer network and/or other computing devices. The exemplary RPA clients 10a-e include, among others, personal computers, laptop and tablet computers, as well as mobile communication devices (e.g., smartphones). In an exemplary use case scenario, the RPA clients 10a-10d represent desktop computers belonging to the accounting or human resources departments of a company. The illustrated RPA clients 10a-d are interconnected by a local communication network 12, which may comprise a local area network (LAN). The clients 10a-d may further access an extended network 14, which may comprise a wide area network (WAN) and/or the Internet. In the exemplary configuration of FIG. 1, the RPA client 10e is directly connected to the extended network 14. Such clients may represent mobile computers, such as laptops, tablet computers, or mobile phones, that connect to the network 14 at various access points.
典型的なRPAシナリオでは、会社の従業員は、例えば様々なビジネスクライアントに請求書を発行するために、ビジネスアプリケーション(例えば、ワードプロセッサ、スプレッドシートエディタ、ブラウザ、電子メールアプリケーション)を使用して、反復的なタスクを実施する。それぞれのタスクを実際に実行するために、従業員は、一連の操作/アクションを実施し、これは、本明細書ではビジネスプロセスと見なされる。請求書発行ビジネスプロセスの一部を形成する例示的な操作は、Microsoft Excel(登録商標)スプレッドシートを開くことと、クライアントの会社の詳細を検索することと、それぞれの詳細を請求書テンプレートにコピーすることと、購入された商品を示す請求書フィールドに記入することと、電子メールアプリケーションに切り替えることと、それぞれのクライアントへの電子メールメッセージを作成することと、新規に作成した請求書をそれぞれの電子メールメッセージに添付することと、「送信」ボタンをクリックすることと、を含んでもよい。従業員のコンピュータ上で遂行されるRPAソフトウェアは、それぞれのタスクを実行する過程で、それぞれの人間のオペレータによって実施される操作のセットを模倣することによって、それぞれのビジネスプロセスをオートメーション化し得る。そのようなオートメーション化を典型的に対象とする例示的なプロセスは、支払いの処理、請求書発行、ビジネスクライアントとの通信(例えば、社報及び/又は製品の提供物の配布)、内部通信(例えば、メモ、会議及び/又はタスクのスケジューリング)、給与処理などを含む。 In a typical RPA scenario, company employees perform repetitive tasks using business applications (e.g., word processors, spreadsheet editors, browsers, email applications), for example to issue invoices to various business clients. To actually perform each task, the employees perform a series of operations/actions, which are considered herein as business processes. Exemplary operations forming part of an invoice issuing business process may include opening a Microsoft Excel spreadsheet, searching for the client's company details, copying the respective details into an invoice template, filling in invoice fields indicating the items purchased, switching to an email application, composing an email message to the respective client, attaching the newly created invoice to the respective email message, and clicking a "send" button. The RPA software running on the employee's computer may automate the respective business process by mimicking the set of operations performed by the respective human operators in the course of performing the respective tasks. Exemplary processes typically subject to such automation include processing payments, invoicing, communications with business clients (e.g., distribution of company newsletters and/or product offerings), internal communications (e.g., scheduling of memos, meetings and/or tasks), payroll, etc.
人間の操作/アクションを模倣することは、本明細書では、人間のオペレータがコンピュータ上でそれぞれの操作/アクションを実施するときに発生する一連のコンピューティングイベントを再現することと、人間のオペレータがコンピュータ上で実施したそれぞれの操作結果を再現することと、を包含すると理解される。例えば、グラフィカル・ユーザー・インターフェースのボタンをクリックするアクションを模倣することは、オペレーティングシステムに、マウスポインタをそれぞれのボタンに移動させることと、マウス・クリック・イベントを生成することと、を含んでもよく、又はそれぞれのGUIボタン自体をクリック状態に切り替えることを含んでもよい。 Mimicking a human operation/action is understood herein to encompass reproducing the sequence of computing events that occur when a human operator performs the respective operation/action on a computer, and reproducing the results of the respective operation performed by the human operator on a computer. For example, mimicking the action of clicking a button on a graphical user interface may include the operating system moving a mouse pointer to the respective button and generating a mouse click event, or may include toggling the respective GUI button itself to a clicked state.
図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)を公開するように構成される。 FIG. 2 illustrates exemplary software executed on an RPA client 10 according to some embodiments of the present invention. The RPA client 10 represents any of the RPA clients 10a-e of FIG. 1. The RPA client 10 executes an operating system (OS) 40 and a set of business applications 42. The OS 40 may comprise any widely available operating system, such as Microsoft Windows, MacOS, Linux, iOS, or Android, among others, that comprises a software layer that interfaces between the applications 42 and the hardware of the RPA client 10. The business applications 42 generally represent any computer program used by a human operator of the RPA client 10 to perform tasks. Exemplary business applications 42 include, among others, word processors, spreadsheet applications, graphics applications, browsers, social media applications, and electronic communication applications. At least one business application 42 is configured to expose a user interface (UI) that is subject to automation, as described in more detail below.
いくつかの実施形態では、RPAクライアント10は、ビジネスプロセスのオートメーション化を集合的に実装する相互接続されたコンピュータプログラムのセットを備えるRPAロボット44を更に遂行する。例示的なRPAロボットは、Microsoft(登録商標)株式会社からのWindows Workflow Foundationアプリケーション・プログラミング・インターフェースを使用して構築される。いくつかの実施形態では、RPAロボット44は、RPAクライアント10上でインスタンス化された別個の専用仮想マシン内で遂行される。 In some embodiments, the RPA client 10 further executes an RPA robot 44 that comprises a set of interconnected computer programs that collectively implement business process automation. An exemplary RPA robot is built using the Windows Workflow Foundation application programming interface from Microsoft Corporation. In some embodiments, the RPA robot 44 executes within a separate dedicated virtual machine instantiated on the RPA client 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は、ネイティブプロセッサ命令のセット(例えば、マシンコード)に事前コンパイルされる。 The components of the RPA robot 44 include an RPA agent 43 and a set of robot executors 45. The robot executors 45 are configured to receive an RPA script 50, which indicates a series of operations (also known in the art as activities) that mimic the actions of a human operator executing a business process, and to actually perform each series of operations on a respective client machine. The RPA script 50 is typically process-specific, i.e., each separate business process is described by a separate set of RPA scripts. The RPA script 50 may be formulated according to any data specification known in the art. In a preferred embodiment, the RPA script 50 is coded in a version of the Extensible Markup Language (XML), although the script 50 may also be formulated in a programming language such as C#, Visual Basic, Java, etc. Alternatively, the RPA script 50 may be specified in an RPA-specific version of bytecode, or even as a series of instructions formulated in a natural language such as English, Spanish, Japanese, etc. In some embodiments, the script 50 is pre-compiled into a set of native processor instructions (e.g., machine code).
いくつかの実施形態では、ロボットエグゼキュータ45は、それぞれのスクリプトに記載された操作を実行するためのプロセッサ命令を備える実行時パッケージに、RPAスクリプト50を変換するように構成されたインタプリタ(例えば、ジャストインタイムインタプリタ又はコンパイラ)を備える。したがって、スクリプト50を遂行することは、エグゼキュータ45が、RPAスクリプト50を変換することと、結果として得られた実行時パッケージをメモリにロードし、更に実行時パッケージを起動して遂行するように、RPAクライアント10のプロセッサに命令することと、を含んでもよい。 In some embodiments, the robot executor 45 comprises an interpreter (e.g., a just-in-time interpreter or compiler) configured to convert the RPA scripts 50 into runtime packages comprising processor instructions for performing operations described in the respective scripts. Thus, executing the scripts 50 may include the executor 45 converting the RPA scripts 50, loading the resulting runtime package into memory, and instructing the processor of the RPA client 10 to launch and execute the runtime package.
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ロボットから更に受け取ってもよい。そのようなデータは、アクティビティ報告を生成し、ライセンス契約を施行し、及び/又は誤動作を軽減するために使用され得る。 The RPA agent 43 may manage the operation of the robot executor 45. For example, the RPA agent 43 may select tasks/scripts for execution by the robot executor 45 according to input from a human operator and/or according to a schedule. The agent 43 may further configure various operating parameters of the executor 45. If the robot 44 includes multiple executors 45, the agent 43 may coordinate their activities and/or inter-process communication. The RPA agent 43 may further manage communication between the RPA robot 44 and other components of the RPA system shown in FIG. 1. Such components may run on other RPA clients and/or on a set of robot management servers 11a-b. In one such example, the servers 11a-b may run a robot orchestrator service that coordinates RPA activities across multiple client machines and enables more complex scheduling and/or license management. The servers 11a-b may further receive data from the individual RPA robots indicative of various intermediate values and/or results of execution of the RPA scripts. Such data may be used to generate activity reports, enforce license agreements, and/or mitigate malfunctions.
いくつかの実施形態では、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の選択的検索を可能にする任意の構造化データ集合として編成されてもよい。 In some embodiments, the RPA client 10 further executes a scripting application 46 configured to enable a human operator of the RPA client 10 to create the RPA script 50 and thus effectively design a robot to perform a set of activities. The creation application 46 may function like an integrated development environment (IDE) with a code editor and/or user interface that allows the operator to interact with a set of tools to model a business process. An exemplary creation application may allow a user to select a business application 42 and indicate a desired way to interact with each application, e.g., a sequence of operations to be performed by the robot 44. Exemplary operations include, for example, opening a specific Excel spreadsheet, reading data from a specific row/column of a data table, processing the respective data in a specific way, clicking a specific button, creating and sending an email message, navigating to a specific uniform repository (URL), etc. In some embodiments, the creation application 46 outputs the RPA script 50 in a format (e.g., XML) that is readable by the RPA robot 44. The RPA scripts 50 may be stored in a script repository 15 that is communicatively coupled to and accessible to the RPA clients 10a-e via networks 12 and/or 14 (see FIG. 1). In a preferred embodiment, the script repository 15 is directly linked to the robot management servers 11a-b. The script repository 15 may be organized as a database, e.g., any structured collection of data that allows selective retrieval of the scripts 50 according to a set of criteria.
当業者であれば、図2に示すすべてのコンポーネントが、同じ物理プロセッサ又はマシン上で遂行する必要がないことを理解するであろう。典型的なRPA構成では、スクリプト開発/ロボット設計は、1つのマシン上(当技術分野で「設計サイド」として一般的に知られている)で実行される。次に、結果として得られるRPAスクリプト50は、遂行のために複数の他のユーザー及びマシンに配信される(通常、「実行時サイド」又は単に「実行時」として知られている)。 Those skilled in the art will appreciate that not all of the components shown in FIG. 2 need to execute on the same physical processor or machine. In a typical RPA configuration, script development/robot design is performed on one machine (commonly known in the art as the "design side"). The resulting RPA script 50 is then distributed to multiple other users and machines for execution (commonly known as the "runtime side" or simply "runtime").
図3は、本発明のいくつかの実施形態による、例示的なユーザーインターフェース(UI)58を示している。UI58は、ビジネスアプリケーション42のいずれかによって公開されてもよい。ユーザーインターフェースは、人間とマシンとのインタラクションを可能にするコンピュータインターフェースであり、例えば、ユーザー入力を受け取り、それぞれの入力に応答するように構成されたインターフェースである。ユーザーインターフェースの一般的な例は、グラフィカル・ユーザー・インターフェース(GUI)として知られており、それは、ユーザーに対して表示する視覚要素のセットを介して人間とマシンとのインタラクションを可能にする。例示的なUI58は、例示的なウィンドウ60a~bのセットと、メニューインジケータ62a、アイコン62b、ボタン62c、及びテキストボックス62dを含む例示的なUI要素のセットと、を有する。他の例示的なUI要素は、とりわけ、ウィンドウ、ラベル、フォーム、個別フォームフィールド、トグル、リンク(例えば、ハイパーリンク、ハイパーテキスト、又は統一資源識別子)を備える。UI要素は、情報を表示し、入力(テキスト、マウスイベント)を受け取り、並びに/あるいはソフトウェアの機能及び/又はそれぞれのコンピュータシステムを制御し得る。 3 illustrates an exemplary user interface (UI) 58 according to some embodiments of the present invention. The UI 58 may be exposed by any of the business applications 42. A user interface is a computer interface that enables human-machine interaction, e.g., an interface configured to receive user input and respond to the respective input. A common example of a user interface is known as a graphical user interface (GUI), which enables human-machine interaction through a set of visual elements that are displayed to a user. The exemplary UI 58 includes a set of exemplary windows 60a-b and a set of exemplary UI elements including a menu indicator 62a, an icon 62b, a button 62c, and a text box 62d. Other exemplary UI elements include windows, labels, forms, individual form fields, toggles, links (e.g., hyperlinks, hypertext, or uniform resource identifiers), among others. The UI elements may display information, receive input (text, mouse events), and/or control functions of the software and/or the respective computer system.
いくつかのUI要素は、それら(例えば、クリックボタン62c)に作用することが挙動/反応をトリガするという意味でインタラクティブである。そのような挙動/反応は通常、それぞれの要素に、又は要素のグループに固有である。例えば、保存ボタンをクリックすることと、印刷ボタンをクリックすることでは、異なる効果が生じる。同じキーボードショートカット(例えば、Ctrl-G)は、1つのウィンドウ/アプリケーションで遂行される場合1つの効果を有し、別のウィンドウ/アプリケーションで遂行される場合、全く異なる効果を有し得る。そのため、操作/アクション(クリックを遂行すること、キーボードキーの組合せを押すこと、一連の文字を書き込むことなど)は同じであるが、それぞれのアクションの結果は、それぞれの操作のオペランドに実質的に依存し得る。オペランドは、本明細書では、クリック又はキーボードイベントなどの現在の操作/アクションによって作用されるUI要素として定義されるか、そうでなければ、それぞれのユーザー入力を受け取るために選択されたUI要素として定義される。「対象」及び「オペランド」という用語は、本明細書では互換的に使用される。UI要素の挙動は要素固有であるため、成功したRPAは、各スクリプト化されたRPAアクティビティのオペランドを明確に、且つ正確に識別する必要があり得る。 Some UI elements are interactive in the sense that acting on them (e.g., click button 62c) triggers a behavior/response. Such behavior/response is usually specific to each element or group of elements. For example, clicking a save button and clicking a print button produce different effects. The same keyboard shortcut (e.g., Ctrl-G) may have one effect when performed in one window/application and a completely different effect when performed in another window/application. Thus, although the operation/action (performing a click, pressing a keyboard key combination, writing a series of characters, etc.) is the same, the outcome of each action may depend substantially on the operand of each operation. An operand is defined herein as a UI element that is acted upon by a current operation/action, such as a click or keyboard event, or that is otherwise selected to receive a respective user input. The terms "target" and "operand" are used interchangeably herein. Because UI element behavior is element specific, successful RPA may require unambiguously and precisely identifying the operand of each scripted RPA activity.
図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要素を識別することによって、選択された対象要素を示すユーザー入力を受け取って、処理し得る。 FIG. 4 illustrates an exemplary sequence of steps performed by the scripting application 46 according to some embodiments of the present invention. Step 101 exposes a design-side instance of a target UI, i.e., a user interface of a business application 42, that is the subject of the current automation. Step 101 may include, for example, invoking an instance of the business application 42. In step 102, the application 46 may expose a robot design interface (e.g., a GUI) that allows a user to indicate desired activities to be performed by the robot 44 on the exposed target UI. In some embodiments, the activities may be accomplished through a hierarchy of activity menus. Activities may be grouped according to various criteria, for example, according to type of business application (e.g., MS Excel activity, web activity, email activity) and/or according to type of interaction (e.g., mouse activity, hotkey activity, data grab activity, form fill activity, etc.). Step 104 receives user input indicating the respective activity. For example, step 104 may include intercepting a mouse click event and determining which menu item the user clicked to select the activity. In a further step 106, the application 46 may expose an activity configuration interface that allows the user to configure various options and/or parameters of the respective activity. One exemplary activity parameter is the operand/target UI element of the respective activity. In one example where the activity involves a mouse click, the target UI element may be a button, a menu item, a hyperlink, etc. In another example where the activity involves filling out a form, the target UI element may be a particular form field that is to accept the respective text input. The application 46 may allow the user to indicate the target UI element in various ways. For example, it may prompt the user to select the target element from a menu/list of candidate UI elements. In a preferred embodiment, the application 46 may expose an instance of the target UI (i.e., the UI of the business application with which the robot 44 is to interact, e.g., MS Excel, a browser, an email program, etc.), highlight a subset of UI elements within each UI, and prompt the user to click on one to indicate a selection. In step 108, application 46 may receive and process user input indicating the selected target element, for example, by invoking specific OS functionality to detect the mouse click and further by identifying the clicked UI element.
次に、ステップ110において、いくつかの実施形態は、選択された対象要素に関連するアンカーUI要素を自動的に決定し得る。アンカー要素(又は単に「アンカー」)は、本明細書では、対象及びアンカーがそれぞれのユーザーインターフェース内で同時に見えるという意味で、関連する対象UI要素と同時に表示されるUI要素として定義される。更に、アンカー要素及び対象要素は通常、意味的接続を有し、例えば、それらは両方とも、UI要素の同じグループ/コンテナに属し、及び/又はそれらは共に機能を実施する。入力フィールドに関連する例示的なアンカー要素は、とりわけ、それぞれの入力フィールドの近傍に表示されたテキストラベルと、それぞれの入力フィールドを含むフォームのタイトルと、を含む。ボタンに関連する例示的なアンカー要素は、それぞれのボタン、及び同じUIの別のボタンの上に表示されたテキストを含む。図5は、本発明のいくつかの実施形態による、対象要素64及び複数の潜在的なアンカー要素66a~eを有する例示的なUI58を示している。 Next, in step 110, some embodiments may automatically determine an anchor UI element associated with the selected target element. An anchor element (or simply "anchor") is defined herein as a UI element that is displayed simultaneously with an associated target UI element, in the sense that the target and anchor are visible simultaneously in their respective user interfaces. Furthermore, anchor elements and target elements typically have a semantic connection, e.g., they both belong to the same group/container of UI elements and/or they both perform a function. Exemplary anchor elements associated with input fields include, among others, a text label displayed near the respective input field and a title of a form that includes the respective input field. Exemplary anchor elements associated with buttons include the respective buttons and text displayed on another button of the same UI. FIG. 5 illustrates an exemplary UI 58 having a target element 64 and multiple potential anchor elements 66a-e in accordance with some embodiments of the present invention.
対象要素のアンカーを決定することは、例えば図6に示すように、候補UI要素のセットからアンカーを選択することを含み得る。ステップ202において、アプリケーション46は、UI58によって表示されたUI要素のセットから選択された候補アンカー要素のセット(例えば、図5のアイテム66a~eを参照)を生成し得る。候補アンカー要素は、それぞれの対象要素の要素タイプ(例えば、ボタン、テキスト、入力フィールドなど)に従って選択され得る。いくつかの実施形態では、候補アンカーが、それぞれの対象と同じ要素/UIコンテナのグループに属するか否かに従って、候補アンカーを選択してもよい。例えば、対象要素がフォームフィールドである場合、いくつかの実施形態は、同じフォームフィールドに属するUI要素の中からのみ、アンカー候補を選択することになる。HTML文書の場合、いくつかの実施形態は、対象要素と同じ<div>又は<span>コンテナからラベル候補を選択してもよい。 Determining the anchor of the target element may include selecting an anchor from a set of candidate UI elements, for example as shown in FIG. 6. In step 202, application 46 may generate a set of candidate anchor elements (see, for example, items 66a-e in FIG. 5) selected from the set of UI elements displayed by UI 58. The candidate anchor elements may be selected according to the element type (e.g., button, text, input field, etc.) of the respective target element. In some embodiments, the candidate anchors may be selected according to whether they belong to the same group of elements/UI containers as the respective target. For example, if the target element is a form field, some embodiments will select anchor candidates only from among UI elements that belong to the same form field. In the case of an HTML document, some embodiments may select label candidates from the same <div> or <span> container as the target element.
次に、ステップ204において、アプリケーション46は、基準のセットに従って各候補アンカー要素を評価し得る。いくつかの実施形態では、ステップ204は、別個の基準に従って評価された複数のサブスコアを組み合わせ得るアンカー適応度スコアを決定することを含んでもよい。例示的な基準は、対象要素に対する候補アンカーの相対位置である。相対位置は、それぞれの対象要素と候補アンカー要素との間の距離、角度、及び/又は重複度のセットに従って決定され得る。そのような決定の例は、図13~図16に関連して以下で詳細に説明する。いくつかの実施形態は、対象要素の近傍に配置される、及び/又は対象要素と実質的に位置合わせされているUI要素が、比較的信頼性の高いアンカーであると考える。そのような実施形態では、そのようなUI要素は、選択された対象要素から離れている、及び/又は選択された対象要素と位置合わせされていない他のUI要素よりも、高い適応度スコアを受け取ってもよい。 Next, in step 204, application 46 may evaluate each candidate anchor element according to a set of criteria. In some embodiments, step 204 may include determining an anchor fitness score that may combine multiple sub-scores evaluated according to separate criteria. An exemplary criterion is the relative position of the candidate anchor with respect to the target element. The relative position may be determined according to a set of distances, angles, and/or overlaps between the respective target element and the candidate anchor element. Examples of such determinations are described in detail below in connection with FIGS. 13-16. Some embodiments consider UI elements that are located near and/or substantially aligned with the target element to be relatively reliable anchors. In such embodiments, such UI elements may receive a higher fitness score than other UI elements that are farther away from and/or not aligned with the selected target element.
他の例示的なアンカー適応度基準は、それぞれのUI要素の画像及び/又はテキストコンテンツを含んでもよい。いくつかの実施形態は、テキストラベルをアンカー要素として優先するので、テキストを含まないUI要素は、テキストの断片を表示する他のUI要素よりも相対的に低い適応度スコアを受け取り得る。別の例示的な基準は、UI要素によって表示されるテキストの長さであってもよく、いくつかの実施形態は、それらは、ラベルである可能性が高いため、小さいテキスト要素を優先してもよい。そのような実施形態では、比較的小さいテキスト要素は、かなりの量のテキストを有するテキスト要素と比較して、比較的高い適応度スコアを受け取り得る。 Other exemplary anchor fitness criteria may include the image and/or text content of the respective UI element. Some embodiments prioritize text labels as anchor elements, so that UI elements that do not contain text may receive a relatively lower fitness score than other UI elements that display snippets of text. Another exemplary criterion may be the length of the text displayed by the UI element, and some embodiments may prioritize small text elements because they are more likely to be labels. In such an embodiment, relatively small text elements may receive a relatively higher fitness score compared to text elements that have a significant amount of text.
更に別の例示的な基準は、類似の外観を有するアンカー候補の数、例えば、同一のテキストを表示するUI要素の数を含んでもよい。例示的な一シナリオでは、複数の人物に関するデータを収集するように設計され、「名字」とラベル付けされた複数のフィールドを有するフォームを、対象UI58は含む。そのような状況では、「名字」ラベルは、特定のフォームフィールドを識別する際に極めて信頼できない場合がある。したがって、いくつかの実施形態は、各アンカー候補が(同様の画像を有するか、又は同様のテキストを表示する他のUI要素がないという意味で)、一意であるか否かを判定し、否である場合、比較的低いアンカー適応度スコアを、それぞれのアンカー候補に割り当ててもよい。代替の実施形態は、例えば、それぞれのフォームフィールドの近傍に配置されたラベル、及びそれぞれの入力フォーム又は入力ブロックのタイトルなど、複数のアンカーを同じ対象要素に割り当ててもよい。 Yet another exemplary criterion may include the number of anchor candidates with similar appearance, e.g., the number of UI elements that display the same text. In one exemplary scenario, the target UI 58 includes a form designed to collect data about multiple people and that has multiple fields labeled "Last Name." In such a situation, the "Last Name" label may be highly unreliable in identifying a particular form field. Thus, some embodiments may determine whether each anchor candidate is unique (in the sense that there are no other UI elements that have a similar image or display similar text) and, if not, assign a relatively low anchor fitness score to each anchor candidate. Alternative embodiments may assign multiple anchors to the same target element, e.g., labels located near each form field and the title of each input form or input block.
次いで、ステップ206は、候補アンカーについて評価されたスコアを比較し得る。明確に当選した候補が存在する場合、ステップ210において、スクリプト作成アプリケーション46は、ステップ108(図4)で決定された対象要素に関連するアンカー要素として、最も高い適応度スコアを有する候補要素を選択し得る。同点の場合、すなわち、複数の候補が同じ適応度スコアを有する場合、いくつかの実施形態は、アンカーとして使用されるUI要素を明示的に示すようにユーザーを促し得る(ステップ208)。 Step 206 may then compare the assessed scores for the candidate anchors. If there is a clear winning candidate, then in step 210, the scripting application 46 may select the candidate element with the highest fitness score as the anchor element associated with the target element determined in step 108 (FIG. 4). In the event of a tie, i.e., multiple candidates have the same fitness score, some embodiments may prompt the user to explicitly indicate the UI element to be used as the anchor (step 208).
アンカーUI要素を自動的に選択する代替の方法を図7~図8に示す。アプリケーション46が候補要素のセットを生成し、次いで対象要素に対するそれらの位置に従ってそれらの適応度をアンカーとして評価する前述の方法とは対照的に、ステップ222は、例えば、画面座標{X,Y}のペアとして、UI58内の候補配置を生成し得る。そのような実施形態は、テキストラベルなどの信頼可能なアンカーが通常、対象UI58のそれぞれの自然言語のデフォルトの読取り方向に応じて、それらの関連する対象の隣に、例えば、それらの左に、又は真上若しくは真下に見られるという観察に依存する。したがって、いくつかの実施形態は、潜在的なアンカー要素を、そのような配置に明示的に探してもよい。図7は、複数の候補配置65a~dを示している。そのような候補配置は、対象UI要素の画面位置(図7においてアイテム64として示す)に従って、及び/又は対象要素のサイズに従って、決定され得る。いくつかの実施形態では、候補配置は、例えば決定論的コンポーネントとランダムコンポーネントとの和としてランダムに生成される。 7-8 show an alternative method of automatically selecting an anchor UI element. In contrast to the above-mentioned method in which application 46 generates a set of candidate elements and then evaluates their suitability as an anchor according to their position relative to the target element, step 222 may generate candidate placements within UI 58, e.g., as pairs of screen coordinates {X,Y}. Such an embodiment relies on the observation that reliable anchors, such as text labels, are typically found next to their associated targets, e.g., to the left of them, or directly above or below them, depending on the default reading direction of the respective natural language of target UI 58. Some embodiments may therefore explicitly look for potential anchor elements in such placements. FIG. 7 shows multiple candidate placements 65a-d. Such candidate placements may be determined according to the screen position of the target UI element (shown as item 64 in FIG. 7) and/or according to the size of the target element. In some embodiments, the candidate placements are generated randomly, e.g., as a sum of a deterministic component and a random component.
次に、ステップ224は、ほぼ候補配置に配置されるすべてのUI要素を識別し得る。いくつかの実施形態では、それぞれの配置がそれぞれの要素の画面境界内にある場合に、要素は、特定の配置に配置されると見なされる。別の実施形態は、それぞれの要素の中心/重心と、それぞれの配置との間の距離が、所定の閾値よりも小さい場合、要素が特定の配置に配置されると考えられてもよい。図7の例では、UI要素66は、候補配置65aに配置されていると考えられ得る。いくつかの実施形態では、ステップ224は、OS40のネイティブ機能に呼出しを発行することを含み、そのそれぞれの機能は、画面の特定の領域を占有するUI要素のリストを返すように構成される。どのUI要素が候補配置に配置されるかを決定する他の方法は、それぞれのUIの基礎となるソースコード(例えば、HTMLスクリプト、スタイルシート)を解析することを含む。 Step 224 may then identify all UI elements that are approximately located in the candidate arrangement. In some embodiments, an element may be considered to be located in a particular arrangement if the respective arrangement is within the screen bounds of the respective element. Another embodiment may consider an element to be located in a particular arrangement if the distance between the center/centre of gravity of the respective element and the respective arrangement is less than a predefined threshold. In the example of FIG. 7, UI element 66 may be considered to be located in candidate arrangement 65a. In some embodiments, step 224 includes issuing a call to a native function of OS 40, the respective function configured to return a list of UI elements that occupy a particular region of the screen. Other methods of determining which UI elements are located in the candidate arrangements include parsing the underlying source code (e.g., HTML scripts, style sheets) of the respective UI.
UI要素がそれぞれの候補配置に配置されていない場合、いくつかの実施形態は、別の候補配置を生成するためにステップ222に戻る。そうでなければ、ステップ226において、スクリプト作成アプリケーション46は、アンカー適応度基準のセットに従ってUI要素の識別されたセットをフィルタリングしてもよい。そのような基準は、とりわけ、視認性(例えば、可視UI要素のみがアンカーとして選択され得る)、及び要素タイプ(例えば、テキスト要素が、他のタイプのUI要素よりも好まれ得る)を含んでもよい。他の適応度基準は、図5~図6に関連して上述したものと同様であってもよい。例えば、それぞれのUI要素が対象要素と位置合わせされているか否か、それぞれのUI要素が対象要素と実質的に重複しているか否かなどに従って、アプリケーション46は、位置スコアを評価してもよい。 If the UI elements are not placed in the respective candidate placements, some embodiments return to step 222 to generate another candidate placement. Otherwise, in step 226, the scripting application 46 may filter the identified set of UI elements according to a set of anchor suitability criteria. Such criteria may include, among others, visibility (e.g., only visible UI elements may be selected as anchors), and element type (e.g., text elements may be preferred over other types of UI elements). Other suitability criteria may be similar to those described above in connection with FIGS. 5-6. For example, the application 46 may evaluate the position score according to whether the respective UI elements are aligned with the target element, whether the respective UI elements substantially overlap with the target element, etc.
候補配置に配置されるUI要素のいずれもアンカーに適応していると見なされない場合(例えば、所定の閾値を超える適応度スコアを受け取っていない場合)、いくつかの実施形態は、ステップ222に戻って、別の候補配置を生成してもよい。そうでなければ、ステップ232は、それぞれの対象要素に関連するアンカーとして適格なUI要素を選択し得る。 If none of the UI elements placed in the candidate arrangements are deemed suitable for the anchor (e.g., if they do not receive a suitability score above a predefined threshold), some embodiments may return to step 222 to generate another candidate arrangement. Otherwise, step 232 may select a UI element that qualifies as an anchor associated with the respective target element.
対象要素及び/又はアンカーUI要素の識別に応答して、一連のステップ112~114(図4)において、スクリプト作成アプリケーション46は、それぞれの対象要素及びアンカー要素の要素特性機能のセットを決定し得る。本発明のいくつかの実施形態による、そのような要素特性機能を図9に示しており、その要素特性機能は、とりわけ、対象要素64及びアンカー要素66をそれぞれ特徴付ける要素ID80a~bのセット、要素テキスト82a~bのセット、及び要素画像84a~bのセットを含む。 In response to identifying the target element and/or anchor UI element, in a series of steps 112-114 (FIG. 4), the scripting application 46 may determine a set of element property features for each target element and anchor element. Such element property features, according to some embodiments of the invention, are illustrated in FIG. 9 and include, among other things, a set of element IDs 80a-b, a set of element texts 82a-b, and a set of element images 84a-b that characterize the target element 64 and the anchor element 66, respectively.
要素ID80a~bは、オペレーティングシステム及び/又はそれぞれのビジネスアプリケーション42への各UI要素を、例えば、RPAクライアント10がそれぞれのユーザーインターフェースを表現及び/又はレンダリングするために使用するオブジェクトの階層内の特定のオブジェクトとして、識別する。いくつかの実施形態では、要素ID80a~bは、例えば属性と値とのペアのセットとして、インターフェース58のソースコードに含まれる。ユーザーインターフェースのソースコードという用語は、本明細書では、それぞれのユーザーインターフェースによって表示されるコンテンツのプログラム表現を示すと理解される。ソースコードは、プログラミング言語で書かれたプログラム/スクリプト、並びにRPAクライアント10のメモリに存在するデータ構造を包含し得る。例示的なソースコードは、ウェブ・ブラウザ・アプリケーションによってウェブページとしてレンダリングされるHTML文書を備える。 The element IDs 80a-b identify each UI element to the operating system and/or respective business application 42 as a particular object within a hierarchy of objects used by the RPA client 10 to represent and/or render the respective user interface. In some embodiments, the element IDs 80a-b are included in the source code of the interface 58, e.g., as a set of attribute-value pairs. The term source code of a user interface is understood herein to indicate a programmatic representation of the content displayed by the respective user interface. Source code may encompass programs/scripts written in a programming language as well as data structures residing in the memory of the RPA client 10. Exemplary source code comprises an HTML document that is rendered as a web page by a web browser application.
最新のコンピューティングプラットフォームでは、オペレーティングシステムは通常、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の一例では、
In modern computing platforms, operating systems typically represent each user interface as a hierarchical data structure commonly known as a UI tree. An exemplary UI tree comprises the document object model (DOM) underlying a web page rendered by a browser application. FIG. 10 illustrates an
いくつかの実施形態では、各ノード72a~eは、例えば、とりわけ、それぞれのノードの親ノードの識別情報、それぞれのノードの子ノードの識別情報、名前、及びそれぞれのノードによって表されるUI要素のタイプを示し得る属性と値とのペアのセットを使用して指定される。
In some embodiments, each
いくつかの実施形態では、UI要素を特徴付ける要素IDは、UIツリー70内のノードの配置を集合的に示すノード識別子のセットを備え、そのそれぞれのノードは、それぞれのUI要素を表す。そのような一例では、要素ID80cは、本明細書では、サブツリー(図10の例示的なサブツリー74a~dを参照)と呼ばれるUIツリー70のノードのサブセットを示す。したがって、要素ID80cは、ノード/UI要素を、それぞれのサブツリーに属するものとして識別する。例えば、ノード72dはサブツリー74cに属する。例示的な要素ID80cは、「uidouble.exe」と呼ばれるアプリケーションのウィンドウ内で見える「承認」と呼ばれる「プッシュボタン」 としてそれぞれのUI要素を識別する属性と値とのペアのセットを含む。要素ID80cの図示したフォーマットは、一例としてのみ提供され、当業者であれば、属性と値とのペアのリストの他に、UIツリー内の特定のノードの配置を表す複数の他の方法があり得ることを理解するであろう。
In some embodiments, the element IDs characterizing the UI elements comprise a set of node identifiers that collectively indicate the placement of the nodes in the
いくつかの実施形態では、対象要素及びアンカー要素をそれぞれ特徴付ける要素ID80a~bを決定することは、対象ユーザーインターフェース58のソースコード(例えば、HTML文書)を解析することと、例えば各UI要素に関連する属性と値とのペアのセットとして、それぞれの要素IDを抽出することと、を含む。 In some embodiments, determining the element IDs 80a-b characterizing the target element and anchor element, respectively, includes parsing the source code (e.g., an HTML document) of the target user interface 58 and extracting the respective element IDs, e.g., as a set of attribute-value pairs associated with each UI element.
いくつかの実施形態では、各要素テキスト82a~b(図9)は、それぞれのUI要素の画面境界内に表示されるテキスト(一連の英数字文字)のコンピュータ符号化を含む。図示の例では、対象要素64がいかなるテキストも表示しないため、要素テキスト82aは値NULLを有する。一方、要素テキスト82bは、テキスト「現金預入」で構成される。テキストのコンピュータ符号化は、例えば、一連の数字コード(例えば、ユニコード)を含んでもよく、各コードは、要素テキスト82a~bの別個の文字に対応する。 In some embodiments, each element text 82a-b (FIG. 9) comprises a computer encoding of text (a series of alphanumeric characters) to be displayed within the screen bounds of the respective UI element. In the illustrated example, element text 82a has the value NULL because target element 64 does not display any text. Element text 82b, on the other hand, consists of the text "Cash Deposit." The computer encoding of the text may comprise, for example, a series of numeric codes (e.g., Unicode), each code corresponding to a distinct character of element text 82a-b.
スクリプト作成アプリケーション46の実施形態は、様々な方法を使用して要素テキスト82a~bを決定してもよい。アプリケーション46がUI58のソースコードにアクセスする場合、アプリケーション46は、それぞれのソースコードから要素テキスト82a~bを抽出しようと試みてもよい。例えば、ウェブページのボタン上に表示されるラベルは、それぞれのウェブページに関連するHTML文書を構文解析することによって見つけられ得る。他のビジネスアプリケーション42の場合、スクリプト作成アプリケーション46は、OS40及び/又はビジネスアプリケーション42のデータ構造を解析して、要素テキスト82a~bがUI58のソースコードに含まれるか否かを判定してもよい。 Embodiments of the scripting application 46 may determine the element text 82a-b using various methods. If the application 46 has access to the source code of the UI 58, the application 46 may attempt to extract the element text 82a-b from the respective source code. For example, labels displayed on buttons on a web page may be found by parsing the HTML document associated with the respective web page. For other business applications 42, the scripting application 46 may analyze data structures of the OS 40 and/or the business application 42 to determine whether the element text 82a-b is included in the source code of the UI 58.
代替の実施形態では、アプリケーション46は、光学文字認識(OCR)コンピュータプログラムなどの画像解析ツールを採用して、要素テキスト82a~bを判定してもよい。そのような一例では、OCRツールは、それぞれの対象要素及び/又はアンカーUI要素を含む画面領域の画像を入力し、テキストトークン(例えば、単語)のセット、及び各テキストトークンについて決定されたバウンディングボックスを返してもよい。例示的なバウンディングボックスは、とりわけ、それぞれのテキストトークンに外接する多角形、及びそれぞれのトークンの凸包を含む。図9では、テキスト「現金預入」を囲む破線の矩形によって、バウンディングボックスを示している。テキストトークン及びバウンディングボックスの受取りに応答して、アプリケーション46は、任意のバウンディングボックスがそれぞれのUI要素と実質的に重複するか否かを判定し、重複する場合、それぞれの対象要素又はアンカーUI要素を特徴付けるテキスト要素82として、それぞれのバウンディングボックス内に配置されるテキストトークンを選択し得る。それぞれのバウンディングボックスの十分な割合(例えば、50%超、通常80~100%)が、それぞれのUI要素の画面境界内に配置される場合、実質的な重複が確立され得る。 In an alternative embodiment, application 46 may employ an image analysis tool, such as an optical character recognition (OCR) computer program, to determine element text 82a-b. In one such example, the OCR tool may input an image of a screen region including each target element and/or anchor UI element and return a set of text tokens (e.g., words) and a bounding box determined for each text token. Exemplary bounding boxes include, among other things, a polygon circumscribing each text token and a convex hull of each token. In FIG. 9, the bounding box is illustrated by a dashed rectangle that encloses the text "Cash Deposit." In response to receiving the text tokens and bounding boxes, application 46 may determine whether any bounding boxes substantially overlap the respective UI elements and, if so, select the text tokens located within the respective bounding boxes as text elements 82 that characterize the respective target element or anchor UI element. If a sufficient percentage of each bounding box (e.g., more than 50%, typically 80-100%) is located within the screen boundaries of the respective UI element, a substantial overlap can be established.
いくつかの実施形態では、UI要素を特徴付ける各要素画像84a~b(図9)は、それぞれのUI要素の境界内の画面上に表示された画像のコンピュータ符号化を含む。画像のコンピュータ符号化は、場合によっては複数のチャネル(例えば、RGB)にわたる、それぞれの画面領域に対応する画素値のアレイ、及び/又は画素値のそれぞれのアレイに従って計算された値のセット(例えば、画素値のそれぞれのアレイのJPEG又はウェーブレット表現)を含み得る。各要素画像84a~bを決定することは、UI58のクリッピング、すなわち、それぞれのUI要素を示すUI58の限定された領域のコンテンツをグラブすることを含み得る。 In some embodiments, each element image 84a-b (FIG. 9) characterizing a UI element includes a computer encoding of an image displayed on the screen within the boundaries of the respective UI element. The computer encoding of the image may include an array of pixel values, possibly across multiple channels (e.g., RGB), corresponding to the respective screen region, and/or a set of values calculated according to the respective array of pixel values (e.g., a JPEG or wavelet representation of the respective array of pixel values). Determining each element image 84a-b may include clipping the UI 58, i.e., grabbing the content of a limited region of the UI 58 that represents the respective UI element.
更なるステップ116(図4)において、スクリプト作成アプリケーション46は、選択されたRPAアクティビティに対応するRPAスクリプトを定式化し得る。換言すれば、ステップ116において、アプリケーション46は、実行時に使用されるべきロボットのコードを、例えばスクリプトファイルに出力する。RPAスクリプト50は、当技術分野で知られている任意のコンピュータ可読符号化で、例えばXMLのバージョンで、定式化されてもよく、又は一連のネイティブプロセッサ命令(例えば、マシンコード)にコンパイルされてもよい。 In a further step 116 (FIG. 4), the scripting application 46 may formulate an RPA script corresponding to the selected RPA activity. In other words, in step 116, the application 46 outputs the code of the robot to be used at run time, for example in a script file. The RPA script 50 may be formulated in any computer-readable encoding known in the art, for example in a version of XML, or may be compiled into a sequence of native processor instructions (for example machine code).
各アクティビティ/オートメーション化ステップについて、作成アプリケーション46は、RPAスクリプト50に、それぞれのアクティビティ(例えば、クリックする、タイプ入力するなど)のインジケータを出力し、更に、ステップ108~110で決定された対象要素及びアンカーUI要素を特徴付ける要素ID80a~b、要素テキスト82a~b、及び要素画像84a~bの符号化を更に出力し得る。特性機能の符号化は、特性データ自体、及び/又はそのようなデータの他の表現、例えば、要素特性データがリモートにアクセスされ得るネットワーク配置のインジケータ(例えば、URL、ネットワークアドレス)を含み得る。 For each activity/automation step, the authoring application 46 outputs to the RPA script 50 an indicator of the respective activity (e.g., clicking, typing, etc.) and may further output encodings of element IDs 80a-b, element text 82a-b, and element images 84a-b that characterize the target element and anchor UI element determined in steps 108-110. The encodings of the property functions may include the property data itself and/or other representations of such data, e.g., an indicator of a network location (e.g., URL, network address) where the element property data may be accessed remotely.
いくつかの実施形態では、アプリケーション46は、例えば属性と値とのペアのセットを使用して、それぞれのアクティビティを構成するためのパラメータ値のセットを、RPAスクリプト50に更に出力してもよい。一例示的なパラメータは、RPAスクリプト50に保存された設計時要素画像84を、候補UI要素(図11~図12に関連して以下の詳細を参照)の実行時画像と比較するための閾値を示す一致精度である。別の例示的なパラメータは、ロボット44が実行時及び/又は対象UI要素を識別しようと試みるために費やし得る最大時間量を示すタイムアウト閾値である。 In some embodiments, the application 46 may further output a set of parameter values to the RPA script 50 for configuring each activity, for example using a set of attribute-value pairs. One exemplary parameter is a match accuracy that indicates a threshold for comparing the design-time element image 84 stored in the RPA script 50 with the runtime images of the candidate UI elements (see details below in connection with FIGS. 11-12). Another exemplary parameter is a timeout threshold that indicates a maximum amount of time the robot 44 may spend at runtime and/or attempting to identify a target UI element.
オートメーション化の設計段階が完了すると、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要素とインタラクトし得る。 Once the automation design phase is complete, the RPA script 50 may be sent to the script repository 15 and/or distributed to other RPA clients for execution (see, e.g., FIG. 1). FIG. 11 shows an exemplary sequence of steps performed by the RPA robot 44 at runtime. In response to receiving the RPA script 50, step 304 determines the type of activity to be performed according to the content of the RPA script 50. Step 304 may further determine the target UI and/or the runtime business application (e.g., MS Excel, Google Chrome, etc.) with which the respective robot is configured to interact according to the RPA script 50. In step 306, the RPA robot 44 may expose the respective target UI, for example, by invoking an instance of the respective business application on the local client machine. A further step 308 may automatically identify the runtime target UI elements of the respective activity according to the information stored in the RPA script 50. The run-time target UI elements comprise the operands of the respective activity, i.e., the UI elements of the run-time target UI that the robot 44 is configured to act on (e.g., click, enter some text, grab content, etc.). Performance of step 308 is described in more detail below. In response to successfully identifying the run-time target UI elements, step 310 may automatically execute the scripted activity, i.e., interact with the respective UI elements as shown in the RPA script 50.
図12は、本発明のいくつかの実施形態による、実行時対象UI要素を自動的に識別するために、ロボット44によって実施される例示的な一連のステップを示している。ステップ312において、ロボット44は、現在のアクティビティの対象のタイプと一致するUI要素を検出し得る。例えば、それぞれのアクティビティがフォームフィールドへのタイプ入力を含む場合、ステップ312は、実行時UI内のフォームフィールドのセットを識別することを含んでもよい。ステップ312は、例えばコンピュータビジョン(例えば、ボタン、テキストボックス、入力フィールドなどの様々なUI要素を自動的に認識するようにトレーニングされたニューラルネットワーク)を使用して、実行時対象UIの下にあるソースコードを解析すること、及び/又は実行時UIの画面上画像に従ってUI要素を識別すること、を含むことができる。意図した対象要素及び/又はアンカー要素がテキストを備える場合、いくつかの実施形態は、OCR技術を更に採用して、テキスト要素を自動的に検出し、更にそれぞれのテキスト要素のためのバウンディングボックスを構築してもよい。 12 illustrates an exemplary sequence of steps performed by the robot 44 to automatically identify run-time target UI elements according to some embodiments of the present invention. In step 312, the robot 44 may detect UI elements that match the target type of the current activity. For example, if the respective activity involves typing into form fields, step 312 may include identifying a set of form fields in the run-time UI. Step 312 may include analyzing source code underlying the run-time target UI, for example using computer vision (e.g., a neural network trained to automatically recognize various UI elements such as buttons, text boxes, input fields, etc.), and/or identifying UI elements according to an on-screen image of the run-time UI. If the intended target element and/or anchor element comprises text, some embodiments may further employ OCR technology to automatically detect text elements and further construct bounding boxes for each text element.
次に、ステップ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が属性と値とのペアのセットを使用して指定される場合で、対応する属性のすべての値が同一である場合に、完全に一致するのがあり得る。 Next, looking within the set of UI elements returned by step 312, step 314 may attempt to identify run-time target UI elements according to element IDs (see above discussion regarding FIGS. 9-10). In some embodiments, step 314 includes determining the element ID of each UI element in the set returned by step 312 and comparing the respective element IDs with element IDs of design-side target elements (e.g., element ID 80a in FIG. 10), i.e., with element IDs specified by the RPA script 50 as characterizing the target. Step 316 may determine whether any element IDs match element IDs of intended targets of the current activity, and if so, step 318 may select the matching UI element as the run-time target. In some embodiments, step 316 determines whether there is an exact match between two element IDs. An exact match may occur when element IDs are specified using a set of attribute-value pairs, where all values of the corresponding attributes are identical.
しかしながら、設計時と実行時との間に発生する対象ユーザーインターフェースの不定期の変化に起因して、実行時対象UIのUI要素が、意図した対象の設計時要素IDと一致しないことが起こり得る。例えば、フォームフィールドの名前が変更された場合がある。UI要素がRPAスクリプト50に示される要素IDと一致しない場合、ロボット44は、利用可能な情報から現在のアクティビティの対象/オペランドを自動的に推論してもよい。本発明のいくつかの実施形態は、要素テキスト82及び要素画像84を、要素IDが一致しない場合に、実行時対象を識別するための代替のフォールバックデータとして使用する。 However, due to occasional changes in the target user interface that occur between design time and run time, it may happen that a UI element in the run-time target UI does not match the design-time element ID of the intended target. For example, a form field may have been renamed. If a UI element does not match the element ID indicated in the RPA script 50, the robot 44 may automatically infer the target/operand of the current activity from available information. Some embodiments of the present invention use the element text 82 and element image 84 as alternative fallback data for identifying the run-time target when the element ID does not match.
そのような一例では、一連のステップ322~324は、設計サイド対象要素及びアンカー要素に対してそれぞれRPAスクリプト50で指定された要素IDに従って、候補実行時対象要素のセット及び候補実行時アンカー要素のセットを組み立ててもよい。「候補」という用語は、本明細書では、UI要素を示すために使用され、その要素IDは、意図した対象要素又はアンカー要素のものとそれぞれ同じである。類似性は、様々な方法で決定され得る。例示的な一実施形態では、ロボット44は、正規表現を使用して、2つの要素IDが部分的に一致するか否かを判定してもよい。例示的な正規表現手法では、機能の特定のサブセットが両方の要素IDにおいて同一である場合(例えば、要素タイプが同じであるが、要素名が異なる場合)、2つの要素IDは類似していると見なされる。要素IDがUIツリー内の要素の位置を示す一実施形態では、正規表現を使用する部分一致戦略により、ロボット44は、特定のサブツリー内の候補を検索すること、例えば、それらの要素IDで指定された同じルートノードを有する候補のみを選択することができる(例えば、図10に関連して上述した説明を参照)。例えば、RPAクライアント10が同時に実行されるビジネスアプリケーションの複数のインスタンスを有し、それらのうちの一方のみが意図した対象要素を有する場合に、この状況が生じ得る。固定ノードを用いて候補対象要素を探索することにより、ロボット44は、候補について、それぞれのUIウィンドウのすべてを探索することができる。 In one such example, a series of steps 322-324 may assemble a set of candidate runtime target elements and a set of candidate runtime anchor elements according to element IDs specified in the RPA script 50 for the design-side target elements and anchor elements, respectively. The term "candidate" is used herein to denote a UI element whose element ID is the same as that of the intended target element or anchor element, respectively. Similarity may be determined in various ways. In one exemplary embodiment, the robot 44 may use regular expressions to determine whether two element IDs partially match. In an exemplary regular expression approach, two element IDs are considered similar if a certain subset of features is identical in both element IDs (e.g., the element type is the same but the element names are different). In one embodiment where the element ID indicates the location of the element in the UI tree, a partial matching strategy using regular expressions allows the robot 44 to search for candidates in a particular subtree, e.g., select only candidates that have the same root node specified in their element IDs (e.g., see the discussion above in connection with FIG. 10). For example, this situation may arise when the RPA client 10 has multiple instances of a business application running simultaneously, only one of which has the intended target element. By searching for candidate target elements using fixed nodes, the robot 44 can search all of the respective UI windows for candidates.
別の例示的な候補選択戦略は、2つの要素IDの間で異なる機能の計算に従って、2つの要素IDが類似しているか否かを判定してもよい。そのような手法は、例えば、2つの要素ID間のレーベンシュタイン距離を決定し、それぞれの距離を所定の閾値と比較してもよい。閾値未満の距離だけ離れた要素IDは、類似していると見なされ得る。いくつかの実施形態では、閾値は、設計時に指定され、RPAスクリプト50に含まれてもよい。正規表現を使用した部分一致方法とは対照的に、レーベンシュタイン距離を使用する方法は、比較される2つの要素ID間でどの機能が異なっているかということに影響されない可能性がある。 Another exemplary candidate selection strategy may determine whether two element IDs are similar according to a calculation of features that differ between the two element IDs. Such an approach may, for example, determine the Levenshtein distance between the two element IDs and compare the respective distances to a predefined threshold. Element IDs that are separated by a distance less than the threshold may be considered similar. In some embodiments, the threshold may be specified at design time and included in the RPA script 50. In contrast to partial matching methods using regular expressions, methods using the Levenshtein distance may not be sensitive to which features differ between the two element IDs being compared.
候補実行時対象のセット及び候補実行時アンカー要素のセットの選択に応答して、ロボット44のいくつかの実施形態は、候補をペア(例えば、対象候補とアンカー候補とのすべての組合せ)で評価して、最も可能性の高い実行時対象を決定してもよい。いくつかの実施形態では、一連のステップ330~332は、それぞれの要素の相対画面位置に従って、及びそれぞれのペアの各メンバのコンテンツ(要素テキスト及び/又は要素画像)に従って、各ペアを評価してもよい。 In response to selecting a set of candidate runtime targets and a set of candidate runtime anchor elements, some embodiments of the robot 44 may evaluate the candidates in pairs (e.g., all combinations of candidate targets and candidate anchors) to determine the most likely runtime target. In some embodiments, a series of steps 330-332 may evaluate each pair according to the relative screen positions of the respective elements and according to the content (element text and/or element image) of each member of each pair.
候補の各ペアについて、いくつかの実施形態は、候補対象が、意図した実行時対象要素である可能性を示すそれぞれの対象とアンカー候補とのペアの位置スコアを評価してもよい(ステップ330)。換言すれば、ステップ330において、いくつかの実施形態は、対象候補要素及びアンカー候補要素の相対位置に従って、対象候補が真の意図した実行時対象であり、更にアンカー候補がRPAスクリプトで指定されたアンカー要素である可能性を判定する。 For each pair of candidates, some embodiments may evaluate a location score for each target and anchor candidate pair that indicates the likelihood that the candidate target is the intended run-time target element (step 330). In other words, in step 330, some embodiments determine the likelihood that the target candidate is the true intended run-time target and that the anchor candidate is the anchor element specified in the RPA script according to the relative locations of the target candidate element and the anchor candidate element.
例示的な位置スコアは、様々な基準に従って、例えば、候補アンカーと候補対象との間の距離に従って、決定されてもよい。図13は、本発明のいくつかの実施形態による、候補対象要素68(この例では、入力フィールド)と候補アンカー要素69(ラベル)とを隔てる例示的な距離のセットを示している。画面の主座標(例えば、水平及び垂直)に沿って、それぞれの要素の中心/重心間の距離d1及びd2を測定することができる。OCRを使用して検出されたテキスト要素の場合、距離は、それぞれのテキスト要素に外接するバウンディングボックスの中心又は重心まで測定され得る。マンハッタン距離、ユークリッド距離などの他の例示的な要素間距離を、d1及びd2に従って評価することができる。いくつかの実施形態は、アンカー要素が通常、その対象要素の近傍に配置されるという観察に依存しているため、候補アンカーと候補対象との間の距離が大きいほど、それぞれのペアが設計時対象要素及びアンカー要素を表す可能性は低い。そのような実施形態では、例示的な位置スコアは、1/D又は(1-D/Dmax)に従って決定されてもよく、ここで、Dは、d1及び/又はd2に従って決定される要素間距離を表し、Dmaxは、所定の閾値を表し、それを超えると2つのUI要素が対象とアンカーとのペアである可能性が低いと考えられる。 Exemplary position scores may be determined according to various criteria, for example, according to the distance between the candidate anchor and the candidate target. FIG. 13 shows a set of exemplary distances separating a candidate target element 68 (in this example, an input field) and a candidate anchor element 69 (a label) according to some embodiments of the present invention. The distances d1 and d2 between the centers/centroids of the respective elements can be measured along the screen's primary coordinates (e.g., horizontal and vertical). For text elements detected using OCR, the distance can be measured to the center or centroid of a bounding box circumscribing the respective text element. Other exemplary inter-element distances, such as Manhattan distance, Euclidean distance, etc., can be evaluated according to d1 and d2. Some embodiments rely on the observation that an anchor element is usually placed in the vicinity of its target element, so the larger the distance between the candidate anchor and the candidate target, the less likely the respective pair represents the design-time target element and anchor element. In such an embodiment, an exemplary position score may be determined according to 1/D or (1-D/Dmax), where D represents the inter-element distance determined according to d1 and/or d2, and Dmax represents a predefined threshold above which the two UI elements are considered unlikely to be a target-anchor pair.
別の例示的な位置スコアは、候補アンカー要素と候補対象要素との間の位置合わせ度に従って決定されてもよい。位置合わせは、例えば図14に示すように、距離の別のセットに従って決定されてもよい。例示的な距離d3は、アンカー候補69の左端と対象候補68の左端とを隔てている。一方、距離d4は、アンカー候補69の上端と対象候補68の上端とを隔てている。いくつかの実施形態は、アンカーが通常、それらの対象要素と位置合わせされるという観察に依存しているため、それぞれのアンカー候補要素及び対象候補要素が実際に対象とアンカーとのペアである比較的高い可能性と、比較的小さいd3又はd4距離は、関連付けられ得る。図14は、左及び/又は上の位置合わせをテストするために使用され得る距離のみを示しており、当業者であれば、図示した距離測定値は、右及び/又は下の位置合わせをテストするように改良され得ることを理解するであろう。例示的な適応度スコアは、以下のように計算され得る。
ここで、δは、d3及び/又はd4に従って決定された位置合わせ距離であり、δmaxは、所定の閾値であり、それを超えると2つのUI要素が位置合わせされていないと見なされる。
Another exemplary position score may be determined according to the degree of alignment between the candidate anchor element and the candidate target element. The alignment may be determined according to another set of distances, for example as shown in FIG. 14. An exemplary distance d3 separates the left edge of the anchor candidate 69 from the left edge of the target candidate 68. Meanwhile, a distance d4 separates the top edge of the anchor candidate 69 from the top edge of the target candidate 68. Since some embodiments rely on the observation that anchors are usually aligned with their target elements, a relatively small d3 or d4 distance may be associated with a relatively high likelihood that the respective anchor candidate element and target candidate element are in fact a target and anchor pair. FIG. 14 only shows distances that may be used to test for left and/or top alignment, and one skilled in the art will understand that the distance measures shown may be refined to test for right and/or bottom alignment. An exemplary fitness score may be calculated as follows:
where δ is the alignment distance determined according to d3 and/or d4, and δmax is a predefined threshold beyond which two UI elements are considered to be misaligned.
別の例示的な位置スコアは、候補アンカーと候補対象との間の角度に従って決定されてもよい。図15は、アンカー候補69と対象候補68との間の例示的な角度Aを示しており、2つのそれぞれの要素の中心/重心を結ぶ直線の角度として決定される。いくつかの実施形態では、角度Aは、図13の表記を使用して、距離測定値、例えばA=d2/d1に従って決定される。いくつかの実施形態では、角度は、対象候補とアンカー候補との位置合わせ度を決定するための手段として機能する。いくつかの実施形態は、対象候補とアンカー候補との間の実行時に計算された角度を、実際のアンカー要素と対象要素との間の設計時に決定された角度と比較することによって、位置スコアを更に計算してもよい。設計時角度は、RPAスクリプト50に含まれてもよい。設計時角度と実行時角度との間の比較的小さい差は、現在の対象とアンカー候補とのペアが設計時対象要素及びアンカー要素とほぼ同じ相対位置にあることを示し、したがって、候補が真に求められる実行時対象要素及びアンカー要素である比較的高い可能性を示し得る。角度に従って決定される例示的な位置スコアは、1/|Ad-Ar|に従って決定されてもよく、ここで、Adは、(例えば、RPAスクリプト50で指定される)真のアンカー要素と対象要素との間の設計時に決定される角度を表し、Arは、候補対象と候補アンカーとの間の実行時に決定される角度を表す。 Another exemplary location score may be determined according to the angle between the candidate anchor and the candidate target. FIG. 15 shows an exemplary angle A between the anchor candidate 69 and the target candidate 68, determined as the angle of a line connecting the centers/centroids of the two respective elements. In some embodiments, the angle A is determined according to a distance measure, e.g., A=d2/d1, using the notation of FIG. 13. In some embodiments, the angle serves as a means for determining the degree of alignment of the target candidate and the anchor candidate. Some embodiments may further calculate the location score by comparing the run-time calculated angle between the target candidate and the anchor candidate with the design-time determined angle between the actual anchor element and the target element. The design-time angle may be included in the RPA script 50. A relatively small difference between the design-time angle and the run-time angle may indicate that the current target and anchor candidate pair is in approximately the same relative position as the design-time target element and anchor element, and thus may indicate a relatively high likelihood that the candidate is the truly desired run-time target element and anchor element. An exemplary position score determined according to angle may be determined according to 1/|Ad-Ar|, where Ad represents the design-time determined angle between the true anchor element (e.g., specified in the RPA script 50) and the target element, and Ar represents the run-time determined angle between the candidate target and the candidate anchor.
更に別の例示的な位置スコアは、アンカー候補要素と対象候補要素との間の重複度に従って決定されてもよい。図16は、本発明のいくつかの実施形態による、例示的な重複度67を示しており、重複度67は、一方の要素が他方の要素と交差する割合として、又は換言すれば、一方の要素が他方の要素とどの程度重なるかで、決定される。そのような実施形態では、交差しない2つの要素は重複がゼロであるが、一方の要素が他方を完全に含む2つの要素は、100%の重複を有する。いくつかの実施形態は、ボタンラベルなどの特定のアンカーを識別するために、重複度に従って決定された位置スコアを使用する。ロボット44がボタンタイプの対象要素を探しているそのような一例では、ロボットは、実質的な重複度を有しないすべての対象とアンカー候補とのペアを排除することができる(例えば、90%超)。 Yet another exemplary location score may be determined according to the overlap between the anchor candidate element and the target candidate element. FIG. 16 illustrates an exemplary overlap 67, according to some embodiments of the present invention, determined as the percentage of one element that intersects with the other element, or in other words, how much one element overlaps with the other element. In such an embodiment, two elements that do not intersect have zero overlap, while two elements where one element completely contains the other have 100% overlap. Some embodiments use the location score determined according to the overlap to identify a particular anchor, such as a button label. In one such example where the robot 44 is looking for a button-type target element, the robot may eliminate all target-anchor candidate pairs that do not have a substantial overlap (e.g., more than 90%).
更なるステップ332(図12)において、ロボット44のいくつかの実施形態は、対象とアンカー候補とのペアのコンテンツスコアを決定する。コンテンツスコアは、対象候補及びアンカー候補の画面上コンテンツ(画像及び/又はテキスト)を、設計サイド対象及びアンカーのそれぞれのコンテンツと比較した結果に従って、決定され得る。いくつかの実施形態では、画面上コンテンツを比較することは、対象候補によって表示されたテキストと設計サイド対象要素によって表示されたテキストとの間の類似性の数値尺度と、アンカー候補によって表示されたテキストと設計サイドアンカー要素によって表示されたテキストとの間の類似性の別の尺度と、を評価することを含む。設計サイド対象要素及びアンカー要素の要素テキストは、RPA50で指定される(例えば、図9のアイテム82a~b及び関連する説明を参照)。2つのテキスト断片間の類似性は、例えばレーベンシュタイン距離を使用して評価されてもよく、比較的小さい距離は、比較される断片間の比較的高い類似性を示し得る。 In a further step 332 (FIG. 12), some embodiments of the robot 44 determine a content score for the target and anchor candidate pair. The content score may be determined according to a result of comparing the on-screen content (images and/or text) of the target and anchor candidates with the respective content of the design side targets and anchors. In some embodiments, comparing the on-screen content includes evaluating a numerical measure of similarity between the text displayed by the target candidate and the text displayed by the design side target element, and another measure of similarity between the text displayed by the anchor candidate and the text displayed by the design side anchor element. The element text of the design side target element and the anchor element are specified in the RPA 50 (see, e.g., items 82a-b in FIG. 9 and related discussion). The similarity between the two text fragments may be evaluated, for example, using the Levenshtein distance, where a relatively small distance may indicate a relatively high similarity between the compared fragments.
ステップ332は、対象候補の画像と設計サイド対象要素の画像との間の類似性の数値尺度と、アンカー候補の画像と設計サイドアンカー要素の画像との間の類似性の別の尺度と、を決定することを更に含んでもよい。設計サイド対象要素及びアンカー要素の要素画像は、RPAスクリプト50で指定される(例えば、図9のアイテム84a~b及び関連する説明を参照)。2つの画像間の類似性のいくつかの尺度は、当技術分野で知られている。 Step 332 may further include determining a numerical measure of similarity between the image of the target candidate and the image of the design side target element, and another measure of similarity between the image of the anchor candidate and the image of the design side anchor element. The element images of the design side target elements and anchor elements are specified in the RPA script 50 (see, e.g., items 84a-b in FIG. 9 and associated discussion). Several measures of similarity between two images are known in the art.
テキストの類似性は、画像の類似性とは無関係に使用されてもよく、又はこれら2つは、集約コンテンツスコアにおいて組み合わされてもよい。テキスト又は対象要素若しくはアンカー要素の画像のいずれかが、設計と実行時との間で変化した状況において、画像及びテキストの態様を集約することは、実行時対象要素を識別するロバストな方法を提供し得る。そのような状況では、画像コンテンツが一致しない場合でも、又はその逆であっても、ロボット44は、テキストコンテンツに従って2つのUI要素が類似していると判定し得る。また、対象要素のみが設計時と実行時との間で変化している一方で、アンカーがほぼ同一のままである状況において、アンカーについて決定されたコンテンツスコアと、対象について決定されたコンテンツスコアとを組み合わせることは、ロバストな方法をもたらし得る。そのような状況では、ロボット44は、候補アンカーのコンテンツに従って、実行時対象を識別し得る場合がある。 Text similarity may be used independently of image similarity, or the two may be combined in an aggregate content score. In situations where either the text or the image of the target or anchor element has changed between design and run time, aggregating image and text aspects may provide a robust method of identifying the run time target element. In such situations, the robot 44 may determine that two UI elements are similar according to the text content even if the image content does not match, or vice versa. Also, in situations where only the target element has changed between design and run time, while the anchor remains nearly identical, combining the content score determined for the anchor with the content score determined for the target may result in a robust method. In such situations, the robot 44 may be able to identify the run time target according to the content of the candidate anchor.
代替の実施形態では、ロボット44は、対象とアンカー候補とのペアのフィルタとして、ステップ330を使用する。そのような一例では、各候補ペアについて、ロボット44は、アンカー候補に対する対象候補の相対位置のインジケータのセット、例えば図13~14に関連して上述したような距離のセットを評価してもよい。対象候補及びアンカー候補が、例えば離れすぎている、及び/又は位置合わせされていないために、対象及びアンカー候補が、真に求められる実行時対象とアンカーとのペアである可能性が低いことを、評価した距離が示す場合、それぞれの対象とアンカー候補とのペアは、コンテンツスコア評価について、もはや考慮されない(ステップ332)。このような最適化は、画像解析が通常、リソース消費型であるため、実行時対象を識別する計算コストを大幅に低減し得る。 In an alternative embodiment, the robot 44 uses step 330 as a filter of object-candidate anchor pairs. In one such example, for each candidate pair, the robot 44 may evaluate a set of indicators of the relative position of the object candidate with respect to the anchor candidate, such as a set of distances as described above in connection with FIGS. 13-14. If the evaluated distances indicate that the object and anchor candidates are unlikely to be a truly desired run-time object-anchor pair, e.g., because they are too far apart and/or misaligned, the respective object-anchor candidate pair is no longer considered for content score evaluation (step 332). Such optimization may significantly reduce the computational cost of identifying run-time objects, since image analysis is typically resource-intensive.
ステップ336において、対象とアンカー候補とのペアのセットの各々に対して決定された位置スコア及び/又はコンテンツスコアに従って、ロボット44は、ステップ322で識別された対象候補のセットから実行時対象を選択し得る。いくつかの実施形態では、ステップ336は、各ペアについての集約スコアを計算してもよく、集約スコアは、それぞれのペアについて決定された位置スコアとコンテンツスコアとの組合せである。スコアは、当技術分野で知られている様々な方法を使用して、例えば、各スコアに所定の数値重みが乗算された加重平均として、組み合わせられてもよい。重みの値は、それぞれのスコアに関連する信頼度を示し得る(例えば、実行時対象を正しく識別する可能性が高いスコアには、比較的高い重みが与えられてもよい)。 In step 336, the robot 44 may select a runtime object from the set of object candidates identified in step 322 according to the location score and/or content score determined for each of the set of object-candidate pairs. In some embodiments, step 336 may calculate an aggregate score for each pair, the aggregate score being a combination of the location score and content score determined for each pair. The scores may be combined using various methods known in the art, for example, as a weighted average where each score is multiplied by a predetermined numerical weight. The weight value may indicate the confidence associated with each score (e.g., a relatively high weight may be given to a score that is more likely to correctly identify the runtime object).
いくつかの実施形態では、集約スコアがRPA50で指定された設計サイド対象とアンカーとのペアに最も高い類似性を示すペアの対象候補要素は、実行時対象要素として選択される。次に、ロボット44は、スクリプト化されたアクティビティに進むことができる(ステップ320)、すなわち、現在のアクティビティを、選択された実行時対象に適用することができる。 In some embodiments, the candidate target element of the pair whose aggregate score indicates the highest similarity to the design side target and anchor pair specified in the RPA 50 is selected as the run-time target element. The robot 44 can then proceed to the scripted activity (step 320), i.e., apply the current activity to the selected run-time target.
図17は、本明細書に記載の方法のいくつかを遂行するようにプログラムされたコンピューティングデバイスの例示的なハードウェア構成を示している。それぞれのコンピューティングデバイスは、図1のRPAクライアント10a~eのいずれか、例えば図18に示すパーソナルコンピュータを表してもよい。携帯電話、タブレットコンピュータ、及びウェアラブルなどの他のコンピューティングデバイスは、わずかに異なる構成を有し得る。プロセッサ22は、信号及び/又はデータのセットを用いて計算演算及び/又は論理演算を遂行するように構成された物理デバイス(例えば、マイクロプロセッサ、半導体基板上に形成されたマルチコア集積回路)を備える。そのような信号又はデータは、符号化され、例えばマシンコードなどのプロセッサ命令の形態でプロセッサ22に送達され得る。プロセッサ22は、中央処理装置(CPU)及び/又はグラフィックス・プロセッシング・ユニット(GPU)のアレイを含み得る。 Figure 17 illustrates an exemplary hardware configuration of a computing device programmed to perform some of the methods described herein. Each computing device may represent any of the RPA clients 10a-e of Figure 1, such as the personal computer shown in Figure 18. Other computing devices, such as mobile phones, tablet computers, and wearables, may have slightly different configurations. The processor 22 comprises a physical device (e.g., a microprocessor, a multi-core integrated circuit formed on a semiconductor substrate) configured to perform computational and/or logical operations using a set of signals and/or data. Such signals or data may be encoded and delivered to the processor 22 in the form of processor instructions, e.g., machine code. The processor 22 may include an array of central processing units (CPUs) and/or graphics processing units (GPUs).
メモリユニット24は、演算を実行する過程でプロセッサ22によってアクセス又は生成されるデータ/信号/命令符号化を記憶する揮発性コンピュータ可読媒体(例えば、ダイナミック・ランダムアクセス・メモリ-DRAM)を備え得る。入力デバイス26は、コンピュータキーボード、マウス、及びマイクロフォンを含み、とりわけ、ユーザーがデータ及び/又は命令をRPAクライアント10に導入することを可能にするそれぞれのハードウェアインターフェース及び/又はアダプタを含み得る。出力デバイス28は、とりわけモニタ及びスピーカなどのディスプレイデバイス、並びにそれぞれのコンピューティングデバイスがユーザーにデータを通信し得るようにするグラフィックカードなどのハードウェアインターフェース/アダプタを含み得る。いくつかの実施形態では、入力デバイス26及び出力デバイス28は、共通のハードウェア(例えば、タッチスクリーンである。)を共有する。ストレージデバイス32は、ソフトウェア命令及び/又はデータの不揮発性記憶、読取り、及び書込みを可能にするコンピュータ可読媒体を含む。例示的なストレージデバイスは、磁気ディスクデバイス、光ディスクデバイス及びフラッシュメモリデバイス、並びにCD及び/又はDVDディスクなどのリムーバブルメディア及びそれらのドライブを含む。ネットワークアダプタ34により、それぞれのコンピューティングデバイスは、電子通信ネットワーク(例えば、図1のネットワーク12及び14)及び/又は他のデバイス/コンピュータシステムに接続することができる。 The memory unit 24 may comprise a volatile computer-readable medium (e.g., Dynamic Random Access Memory - DRAM) that stores data/signal/instruction encodings accessed or generated by the processor 22 in the course of performing operations. The input devices 26 may include a computer keyboard, a mouse, and a microphone, among other hardware interfaces and/or adapters that allow a user to introduce data and/or instructions to the RPA client 10. The output devices 28 may include display devices such as a monitor and speakers, among other hardware interfaces/adapters such as a graphics card that allow the respective computing devices to communicate data to the user. In some embodiments, the input devices 26 and the output devices 28 share common hardware (e.g., a touch screen). The storage devices 32 include computer-readable media that allow non-volatile storage, reading, and writing of software instructions and/or data. Exemplary storage devices include magnetic disk devices, optical disk devices, and flash memory devices, as well as removable media such as CD and/or DVD disks and their drives. A network adapter 34 enables each computing device to connect to electronic communications networks (e.g., networks 12 and 14 in FIG. 1) and/or other devices/computer systems.
コントローラハブ30は、複数のシステムバス、周辺バス、及び/又はチップセットバス、並びに/あるいはプロセッサ22とRPAクライアント10の残りのハードウェアコンポーネントとの間の通信を可能にする他のすべての回路を一般的に表す。例えば、コントローラハブ30は、メモリコントローラ、入力/出力(I/O)コントローラ、及び割込みコントローラを備えてもよい。ハードウェア製造業者に応じて、いくつかのそのようなコントローラは、単一の集積回路に組み込まれてもよく、及び/又はプロセッサ22と統合されてもよい。別の例では、コントローラハブ30は、プロセッサ22をメモリ24に接続するノースブリッジ、並びに/又はプロセッサ22をデバイス26、28、32及び34に接続するサウスブリッジを備えてもよい。 The controller hub 30 generally represents multiple system buses, peripheral buses, and/or chipset buses, and/or any other circuitry that enables communication between the processor 22 and the remaining hardware components of the RPA client 10. For example, the controller hub 30 may include a memory controller, an input/output (I/O) controller, and an interrupt controller. Depending on the hardware manufacturer, some such controllers may be incorporated into a single integrated circuit and/or may be integrated with the processor 22. In another example, the controller hub 30 may include a northbridge that connects the processor 22 to the memory 24 and/or a southbridge that connects the processor 22 to the devices 26, 28, 32, and 34.
上述の例示的なシステム及び方法は、アクティビティ対象、すなわちロボットソフトウェアによって作用されるユーザーインターフェース要素の自動識別を改善することによって、RPA操作を容易にする。典型的なRPA用途では、対象ユーザーインターフェース(例えば、電子商取引ウェブページ、会計インターフェースなど)は、それぞれのインターフェースとインタラクトするためにロボット設計とは無関係に開発及び維持されるので、対象識別は、実質的な技術的問題を提起する。したがって、対象UIの機能性及び/又は外観は、RPA開発者の知識なしに変化することがある。したがって、成功したRPAは、アクティビティ対象を識別するロバストな方法、すなわち対象ユーザーインターフェースの設計の変動に比較的影響されない方法に依存し得る。 The exemplary systems and methods described above facilitate RPA operations by improving the automatic identification of activity objects, i.e., user interface elements that are acted upon by the robot software. In typical RPA applications, object identification poses substantial technical challenges because the target user interfaces (e.g., e-commerce web pages, accounting interfaces, etc.) are developed and maintained independently of the robot design to interact with the respective interfaces. Thus, the functionality and/or appearance of the target UI may change without the knowledge of the RPA developer. Successful RPA may therefore depend on a robust method of identifying activity objects, i.e., a method that is relatively insensitive to variations in the design of the target user interfaces.
ロボットソフトウェア(設計時として一般に知られているオートメーション化の段階)を設計する場合、RPA開発者は、対象UIのインスタンスを呼び出し、対象要素、及びそれぞれの対象要素に対して実施されるべきアクティビティを示す。例えば、開発者は、対象UIのボタンを示し、それぞれのボタンをクリックするようにロボットを構成してもよい。別の例では、開発者は、入力フィールドを示し、それぞれの入力フィールドに何らかのテキストをタイプ入力するようにロボットを構成してもよい。更に別の例では、開発者は、ユーザーインターフェースのテキストボックスを示し、それぞれのテキストボックスのコンテンツをグラブするようにロボットを構成してもよい。結果として得られるロボットコードは、対象要素のインジケータと、それぞれのアクティビティのインジケータと、を含み得る。次いで、ロボットコードは、RPAクライアントに配信され得る。 When designing the robot software (a phase of automation commonly known as design time), the RPA developer invokes an instance of a target UI and indicates target elements and the activity to be performed on each target element. For example, the developer may configure the robot to indicate buttons in the target UI and click on each button. In another example, the developer may configure the robot to indicate input fields and type some text into each input field. In yet another example, the developer may configure the robot to indicate text boxes in a user interface and grab the content of each text box. The resulting robot code may include an indicator of the target elements and an indicator of the respective activities. The robot code may then be delivered to the RPA client.
実行時として一般に知られているオートメーション化の別の段階では、クライアントマシンは、対象UIの別のクライアントサイドインスタンスとインタラクトしようと試み得るそれぞれのロボットを遂行してもよい。しかしながら、クライアントサイドUIは、設計サイドUIと同一でない場合がある。対象UIがウェブインターフェースを備える場合、特に、それぞれのロボットが複雑なウェブサイトとインタラクトするように設計されている場合、それぞれのユーザーインターフェースは、1日のうちに複数回変化してもよい。それぞれのウェブサイトのウェブ開発者は、例えば、ボタンの位置の変更、メニューの構成の変更、及び/又は様々な要素の配色、フォント、及びサイズの変更など、外観を微調整してもよい。したがって、インターフェースの外観が変化した場合でも、ロボットソフトウェアは、対象要素を首尾よく識別する必要があり得る。 At another stage of automation, commonly known as run time, the client machine may execute the respective robot, which may attempt to interact with another client-side instance of the target UI. However, the client-side UI may not be identical to the design-side UI. If the target UI comprises a web interface, the respective user interface may change multiple times throughout the day, especially if the respective robots are designed to interact with complex websites. The web developers of the respective websites may tweak the appearance, for example, changing the position of buttons, changing the configuration of menus, and/or changing the color scheme, fonts, and size of various elements. Thus, the robot software may need to successfully identify the target element even if the appearance of the interface has changed.
いくつかの従来のRPAシステムは、それぞれのユーザーインターフェースの基礎となるソースコード又はデータ構造(例えば、ウェブページの外観及びコンテンツを指定するHTMLコードで、指定されたその名前又はIDに従って対象要素を識別する。しかしながら、そのようなシステム及び方法は、それぞれの要素の名前が予期せず変化した場合に失敗する可能性がある。特に、かなりの割合のウェブ文書が現在動的に生成されており、ウェブ文書の様々な態様がアルゴリズム的に制御されているため、このような変化は非常に頻繁に発生する可能性がある。 Some conventional RPA systems identify target elements according to their names or IDs, which are specified in the underlying source code or data structures of the respective user interface (e.g., HTML code that specifies the appearance and content of a web page). However, such systems and methods can fail when the names of the respective elements change unexpectedly. Such changes can occur very frequently, especially since a significant proportion of web documents are now dynamically generated and various aspects of web documents are algorithmically controlled.
そのような従来の手法とは対照的に、本発明のいくつかの実施形態は、設計時に表示されるその画像及びテキストに従って、対象要素を更に識別する。設計時の画像及びテキストは、ロボットのコードに保存され、RPAクライアントに送られる。実行時に、ロボットは、複数の候補対象要素を識別し、要素IDに従って、更にそれぞれの候補要素によって表示された画像及びテキストに従って、複数の候補対象要素のそれぞれを評価し得る。設計時対象要素のID、画像、及びテキストと少なくとも部分的に一致する候補が、実行時対象として選択され得る。次いで、ロボットは、スクリプト化されたアクティビティを、選択された実行時対象要素に適用し得る。 In contrast to such conventional approaches, some embodiments of the present invention further identify target elements according to their images and text displayed at design time. The design-time images and text are stored in the robot's code and sent to the RPA client. At run-time, the robot may identify multiple candidate target elements and evaluate each of the multiple candidate target elements according to the element ID and further according to the image and text displayed by each candidate element. Candidates that at least partially match the ID, image, and text of the design-time target element may be selected as run-time targets. The robot may then apply scripted activities to the selected run-time target elements.
いくつかの実施形態は、計算リソースを節約し、したがって実行時のRPA効率及びユーザー体験を改善するために、最適化戦略を使用してもよい。第1のフェーズでは、ロボットは、要素IDに従って実行時対象を識別しようと試みてもよく、そのような識別が失敗した場合(例えば、要素の名前がUIのソースコード内で変化したことにより)、テキスト一致及び/又は画像一致をフォールバック位置として使用し得る。候補UI要素は、それらが設計時対象要素の要素IDと部分的に一致するように選択され得る。要素IDと部分的に一致していれば、ロボットは、候補の関連するサブグループ内の対象要素(例えば、設計サイド対象要素と同じUIの領域に属する候補)を検索することができる。 Some embodiments may use optimization strategies to save computational resources and thus improve runtime RPA efficiency and user experience. In the first phase, the robot may attempt to identify the runtime target according to the element ID, and if such identification fails (e.g., because the name of the element has changed in the source code of the UI), it may use text and/or image matches as fallback locations. Candidate UI elements may be selected such that they partially match the element ID of the design-time target element. If there is a partial match with the element ID, the robot may search for target elements in a related subgroup of candidates (e.g., candidates that belong to the same region of the UI as the design-side target element).
方法の堅牢性を更に改善するために、いくつかの実施形態は、対象インターフェースの別のUI要素の特性データ(例えば、要素ID、画像及びテキストデータ)を採用し、他の要素は、対象要素と同時表示され、対象要素のアンカーと見なされる。実行時において、いくつかの実施形態は、複数の候補アンカー要素を識別し、要素ID、画像、及び/又はデータに従って、各候補を設計時アンカーと一致させるように試みてもよい。アンカー要素データを対象要素データと組み合わせて使用することは、対象とアンカーの両方が設計時と実行時との間で変更された可能性が低いという仮定に依存し、これにより、対象は、そのアンカーを特徴付けるデータに基づいて首尾よく識別され得る。 To further improve the robustness of the method, some embodiments employ characteristic data (e.g., element ID, image, and text data) of another UI element of the target interface, which is co-displayed with the target element and considered as an anchor of the target element. At run-time, some embodiments may identify multiple candidate anchor elements and attempt to match each candidate with a design-time anchor according to element ID, image, and/or data. Using anchor element data in combination with target element data relies on the assumption that both the target and the anchor are unlikely to have changed between design time and run time, such that a target may be successfully identified based on data characterizing its anchor.
上記の実施形態が本発明の範囲から逸脱することなく多くの方法で変更され得ることは、当業者には明らかであろう。したがって、本発明の範囲は、以下の特許請求の範囲、及びそれらの法的均等物によって決定されるべきである。
It will be apparent to those skilled in the art that the above embodiments can be modified in many ways without departing from the scope of the present invention. Therefore, the scope of the present invention should be determined by the following claims and their legal equivalents.
Claims (17)
対象UIの対象要素の特性である対象機能のセット及び前記対象UIのアンカー要素の特性であるアンカー機能のセットを備えるロボティック・プロセス・オートメーション(RPA)スクリプトの受取りに応答して、前記コンピュータシステムによって公開された実行時ユーザーインターフェース(UI)内の前記対象要素の実行時インスタンスを自動的に識別し、
前記RPAスクリプトに従って決定される操作であって、人間のオペレータと前記対象要素の前記実行時インスタンスとのインタラクションの結果を再現する操作を自動的に実行する、方法において、
前記対象機能のセットが、
前記対象UIのツリー表現内の前記対象要素の位置を示す対象IDと、
前記対象UI内の前記対象要素の画像を備える対象画像と、
前記対象UI内の前記対象要素によって表示される一連の文字を備える対象テキストと、を備え、
前記アンカー機能のセットが、
前記対象UIの前記ツリー表現内の前記アンカー要素の位置を示すアンカーIDと、
前記対象UI内の前記アンカー要素の画像を備えるアンカー画像と、
前記対象UI内の前記アンカー要素によって表示される一連の文字を備えるアンカーテキストと、を備え、
前記方法が、前記対象ID、対象画像、対象テキスト、アンカーID、アンカー画像、及びアンカーテキストに従って、前記対象要素の前記実行時インスタンスを識別することを含む、方法。 1. A method comprising employing at least one hardware processor of a computer system, the at least one hardware processor of the computer system comprising:
In response to receiving a Robotic Process Automation (RPA) script having a set of target functions that are characteristic of a target element of a target UI and a set of anchor functions that are characteristic of an anchor element of the target UI, automatically identifying a runtime instance of the target element within a runtime user interface (UI) exposed by the computer system;
2. A method for automatically performing operations determined according to the RPA script that replicate results of an interaction between a human operator and the runtime instance of the target element, comprising:
The set of target features is
A target ID indicating a position of the target element within a tree representation of the target UI;
a target image comprising an image of the target element within the target UI;
a target text comprising a sequence of characters to be displayed by the target element in the target UI;
The set of anchor functions
an anchor ID indicating a location of the anchor element within the tree representation of the target UI;
an anchor image comprising an image of the anchor element within the target UI;
and anchor text comprising a series of characters displayed by the anchor element in the target UI;
The method includes identifying the runtime instance of the target element according to the target ID, target image, target text, anchor ID, anchor image, and anchor text.
前記実行時UIの複数の候補UI要素の各候補について、前記実行時UIのツリー表現内の前記各候補の位置を示す前記各候補の要素IDが、前記対象IDと厳密に一致するか否かを判定することと、
それに応答して、前記各候補の前記要素IDが前記対象IDと厳密に一致する場合、前記各候補を、前記対象要素の前記実行時インスタンスとして指定することと、
前記複数の候補UI要素のいずれの候補も前記対象IDと厳密に一致する要素IDがない場合、前記対象画像及び対象テキストに更に従って、前記対象要素の前記実行時インスタンスを識別することと、を備える、請求項1に記載の方法。 automatically identifying the runtime instance of the target element,
For each candidate of a plurality of candidate UI elements of the runtime UI, determining whether an element ID of the each candidate, indicating a position of the each candidate within a tree representation of the runtime UI, closely matches the target ID;
in response, designating each of the candidates as the runtime instance of the target element if the element ID of the candidate exactly matches the target ID;
2. The method of claim 1, further comprising: if none of the plurality of candidate UI elements has an element ID that closely matches the target ID, identifying the runtime instance of the target element further according to the target image and target text.
候補アンカーを、前記候補アンカーの要素IDが前記アンカーIDと部分的に一致するか否かに従って、前記複数の候補UI要素から選択することと、
前記候補対象及び候補アンカーの選択に応答して、前記対象テキストを前記候補対象によって表示されたテキストと比較した結果に従って、及び前記アンカーテキストを前記候補アンカーによって表示されたテキストと比較した結果に更に従って、前記候補対象を、前記対象要素の前記実行時インスタンスとして指定するか否かを判定することと、を更に含む、請求項2に記載の方法。 selecting a candidate object from the plurality of candidate UI elements according to whether an element ID of the candidate object partially matches the object ID;
selecting a candidate anchor from the plurality of candidate UI elements according to whether an element ID of the candidate anchor partially matches the anchor ID;
3. The method of claim 2, further comprising: in response to selection of the candidate object and candidate anchor, determining whether to designate the candidate object as the runtime instance of the target element according to a result of comparing the object text with text displayed by the candidate object and further according to a result of comparing the anchor text with text displayed by the candidate anchor.
前記オートメーション化対象アプリケーションが、実行時ユーザーインターフェース(UI)を公開するように構成され、
前記RPAロボットが、
対象UIの対象要素の特性である対象機能のセット及び前記対象UIのアンカー要素の特性であるアンカー機能のセットを備えるRPAスクリプトの受取りに応答して、前記実行時UI内の前記対象要素の実行時インスタンスを自動的に識別し、
前記RPAスクリプトに従って決定される操作であって、人間のオペレータと前記対象要素の前記実行時インスタンスとのインタラクションの結果を再現する操作を、自動的に実行する、ように構成されたコンピュータシステムにおいて、
前記対象機能のセットが、
前記対象UIのツリー表現内の前記対象要素の位置を示す対象IDと、
前記対象UI内の前記対象要素の画像を備える対象画像と、
前記対象UI内の前記対象要素によって表示される一連の文字を備える対象テキストと、を備え、
前記アンカー機能のセットが、
前記対象UIの前記ツリー表現内の前記アンカー要素の位置を示すアンカーIDと、
前記対象UI内の前記アンカー要素の画像を備えるアンカー画像と、
前記対象UI内の前記アンカー要素によって表示される一連の文字を備えるアンカーテキストと、を備え、
前記対象要素の前記実行時インスタンスを自動的に識別することが、前記対象ID、対象画像、対象テキスト、アンカーID、アンカー画像、及びアンカーテキストに従って、前記対象要素の前記実行時インスタンスを識別することを含む、コンピュータシステム。 1. A computer system comprising at least one hardware processor configured to execute an application to be automated and a robotic process automation (RPA) robot, comprising:
the automation target application is configured to expose a run-time user interface (UI);
The RPA robot,
In response to receiving an RPA script comprising a set of target functions that are characteristic of a target element of a target UI and a set of anchor functions that are characteristic of an anchor element of the target UI, automatically identifying a runtime instance of the target element within the runtime UI;
1. A computer system configured to automatically perform operations determined according to the RPA script, the operations replicating results of an interaction between a human operator and the runtime instance of the target element, comprising:
The set of target features is
A target ID indicating a position of the target element within a tree representation of the target UI;
a target image comprising an image of the target element within the target UI;
a target text comprising a sequence of characters to be displayed by the target element in the target UI;
The set of anchor functions
an anchor ID indicating a location of the anchor element within the tree representation of the target UI;
an anchor image comprising an image of the anchor element within the target UI;
and anchor text comprising a series of characters displayed by the anchor element in the target UI;
The computer system, wherein automatically identifying the runtime instance of the target element includes identifying the runtime instance of the target element according to the target ID, target image, target text, anchor ID, anchor image, and anchor text.
前記実行時UIの複数の候補UI要素の各候補について、前記各候補の要素IDが、前記実行時UIのツリー表現内の前記各候補の位置を示す前記対象IDと厳密に一致するか否かを判定することと、
それに応答して、前記各候補の前記要素IDが前記対象IDと厳密に一致する場合、前記各候補を、前記対象要素の前記実行時インスタンスとして指定することと、
前記複数の候補UI要素のいずれの候補も前記対象IDと厳密に一致する要素IDがない場合、前記対象画像及び対象テキストに更に従って、前記対象要素の前記実行時インスタンスを識別することと、を備える、請求項9に記載のコンピュータシステム。 automatically identifying the runtime instance of the target element,
For each candidate of a plurality of candidate UI elements of the runtime UI, determining whether an element ID of the each candidate closely matches the target ID indicating a position of the each candidate within a tree representation of the runtime UI;
in response, designating each of the candidates as the runtime instance of the target element if the element ID of the candidate exactly matches the target ID;
10. The computer system of claim 9, further comprising: if none of the plurality of candidate UI elements has an element ID that closely matches the target ID, identifying the runtime instance of the target element further according to the target image and target text.
候補対象を、前記候補対象の要素IDが前記対象IDと部分的に一致するか否かに従って、前記複数の候補UI要素から選択することと、
候補アンカーを、前記候補アンカーの要素IDが前記アンカーIDと部分的に一致するか否かに従って、前記複数の候補UI要素から選択することと、
前記候補対象及び候補アンカーの選択に応答して、前記対象テキストを前記候補対象によって表示されたテキストと比較した結果に従って、及び前記アンカーテキストを前記候補アンカーによって表示されたテキストと比較した結果に更に従って、前記候補対象を、前記対象要素の前記実行時インスタンスとして指定するか否かを判定することと、を実施するように更に構成される、請求項10に記載のコンピュータシステム。 The RPA robot,
selecting a candidate object from the plurality of candidate UI elements according to whether an element ID of the candidate object partially matches the object ID;
selecting a candidate anchor from the plurality of candidate UI elements according to whether an element ID of the candidate anchor partially matches the anchor ID;
11. The computer system of claim 10, further configured to: in response to selection of the candidate object and candidate anchor, determine whether to designate the candidate object as the runtime instance of the target element according to a result of comparing the object text with text displayed by the candidate object and further according to a result of comparing the anchor text with text displayed by the candidate anchor.
対象UIの対象要素の特性である対象機能のセット及び前記対象UIのアンカー要素の特性であるアンカー機能のセットを備えるロボティック・プロセス・オートメーション(RPA)スクリプトの受取りに応答して、前記実行時UI内の前記対象要素の実行時インスタンスを自動的に識別させ、
前記RPAスクリプトに従って決定される操作であって、人間のオペレータと前記対象要素の前記実行時インスタンスとのインタラクションの結果を再現する操作を自動的に実行させる、コンピュータシステムにおいて、
前記対象機能のセットが、
前記対象UIのツリー表現内の前記対象要素の位置を示す対象IDと、
前記対象UI内の前記対象要素の画像を備える対象画像と、
前記対象UI内の前記対象要素によって表示される一連の文字を備える対象テキストと、を備え、
前記アンカー機能のセットが、
前記対象UIの前記ツリー表現内の前記アンカー要素の位置を示すアンカーIDと、
前記対象UI内の前記アンカー要素の画像を備えるアンカー画像と、
前記対象UI内の前記アンカー要素によって表示される一連の文字を備えるアンカーテキストと、を備え、
前記対象要素の前記実行時インスタンスを自動的に識別することが、前記対象ID、対象画像、対象テキスト、アンカーID、アンカー画像、及びアンカーテキストに従って、前記対象要素の前記実行時インスタンスを識別することを含む、非一時的コンピュータ可読媒体。
A non-transitory computer-readable medium storing instructions that, when executed by at least one hardware processor of a computer system configured to expose a runtime user interface (UI), provide the computer system with:
in response to receiving a robotic process automation (RPA) script comprising a set of target functions that are characteristic of a target element of a target UI and a set of anchor functions that are characteristic of an anchor element of the target UI, automatically identifying a runtime instance of the target element within the runtime UI;
1. A computer system for automatically executing operations determined according to the RPA script, the operations replicating a result of an interaction between a human operator and the runtime instance of the target element, the computer system comprising:
The set of target features is
A target ID indicating a position of the target element within a tree representation of the target UI;
a target image comprising an image of the target element within the target UI;
a target text comprising a sequence of characters to be displayed by the target element in the target UI;
The set of anchor functions
an anchor ID indicating a location of the anchor element within the tree representation of the target UI;
an anchor image comprising an image of the anchor element within the target UI;
and anchor text comprising a series of characters displayed by the anchor element in the target UI;
A non-transitory computer-readable medium, wherein automatically identifying the runtime instance of the target element includes identifying the runtime instance of the target element according to the target ID, target image, target text, anchor ID, anchor image, and anchor text.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/601,272 US10885423B1 (en) | 2019-10-14 | 2019-10-14 | Systems and methods of activity target selection for robotic process automation |
US16/601,200 US11249729B2 (en) | 2019-10-14 | 2019-10-14 | Providing image and text data for automatic target selection in robotic process automation |
US16/601,272 | 2019-10-14 | ||
US16/601,200 | 2019-10-14 | ||
PCT/US2020/045974 WO2021076205A1 (en) | 2019-10-14 | 2020-08-12 | Systems and methods of activity target selection for robotic process automation |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022551933A JP2022551933A (en) | 2022-12-14 |
JP7568371B2 true JP7568371B2 (en) | 2024-10-16 |
Family
ID=72193681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022521760A Active JP7568371B2 (en) | 2019-10-14 | 2020-08-12 | System and method for activity target selection for robotic process automation - Patents.com |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP4046011A1 (en) |
JP (1) | JP7568371B2 (en) |
CN (1) | CN113015956B (en) |
WO (2) | WO2021076204A1 (en) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268431B (en) * | 2021-06-24 | 2022-08-19 | 深圳市凯莱特科技股份有限公司 | Learning method of RPA robot software |
CN113885937B (en) * | 2021-09-29 | 2024-08-13 | 杭州分叉智能科技有限公司 | RPA element repairing method based on universality |
CN114035726B (en) * | 2021-10-19 | 2023-12-22 | 四川新网银行股份有限公司 | Method and system for robot flow automatic page element identification process |
CN114219934A (en) * | 2021-12-22 | 2022-03-22 | 国网浙江省电力有限公司双创中心 | Robot flow automatic system element positioning method, device, equipment and medium |
CN114495109B (en) * | 2022-01-24 | 2025-01-14 | 山东大学 | Grasping robot and grasping method and system based on target and scene text matching |
CN114691265B (en) * | 2022-03-07 | 2024-11-15 | 达观数据有限公司 | A batch capture method for structural elements of software interface |
CN115268719B (en) * | 2022-09-30 | 2022-12-20 | 北京弘玑信息技术有限公司 | Method, medium and electronic device for positioning target element on interface |
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 (en) * | 2022-11-03 | 2023-09-08 | 杭州实在智能科技有限公司 | RPA element matching method and system based on interface region identification technology |
CN115983221B (en) * | 2023-03-17 | 2023-06-20 | 杭州实在智能科技有限公司 | Visual RPA table operation recording and automatic executing method and system |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120124495A1 (en) | 2009-11-23 | 2012-05-17 | Nitsan Amichai | System and method for object relationship identification in a user interface |
US20150242306A1 (en) | 2014-02-25 | 2015-08-27 | International Business Machines Corporation | System and method for creating change-resilient scripts |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7108192B2 (en) * | 1999-09-17 | 2006-09-19 | Silverbrook Research Pty Ltd | Rotationally symmetric tags |
US9697012B2 (en) * | 2010-10-22 | 2017-07-04 | Hewlett Packard Enterprise Development Lp | Relation-based identification of automation objects |
JP6326742B2 (en) * | 2013-08-29 | 2018-05-23 | 富士通株式会社 | Scenario generation program, scenario execution program, scenario generation method, scenario execution method, scenario generation apparatus, and scenario execution apparatus |
CN109741118A (en) * | 2018-06-26 | 2019-05-10 | 平安科技(深圳)有限公司 | Invoice issuing method, apparatus, equipment and computer readable storage medium |
CN109101231B (en) * | 2018-08-07 | 2022-09-23 | 百度在线网络技术(北京)有限公司 | Script code generation method and device, computer equipment and storage medium |
CN110035088B (en) * | 2019-04-26 | 2021-08-24 | 厦门商集网络科技有限责任公司 | Method and equipment for automatically logging in remote control operating system based on RPA |
-
2020
- 2020-08-12 EP EP20761097.3A patent/EP4046011A1/en active Pending
- 2020-08-12 JP JP2022521760A patent/JP7568371B2/en active Active
- 2020-08-12 CN CN202080004692.0A patent/CN113015956B/en active Active
- 2020-08-12 WO PCT/US2020/045968 patent/WO2021076204A1/en active Application Filing
- 2020-08-12 WO PCT/US2020/045974 patent/WO2021076205A1/en unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120124495A1 (en) | 2009-11-23 | 2012-05-17 | Nitsan Amichai | System and method for object relationship identification in a user interface |
US20150242306A1 (en) | 2014-02-25 | 2015-08-27 | International Business Machines Corporation | System and method for creating change-resilient scripts |
Non-Patent Citations (1)
Title |
---|
清水理史 他,できるUiPath 実践RPA,初版,日本,株式会社インプレス,2019年02月11日,pp. 9-13, 124-129,ISBN:978-4-295-005 67-4 |
Also Published As
Publication number | Publication date |
---|---|
WO2021076204A1 (en) | 2021-04-22 |
CN113015956B (en) | 2022-02-18 |
CN113015956A (en) | 2021-06-22 |
JP2022551933A (en) | 2022-12-14 |
EP4046011A1 (en) | 2022-08-24 |
WO2021076205A1 (en) | 2021-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11556313B2 (en) | Providing image and text data for automatic target selection in robotic process automation | |
US11270186B2 (en) | Systems and methods of activity target selection for robotic process automation | |
JP7568371B2 (en) | System and method for activity target selection for robotic process automation - Patents.com | |
JP7017613B2 (en) | Naming Robotic Process Automation activities based on auto-discovered target labels | |
US11886895B2 (en) | Enhanced target selection for robotic process automation | |
US11372517B2 (en) | Fuzzy target selection for robotic process automation | |
US20220108106A1 (en) | Machined learning supporting document data extraction | |
US11947443B2 (en) | Robotic process automation (RPA) debugging systems and methods | |
US20220032471A1 (en) | Robotic process automation using enhanced object detection to provide resilient playback capabilities | |
US9910641B2 (en) | Generation of application behaviors | |
JP2023107749A (en) | Browser-based robotic process automation (RPA) robot design interface | |
JP2023152695A (en) | System and method for using browser to design robotic process automation (rpa) robot | |
US12118043B2 (en) | Robotic process automation (RPA) comprising automatic document scrolling | |
Stephens | Start Here! Fundamentals of Microsoft. NET Programming | |
US12159101B1 (en) | Systems and methods for optimizing robotic form-filling activities |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230808 |
|
TRDD | Decision of grant or rejection written | ||
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240830 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20240903 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20241001 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7568371 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |