3.5.4.B. OpenRPA.OpenFlowDB

OpenRPA.OpenFlowDBツールボックスの中にあるアクティビティです。

OpenFlowを割り当てる

OpenFlowワークフローをユーザーまたはロールに割り当てます。このアクティビティは、Node-RED内のassignノードと非常によく似た動作をします。

プロパティパラメータ

DisplayName– シーケンス内のアクティビティのタイトル。

InitialRun– このパラメータは、割り当てられたワークフローに初期実行を属性付けします。

targetid– ワークフローが割り当てられるユーザーファイルパスのID。

Wait until CompletedTrueに設定すると、OpenRPAは Workflow呼び出しが終了するまで待機します(成功またはエラー)。成功した場合、データを含むメッセージ(Node-REDのフローで設計されたもの)がOpenRPAロボットに返されます。

workflowid– 割り当てられるワークフローのIDです。

images/openrpa_assign_openflow.png

OpenRPA.OpenFlowDB 割り当てOpenFlow

ファイルの削除

OpenFlow の MongoDB データベースからファイルを削除します。ユーザーは、削除したいファイルのファイル名か、OpenFlow のページ > 管理 > ファイル > ファイルの編集ボタンをクリック > json を表示、または URL を確認することで得られるid のどちらかを使用することができます。

プロパティパラメータ

_id– 削除されるファイルのID

DisplayName– シーケンス内のアクティビティのタイトル。

Filename– 削除されるファイルのファイル名です。

IgnoreErrors– 発生した可能性のあるエラーを無視し、ファイルを強制的に削除します。

images/openrpa_save_file.png

OpenRPA.OpenFlowDB 削除ファイル

デリートワン

OpenFlow MongoDB データベースから項目を一つ削除します。ユーザーは、アイテムが属するコレクションファイルのパスを指定する必要があります。データベースから一括で削除するオブジェクトを指定することもできます。

プロパティ パラメータ

_id– 削除されるアイテムのID

コレクション– アイテムが属するコレクションファイルのパス。

DisplayName– シーケンス内のアクティビティのタイトル。

IgnoreErrors– 発生した可能性のあるエラーを無視し、アイテムを強制的に削除します。

Item– ユーザーが_id の代わりに指定できるオブジェクト。

images/openrpa_delete_one.png

OpenRPA.OpenFlowDB 削除ワン

認証情報の取得

OpenFlow から暗号化されたクレデンシャルのセットを取得します。これは、Set Credentialsアクティビティで OpenFlow MongoDB データベースに以前保存したクレデンシャルを取得する方法として最も推奨されるものです。KeePass のようなローカル金庫の代わりとして最適です。

プロパティパラメータ

DisplayName– シーケンス内のアクティビティーのタイトル。

名前– 取得されるクレデンシャルの名前。

