UiPathではじめるRPA入門(2)〜 こんにちは、世界

UiPathではじめるRPA入門(2)〜 こんにちは、世界

今回は、UiPathで初めてのプロジェクトを作成してみます。

今回の内容

  • 新規プロジェクトの作成
  • ロボットからのメッセージダイアログの表示(こんにちは、世界)
  • アクティビティ、ワークフロー、プロパティの概念
  • 変数の簡単な使用方法

では早速はじめましょう。


UiPathではじめるRPA入門(1)の記事では、RPAの概要と、RPAの代表的ソフトウェアであるUiPathのインストール方法について説明しました。こちらの記事では、RPA入門 (1) を完了した方を対象に、UiPathのインターフェースの機能説明、及びアクティビティと呼ばれるロボットの基礎的な設定方法について説明していきます。

インターフェース

起動直後の画面

起動直後は、Start画面が表示されています。とりあえず、「←」ボタンをクリックしてインターフェースの概要をみてみましょう。

インターフェース〜全体像

設定画面の全体は、幾つかのパネルで構成されています。

アクティビティパネル

ロボットの動作の最小単位が一覧されています。ここからロボットの動作を選択していきロボットを定義します。

リボン

ロボットの実行、新規ファイルの作成、保存などの基本的な操作が一覧されています。

プロパティパネル

一つのアクティビティの動作の詳細を設定する部分です。

メインパネル

ロボットの一連の動作を定義するところです。ワークフローやアクティビティをドロップしてロボットを定義していきます。

 

インターフェース〜リボン > Start

Start

新規プロジェクトを作成するか、最近開いたプロジェクトから作業を開始します。

インターフェース〜リボン > Design

Design

ファイル操作、よく使う機能のウィザード、変数の管理などワークフローを設定する際によく使われる機能にアクセスします。設定中に主に使うメニューになります。

インターフェース〜リボン > Execute

Execute

主にデバッグで使うメニューです。プロジェクトの実行からデバッグ実行、ブレークポイントなどデバッグに必要な操作にアクセスします。

インターフェース〜リボン > Setup

Setup

出来上がったロボットのパッケージング、Webサイトのログインなどの認証情報の管理、機能拡張のインストールなどにアクセスします。

インターフェース〜アクティビティパネルほか

アクティビティパネルの他、プロジェクトのファイル一覧を表示するプロジェクトパネル、再利用可能な処理(ライブラリ)を表示・選択できるライブラリーパネルがあります。


新規プロジェクトの作成

さて、早速新規プロジェクトを作成してみましょう。

リボン > Start > New から Blank を選択します。

ダイアログからファイル名、保存場所、説明を記入し、「Create」します。

空のプロジェクトの画面が表示されます。これで新規プロジェクトが作成できました。


こんにちは、世界

概要

次に、「こんにちは、世界」とダイアログを表示するだけの簡単なロボットを作成してみましょう。

作成するロボット

手順の解説

1. フローチャートの追加

まずは、プロジェクトにフローチャートを追加します。

アクティビティパネルの検索ボックスに「Flowchart」と入力してください。 検索結果の中に、ハイライトされた「Flowchart」というものがあるのでそれをメインパネルにドロップします。

*Flowchartの他、Sequenceなども利用できますので試してみてください。

ここでのポイントは、メインパネルの中央付近にドロップすることです。端っこの方にドロップすると反応しない場合があります。反応するかしないかはドラッグ中のポインタのアイコンで判別することができます。

2. メッセージボックスの追加

ドロップするとフローチャートがハイライトされた状態で追加されます。

内部の「Start」というアイコンは、フローチャートがここから実行開始されることを示します。

この状態でも、空のロボットとして実行可能です(リボンのRunボタン or F5 で実行してみてください)。

実行できましたが、何も起こらないですね。次にアクティビティを追加していきましょう。

アクティビティパネルの検索ボックスに「Message Box」と入力します。

一覧に出て来たハイライトされた Message Box をフローチャートにドロップします。

3. メッセージボックスを設定する

ドロップすると、Message BoxがFlowchartの中に入り、ハイライトされた状態になります。

同時に右側にある、プロパティパネルがMessage Boxになっていることが確認できます。

プロパティパネル内の、Input > Content には、「”こんにちは、世界”」。

Input > Title には、「”ロボットからの出力”」とでも書いておきましょう。

*ContentとTitleには、必ず二重引用符(””)をつけてください。これは、コンピューターに入力した値が文字列として認識させるために必要になります。

4. 実行エラーを確認する

リボン内のRunボタンからロボットを実行すると、エラーが出て実行できないことを確認します。

上のようなエラー表示は、設定自体に不足・矛盾などの誤りがある場合に表示され、ロボットが実行できません。OKをクリックして元の画面に戻ります。

Flowchartの右上の赤い(もしくは青い)注意表示にマウスを合わせてみましょう。

