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雑誌に書いて ありました。
皆さんも興味があったら導入を考えてみてください。
フリーのソフトもあるようですので。