メニュー

社員ブログ

RPAについて

第3システム事業部の遠藤です。
 
初めてブログを書かせて頂きます。
 
皆さんは、RPAという言葉をご存知でしょうか。
私は数ヶ月前まで知りませんでした。
 
今年私は、このRPAを扱うプロジェクトに関わりました。
徐々に盛り上がりつつあるというこの「RPA」について、少し知識を得ましたので、この場を借りて紹介しようかと思います。
 
 
「RPA」というのは、「Robotic Process Automation」の略です。
直訳すると、「ロボットによる工程の自動化」といったところでしょうか。
 
RPAのプロジェクトに参加して、私は最初に以下のような説明を受けました。
「人が行う作業をロボットにより自動化して、工数、稼働を下げ、作業効率を上げていく。」
 
うーん。
 
改めて言われなくても、我々SI屋がやってることってそれでは?と思いました。
ある工程をシステム化し、自動で処理する。
それとこれとどう違うのでしょう。
 
既に稼働している実例として、こういう話もされました。
「カスタマーセンターのオペレーターが、お客様から電話でクレームを受け付ます。それをエクセルに入力して、その後システム化されている画面からデータ入力しているが、そのエクセルデータをロボットで自動で画面入力し登録まで行う。
 
うーん、マクロ?
 
 
RPAとは、簡単に言えばマクロです。
VBAのマクロと違うのは、Windows全体を対象とするところです。
Windows操作を自動化して、定型作業をロボット(コンピュータ)に行わせる。
これがRPAです。
 
エクセルの操作はVBAでごりごり書くとわりと何でも出来ますが、例えばパッケージソフトには適用出来ません。
また、VBAでInternet Explorerを起動することは出来ますが、あるリンクをクリックして、画面遷移したらこのリンクを押して、このメッセージが出たらファイルをダウンロードして...
そういった動きまでは出来ません。(たぶん)
 
それを行えるのがRPAソフト。
RPAとは、RPAソフトを用いて、様々な面倒且つパターン化された作業を自動で行えるようにしよう。というものなのです。
 
お金をかけて大規模なシステムを作るのではなく、簡単に、ささっと少ない工数で自動化する。
(実際には、凝ったものはわりと工数がかかりますが...)
 
 
今回のプロジェクトで使用したのは、「Automation Anywhere」というソフトです。
ソフト名と同名のアメリカの企業が開発・販売しています。
ローカライズされておらず、全部英語表記でした。
(日本法人も出来るらしいです)
 
エクセルのVBAは、(レコードボタンもありますが)コードを書いてマクロを作ります。
対して「Automation Anywhere」ではコーディングはしません。
GUIにより様々なアクションのコマンドが並んでいて、それをパーツを組むように並べていきます。
その組み込んだパーツをインタプリタに実行するのです。
 
例えば下記のようになります。
(わかりやすく日本語で)
 
1:Windowsのスタートボタンの位置が記録してあり、そこにフォーカス移動する
2:「プログラムとファイルの検索」の入力ボックスにフォーカス移動
3:「Internet Explorer」と一文字づつ入力
4:エンターキー押下
5:IEが立ち上がるまでWAIT
6:タブ押下
7:タブ押下
8:タブ押下
9:IEのURL入力ボックスにフォーカスが移っているので、「http://HelloWorld.co.jpと一文字づつ入力
10:エンターキー押下
 
という感じです。
人が行う場合、意識しないで行っているIE立ち上げ~ページ移動のプロセスをプログラムするのです。
 
簡単そうですが、ちょっとしたコツが必要で。
1の、「スタートボタンの位置を記録」ですが、スタートボタンの位置は端末によって変わります。
タスクバーを横にしている人もいるし、自動で消せるようにも出来る。
もちろん「Automation Anywhere」実行端末はそういういじり方はしないようにする前提ですが、動かせてしまうのは(レジストリなど手を入れない限り)可能です。
ですから、もし変わってしまっていたら、指定した位置にスタートボタンが無い!エラー!となってしまいます。
 
位置の指定はいくつか種類があって、座標指定、画像指定など出来ます。
座標指定で設定してしまうと、場所が変わった時エラーになります。
画像指定であれば、その画像を探してフォーカス移動するのでどこにスタートボタンがあっても同様の動きになります。
スタートボタンは「Windowsのマーク」という画像があるので、その画像を記録しておけば良いのです。
画像認識は、何パーセント一致でOKとか、グレースケール化して認識とか、いろいろあります。
 
あと結構面倒なのが、タブ移動。
フォーカス移動する際、タブで移動したりしますが、連続で入力すると早く移動し過ぎて入力が追いつかない。(PCの性能の問題かもしれませんけど)
そいういう場合は、
 
1:タブ移動
2:0.05秒WAIT
3:タブ移動
4:0.05秒WAIT
5:タブ移動
4:0.05秒WAIT
5:タブ移動
 
という作りにしました。
こんなコツが必要です。
 
人間なら簡単に出来ることを、ロボット(プログラム)に処理させるというのは、なかなか一筋縄にはいきません。
人の判断を実現するにはかなり細かく作り込む必要があるのです。
AI、ラーニング機能など加わるともっと楽になるかもしれませんね。
 
 
自動化処理を作るにあたって大事なのは、元々人が行っていた作業をトレースして、タスクに落とし込む作業です。
属人化されていた作業を、詳細にヒアリングし、自動化可能かどうか判断します。
自動化してくださいという要望が挙がっても、それを実際にヒアリングしていくと、その人は意識していなくても細かい判断を入れていた、ということもあります。
その判断をパターン化出来るかどうか。
出来なければ自動化は出来ません。
 
 
今、RPAは注目されている技術のようです。
人依存の単純作業は結構あるので、それを自動化し、個々人の負担を減らし、他の作業に時間を割り当てる。
こんなに良いことはありません。
 
日本でも導入している企業は徐々に増えているようで、生命保険会社や、銀行なども人依存の定型作業は多いので、大手企業が導入している事例があります。
これからこの分野はさらに発展していくだろうとIT雑誌に書いてありました。
 
 
皆さんも興味があったら導入を考えてみてください。
フリーのソフトもあるようですので。