24 組込Chromium(その1)

この記事を書いている途中にKofax RPAをアップグレード(10.3.1.1→10.4.0.0)しました。

すると、微妙にいろんなところが変わっていました!

アプリケーションやドキュメントのロゴが「Kofax Kapow」から「Kofax RPA」に変わっていたり、「Device Automation」という呼び名が「Desktop Automation」に変わっていたり。(どちらも略称 DAで良かった)

というわけで、今回から画面の雰囲気や表示されるメッセージなどが少し変わると思いますが、気にせずいきましょう (`・ω・´)b

では、さっそく本題です!前回紹介したRPAチャレンジを組込Chromiumフレームワークを使って作ってみましょう!!!

・・・・クミコミクロミウム??


【1】組込Chromiumフレームワークとは

組込Chromiumフレームワークとは、Desktop Automation(以下 DA)Editor上でのWeb操作を、Chromiumというオープンソースのウェブブラウザエンジンによって、動的に操作できる機能です。


DAは以前、「14 DAをインストールしよう」と「15 DAを使ってみよう」に登場しました。

DA機能を使用するためには、DAをインストールして設定して起動して、Design Studio(以下 DS)のプロジェクトにデバイスマッピング(*.device)を作成して・・・・という作業が必要でしたが、今回はDA機能ではなくDA Editorを使うだけなので、それらの作業は不要です。

とにかく、やってみればわかります!さっそく、Chromiumを使ったロボットを作成してみましょう (/・ω・)/


【2】ロボットをコピーする

(1)前回作成したロボットをコピーして開きます。


(2)そして、処理を置き換えるステップと、使用しない変数[セッション]を削除します。



(3)さらに、[ロボット設定]をクリックして、[デザインモード実行]を[スマート再実行(フル)]に変更します。


【3】DAステップを追加する

Chromiumは[Desktop Automation]ステップの中で使用します。[Desktop Automation]ステップは、処理毎に分けて作成するとデバッグやメンテナンスが容易になります。

 ※旧バージョンでは[デバイスオートメーション]ステップでした。


【3-1】RPAチャレンジのページを開く

(1)[Loop Rows]ステップの前に、[Desktop Automation]ステップを追加します。そして、[ワークフロー]の[編集]ボタンをクリックしてDA Editorを開きます。


(2)DA Editorが開いたら、丸印を右クリック→[Open ステップ]をクリックします。

 ※見た目がだいぶ変わりましたねー!!(10.3.1.1→10.4.0.0)



(3)[Open on Local]ステップが追加されたら、[URI]にRPAチャレンジのURLを入力して、[ステップオーバー]ボタンをクリックします。


《RPAチャレンジのURL》

 http://rpachallenge.com/?lang=ja




(4)[レコーダービュー]にRPAチャレンジのページが表示されたら、ページ左下の[開始]ボタンを右クリック→[Click]→[Left]をクリックしてください。

 ※この[レコーダービュー]でWeb画面を動的に操作できる機能が「組込Chromiumフレームワーク」です。


(5)そして、[ステップオーバー]ボタンをクリックして黄色いラインを右端まで移動させ、[保存]ボタンをクリックしてからDA Editorを閉じてください。


(6)DSに戻ったら、[Desktop Automation]ステップの名前を「RPAチャレンジ開始」に変更して、[ステップを無効化]しておきます。

 ※DSの[デザインモード]画面左上の[更新]ボタンをクリックしない限り、DA Editorで開いたページはそのまま残っているので、ページを複数開いてしまわないように気を付けてください。


【3-2】DA Editorへ変数を渡す

次の[Desktop Automation]ステップでは、DA Editorに顧客データを渡します。


(1)[Desktop Automation]ステップを追加し、[入力値]にはタイプ変数[顧客データ]を追加して、[ワークフロー]の[編集]ボタンをクリックします。


(2)DA Editorの[Input]には、DSから入力された[顧客データ]を格納する変数名を指定します。ここでは、[IN_顧客データ]としておきます。

画面右下の[ワークフロー状態]で、[IN_顧客データ]の内容を確認することができます。

 ※[レコーダービュー]にRPAチャレンジのページが表示されていない場合は、DSに戻って[RPAチャレンジ開始]ステップを実行してください。


【3-3】入力エリアを探し出す

はじめに、RPAチャレンジのページにある「ラベル+テキストボックス」のセットを「入力エリア」として探し出すことにします。

そして、「入力エリア」が見つかったらその内側のラベル名を抽出して、そのラベル名をもとに顧客データを入力する、というワークフローを作成していきます。


(1)まずは、「入力エリア」の検索範囲を指定します。ここでは、FORMタグを指定してください。


(2)そして、右クリック→[ループ]→[FORM 兄弟繰り返し]をクリックします。


(3)すると、[For Each FORM]というステップが追加されます。

そして、このステップの中には[Location Found]と[For Each Loop]というアクションが入っています。


それらのアクションの設定を修正して、下図の赤枠の部品が見つかったら(Location Found)、緑枠の要素をループする(For Each Loop)という処理ができるようにします。


[Location Found]>[Component]の修正

《修正前》 DIV[class="js-randomFormContainer"][der_rendered="y"]
《修正後》 DIV[class="js-randomFormContainer"]

[For Each Loop]>[Element Selector]の修正

《修正前》 > FORM
《修正後》 > FORM DIV[class^="js-inputContainer input-group"]

 ※DAのファインダー指定については、「Kofax RPA へようこそ > Desktop Automation > Desktop Automation のファインダー」を参照してください。
   ・ E > F : Eエレメントの子Fエレメント
   ・ E F  : Eエレメントの子孫Fエレメント
   ・ E[foo^=”bar”] : ”foo”属性値が文字列”bar”で正確に始まるEエレメント



(4)そして、ループする要素の名前を「入力エリア」に変更します。


[For Each Loop]>[Element Alias]の修正

《修正前》 element
《修正後》 入力エリア


(5)これで、入力エリアを探し出してループする処理ができました。画面左上の[ステップイントゥー]ボタンをクリックして実行し、動作を確認してください。


すべての入力項目が[入力エリア]として認識されればOKです。



【3-4】ラベル名を抽出する

(1)画面上の[リセット]ボタンをクリックして、実行をリセットしてください。


(2)そして、[For Each Loop]アクションの次にある丸印を右クリック→[ここまで実行]をクリックします。



(3)さらに、[入力エリア]内のラベル部分(下図の場合は「メールアドレス」)を右クリック→[ここから値を抽出]→[テキストイントゥー]→[変数を作成]をクリックします。

[変数を作成]ダイアログが表示されたら、[変数名]には「ラベル名」を入力、[タイプ]は[Text]を選択して[OK]ボタンをクリックします。


すると、[オートメーションワークフロー]の左端にある[Variables]に、[ラベル名]という変数が作成されます。この[Variables]は、変数の宣言エリアです。

そして、[値を抽出]アクションも作成されます。


(4)ここで、[値を抽出]アクションの抽出対象の設定を修正します。


[Location Found]>[Component]>[Inner Component]の修正

《修正前》 LABEL[der_rendered="y"]
《修正後》 LABEL


(5)[値を抽出]ステップの名前を[ラベル名抽出]に変更してから、ステップを実行してください。


画面右下の[ワークフロー状態]の[Valuables]>[ラベル名]に、ラベル名(下図では「メールアドレス」)が入力されているでしょうか。


ここからは、抽出したラベル名を・・・・と続けたいのですが、途中で力尽きてしまいそうなので次回にします (;´Д`)