へっぽこエンジニアのへっぽこ道場

サービス作りたいエンジニアが色々見て体験したことを発信

RPAについて

背景

業務でRPAを利用する機会があったので、 RPAについて調べ、実際に利用してみて思ったことをまとめました。

RPAとは

そもそもRPAとは

RPAとは ロボティック・プロセス・オートメーションの略で ソフトウェアによるオフィスワークのルーティン作業を自動化することである。

話を脱線するが、自動化の歴史について

作業の自動化の歴史は古く 金の計量が面倒なので、通貨という共通の単位の登場により 計量の自動化を行ったり、 第一次産業革命の蒸気機関の発明によって動力源が刷新され工場の機械化により作業の自動化が進んだりと 第二次、第三次、第四次と時代が進むにつれ様々なものが自動化されてきた。 そして現在は、デスクでの作業の自動化としてRPAが注目されている。

RPAの前身

RPAの前身となるのが1999年10月に公開された UWSC と呼ばれるソフトウェアで、 Windows上のキーボードやマウス操作を自動化が可能

www.vector.co.jp

UWSCとRPAの違い

まず、UWSCの特徴として、マウスやキーボードの動作を記録して同じ動作を実行することが可能である。 もう一つの特徴としては、複雑な操作はプログラミングのようにスクリプトを書く必要がある。

RPAは比較的直観的に複雑な操作( シナリオ )も作成が出来るところが、RPAとUWSCの大きな違いだと思う。

RPAの利用方法

RPAにもUWSCと同じように操作を記録してシナリオを作成することが出来る。

基本的に、ブロックを積み上げていくように必要な操作を順番に組み合わせてシナリオを作成する。 操作ごとに細かい設定を行い複雑な操作の自動化を行う。

RPAを触ってみた

利用したツールはテリロジー社のEzAvaterである。

EzAvater導入事例 デザインフィル様 | 株式会社テリロジー

RPAを利用してみて感じたポイント

とりあえずシナリオを作ろうという気持ちで始めると トラブルが発生した時の対応や他の人が似たようなシナリオを作成するときに大変な思いをする。

そのため以下の手順でシナリオを作成した。

  • どのような課題があってどうやって作業を確認しているのかをまとめる 個人的にポイントだと思ったのは、視覚的にどこを見て判断しているのか 問いかけを行いながら分析することが大切だと感じた。

例) 集計行の内容を取得したい

  1. 視覚的に集計行をどうやって確認しているのか?
  2. 集計と書かれた行の箇所を確認 → その行のG列を確認する

  3. まとめた内容を手順にする

  4. 手順にした内容を元にシナリオに当てはめる

  5. 1~3の内容を資料にまとめる これを行っていないとトラブルや引継ぎや他の人が同じようなシナリオを作成する際に 無駄なコストがかかる。

感じたこと

  • 昔も今も人はより楽になるための方法を模索しているのだなと感じた
  • プログラミングに関する知識が必要
    RPAはプログラミングを全くしなくていいわけではなく、少なくともブロックを積み上げて処理を作る必要があるので、
    ノーコードではなくローコードツール( つまり少ないコードでアプリケーションを開発する)といった認識を持った。
    そのため、最低限小学生が行うようなアルゴリズムに関する知識が必要だと感じた。
    個人的に勉強になりそうなものとして、Googleの迷路ゲームなどがRPAでも必要なアルゴリズムの考え方の参考になると思う。

blockly.games

  • 保守や運用に関しても考えておく必要があると思う

何もドキュメントがないままRPAのシナリオを作成するとトラブル対応や類似シナリオを作成するときも苦労する。

  • 力技でサービスと連携できるのは凄い APIがないサービスでもクリックなどの操作の自動化でログインして操作できるのは強いと感じた。 何かデータを入力するプラットフォームだけおいて中身はRPAで行うようにすることで柔軟に対応することが出来る。 これがエンジニア無しで開発が出来る。 seleniumとかでも可能だがそれよりも手軽に作れる。

まとめ

  • RPAは人が自動化を求めていった末にたどり着いたソフトウェア
  • 小学生レベルのプログラミングに関する知識(考え方)が必要
  • APIがないサービスでも連携できるのがすごい