RPAのUiPathで自動化してみた

2021年2月2日

先日会社の研修でRPA( Robotic Process Automation )としてUiPathという製品のハンズオンを受けてきて、それなりに面白かったので記事にしておく。

UiPath公式サイト

RPAって?

RPAはデスクワーク中の定型作業をパソコン内のロボットソフトウェアで代行・自動処理化しようとするという概念。

人の作業をロボットソフトウェアで自動化するというアプローチには段階があって、例えば高次元になるとAIで人の知能的振る舞いまで自動化(プログラム化)するということになる。

それに対して現時点で実用レベルに到達しているRPAのアプローチは、あくまで人がパソコン上で実行する定型操作を模倣させるというところにとどまっているらしく、人の作業を模倣するという意味では低度の自動化という位置づけだそうだ。

ただ、これはあくまで人が行う作業という様々な範囲のうちの低度部分である、という意味であって、RPAを実現するシステムは昔に比べると格段に高機能・高精度になっているなという感触がした。

UiPathって?

RPAを実現するシステムは大きく分けてサーバが集約管理して配下のパソコンへ処理を命令して動作するサーバ型と、パソコンの中に閉じてツール的に動作するデスクトップ型が存在する。

サーバ型で有名なのはBizRobo!Automation AnywhereBlue Prismあたりだろうか。

デスクトップ型で有名なのはWinActor、そして今回研修を受けたUiPathなどだ。

この中で今回研修を受けたUiPathはGUIの統合開発環境がついており、個人利用及び一定の条件下の商用利用であれば無償で利用が可能とのこと。ちょっとほかの類似製品を触ったことがないので比較はできないけれど、中々によくできたシステムだなぁという所感であった。

開発環境はこんな感じ。そこそこ直感的に作れるけど、複雑になってくると自分の現在位置を見失うのが少し難点かな。

UiPathの開発環境

作ったもの

研修冒頭、「UiPathは商用利用無償か」という質問に対する回答があり、弊社では適用できないことが判明した瞬間に趣味の2日間と化した。ってか弊社的にはなんでこの研修やったんだろう・・・。個人的には勉強になってめっちゃ良かったけど。

課題で作った

ブラウザでYahoo!の株価値上がり率ランキングページを開いてその社名リストを取得し、Google Mapで1つずつ検索した結果画面を画面キャプチャして画像で保存する、とかいう若干犯罪の香りが漂うものを作った。

テキストボックスへの入力やボタンクリックなどをブラウザハック的に行ったり、単純にフォーカスを当ててキーボードをタイプさせたり、やりたいことに対しての方法をいろんなアプローチで作れるのが面白い。人によってやり方が異なっているので、一緒に参加していた後輩とうまいやり方トークをするのが中々面白かった。

エンジニア的にはなんとなくプログラミング的にやりたくなる傾向が出そう。でも頑張ってコマンドプロンプトの入力画面に文字列を設定して・・・とか組むより、コマンドプロンプトのウィンドウをアクティブにしてキーボードタイピングさせてエンターキー入力とかの方が早かったりするから面白い。

後半の課題ではMS Excelのデータ処理をやる課題が多かったが、正直そのあたりはマクロ組んだりC#でプログラミングした方が使い勝手は良さそうな感じだった。

個人的に強力そうなのはWEB情報のスクレイピングかなという感触。例えば機械学習用の画像の収集とか、画像を指定のサイズにトリミングしたり形式をそろえるのに莫大な時間がかかるけれど、そこを自動化しちゃうようなのは有用そう。

勝手に作った

上記のような状況だったので、研修中は後半の課題は完全にぶっちして、自分のブログ用の自動化プログラムを作成していた。

昔読んでいた日次でニュース記事をまとめていたサイト(まなめはうす)が簡単に作れるのではないかと思って、有名なIT系ニュースサイトのランキングから題名とURLをとってきて、このブログ用のリンクを生成してくれるプログラムを作成してみた。

それで作った記事がこちら。

2018年12月21日のニュース記事

途中にログイン画面や広告が出てしまうと手動でSkipボタンを押したり×ボタンを押したりしないといけないのは改良ポイントだけど、一応日付が変わっても再現性があるのでリンクを自分で一個ずつ作成するのに比べたら格段に作業が早くなった。

まとめ

初めてのRPAシステムを触ってみたわけだけれども、ガリガリとプログラミングをしなくてもある程度直感的にそれなりの精度の自動化プログラムを簡単に作れる、というのはかなり強みだなと思った。

ただ、これを商用的にどの程度使えるのか、というのにはなかなか疑問が残るところ。少なくともITエンジニアが自分の仕事効率化のために使うというのには難しそう。月末の経理事務作業など定例的だけれどめんどくさいような作業や、手動テストの自動化などには有用そうだなという感触であった。

時間があればほかにも自分の趣味作業効率化に使っていきたいと思う。