こんにちは。スマートソリューションセンターの吉田です。
普段はアプリケーションエンジニアとして、Windowsクライアントアプリや、iOS,Androidのモバイルアプリ開発、WebAPI開発などを担当しています。

 

最近ではアーキテクチャ設計や技術支援、ハンズオン講師などを行うことも多く、お客様といろんなお話をさせていただく機会をいただきますが、多くの企業様において、RPA(Robotic Process Automation)というワードを聞く機会が増えてきました。

私が所属する先端技術事業部では、AIに関するご相談をお受けすることが多くあります。その中で、これはRPAでできるんじゃないか。というものや、AIにインプットする学習データをRPAで自動生成すればいいんじゃないか。といった話が実は多くあります。今まで人的リソースをかけて実施していたり、そもそも費用対効果で実施できなかった業務がRPAの登場により、実施可能性が出てきた。なんて話が増えてきました。

このように、ユーザ企業では非常にホットなワードになっている一方で、エンジニアにはあまり興味を持っていない人が多いのではないかと思っていたりします。

その理由には、RPAツールの多くはGUIベースでコードを記述することなくソフトウェアロボットを作成できるノンプログラミングツールが主流となっており、技術畑で育っているエンジニアだと、コードを書かないなんて面白くない、自由度が少ないと思っていたりしないでしょうか。

またRPAはユーザ部門主導で進めるものという風潮もあるのかなと思います。
私もRPAについての第一印象は、スクレイピングツール、マクロ、バッチとかと何が違うんだ。必要なのかな?でした。

案件でRPAに携わり、理解を深めていくうちに、だんだん面白くなってきました。
コードを書いてはいないだけで、エンジニアとして培ってきた技術、ノウハウが十分に活かせることがわかったからです。

以下では、エンジニアが気になりそうな観点でRPAの魅力をお伝えしていきたいと思います。

RPAとは~その特徴とマクロとの違い~

Robotic Process Automationの略で、「ソフトウェアロボットによる業務自動化の取り組み」を指します。

よくExcelマクロと何が違うの、と言われますが、使い方は非常に似ています。
RPAツールの多くは、レコーディング機能を有しており、WebブラウザやWindowsアプリをいつも通り操作すると、ツールが自動的に記録してくれます。これは、Excelの「マクロの記録」そのものです。「マクロの記録」は非常に簡単ですが、記録したマクロを手直ししたい場合、VBAを触らなければいけなくなります。

これと同じことがRPAでも言え、簡単なことはレコーディング機能のみで実現できますが、より高度なことをしようとすると、多少なりともプログラミングの知識が必要になってくる。というわけです。

これだけ聞くと、結局Excelマクロとの違いは?と思われるかもしれません。
実際の業務の多くはExcelだけで完結することは少なく、Webシステムを操作して、画面の情報をコピーアンドペーストでExcelに転記し資料を作るだとか、メール受信をトリガーにWordで見積書を作るなど、複数アプリケーションをまたいだ作業を行っているかと思います。

ExcelマクロはExcelにおける操作を記録し実行することができますが、他のWindowsアプリケーションの操作を記録したり、ブラウザの操作を記録することはできません。WebスクレイピングもWebからの情報抽出はできますが、Windowsアプリを操作したり、複数のアプリを操作したりはできません。

RPAでは、単一のアプリだけでなく、複数のアプリケーション間をまたいだ処理を行うことができます。これがRPAの特徴の一つと言えます。

RPAを使えば、どんなことも自動化できる?

RPAによる自動化は3つの段階に分けられます。それぞれ例とともに見てみましょう。

Class 1 : 定型業務の自動化 (Robotic Process Automation)

  • 出社後、PCを立ち上げ、Web勤怠システムにログインして、就業開始ボタンを押下する
  • Webから株価情報を取得し、Excelに独自のフォーマットでまとめる
  • 画像形式のPDFから、OCRを使用して、テキスト情報を抽出する

これらはすべてRPAで実現可能な定型作業で、Class 1に分類されます。一定のルールに基づいて処理をこなすのはRPAの最も得意な分野です。

Class 1のRPA化により、人的ミスを削減でき、作業スピードは改善され、より創造的な業務へのリソース再配置などが可能となります。現在RPA自動化といわれているものの多くは、このClass 1の自動化を指すことが大半であり、現時点で費用対効果が最大となるのもこのClass 1だと言われています。

Class 2 : 非定型業務の自動化 (Enhanced Process Automation)

  • 話し言葉(非構造化データ)で書かれた見積依頼メールから、見積に必要な情報をAI等で抽出し、見積書を自動で作成する。
  • エラーログ分析
  • 売上予測

このように「自然言語解析」「機械学習」「音声解析」「画像解析」などのAI技術を用いて、一定の判断を伴う非定型業務や例外対応も自動化するのがClass 2と言われています。RPAがAIを内包するわけではなく、RPAプロセスの一部にAIを適用(使用)し、自動化することを示します。最近は徐々にClass 2のソリューションが登場してきています。

Class 3 : 高度な自律化 (Cognitive Automation)

  • RFP(提案依頼書)から提案書を自動作成するロボット

Class 3になると、プロセスの分析や改善、意思決定までを自ら自動化するとともに、意思決定を行えるようになります。Class 3に到達するまでにはまだ数年かかるだろうというのが現在の状況です。

このようにRPAにも段階があり、非構造化データや人の判断を含むものを自動化するClass 2以降は、現時点ではそこまで進んでいないということをご認識ください。

言い換えると、Class 2以降は、まだまだ難易度が高く、エンジニアにとっても挑戦すべきフィールドがあるのです!

長くなってきましたので、このあたりにして、次回、以下についてお話ししたいと思います。

  • RPAのルーツとRPAを支える技術
  • ノンプログラミングなのに、変数の理解が必要?
  • 制御構文も使えるの?
  • オブジェクト指向は知っておく必要がある?
  • 独自ライブラリ、拡張モジュールは作れるの?
  • エンジニアにおすすめのRPAツールは?