まずはじめに
2018年から仕事でWinActorを使う機会があり、少しロボを作ったりしました。
そして今現在、現場が変わってUiPathでロボを本格的に作ることになりました。
2種類の代表的なRPAソフトを使い、RPAで出来ることや得意不得意がわかってきたのでRPAを知らない人にもどういう物なのかを知ってもらうための記事を書くことにしました。
RPAってなーに?
働き方改革も相まって数年前からトレンドになっています。
大手企業がこぞって導入を進めており、2019年のEXPOでも大盛況の分野になっているRPAについて説明します。
RPA=ロボティクス・プロセス・オートメーション
ロボティクス・プロセス・オートメーションの略。
ようするにロボットです。
ただドラ◯もんやペ◯パーくんとは違い、PC上で発生する作業を専門で行うロボットがRPAです。
RPAはデジタルレイバー
RPAは“文字を入力する”や“ボタンをクリック”といったPCの操作を再現することができ、まさに人と同じように操作させることが可能です。
定型的に発生する文書作成やメールなど事務作業をロボットに代行させることが出来るので、デジタルレイバー(電子世界の労働者)とも呼ばれているようです。
そのため、働き方改革の取り組みとしてRPAを取り入れ始めている企業が増えています。
RPAで出来ること
先の説明でPCの操作を再現すると書きましたが、具体的には以下ができます。
- データの取得
- 文書の作成
- WEBアプリやExcelなどの操作
- メールの送受信
使い方(WinActorやUiPathの場合)
私が使用したWinActorやUiPathの場合、マウス操作で処理を作る事ができます。
あらかじめ"データの取得"や"テキストファイルの新規作成"といった処理が記された部品が用意されています。
これをフローチャートとして作業の順番通りに部品を置いていくだけで作れます。
プログラミングは不要です。
作ったロボは必要なタイミングで手動で実行することも可能ですし、他のサービスを使ってスケジュールを組んでロボを自動で呼び出すといった使い方もあります。
活用例
例えば「WEBサービスにログインしてExcelのデータをブラウザの所定のフォームに入力して登録。完了したら担当者にメールする。」という作業が定期的にあるとします。
以下のように部品をフローチャートに配置すれば登録業務ロボの出来上がりです。
// コメント
上記例だとWEBページが開くまでの待機処理や登録失敗した時の考慮がないので、実際は条件分岐やtry-chatchなどが入ると思います。
RPAの得意・不得意
通常のプログラムよりも得意不得意が明確です。
すべてRPAで行おうとすると処理が煩雑で速度が遅いということもあり得ます。
得意なこと
アプリケーションから別のアプリケーションへデータを取得・出力する事が最も得意と言えると思います。
CSVやExcelからデータ取得はもちろん、データスクレイピング(WEBブラウザなどの表データを抽出)が可能です。
不得意なこと
複雑な処理や計算をさせるにはあまり向いていません。
変数の利用や表形式のデータの絞り込み・加工は可能ですが、部品は1つずつ組み合わせるしかなく、複雑な処理ほど長大なフローチャートになりがちです。
場合によってはマクロなどを使用した方が容易で分かりやすい処理になります。
// コメント
WinActorやUiPathはスクリプトを書いて独自の部品を作ることも可能です。
しかしフローチャート形式でひと目で処理が読めるのが長所の一つなので、可読性やメンテナンス性が落ちてしまう恐れがあります。
ロボの開発について
感覚的にはExcelマクロと同じに思います。
開発スキルの無い非エンジニアでも手軽に作ることも可能ですし、エンジニアならば従来の開発と同様の設計思想である程度の規模のロボを作ることも可能です。
自動記録で作る
Excelマクロのように自動記録機能があります。
自動記録中のマウス操作やキー入力の動きをすべて覚えこませる事ができるので、これだけでロボを作れます。
条件分岐や例外の考慮が不要の場合はこれで十分です。
プログラムを組むようにロボを作る
条件分岐、ループ処理、例外処理といった部品があるので従来の開発と同じような設計ができます。
またロボから別のロボを呼び出すことも出来るので、共通部品的なロボを作成して汎用性を持たせたり、複数人で開発ということも可能です。
実際、私が携わる業務では以下のような構成でロボを開発しています。
- メインロボ
- メインの処理を書いたロボ。ここから各ロボを呼び出す
- 事前処理ロボ
- 設定値の読み込みなどを処理する
- 業務ロボ
- 業務の処理はすべてこのロボの中で行う
- エラー処理ロボ
- ロールバックなどエラー時の処理をする
- 事後処理ロボ
- try-catch-finallyのfinallyにあたる部分。処理の通知などを行う
私個人の所感
開発経験のある人ならば特に支障なくすぐに扱えるものだと思います。
ただプログラムならば1行2行で済む処理もRPAではいくつもの部品を組み合わせて実現させる必要があることもあり、もどかしい部分も多いです。
RPAの持つ最大の長所はアプリとアプリを連携させることが出来るだと思います。
これまで使用していたアプリの移行などが不要で自動化を目指せる、というのはエンドユーザーにとって有り難いことだと思います。
このような長所の面から今後、RPAの導入はますます増えることになるのではないでしょうか。