fbpx
■サイト内検索:
 

RPA Biz > OCR > 【UiPathを用いた】Citrix環境による自動化

【UiPathを用いた】Citrix環境による自動化

2018.08.24

今回はシトリックスによる自動化について、実際にUiPathを用いて試していきたいと思います。

 

 

シトリックス環境とは


まず初めに、簡単にシトリックス環境とは何なのかについて紹介します。

 

この場合、シトリックス環境におけるデスクトップの仮想化の話がメインになってきます。

 

デスクトップの仮想化とは、オペレーティングシステム(OS)やアプリケーションの業務を

サーバー側に集約することによって操作側の単純化をはかるものです。

 

このような環境ではOSやアプリケーションは完全に利用環境から分離させられて

サーバー上にあるため、利用者側は画面を表示させるためのディスプレイと

それを操作するマウス・キーボードなどさえあれば仮想的に遠隔地のデスクトップを操作できます。

 

 

この際に、重要なのは利用者はサーバーから受け取った画像を受け取って操作するということです。

 

今回はこの辺りまで知っといていただければ、これからの話を理解できると思います。

 

まだよくわからない方やもっと詳しく知りたい方は

シトリックス環境に関する詳しい説明シトリックス環境を導入することによるメリットデメリット

について以下の記事で紹介していますので、よろしければご覧ください。

Citrix環境の仮想化とそのメリット・デメリット

 

 

シトリックス環境での自動化における注意点


UiPathでシトリックスの自動化をおこなうにあたって、注意しないといけないことは非常に多いです。

 

そもそも、シトリックス環境ではサーバー上で動いているインターフェイスを画像化し

それをユーザーが認識し、仮想的に遠隔地のインターフェイスを操作します。

 

ここで、ユーザー側に存在するのは画像一点だけで個々の要素とその状態について

ユーザー側が知ることはできません。

 

よって、ユーザー側ではUiPathのセレクタやベーシックレコーディングといったツールを用いて

OSを通じたインターフェイスに直接アクセスして操作することはできません。

 

なので、”レコーディング機能でアクションを自動的に記録してそれを再生する”という

UiPathにおける一般的な自動化の方法を使用することはできないのです。

 

セレクタに関しても同様のことです。

インターフェイスに直接アクセスできないのでセレクタを用いた自動化もできません。

(2018年8月現在。今後のアップデートにより可能となる可能性あり。)

 

このような状況では、自動化を行う際に

我々がロボットに対して、我々人間が行うような操作を手取り足取り教える必要があります。

 

 

具体的な自動化の使用例(「ログインの自動入力」・「アプリの起動」)


では具体的にUiPathのアクティビティを使用して、シトリックスの自動化をおこなっていきましょう。

 

今回ご紹介するのは、ログイン画面などの動的な画面での対処方法

デスクトップ上のアプリの起動についてです。

 

この二つの例を見ていきながら、UiPathでの自動化の注意点を確認していきましょう。

 

ログイン画面に自動で情報を入力する

この例を用いて紹介したい注意点は、アクションのタイミングをどのように識別するかです。

これは、特定の状態になるのを待つとも言えます。

 

何度もお話ししていますが、シトリックス環境下では画像のみがサーバーから送信されるので

個々の要素の状態について把握することはできません。

 

では、どのように特定の状態になることを識別するのでしょうか。

 

これは実は簡単で、人間が識別するのと同様のことをロボットにもやらせればいいのです。

 

つまり、人間がその状態のアプリケーションを視覚的にどのように評価するのか

ロボットに教えてあげればいいのです。

 

例えば、ウェブページの読み込みが終わったことを我々はどのように視覚的に評価しているでしょうか。

それは簡単で、読み込み中のマークが消えてファビコン(注1)が表示されることです。

 

注1

ファビコンは、ウェブサイトのシンボルマークとして、ウェブ上にのっているアイコン(下図)のこと。

 

今回の場合は、ロボットにファビコンのイメージを指定し、記憶しておいて、

現在の状況を逐一、画像認識により検査してもらい、

ファビコンが表示された時に読み込みが終わったと判断させればいいのです。

 

では、実際にUiPathを用いて認識させてみましょう。

今回のように、ある特定のイメージを指定して認識させる場合は

