2018.08.31
よくお客様からの質問で「プログラミングができない人でもRPAの操作を覚えることはできますか?」と聞かれることがあります。
結論から言うと、あくまで私見ですが、やはり多少のプログラミングの勉強をしてから、
もしくはある程度プログラミングの基礎知識のある方が行うほうがより生産的になると思われます。
RPAのツールであるUIPATHやWinActorなどはワークフローという概念を使って、
プログラミングの知識のない人でも簡単に自動化ツールを作成できるように設計されています。
これらのRPAツールは、そもそものコンセプトとして、プログラム言語の入力をしないでも実装ができることを謳っています。
確かに、クリックするだけやダウンロードするだけなど、本当に簡単な業務であれば可能ですが、
実際にRPA化しようとする業務は、そこまで簡単なプロセスだけで構成されているわけではありません。
というのもRPA化の対象となる業務というものは、単一の簡単な作業だけで終わるものでなく、
幾つかの工程が連結して一つの業務になっているからです。
例として、webサイトからデータを取得し、加工してからエクセルへ書き込む業務アプリのアルゴリズムについて考えてみましょう。
一般的なプロセスの流れは以下になります。
1. Webブラウザを起動する。
2. 対象のURLを入力してWebサイトを開く。
3. データが表示されているページへ遷移する。
4. 取得対象のデータを指定し、取得する。
5. Webブラウザを終了する。
6. エクセルへ書き込みをするためのデータ加工をする。
7. エクセルを開く。
8. エクセルの対象セルに書き込む。
9. エクセルを保存して閉じる。
上記、簡単にではありますが、アルゴリズムを挙げてみました。冗長な点がありますが無視します。
プログラミング経験者は、ここで、どうすれば実現できるかをイメージできるかと思います。
上記に挙げたこれらの各工程ですが、それぞれ単一の動作(= 業務アプリのアルゴリズムの一手順)だけであれば、
プログラミング初心者であっても容易に自動化することはできるかもしれません。
しかし、それでは業務自体は終わってませんよね?
工程の一部だけを自動化しただけであれば、残りの工程については、
人間による手作業で行わなければならず、自動化の恩恵を十分に享受することはできません。
この例でいうと、webサイトから情報を取得し、
エクセルに書き込むまでが一つのまとまった業務であり、それらの連結を意識する必要があります。
ここで、上記の工程を全て自動化する場合にやること、気を付けるべきことについて述べていきたいと思います。
あくまで一例ですが、具体的にどうすれば実現できるか、UIPATHを例に考えてみましょう。
1. Webブラウザを起動する。
2. 対象のURLを入力してWebサイトを開く。
3. データが表示されているページへ遷移する。
→ この1~3.の工程については、OpenBrowserアクティビティに対象ページのURLを設定することで実装できます。
4. 取得対象のデータを指定し、取得する。
→ Data Scrapingでwebページのスクレイピングをしてデータを取得します。
5. Webブラウザを終了する。
→ Close Applicationアクティビティでブラウザを終了します。
6. エクセルへ書き込みをするためのデータ加工をする。
→ データテーブルの構造など、書き込みできる形式に変換や、計算などをします。
7. エクセルを開く
→ Excel application scopeアクティビティに対象エクセルのPathを設定します。
8. エクセルの対象セルに書き込む。
→ Write RangeアクティビティやWrite Cellアクティビティなどを利用して書き込みます。
→ また、書き込みたいデータが複数ある場合は、For Eachアクティビティなど、ループを利用して書き込みます。
9. エクセルを保存して閉じる。
→Close Workbookアクティビティでエクセルを閉じます。
上記では、簡易的に最小限の必要アクティビティを列挙しましたが、実際のRPA開発の現場では、
エラー発生時の振る舞いについても考慮し、実装しなければなりません。
例えば、Webサイトが改変されて、必要情報の位置が変化したとき、対象エクセルファイルが指定フォルダに無かった場合、
取得した値が計算できないものであるとき(0での割り算、「円」等の文字が入っている)等、
エラーの種類には様々なケースが想定されますが、それらが起こった時の対処方法も考える必要があります。
また、汎用化を考えたとき、変数や、配列、関数やサブルーチンなどの知識も必要になるでしょう。
例えば、汎用化を考えた場合、URL等の個別情報をUiPATH内に直に書き込むよりか、
エクセル等の外部ファイル(設定ファイル)に値を持たせて、何か変更があった場合は、
そのファイルを書き換えて対応する手法が一般的であったりします。
また、サブルーチンも汎用化するときによく使われる手法です。
一つのプログラムファイル(UiPATHだとXamlファイル)内に全て打ち込むのではなく、
汎用的で他プログラムにも使えそうな機能については、サブルーチンとして切り出します。
UiPATHだとこのサブルーチンはワークフローという名称で扱われるものになります。
このようなサブルーチンとなる機能としては、例えば、
「読み込んだデータをPDFで出力する」とか「年号を西暦に変換する」、「PDFを読み込んでExcel化する」といったものが挙げられます。
プログラミングの基本に順次・分岐・反復というのがありますが、上記業務アプリにも必要な知識となります。
順次というのは「上から順番に下まで処理する」ということで、プログラミングの基本フローとなります。
分岐というのは条件分岐のことです。
これは通常「if」を用いて扱われるものです。
業務処理をする上で、幾つか場合分けをする必要があるとき、
例えばWebから取得した情報が一定の値以上の時とそれ未満のときで出力ファイルを分けるなど、
条件によって処理を分けたい時に使われます。
反復というのは、配列やデータテーブルなど、データの塊を処理するときによく使われるものです。
「for」や「while」といった文が使われます。
例えば、取得したデータテーブルにおいて、一行一行値を取り出していくときなどに「For Each」文等が使われます。
このように、ひとつの業務を自動化するには、少なからずプログラミングの知識が必要になります。
従って、まったくの未経験の状態でトライするよりかは、
ある程度基礎知識を身に着けた上で取り組まれるのが望ましいと言えます。
ただ、プログラミングの概念自体は単純ですので、
少し勉強すればだれでも簡単な業務アプリは作れるでしょうし、RPAツールはそのような設計になっています。
つまり、RPAツールというものは、実は、多少なりともプログラミングの経験者を対象としているわけです。
多くの巷間のRPAツールは「誰でもできる」ということを謳っていますが、
その言葉をそのまま信じてプログラミング未経験者である総務担当や経理担当の者がトライして挫折するケースをよく耳にします。
やはり、私としては、いきなりRPAに取り組まれるよりかは、まずはプログラムの基礎勉強をしてから望むことを推奨します。
そのほうが、実際にRPAツールに手を触れた時の理解も進むと思われます。
こういった自動化技術の広まりによって、人的ミスの撲滅や、人件費削減など、一見メリットに思える一方で、
AIやIoTの発展によって、ユビキタスネットワーク化が進み、人間の仕事がなくなるのでは、とまで言われています。
結構ネガティブと捉えがちですが、ポジティブに考えれば、定型的な業務はロボットで自動化し、
空いた手をクリエイティブな業務に活かすことで、社会も、会社も、労働者も一緒に成長することができるのではないでしょうか。
これを機に、ユビキタスネットワークの世界に飛び込んでみてはいかがですか???