36
52

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-12-25

#はじめに
「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. 最新版だとエラーになりました。このコミットのデータが上手くいきました。

36
52
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36
52

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?