Find Imageアクティビティ」を使用します。

 

 

使い方はとてもシンプルで、指定するイメージを選択マーキーで指定するだけです。

これにより、「指定されたイメージが検出される」または「タイムアウトする」

のどちらかが起これば、フローが停止し次に移ります。

 

このときにデバッグもかねて、「Highlightアクティビティ」を使用するといいでしょう。

「Highlightアクティビティ」のエレメント欄に

先ほどの「Find Imageアクティビティ」で検出した要素の変数を渡しておきましょう。

 

そうすると、このようにどこを検出したか分かりやすくなります。

 

 

このように、特定の状態を判断させるには

我々が実際にどのようにして状態を識別しているかをロボットに教えることが重要になってきます。

 

ログインページに移行できたところで、次に入力について見ていきましょう。

ここでもいくつか注意点があります。

 

先ほどと同様に我々が普段識別しているような方法で入力します。

 

ログインページからIDとPASSを入力する際にどこに入力するかは、

文字列を見てここにIDを入力、ここにPASSに入力、といった具合にしていくでしょう。

これをロボットに教えます。

 

クリックするときには「Click Imageアクティビティ」か「Click Textアクティビティ

のどちらかを使用します。

この二つのアクティビティにはそれぞれ欠点があります。

特徴と欠点を以下にまとめておきます。

 

・「Click Imageアクティビティ」・・・”信頼性は高いが画像の変化に敏感”

動作が早いが、テーマが変化したり、

テキストの大きさが変わったりなどのように状態が変化すると停止することがある。

 

・「Click Textアクティビティ」・・・”OCRを使用し、画像に変化があっても対応できる”

画像認識にOCRを使用するが、一文字でも誤認識があるとすべて正常に動作しなくなる可能性がある。

 

このようにそれぞれにはそれぞれの欠点が存在します。

よって、多くの場合はクリックするのを最小限にしてキーボードを使った操作を推奨します。

 

例えば、このようなログイン画面があったと仮定します。

 

 

ここには、まずEMAIL ADDRESSを認識してその欄にメールアドレスを入力します。

 

このあとにPASSWORDを探すのではなく、[tabキー]を押すことで次の入力欄に移ることが可能です。

これがキーボードによる操作です。

 

初めのEMAIL ADDRESS入力欄に

temp@temp.co.jp[tab]my_password[tab][tab][enter]

とする([tab]はtabキーを押すコマンドを選択してください)ことで簡単にログインすることができます。

 

このようにキーボード入力にすることで簡単にエラーが起こりにくいワークフローをつくることができます。

 

 

デスクトップ上のアプリを起動する

ここではデスクトップ上のアプリの起動を例にして、キーボードの有用性を考えたいと思います。

 

普通のレコーディングでは、デスクトップアプリをダブルクリックすることでアプリを起動しますが、

ここでもキーボードによる自動化を推奨します。

 

先ほどの「Click Imageアクティビティ」を使ってダブルクリックするとします。

 

この場合ではバックグラウンドの実行状態や背景の変更など

少しでも状態が変わっていると機能しなくなります。

 

エラーを少なくするのは、Windowsのショートカットキーを使用します。

まずは、アプリのプロパティからショートカットを設定します。

ここでは他のショートカットと干渉しないために複雑なものにするのがいいでしょう。

 

 

そして、「Send Hotkeyアクティビティ」を使用します。

このアクティビティはUI 要素にキーボードショートカットを送信するものです。

 

キーボードを使用することで、簡単にデスクトップ内アプリを起動することができました。

 

 

注意点まとめ


1.サーバーから送られてくる画像のみで識別するためセレクタやレコーディングは使用できない

2.ある特定の状態になることをどのように確認するのかが非常に重要

3.クリックではちょっとした変化で対応しなくなるので普遍的なキーボード操作を使用する

 

このようにいつもなら簡単に自動化出来ていてたものでも、

シトリックス環境においてはすこし難しくなっていきます。

 

しかし、UiPathにはそれをアシストするようなアクティビティがいくつも用意されているので

そちらの使用方法などをしっかりと理解しておいてシトリックス環境の自動化に役立てましょう。

 

 

 

 

topへ
© RPA.biz