Password– パスワードをSecureString型変数(https://docs.microsoft.com/en-us/dotnet/api/system.security.securestring?view=netcore-3.1)に保存します。

UnsecurePassword– 取得したパスワードをString型の変数に保存します。

Username– 取得したユーザー名をString型の変数に保存します。

images/openrpa_openflowdb_get_credentials.png

OpenRPA.OpenFlowDBの認証情報取得

ファイルを取得する

OpenFlow MongoDB データベース内に保存されているファイルをダウンロードし、指定されたLocalPath に保存します。ユーザーは、ダウンロードしたいファイルのファイル名か、OpenFlow のページ > 管理 > ファイル > ファイルの編集ボタンをクリック > json を表示、または URL を確認することで、id を利用することができます。ファイルを保存するフォルダ・ファイルパスは、すでに存在している必要があります。

プロパティパラメータ

_id– ダウンロードされるファイルのID

DisplayName– シーケンス内のアクティビティのタイトル。

Filename– ダウンロードされるファイルのファイル名です。

IgnorePathTrueに設定すると、LocalPathの最後の名前を無視します。OpenFlow内部で作成されたフルフォルダをダウンロードする際に便利です。

LocalPath- ファイルが保存されるフォルダファイルパスのパス。

images/openrpa_get_file.png

OpenRPA.OpenFlowDB取得ファイル

許可する

指定されたオブジェクトのユーザまたはロールのパーミッションを追加または更新するものです。InsertまたはUpdate Oneでパーミッションを変更した後は、OpenFlowでドキュメントを更新する必要があります。また、オブジェクトはOpenFlowDB.Queryアクティビティから提供される必要があります。

プロパティパラメータ

DeleteTrue に設定すると、指定されたユーザーまたはロールが OpenFlow 内でオブジェクトを削除することを許可します。

DisplayName– シーケンス内のアクティビティーのタイトル。

EntityId– OpenFlow MongoDBデータベース内のオブジェクトのID

ItemOpenFlowDB.Queryアクティビティから収集したオブジェクト

名前– ファイルパスのパーミッションが追加されるロールまたはユーザーの名前です。

ReadTrueに設定すると、指定されたユーザーまたはロールがOpenFlow内のオブジェクトを読み取ることを許可します。

Result– 結果オブジェクトが保存されるJObjectファイルのパス.

UpdateTrue に設定すると、指定されたユーザーまたはロールがOpenFlow 内のオブジェクトを更新できるようになります。

images/openrpa_grant_permission.png

OpenRPA.OpenFlowDBの許可取得する。

インサートワン

OpenFlow MongoDB データベースにオブジェクトを一つ挿入します。

プロパティパラメータ

Collection– オブジェクトが保存されるコレクションファイルのパス。デフォルトは"entities "です。

DisplayName– シーケンス内のアクティビティのタイトル。

EncryptFields– 指定されたフィールドを暗号化する。

IgnoreErrors– OpenFlow MongoDB データベースにオブジェクトを強制的に追加し、発生しうるエラーを無視します。

Item– 追加されるオブジェクト。

Result– 追加されたばかりのオブジェクトを含むJObjectを返します。

タイプ– 追加されるオブジェクトのタイプです。

一意性– 項目が一意であるかどうかのフィールドを指定します。

images/openrpa_insert_one.png

OpenRPA.OpenFlowDBインサートワン

1つの挿入または更新

OpenFlow データベースにアイテムを更新し、存在しない場合は代わりに挿入します。ユーザが Uniqueness を指定しない限り、_idをチェックし、Uniqueness で指定されたフィールドを元に既存のアイテムを探します。

プロパティパラメータ

Collection– オブジェクトが保存されるコレクションファイルのパス。デフォルトは"entities "です。

DisplayName– シーケンス内のアクティビティーのタイトル。

EncryptFields– 指定されたフィールドを暗号化する。

IgnoreErrors– OpenFlow MongoDB データベースにオブジェクトを強制的に追加し、発生しうるエラーを無視します。

Item– 追加されるオブジェクト。

Result– 追加されたばかりのオブジェクトを含むJObjectを返します。

タイプ– 追加されるオブジェクトのタイプです。

一意性– 項目が一意であるかどうかのフィールドを指定します。

images/openrpa_insert_or_update_one.png

OpenRPA.OpenFlowDB InsertまたはUpdateOne.

クエリ活動

OpenFlow MongoDB データベースに 1 つ以上の項目を問い合わせます。

プロパティパラメータ

Collection– オブジェクトが保存されるコレクションファイルのパス。デフォルトは"entities "です。

DataTable– クエリの出力をDataTable に保存します。

DisplayName– シーケンス内のアクティビティのタイトル。

Orderby– データに問い合わせる順番を選択します。詳しくはこちら(https://docs.mongodb.com/manual/reference/operator/meta/orderby/#:~:text=In%20the%20mongo%20shell%2C%20use,in%20ascending%20or%20descending%20order.&text=These%20examples%20return%all%20documents,age%20field%20in%20descending%20 order.) をご覧ください。

Projectionここ(https://docs.mongodb.com/manual/tutorial/project-fields-from-query-results/)のように、データを投影するために使用するフィールドを提供します。

QueryString– コレクション内で返されるオブジェクトの名前です。

Result– クエリによって返されたすべてのオブジェクトを含むJObjectを返します。

Skip– スキップするアイテムファイルパスの数。引数の型はInt32です。

Top– トップアイテムを選択します。引数の型はInt32です。

OpenRPA.OpenFlowDBクエリ

許可証の削除

指定されたオブジェクトのユーザーまたはロールのパーミッションを削除します。その後、OpenFlowでInsertまたはUpdate Oneアクティビティを使用してパーミッションを変更した後、ドキュメントを更新する必要があります。アクティビティ内の入力フィールドは、パーミッションが削除されるユーザーを選択するためのオートコンプリートのフィールドです。ObjectItemはOpenFlowDB.QueryアクティビティのResultである必要があります。

プロパティパラメータ

DisplayName– シーケンス内のアクティビティのタイトル。

EntityId– OpenFlow MongoDBデータベース内のオブジェクトのID

ItemOpenFlowDB.Queryアクティビティから収集したオブジェクト

名前– 権限を追加するロールまたはユーザーの名前です。

Result– 結果オブジェクトが保存されるJObjectファイルのパス.

images/openrpa_remove_permission.png

OpenRPA.OpenFlowDBの削除権限

ファイルの保存

OpenFlow MongoDB データベースにファイルをアップロードして保存します。

プロパティパラメータ

DisplayName– シーケンス内のアクティビティのタイトル。

Filename– アップロードされるファイルの完全なパスとファイル名です。

パス– データベース内にパスを付加してファイルを保存します。特定のフォルダー内にアイテムを配置し、後でそれらを戻すために使用します。

Result– OpenFlow MongoDBデータベース内のファイルのIDを含む文字列

OpenRPA.OpenFlowDBセーブファイル

認証情報の設定

OpenFlow 内で暗号化されたクレデンシャルのセットを作成または更新します。これは、OpenFlow の MongoDB データベースにクレデンシャルを保存する最も推奨される方法です。KeePass のようなローカル金庫の代わりとして最適です。

プロパティパラメータ

DisplayName– シーケンス内のアクティビティのタイトル。

Name– 保存されるクレデンシャルの名前。

Password– 保存されるクレデンシャルのパスワード。

Username– 保存されるクレデンシャルのユーザー名です。

images/openrpa_openflowdb_set_credentials.png

OpenRPA.OpenFlowDBセットクレデンシャル

データテーブルからの更新

OpenFlowのコレクション内に、DataTableの各行をEntityとして追加します。

ユーザーは、データを挿入するコレクションを最初に挿入する必要があります。デフォルトのコレクションは「entity」ですが、新しいコレクションにデータを追加したい場合、ユーザーは任意のコレクション名を挿入することができます。コレクションが存在しない場合、アクティビティは自動的にそれを作成します。

次に、データの取得元となるDataTableを挿入する必要があります。

EncryptFieldsを使用すると、ユーザーはClient-Side Field Level Encryption(https://docs.mongodb.com/manual/core/security-client-side-encryption/) を使用してデータを暗号化することができます。

Resultパラメータは、行の挿入によって返されたクエリを含むデータをJArray変数に保存します。

Typeパラメータは、行にフィールドがないか、NULL""、または空の場合、与えられた行に追加されるデフォルトの型を指定します。

Uniquenessパラメータは、 インデックス化されたフィールドに重複した値を保存しないようにするものです。デフォルトの一意性インデックスはid(MongoDB では_id として保存されます) です。しかし、ユーザーはname のような別の一意性インデックスを指定することができます。一意なインデックスを指定するには、カンマで区切って入力します。つまり、一意なインデックスとしてnametypeを指定したい場合は、このパラメータにname,type と入力すればいいのです。これについては、ユニーク・インデックス(https://docs.mongodb.com/manual/core/index-unique/)を参照してください。

プロパティパラメータ

コレクション– データが挿入されるコレクション。デフォルトのコレクションは「entity」ですが、新しいコレクションにデータを追加したい場合、ユーザーは任意のコレクション名を挿入することができます。コレクションが存在しない場合、アクティビティは自動的にそれを作成します。

DataTable– データの取得元となるデータテーブル

DisplayName– シーケンス内のアクティビティーのタイトル。

EncryptFieldsClient-Side Field Level Encryption(https://docs.mongodb.com/manual/core/security-client-side-encryption/) を使用して、ユーザーがデータを暗号化できるようにします。

Result– 行の挿入によって返されるクエリを含むデータが保存される変数。JArray型でなければならない。

Type– 行にフィールドがないか、NULL""、または空の場合、指定した行に追加する既定の型を指定します。

一意性– インデックス化されたフィールドが重複した値を保存しないようにします。デフォルトの一意性インデックスはid(MongoDB では_id として保存されます) です。しかし、ユーザーはname のような他の一意性インデックスを指定することができます。一意なインデックスを指定するには、カンマで区切って入力します。つまり、一意なインデックスとしてnametypeを指定したい場合は、このパラメータにname,type と入力すればいいのです。これについては、ユニーク・インデックス(https://docs.mongodb.com/manual/core/index-unique/)を参照してください。

3.6. レコーダーとセレクター

OpenRPAでワークフローを作成する場合、レコーディングを行うことをお勧めします。デザイナーにアクティビティを延々とドラッグするのではなく、ユーザーがレコーダーを使用してステップを記録することが望ましいです。

レコーダーの使用方法は非常に簡単で、ユーザーはレコーダー・ボタンをクリックして、自動化されるタスクを実行するだけです。記録中に、入力フィールドに特定の変数の内容を入力することが面白いと感じた場合、ユーザーはダミーテキストを使用し、レコーダーを閉じた後、アクティビティを使用してこれらのダミーテキストを変数に変更することができます。

セレクタはレコーダと密接に関係しています。Recorderは、基本的に、クリックされたものがあれば、ユーザーのためにセレクタを構築する。セレクタは基準のセットであり、それを使ってOpenRPAは明確に要素を見つけることができると期待されています。

ユーザがゼロからセレクタを作成することも可能ですが、これは推奨されません

images/openrpa_recorder_what_is_selector.png

レコーダーを使った自動化の徹底的な例は、「Windowsオートメーション」のセクションで紹介しています。

OpenRPAではRecorderに関連する設定をカスタマイズすることができます。例えば、録画中に要素をハイライトしたり、RecorderがDesignerにアクティビティを追加する方法を変更したりできます。詳しくはParameters、特にrecording_add_to_designerと record_overlayをご覧ください。

3.6.1. 技術間の違い(NM、SAP、Windows、…)

まず、録画中に何らかの要素をクリックすると、Recorderはクリックされた要素が Windows UI 要素に属すると仮定します。次に、いくつかのロジックを処理し、ユーザーが記録しようとしているアクションに適合する、より良いテクノロジがあるかどうかを確認します。見つかった場合、Recorderは自動的に「Windows」から最も適切な技術に置き換えられ、WebElementのクリック、SAPの入力フィールドへの入力、Excelシートへのデータ書き込みなど、自動化をよりよく処理するアクティビティが提案されます。別の技術を探すロジックが失敗した場合、つまり、より有用なものが見つからない場合、Recorderは Windows UI Element用のセレクタを構築します。

つまり、Recorderを使用してExcelのセルをクリックすると、Recorderはまずその要素がWindows UI 要素であると仮定しますが、その後それがExcel 要素であることに気づき、そのタスクにより適しているため、Windows.GetElementから Office.Activity.WriteCellに自動的にアクティビティを置き換えるのです。

SAPIEJavaImageNM(NativeMessaging:Chrome、Firefox、Edge)など、すでに実装されている技術も多く、今後さらに増えていく予定です。

3.6.2. 複数の要素を返す

時には、単一の要素ではなく、複数の要素を取得する必要がありますが、これはセレクタを調整することで実現できます。例.Googleで検索した後、多くの結果が表示され、ユーザーは最初の1つだけでなく、すべての結果を操作したいとします。

ここでは、その方法を簡単に説明します。Google検索の例と同じように、レコーダーを使って、検索結果の中からエントリーを選択します。

images/openrpa_recorder_click_element.png

レコーダーは、あなたがその特定の項目だけを望んでいると仮定し、セレクターはそれを考慮して作られていることに注目してください。

images/openrpa_recorder_change_selector.png

1つだけでなく複数の要素を返すようにするには、まずMaxResultsプロパティを1より大きい数値に変更します(上限はありません)。

images/openrpa_recorder_add_max_results_and_click_open_selector.png

ここで、セレクタの基準を変更し、単一の要素ではなく、要素の配列を返すようにする必要があります。WebElements を扱う場合は、xpathパラメータを変更して、より広範な結果を返すようにすることで実現できます。

images/openrpa_recorder_change_selector_2.png

さて、この広い配列の各要素をループさせるために、Recorderが最初に作成した配列の中に、別のGetElementActivityを組み込みます。

備考

レコーダが動作する技術に関連する GetElement Activity を使用します。Windowsの要素を使用する場合、Windows.GetElementでなければなりません。他の技術についても同様です。OpenRPA.IE.GetElement, OpenRPA.Image.GetElement, OpenRPA.NM.GetElementなど。

images/openrpa_recorder_add_get_element.png

新しく作成したGetElementの セレクタを開くと、左側にエレメント ツリーがあり、操作するものをさらに選択することができます。ハイライトボタンを使ってデバッグし、正しい要素が選択されているかどうかを確認します。

images/openrpa_recorder_elements_highlighted.png

ここで、特定のエントリごとにさらなる自動化が必要な場合、それらのアクティビティを内側のGetElement内に追加します。

3.6.3. 手動でセレクタを調整する

セレクタを自分のニーズに合わせて調整する方法はたくさんあります。このセクションでは、セレクタに変数を渡す方法、ワイルドカード(https://ryanstutorials.net/linuxtutorial/wildcards.php) を使って要素をループさせる方法、セレクタの中でネストさせる方法、その他いくつかのトリックを学びます!

3.6.3.1. セレクタに変数を渡す

セレクタに変数を渡すのはとても簡単です。ユーザはMustache(https://mustache.github.io/mustache.5.html) 構文を使って既存のパラメータに値を追加するか、セレクタの内部でカスタムパラメータを使用することができます。

この例では、Recorder を使って Google Search ページ内の要素をキャプチャし、既存のSelectorパラメータに追加する変数を渡します。

ユーザーは、Google(https://www.google.com/)のメインページで検索したい検索入力を自由に入力することができます。この場合、作者はrabbitmqを選択しました。

images/openrpa_recorders_and_selectors_search_rabbitmq.png

ここで、ユーザーはOpenRPAを開き、新しいワークフローを作成する必要があります。筆者は「Manually Adjusting Selectors」と名付けました。

Sequenceの中をクリックし、OpenRPAのリボン内にあるRecorderボタンをクリックします。次に、ページ内の要素内をクリックします。

images/openrpa_recorders_and_selectors_click_element_in_page.png

ユーザーがInternet Explorerを使用している場合は、新しいOpenRPA.IE.GetElementActivityが表示されます。一方、ユーザーがEdgeChromeFirefoxを使用している場合、新しいOpenRPA.NM.GetElementアクティビティが表示されます。

images/openrpa_recorders_and_selectors_click_open_selector.png

ここで、ユーザーは「セレクタを開く」ボタンをクリックする必要があり、セレクタ デザイナーが表示されます。

images/openrpa_recorders_and_selectors_selector_window_open.png

現在、ユーザーはxpathパラメータの一部のみを置き換えることになります。xpathパラメーターのdiv/span/span[2]部分を取り除き、取り除いた値を代入する変数名を含むMustache 追加します。著者はその変数の名前をselectorValueにしたので、Mustache 式は {{selectorValue}} になる。

この後、ユーザーはOkボタンをクリックしてセレクタ デザイナーを閉じることができます。

images/openrpa_recorders_and_selectors_selector_window_strip_string.png
images/openrpa_recorders_and_selectors_selector_window_string_stripped.png

ここでユーザーはこの変数に値を代入する必要があります。値はxpathパラメータから取り除かれた値ですが、何でもかまいません。

操作の可能性は無限大。CSS セレクタを使うこともできます。詳しくは「CSSセレクタの使い方」をご覧ください。

Assignアクティビティをメインシーケンスにドラッグし、GetElementアクティビティのすぐ上に置きます。selectorValueという名前を付けて、前に取り除かれた値、つまり「div/span/span[2]」を代入してください。Ctrl+Kキーを押して、変数を作成します。

images/openrpa_recorders_and_selectors_assign_selector_value.png

ここで、GetElementアクティビティのSequence内のClick Elementアクティビティを削除し、その中にAssignアクティビティをドラッグして、値が本当にキャプチャされたかどうかをテストできるようにします。

selectorTextという変数に名前を付ける – これは完全に任意の値で、ユーザーは実際に好きな名前を付けることができます。

この変数にitem.Textを代入します。

images/openrpa_recorders_and_selectors_assign_selector_text.png

最後に、「通知を表示」アクティビティをメインシーケンスにドラッグし、その「メッセージ」入力フィールドにセレクタテキストを挿入します。

images/openrpa_recorders_and_selectors_selector_show_notification.png

今、ワークフローを実行すると、取得したメッセージを含む通知が表示されます。

images/openrpa_recorders_and_selectors_mustache_notification.png

3.6.3.2. CSSセレクタの使用

XPath セレクタ(https://www.w3schools.com/xml/xpath_syntax.asp) と同様に、CSS セレクタ(https://www.w3schools.com/cssref/css_selectors.asp) も使用することができます。このセクションでは、CSS セレクタを使用して、前のセクションで選択したspan要素のクラスに関連するすべての項目を、cssselectorパラメータ内に属するCSSセレクタを渡すだけで選択する方法を学びます。

まず、span要素の クラスに 属するCSSクラスを特定する必要があります。

F12キーまたはCtrl+Shift+Iキーで操作できます。

すると、「コンソール」ウィンドウが表示されます。Elementsタブをクリックします。

ここで、Ctrl+Shift+Cを押してspan要素を選択します。

images/openrpa_recorders_and_selectors_css_selector_select_element.png

選択された要素が継承する 最初の ``div`` CSS クラス名をコピーします。この例では、.IsZvecというクラスがそれにあたります。このクラスの名前はどこかに保存しておいてください。

images/openrpa_recorders_and_selectors_css_selector_copy_class.png

ここで、OpenRPAを開き、Recorderボタンをクリックします。そして、ページ内の要素をクリックします。

images/openrpa_recorders_and_selectors_click_element_in_page.png

新しいGetElementActivityの中のSequenceから Click ElementActivityを削除する。

images/openrpa_recorders_and_selectors_css_selectors_remove_click_element.png

ここで、ユーザーは「セレクタを開く」ボタンをクリックする必要があり、セレクタ デザイナーが表示されます。

下の画像に示すように、xpathパラメータを削除し、値".IsZvec" を持つ新しいcssselectorパラメータを追加します。最後に、Okボタンをクリックして、変更を保存します。

images/openrpa_recorders_and_selectors_css_selectors_selector_designer_before.png
images/openrpa_recorders_and_selectors_css_selectors_selector_designer_after.png

ここで、ユーザーはMaxResultsパラメータを適切な数値に変更する必要があります。この例では、Googles Search Engineは1ページに10件の結果しか表示しないので、作者はMaxResultsを10に設定しました。

OpenRPAが事前に設定したcssselectorを含む要素を見つけられない場合に備えて、ユーザーはMinResultsも 0に変更する必要があります。

最後に、Timeoutパラメータを00:00:00またはTimeSpan.FromSeconds(0)に設定することが推奨されます。

images/openrpa_recorders_and_selectors_css_selectors_get_element_properties.png

これで、NM/IE.GetElementActivity内のSequenceに入れられたActivityは、.IsZvecクラスを含むすべての要素に対してループされることになります。

このSequenceの最後にWriteLineアクティビティをドラッグして、そのText入力にitem.Textの値を代入することで、上記をテストすることができます。

images/openrpa_recorders_and_selectors_css_selectors_drag_writeline.png

これでワークフローを実行すると、以前設定したクラスを含むすべての要素についてテキストが表示されます。

images/openrpa_recorders_and_selectors_css_selectors_finished.png

以上です。これで、OpenRPAでCSS セレクタを設定する方法がわかりました。

3.6.3.3. ワイルドカードの使用

このセクションでは、CSS セレクタを使用する方法と同様に、XPath セレクタを使用して、指定されたHTML DOM Element Object(https://www.w3schools.com/jsref/dom_obj_all.asp) 内の複数の要素をキャプチャする方法を学びます(https://www.w3schools.com/xml/xpath_syntax.asp) 。

OpenRPAを開き、Recorderボタンをクリックします。次に、ページ内の要素をクリックします。

images/openrpa_recorders_and_selectors_click_element_in_page.png

新しいGetElementActivityの中のSequenceから Click ElementActivityを削除する。

images/openrpa_recorders_and_selectors_css_selectors_remove_click_element.png

ここで、ユーザーは「セレクタを開く」ボタンをクリックする必要があり、セレクタ デザイナーが表示されます。

images/openrpa_recorders_and_selectors_selector_window_open.png

これで、ユーザーはxpathパラメーターの一部だけを切り取ることができます。xpathパラメーターのdiv[3]/div/div[2]/div/span の部分文字列をdiv[*]/div/div[2]/div/span に置き換えるのです。これにより、OpenRPAは10個の検索要素をすべて捕捉することができます。

この後、ユーザーはOkボタンをクリックしてSelector Designerを終了することができます。

images/openrpa_recorders_and_selectors_nesting_get_elements_selector_window_strip_string.png
images/openrpa_recorders_and_selectors_nesting_get_elements_selector_window_string_stripped.png

Recorderで生成されたIE/NM.GetElementActivity内のSequenceに WriteLineActivityをドラッグして、そのText入力フィールドにitem.Textの値を代入することで動作確認ができるようになりました。

images/openrpa_recorders_and_selectors_nesting_get_elements_drag_write_line.png

ワークフローを実行すると、検出された10個のスパン要素が正常に取り込まれたことが確認できます。

images/openrpa_recorders_and_selectors_nesting_get_elements_finished.png

3.7. ディテクター

Detectorは、OpenRPA内部の メインイベントリスナーです。意味が分からない場合は、イベントリスナー(https://www.computerhope.com/jargon/e/event-listener.htm)を参照してください。簡単に言うと、ワークフローがそのアクティビティの処理と実行を継続する前に、何かが起こるのを待つアクティビティです。

重要なのは、OpenRPA内部でDetectorを変更すると、その変更がOpenFlowに反映されることです。なぜなら、最終的にDetectorはOpenFlowに保存されるからです。しかし、これらの変更を更新するためにOpenRPAをリロードする必要はありません。

3.7.1. ディテクタの設定

Detectorを使用するには、まずDetectorの設定内でそれを定義する必要があります。以下のステップは、新しいPDFファイルをチェックするために、FileWatcher Detectorを設定する方法を示しています。

FileWatcher Detectorプラグインは、指定されたPath 内にファイルが追加されたときに起動します。また、File filterパラメータを使用することで、特定のファイル拡張子のみをチェックすることも可能です。特定のファイルをチェックするだけでなく、サブ ディレクトリ チェックボックスをオンにすることで、OpenRPAがサブディレクトリ内のファイル変更をチェックすることもできます。

まず、メインリボン内の「設定」タブをクリックします。

images/openrpa_configuring_detector_click_settings.png

次に、Detectorsのアイコンをクリックします。

images/openrpa_configuring_detector_click_detectors.png

ここで、デザイナー内の「Add FileWatcherDetectorPlugin」ボタンをクリックします。FileWatcherという名前の新しい検出器が表示されます。

images/openrpa_configuring_detector_click_add_filewatcher.png

最後に、ユーザーは検出器の名前と検出器がリッスンするパスを設定する必要があります。また、ファイル フィルタを設定して、検出器は指定された拡張子を持つファイル(例:*.pdf)のみをチェックするようにする必要があります。

images/openrpa_configuring_detector_filewatcher_parameter.png

Detectorsの使用方法については、「Detectorsの使用方法」のセクションに進んでください。

3.7.2. ディテクタを使う

OpenRPAが提供するDetectorには、様々な利用方法があります。ユーザーはDetectorを作成し、Node-REDを使用してそれを消費し、実行フローをトリガーすることができます。また、DoWhileアクティビティループの中にDetectorアクティビティを設定して、ワークフローを待機させることができます。さらに、StateMachine Activityを利用して、Detectorがトリガーされたときに遷移する異なるState Activityインスタンスを作成することもできる。

3.7.2.1. Node-REDによるディテクタの使用

このセクションでは、デバッグノードを使用して、rpa 検出器ノードを設定し、それが発火したときに渡されるメッセージを確認する方法を学びます。

まず、彼らのNode-REDインスタンスに移動します。

備考

Node-REDインスタンスの設定方法については、Node-REDへの初回アクセスに進んでください。

Node-RED を通して Detector を使用するのはとても簡単です。まず、「Detectorの設定」セクションにあるように、ユーザーは事前にDetectorを設定しておく必要があります。

rpa 検出器ノードを実行フローにドラッグします。

images/openrpa_configuring_detector_drag_rpa_detector.png

次に、rpa 検出器ノードをダブルクリックして、実行フローのトリガーに使用する検出器を設定します。この例では、「検出器の設定」セクションで設定した「ドキュメント 検出器」を使用します。

images/openrpa_configuring_detector_rpa_detector_configuring_parameter.png

デバッグノードを実行フローにドラッグします。

images/openrpa_configuring_detector_drag_debug.png

Ctrlキーを押しながら両方のノードのポートをクリックして、デバッグノードと先に設定したrpa ディテクタを配線します。

images/openrpa_configuring_detector_wire_nodes.png

最後に、[Deploy]ボタンをクリックして、変更を保存します。ノードの下にConnectedと表示されたステータスバーが表示されるはずです。

images/openrpa_configuring_detector_status_bar.png

Detectorが動作しているかどうかを確認するには、ユーザーはフォルダ内にファイルを挿入してDebug messagesボタンをクリックするか、Ctrl-g-dを押すだけでよいのです。

images/openrpa_configuring_detector_click_debug_button.png
images/openrpa_configuring_detector_debug_message.png

3.7.2.2. Do-Whileループによるディテクタの使用

ここでは、OpenRPAが終了するまで無限に稼働し続けるDetectorの使用方法について説明します。

OpenRPA内のメインシーケンスにDo WhileActivityをドラッグします。そのConditionパラメータをTrueに設定します。

images/openrpa_using_detectors_do_while.png

ここでユーザーは、Do Whileアクティビティの中にSequenceアクティビティをドラッグする必要があります。

images/openrpa_using_detectors_drag_sequence.png

Detectorアクティビティをシーケンスに追加し、起動するDetectorを選択します。この例では、Excel Detectorを選択します。

images/openrpa_using_detectors_drag_detector.png

これで、ユーザーはOpenRPAに実行させたいアクティビティやシーケンスを追加でき、検出器の発火と同時に実行されるようになります。

3.7.3. ファイルウォッチャーディテクター

FileWatcher検出器は、指定されたフォルダー内の新しいファイルをチェックします。

ディテクターパラメーター

Name– OpenFlow内部の検出器の名前。

Path– ファイルが配置されているフォルダーの絶対パス。

ファイル フィルターは、特定のファイル名を持つすべてのファイルをフィルターするように設定されています。このファイル フィルターでは、ワイルドカードを使用することもできます。一方、invoice で終わるファイルをチェックする場合は、*invoice.pdf となります。

Sub Directories– チェックした場合、このDetector Pluginは、指定されたルートディレクトリの中にある既存のディレクトリも再帰的にチェックします。

3.7.4. キーボード検出器

KeyboardSequence検出器は、特定のキーストローク、またはキーストロークのシーケンスを検出することができます。

ディテクターパラメーター

Name– OpenFlow内部の検出器の名前。

プロセス 制限とは、そのインターフェイスがメイン画面である場合に、これが聴かれないプロセスを指します。

キーは、Detectorを有効にするキーです。設定するには、ボタンSet keysを使用します。

3.7.5. JavaClickディテクタ

JavaClick検出器は、JavaElement内のクリックをリッスンします。

ディテクターパラメーター

Name– OpenFlow内部の検出器の名前。

セレクタレコーダーのプラグインと同じように、セレクト・ボタンを使って、あるいはセレクターを開くボタンで セレクター・ウィンドウを開いて、ユーザーが指定した要素を指定できるようにします。また、ハイライトボタンをクリックすることで、JavaElementが正常に指定されたかどうかを確認することができます。

3.7.7. WindowsClick検出器

WindowsClick検出器は、WindowsElement 内のクリックを検出する。

ディテクターパラメーター

Name– OpenFlow内部の検出器の名前。

セレクタレコーダーのプラグインと同じように、セレクト・ボタンを使って、あるいはセレクターを開くボタンで セレクター・ウィンドウを開いて、ユーザーが指定した要素を指定できるようにします。また、ハイライトボタンをクリックすることで、JavaElementが正常に指定されたかどうかを確認することができます。

3.7.8. WindowsElement検出器

WindowsElement検出器は、WindowsElement の出現を待ちます。

ディテクターパラメーター

Name– OpenFlow内部の検出器の名前。

セレクタレコーダーのプラグインと同じように、セレクト・ボタンを使って、あるいはセレクターを開くボタンで セレクター・ウィンドウを開いて、ユーザーが指定した要素を指定できるようにします。また、ハイライトボタンをクリックすることで、JavaElementが正常に指定されたかどうかを確認することができます。