Flowchart ‘Flowchart’ does not have a StartNode.とヒントがでると思います。これは、フローチャートが一番はじめにする処理が定義されていないというエラーです。

この赤い(もしくは青い)注意マークは、残しておくと Run(実行)できません。このマークがでていたらエラーメッセージを確認しましょう。

5. StartNodeを設定する

先程のエラーに対応するために、StartNodeを設定しましょう。

Flowchart内のStartアイコンにマウスオーバーします。

マウスオーバーすると、上の絵のようにグレーの四角い凸起がでてきます。下にある一つを引っ張ると線がでてくるので、Message Boxまで引っ張ります。

Message Boxの方も受け入れの凸起がでてくるので、そこへドロップして接続します。

6. 接続後のフローチャート

接続すると、上図のようになります。

この時、Flowchartの右上のエラー表示もなくなっていることが確認できますね。

7. 「こんにちは、世界」ロボットを実行する

リボン > Design > Runボタンをクリックします

エラー表示もなくなったので、早速実行してみましょう。Runボタンのほか、F5でも実行できます。

メッセージボックスが表示されるので、OKをクリックすればロボットの実行完了です。

メッセージボックスが表示されました。

プロパティパネルでの設定は、メッセージボックスの表示に反映されています。


アクティビティ、ワークフロー、プロパティ

先程、「こんにちは、世界」と表示するだけのロボットを作成しました。手順について一つずつ復習してみましょう。

アクティビティ

ロボットの動作は、アクティビティで定義します。アクティビティは、ロボットに設定可能な定義の全てを含んでいます。

ワークフロー

UiPathではワークフローは、アクティビティの一種として登録できます。プロジェクトは必ず上位にワークフローがあります。ワークフローには、Sequence、Flowchart、State Machineなどがありますが、ここでは、Flowchartを最上位に用い、適宜、Sequenceを使って行きます。これらは、互いに入れ子構造にできます。

それぞれの違いを大雑把に説明します。

Flowchartのイメージ

処理の遷移に注目したデザインの方法です。条件分岐、繰り返しなどをつなげてFlowchartを作っていきます。

State Machineのイメージ

状態の遷移に注目したデザインになります。開始状態と複数の終状態によって次の動作の定義を変更させます。

Sequenceのイメージ

上から順番に処理を行うシンプルなワークフローです。

プロパティ

プロパティは、アクティビティの具体的な内容が記述されています。

必須プロパティが未定義の場合にはエラーとなります。


ロボット定義の流れ

上記では、「こんにちは、世界」と表示しただけですが、基本的にはこの繰り返しでロボットを定義していきます。

アクティビティの追加・設定を繰り返すことでロボットを定義していきます

エラー表示がでていなければ、どの段階でもRunボタンをクリック(もしくは、F5)することでロボットの動作を確認できます。

ステップが大きくなるとロボットを定義するのは困難になってきますが、一つ一つクリアしながら設定していけば難しいことはありません。根気強く設定していってください。

変数の使い方

ロボットの表示をその時々で変えたい時

先ほど「こんにちは、世界」と表示するだけのロボットに、表示内容を指示するにはどうすればよいでしょうか?表示内容を「こんにちは、佐藤さん」「こんにちは、山田さん」などのようにするだけで、毎回ロボットを作成するのでは大変です。

表示する内容をロボットに入力し、入力された値をロボットが受け取ることができれば同じロボットの汎用性が高まります。この機能を提供するのが変数です。

変数と型

変数は、プログラミング経験がある方は特に問題なく扱えると思います。プログラミング経験のない方向けに大雑把に解説します。ここでは変数は一種の箱(入れ物)だと思ってください。箱にも、液体を入れられる箱、冷たいものを入れる箱などいろいろありますが、変数も入れられるものが決まっています。例えば、簡単な例では以下のようになります。

このように、UiPathでも変数には入るものの種類が決まっています。それを、型とよびます。とりあえずは、文字列(String)と整数(Int32)だけ覚えておいてください。この他、だいたいうまい用に変数を扱ってくれるGenericValueという便利な箱もあります。


ロボットに挨拶させる

「こんにちは、世界」を「こんにちは、〇〇」にする

さて、早速変数を使って、「こんにちは、世界」の世界のところを「こんにちは、〇〇」と変数を使って定義し、入力値によって変更できるようにしましょう。

作成するロボット

作成手順

1. Input Dialog を追加する

さて、これから〇〇のところに、値を設定したいのですが、ロボットが入力を受け取る簡単な方法が Input Dialog です。これは、ロボットの質問に対して、キーボードから文字列あるいは数値を入力するものになります。

アクティビティパネルの検索ボックスに「Input Dialog」と打ち込んで、Input Dialog をメインパネルへドロップしてください。

2. Input Dialog のプロパティ

