言うまでもなく、どんな企業にとってもRPAを導入するには、まず「どんな業務をRPA化する」のかを明確にしなければならないでしょう。つまり、RPA対象業務の選定ということです。RPAが得意なものとして、PC内で行う作業は前提とし、「大量重複している作業」と「ルールが明確している作業」というものになります。では、企業の中にこの二つの特徴のある作業を洗い出し、その業務フローも明確化したらRPA開発が先に進められるようになるのか?もちろんそういうわけではないでしょう。
RPA導入のプロセスをざっくり言うと、以下のようになります:
上記の「3.開発するための要件定義」を簡単に言うと、RPA開発できるように、既存業務のフローを再度設計することです。何故これが必要かというと、RPAはあくまで「ロボット」であり、人間との思考ロジックが全く違うことになる。RPA開発がうまく行くように、RPAのロジックに合わせて業務を「定義」しなければならないです。今回のコラムではこの「業務定義」プロセスの事例をいくつかを紹介しながら、その注意点を説明していきたいと思います。
RPAといったら、エクセルファイルの操作などが絶対出てくる話です。人間の操作を真似し、素早く大量なデータ処理ができるというイメージが多くとても分かりやすいでしょう。ただし、RPAがエクセルを操作するときは人間と比べて、少し異なるところがあります。
以下の例を見てみよう:
上記の表は某ECサイト運営会社A社のRPA導入プロジェクトで出た一例です。本業務の内容としては、毎日スタッフが社内システムに「Code」を発行申請し、その後発行されたCodeを上記表1フォーマットのエクセルファイルに貼り付けます。このエクセルファイルをもとに、別の業務が色々と行われるが、後継業務に関しては割愛し、こちらを例として、マニュアルでExcelを操作するのとRPAが操作する際の違いを説明します。
まず、この業務に関して、人間が行う場合はまずエクセルファイルを開き、「Code」列を見て、最初に空欄になっている行に基づいて作業を行います。表1から言うと、黄色で塗りつぶされているセルになります。そして、この行を見つたら、「Start date」、「End date」と「配信日付」の情報を使ってシステムにログインし、別システムで「Code」を申し込みます。その後、発行されたCodeをコピーに、黄色セルに貼り付けて完了します。とても簡単な流れになるでしょう。
しかし、RPAが行う場合プロセスは人間と異なります。RPA開発ソフトによって少し違うかもしれないが、多くのRPAはまず処理しやすくするためにこのエクセルファイルをメモリーに読み取ります。その後、「Code」列が空欄になっているかを一行一行見ていきます。もちろん、何行目から始めるかについてRPAが全く分からないので、一行目からみていきます。表1から見ると、6行目で空欄が出るので、たいしたことないに見えるかもしれないが、そうではない場合もあります。仮に表1の元ファイルの一部を切り取ったことに過ぎなく、実際のエクセルファイルは数万行以上ある場合、対象の行にたどり着いくまで、数万行以上のデータを一行一行チェックしないといけないため、とても時間かかることになるでしょう。また、空欄ではなくても、「○○につき、作業中止」という何らかの原因でその日業務は行わないということもあります。すると、RPAはまず空欄かどうかを判断し、もし空欄ではなかったらさらにその内容は「作業中止」が含まれているかも判断しなければならないことになるでしょう。しかも、全ての行に対して同じ処理をすることになります。仮に1行の判断は0.1秒だとしても、数万行となると数十分になってしまい、完全に無駄な時間になるでしょう。
では、このプロセスにおいて、人間とRPAは果たしてどこか違うのでしょうか?RPAは機械なので、「最初に空欄になっている行」という条件だけでは、普通上記のプロセスになります。人間の場合、作業員が毎日やっていると、「何となくこの辺りじゃないか」という情報は頭に残っているため、探すときは極めて速いでしょう。要するに「目標行の情報」の有り無しに違いがあります。そうすると、RPAにも似たような情報を与えると空欄セルにたどり着く時間が短縮できます。(もちろんショートカットを利用し、一瞬で空欄行まで飛ぶこともできますが、本業務上に他の制限があるため、ショートカット利用は不可となっていました。)
A社は二つの方法を検討していました。
まず、表2のように「RPA稼働日」という列を先に作って、RPAに読み込ませます。するとRPA稼働日は「本日の日付」と結びつけ、RPAがこのエクセルファイルを読み取ると、日付を見て目標行を探せばよいのです。ただし、これでも、理論上RPAが「RPA稼働日」列のセルを一つ一つ見て、対象の日付を特定するというこちになりますので、やはり効率はそこまでよくないでしょう。
「すぐ操作対象の行を特定する」ということを目的とし、表3のように、最初に一行を追加し、「目標行」の情報をあらかじめ記入することを方法2として検討しました。RPAが稼働し始めたらまずエクセルファイルを読み込んで、その後すぐ目標行の情報が記入されているセルのデータを読み取ります。表3を例としたら、「4」になります。「今回の操作は4行目から」という意味をつけて、RPAは1行1行読むことなく、直接4行目から操作を始めます。仮に「目標行」が10万行だとしても、直接10万行から操開始するので、効率は明らかによくなります。そして、作業が毎日行うため、翌日RPAが稼働時「目標行」のデータがずれないように、作業が終わってエクセルファイルを閉じる前に目標行データに「1」を加算し、明日になると、翌行から実行します。方法2の工夫により、RPAの実行時間が大幅に短縮できます。
メールを送信受信関連の処理はエクセルと同じく、RPA化で良く検討される業務でしょう。例えば同じくA社はメールの受信と分類業務をRPA化検討していました。内容としては、特定なメールアドレス宛に送信されてくるメールを件名や添付ファイルの種類に基づいて分類をし、それぞれ特定なフォルダーにOutlookのmsgファイルのバックアップを作成する業務です。メールソフトはOutlookを使って、「振り分けルール」機能もあるが、ルールが複雑のため、設定することが難しい以外、msgファイルを異なるフォルダに保存することもできないでしょう。今まで従業員一人が毎日この作業を行っていたが、この単純作業から解放するために、RPAが最も適任でしょう。
ただし、RPA化するにはいくつかの問題が残っています。まず、A社が使われるRPAソフトはメールの「未読」と「既読」判断は出来なかったです。人間がマニュアル作業を行う場合は毎日対象アドレスの未読メールを見て、条件に満たしていれば、該当のフォルダーに保存するという流れだが、「未読」が分からないRPAにとってはこの作業フローは難しいでしょう。
何も考えなくてRPAを設計すると、流れとしては、RPAがOutlookの「受信」フォルダーにあるすべてのメールを全部取り込み、そして一通一通どの条件に満たすかをチェックして振り分けることになります。そうすると、毎回このフォルダーにある過去のメールも全部チェックすることになるため、作業が重複してしまいます。また、過去のメール履歴が数十万もあるため、効率も非常に良くないでしょう。
上記の問題を回避するために、RPAが一通のメールをチェック終わったら、このメールを別のメール受信フォルダーに移動するように検討します。
具体的には:
Outlookの対象メールアカウントに「受信」フォルダー以外に「チェック済」フォルダーを作成
↓
RPAがチェック終わったメールを「チェック済」フォルダーに移動するように設定
↓
毎日RPAが「受信」フォルダーがからになるまで動作をする
よって、毎回RPAが稼働する際に「受信」フォルダーに未読のメールしか存在しないことになるため、効率はよくなるでしょう。また、たまにRPAが読み取れないメールや分類不能のメールもあったりするが、これらも対応できるようにロジックをあらかじめ組めないといけないのです。対策も簡単で、「イレギュラー」フォルダーを作って、RPAが読み取れなかったメールをこのフォルダーに格納し、RPAが実行終わったら従業員がチェックしに行くこともできます。
今回が紹介したことは基礎的な話だが、実際業務定義段階で結構ある話です。これらの問題を事前にできる限り考慮した上でRPA開発をすれば、開発時間の短縮とRPA実行効率向上の一石二鳥になるでしょう。もちろん、今回紹介した二つの例はRPAソフトによってかなり変わるかもしれないが、このような考え方があるとヒントになれれば幸いです。
アーツアンドクラフツ Consulting & Solution事業部/マネージャー
2016年上智大学大学院経営学部卒業、大手量販店入社。2018年当社入社、Consulting & Solution事業部にて戦略コンサルティング案件、BRP、RPAを始めた業務改善に伴うITコンサルティングなど、豊富な実績を有する。社内効率化のために、最適なソリューションをご提案いたします。