Edited at

「RPAって何ができるの?」に対する超具体的な回答(UiPath)

More than 1 year has passed since last update.


はじめに

「RPAについて、何となくでいいから雰囲気掴みたいんじゃーヾ(。`Д´。)ノ」みたいな人向けの記事です。

(まぁ言ってしまえば、自分が試した結果を簡単に説明するためのメモです。)

「こんな風に処理を組むよ!」とか、「こんな機能があるよ!」みたいな超具体的なツール紹介です。(「ビジネスのここに効きます!」みたいな記事ではございませんぞ。)

世の中いろいろなRPAツールがありますが、本記事は「UiPath」の紹介になります。

(UiPathのサイトがかなり詳しく書いてあるし、ガイドもチュートリアルも豊富なので、細かい話はそっちを見た方が良いですぞ。)

日本フォーラムもあるので、そちらもご参照下さい。

前提

対象バージョン:2017.1.6522 CommunityEdition


UiPathについてざっくり

端的な感想は「すげぇマクロ」って感じ。

「なにか新しい機能が強み」というよりは、「簡単にマクロ化できるのが強み」って感じました。

※新しい機能もあります。「ロボットの管理機能(Orchestrator)」とか、「リモートデスクトップでも操作できるよ!」とか。


UiPathの操作概要

こんな感じで作りますってのを紹介します。

名前を入力して、「Hello! + 名前」的に返してくれる処理を作ってみます。

参考記事:UiPathでRPAを実践してみる(1) ~FlowchartからHello World~

(参考サイトをGifアニメにしただけ、みたいなところはあります。)


  1. 起動(「try」プロジェクトの作成)
    image.png

  2. 処理を書く
    image.png

  3. 変数を作って設定する
    image.png

  4. 動かしてみる
    image.png

ということで、非エンジニアにも説明できそうなレベルで簡単です。


UiPathができること(アクティビティ)

主要なアクティビティを抜粋して記載します。

以下を組み立てて処理を作る感じになります。

(だいたいを理解することを目的とするので、ちょっと違うこと1も記載しています。また、紹介していないものもあります。)

公式ガイドもあります2UiPath Activities ガイド

アクティビティ
アクティビティ
アクティビティ
簡易説明

UI Automation
Element/Text/Image/OCR
Mouse/Keyboard
カーソル配置/指定箇所クリック/キー入力 など

Control
ラジオボタン・セレクトボックスの操作/UI要素情報の取得/アクティブ化/視覚的強調 など

Find
UI要素の検索・取得(絶対指定/ワイルドカード指定/相対位置指定)/ユーザによる指定/UI要素が表示・非表示されるまで待機 など

Attribute
UI属性の取得/属性値が指定値になるまで待機/スクリーンショット など

Event
UI要素が表示・非表示された時を検知するトリガー

ScreenScraping
指定した文字列を含むUI要素の取得/指定されたUI要素から文字列を取得/指定したWEBページから文字列などを取得

File
画像の保存/変数への格納

Browser
(いろいろ)
タブ閉じる/戻る/進む/ブラウザ起動時のページに遷移/JavaScriptを実行/指定URLに遷移/ブラウザを開く/画面更新など

Window
(いろいろ)
閉じる/隠す/最大化/最小化/サイズ・位置の変更・復元/アクティブ化

User Events
Element/Image Trigger
Click/Keypress
指定したUI要素をクリック/キー押下したことを検知するトリガー

System Trigger
(いろいろ)
指定したキー操作/マウス操作を検知するトリガー

System
File
(操作系)
ファイル自体のコピー・削除・移動/ファイルの読み込み・書き込み など

(トリガー系)
ファイルの変更を検知するトリガー

Clipboard
(いろいろ)
クリップボードから取得/クリップボードに格納

Application
(プロセス操作)
プロセスリストの取得/プロセスのKill

(アプリケーション操作)
起動/停止

Environment
(いろいろ)
ビープ音を鳴らす/環境変数の取得 など

PowerShell
(いろいろ)
Powershellコマンドを実行する

Dialog
(いろいろ)
ユーザ入力を期待するダイアログ(テキスト入力/ファイル指定/フォルダ指定)/メッセージボックス など

Programming
String
(いろいろ)
文字列・配列をJSONオブジェクトに変換/正規表現での一致・不一致判定/文字列置換

Datatable
(いろいろ)
UiPath内のテーブルを生成・操作する(カラム・行の追加・削除/テーブルのクリア・マージ・出力/レコードを対象にしたループ処理)

Debug
(いろいろ)
アクティビティのコメントアウト化/指定したメッセージ・変数のログ出力/コメントの挿入 など

Execute
(いろいろ)
指定した COM オブジェクトのメソッドを呼び出す

Workflow
ControlFlow
Assign
変数への指定値の格納

(FlowChart内での制御)
ループ処理
配列等の要素がなくなるまで(For Each)/条件を満たしている間(Do While)/条件が満たされるまで(RetryScope)

条件分岐
IF/Switchが使える

break処理
For Eachを抜け出す(他のループについては明記なし。)

Sequence
FlowChartの亜種:分岐はできず、順に実行するフロー

FlowChart
(いろいろ)
分岐等が可能な一般的な処理フロー。複数FlowChartを用意してそれらの分岐制御等が可能

Error Handling
Try Catch
エラー発生時の挙動を制御できる

State Machine
(いろいろ)
FlowChartの亜種:UMLで言うところの状態遷移図

Checkpoint
(いろいろ)
指定した条件がTrue/Flaseの時にエラーを生成する。

Invoke
(いろいろ)
指定したワークフローを同期的に呼出し、必要に応じて対話的に処理できるようにする。

Orchestrator
(いろいろ)
(いろいろ)
別途説明

Cognitive
Translate系
(いろいろ)
指定したテキストを翻訳する

Analysis系
(いろいろ)
指定したテキストを解析する。(言語、長さ、肯定的または否定的感情の度合い)(利用には、Google/IBM/Microsoftいずれかへのサービス登録が必要。3(API連携をする感じ。))


おまけ


インストール方法

以下サイトを参考にインストール。

(ここで改めて記事にするほどでもないので割愛します。)

参考サイト:

UiPathでRPAを実践してみる(1) ~FlowchartからHello World~

【UiPath/ユーアイパス】無料版のダウンロードからインストール方法まで


学習方法

UiPathAcademyというUiPath操作についての学習サイトがあります。

かなり丁寧に作られているので、真面目に取り組めば力になるはずです。


コース:基本トレーニング

時間


  • 14時間程度(14レッスン。1レッスン1時間前後[構成は以下]。)


    • 20~30分の動画

    • 1~3つの実践型トレーニング

    • 小テスト



  • いきなり小テスト!とかはできない。(ちゃんとやっておかないと、ファイナルテストで泣きます。)

無料の講習を3日間受けてきます!とでも言って、研修行っている体で、自宅で受けましょう。

小テスト


  • NG時にフィードバックされるのはグロスの得点のみ


    • どの回答が間違っているかは分からないです。


      • ソンビアタックせずにちゃんと学習しましょう。





  • 合格すると、回答が合ってたか、間違ってたかを教えてくれます。


    • 正解は教えてくれません。



ファイナルテスト

14のレッスンの最後にファイナルテストがあります。


  • 45問。

  • 3回失敗すると、24時間強制待機+もう一度最初から


    • 未検証:いずれかの動画を再視聴すれば良い?

    • 小テストは何度失敗しても良さそう(5回くらい失敗したけど大丈夫だった気がする)



  • ファイナルテストに合格すると「orchestration用トレーニング」ができる


    • 合格しない限りできない



ベストプラクティス

14レッスン目で、「ベストプラクティス」が公開されます。

これを取得するために、進めるのもありだと思います。

(ファイナルテストの手前なので、時間さえあればきっと誰でもたどり着けます。)


OCRの精度

基本的にPC文字を対象にしている4っぽいので、手書き文字は不得手っぽい。

手書き文字のスクレイピングを期待するなら、手書き文字OCRエンジンを別で用意したほうが良さそう5

日本語適用方法

1. インプットデータを取得6

2. それを以下に格納。(消されているのはユーザ名です。)

image.png

3. 「GetOCR」を選択

4. 右下の「Outline」>GetOCRの配下>GoogleOCRを選択

5. 右上の「Propaties」>Options>Languageを選択

6. "jpn"と入力(※画像中だと"eng"になっている・・・)

image.png

参考にしたQA

Installing additional language pack for google OCR

OCR Engines in Studio - Setup and Languages


APIを投げる

デフォルトではできないので、リクエストを投げるアクティビティをインストールする必要があります。

image.png

image.png

シンプルなGetでのAPI連携を試したがこんな感じに取得できた

(以下は、GET投げて、その結果をログに出力する処理です。)

image.png


Orchestrator

UiPathが特徴として推しているのが、「Orchestrator」という機能。

説明は「UiPath入門(5)〜UiPath Orchestratorとは」が詳しかったので、そちらをご参照下さい。


操作者の監視

操作者の操作を監視して、特定操作をトリガーにして動くことができます。

Trigger系のアクティビティはMonitorアクティビティと一緒に用いる必要があります。

実際の設定は以下のような感じです(これは、windowsのexplorerボタンを押下した時に"Clicked!"というメッセージボックスを表示させる処理。)

image.png


バージョン管理

json形式で出力/読み込みできるので、それをgitとかで管理すれば良いかと。

標準の出力形式もほとんどxmlみたいなモノなので、GUIツール特有の「バージョン管理に悩む・・・」って問題は無さそうです。

※「簡単なパラメータの変更なら、jsonそのまま直しちゃえよ」って公式も言っているので、メンテも楽です。(UiPathStudioは少し重いのでありがたいですね)


さいごに

百聞は一見にしかずなので、試してみて下さい。

UiPathに関しては条件さえ満たしていれば、無償で利用可能です。(2017年12月現在)

ちなみにですが、RPAはライセンス費がそこそこ良い値段のものが多いです。

大規模に適用させて、ユーザ自身でメンテしていくならありな気がしますが、

「適用可能範囲が狭い」とか、「メンテは滅多にしない!」とかなら、別の選択肢を考えた方が良さそうです。

この先、ライセンス形態もいろいろ増えていくと思いますので、いろいろ比較して見るのが良いと思います。

RPAはあくまで手段ですので、安易に流行りに乗って「こんなはずでは!」とならないようにご注意下さい。


追記

2017/12/28 こんな記事書きましたヨ→「RPAExpressとUiPathの比較

※合わせてこちらもご覧ください:RPAを検討する人に知ってもらいたい「JenkinsでのWindows自動化」






  1. 「OCR」アクティビティには、「File」は無いとか。 



  2. だいぶ日本語です。一部翻訳されてないです(そんなに問題にはならない)。 



  3. UiPath Cognitive Service Activities Tutorial」を参考にどうぞ。 



  4. tesstrain.sh で Tesseract-OCR の言語データをカスタマイズする」に成り立ち/カスタマイズ方法があります。 



  5. Tegaki.ai」とか 



  6. 最新版だとエラーになりました。このコミットのデータが上手くいきました。