Input Dialog のプロパティは、以下のようになっております。今回は、1. 3. 5. 7. を設定します。

3. Input Dialog のプロパティの設定

変数以外のところは、以下のように設定してみましょう。

変数のところは、Resultのインプットフィールドのところを右クリックしてください。そうするとこの場で変数を作成することができます。

4. 変数の設定

右クリックすると、次の表示がでるので、「Create Variable」を選択し、新たに変数を作成します。

次に、変数名を問われるので、とりあえずstrMyName(引用符不要)と入力してください。名前は基本的にはなんでも良いのですが、社内の規則なども含めてルール化しておくのが望ましいです。

入力したら、メインパネル下の「Variables」というタブをクリックして中身を開いてください。その中に先ほど作成した、strMyNameが入っているのが確認できます。

表の見方は、Name, Variable type, Scope, Defaultがそれぞれ、変数名、変数の型、スコープ(変数の有効範囲)、初期値となっております。Defaultのところに、”世界”と入れておきましょう。

5. アクティビティを接続する

さて、Input Dialogの設定ができたので、アクティビティを接続してみましょう。

  1. まずは、Message Boxについていた矢印を消します(選択して、deleteキー)
  2. 次に、Startから「名前を問う」に矢印を引っ張ります
  3. 最後に、「名前を問う」から Message Box に矢印を引っ張ります

最終的に下の図のようになればOKです。

絵的には前後していて綺麗じゃないですね。

各自整形することをおすすめしますが、この状態でも動きます。

6. ためしに動かしてみる

この状態で動かしてみましょう。

Input Dialog が立ち上がり、名前を聞かれます。ためしなので「テスト」と入力しOKします。

相変わらず、結果は、「こんにちは、世界」のままです。 設定した変数をどこでも受け取っていない からです。

7. Message Boxで変数を受け取る

メッセージボックスのプロパティを見てみると、Contentのところが、 「”こんにちは、世界”」で固定されています 。ここに変数をもちいて、 「”こんにちは、” & strMyName」 としてみてください。変数名があっていれば、strMyNameは、補完候補が表示されます。

“”(二重引用符)は、文字列型を作る書き方です。&は、文字列の結合を意味します。strMyNameは、変数の型でString(文字列)を指定しているので、全て文字列同士となり、&で結合できます。InputDialogの受け取る変数に、GenericValueを使っている場合は、「&」ではなく、「+」を使ってみてください。

ここでエラー表示が出る場合

型がまちがっている、合わないケースが多い

先程変数のところで解説しましたが、変数に入れられるものの種類が決まっています。これを型を強制的に String に合わせます。

.ToString() という方法を用います。これは、strMyName が ToString()というメソッドを呼び出しているのですが、馴染みのない方は、ToString()で文字列に変換していると考えてください。

なお、GenericValueを用いている場合は、「&」ではなく「+」を使えば大丈夫です。

8. 修正して、再び動かしてみる

再びロボットを動かすと、同じように Input Dialog が表示されます。例では「山田」と入れています。

OKをすると、狙い通りに「こんにちは、山田」と表示されます。

これで、インプットダイアログで設定した任意の名前の挨拶を出力できるようになりました。


UiPathの情報を調べる

UiPathは、Web上で簡単に情報を仕入れる事ができます。

アクティビティを調べる

https://www.uipath.com/activities-guide

上記URLからアクティビティを検索、調べることができます。ただし、英語なので、わからない場合は、がんばってください。日本語に対応しました。

アクティビティのプロパティを調べる

https://www.uipath.com/activities-guide

同様に上記URLのアクティビティのリンク先から情報を仕入れることができます。 英語であり、幾らかの前提知識が必要とされるので、メンターがいると良いですね。 日本語に対応しました。

エラー表示を調べる

エラーの多くは、VB.NETの暗黙的型、あるいは、UI要素が見つからないという場合です。VB.NETの場合は、https://msdn.microsoft.com/ja-jp/library/dd370624.aspx より情報を検索できます。ただし、ハードルは高めです。

また、Stack Overflowでも幾らかの情報がえられますので参考にしてください。


復習

  • 新規プロジェクトを作成してみてください
  • ロボットからのメッセージダイアログの表示のさせ方を説明してください
  • アクティビティ、ワークフロー、プロパティは、それぞれどういう関係にありますか
  • 変数は、どのような時に使うか説明してください

それでは、また次回。

次回は、UiPathでのレコーディングの使い方について説明します

レコーディングとは何か?

異なるレコーディングの種類

  • Basic レコーディング
  • Desktop レコーディング
  • Citrix レコーディング
  • Web レコーディング

フロー制御

  • 2種類の条件分岐(Decision フロー と If 文)
  • 変数への代入(Assign) と 繰り返し(Do While 文)

UiPathではじめるRPA入門 (3) 〜 レコーディング編