【RPA】コーディング知識の必要度/ツール別比較

RPAは**システム開発と違って現場のメンバーでも開発できる**、というのが売りの1つなのですが、利用するRPAツールによってはそれが本当ではなくなることがあります。フローチャートの作成までは簡単であっても、その**プロパティにロジックを仕込む段階で難易度が格段に上がるツール**もあります。そうなってしまうと、高度なコーディングスキルを持つ担当者を常に張り付けておく必要があり、いつまでたっても外注に頼る＝システム開発と同じ状況に陥ってしまいかねません。現場メンバーの(一番できる人ではなく)**平均的なスキルレベル**にあわせて、そのコーディングレベルにあわせたRPAツールを選択する必要があります。

ということで、この点に絞って主要5大RPAソフトウェア (WinActor、BizRobo!、UiPath、Automation Anywhere、Blue Prism)の必要なコーディングスキルのレベルを比べてみたいと思います。

# ロジックの作成とコーティング知識の必要度 - ずばり比較！

|RPAソフトウェア|必要なコーディングレベル|説明|
|:--|:--:|:--|
|WinActor|<font color="Red">**★★★★★**</font>|各シナリオにはプロパティのスクリプト実行に**VBScript**を埋め込むことでロジックが組めます。ただし、ダイアログボックス内のテキストボックスにスクリプトをべた張りするだけなので、ステップインなどのデバッグ機能はなく、待機ボックスやログ出力をコード内に仕込んでデバッグする必要があるなど、デバッグには高度なテクニックが必要になります。<br/>変数一覧を表示しておき、必要な場所で「待機ボックス」ノードで一次停止すると変数の内容確認ができます。もしくは、「デバッグ：変数値保存」でログに書き出すなどする必要があります。|
|BizRobo!|<font color="Red">**★★★★**</font>|各ステップの「アクション」として「値判定」をはじめとしていくつかのアクションで条件/値を指定するところで「エクスプレッション」、つまり式や関数などによる指定を行うことができます。関数やオペレーターは**Java**様式です。ドロップダウンメニューを選択していくことによる入力支援機能があるので、利用できる関数やオペレーター自体を覚える必要はないものの、並べ方までは支援してくれないため、文法や引数の数などを正しく配置するために、Javaの知識が必要になります。文法が正しくないと赤い感嘆符が表示されて赤の波線が表示されることがあるが、コーディングを知らない人はどう直せばいいかお手上げでしょう。デバッグモードではステップごとに実行して一時停止したり、ブレークポイントを設定する機能があります。|
|UiPath|<font color="Red">**★★★★★**</font>|各アクティビティに付属する様々なプロパティで「VBの式」を設定することができる。その書式はほぼ**Visual Basic.NET**であり、式エディターでは入力していくとVB.NETのクラスや関数がインテリセンスで表示される。まさにVisual Studioで開発しているのと同じ感覚でコーディングを行うことになる。Visual Studioに慣れている開発者であれば容易に使いこなせる一方、スキルの高くない現場メンバーには難しい。デバッグ機能もVisual Studioと同様、ステップイン/ステップオーバーや変数の監視など様々な機能が用意されている。|
|Automation Anywhere|<font color="Green">★</font>|各コマンドをドラッグ＆ドロップして表示されるダイアログボックスは文字列の指定を除くと関数や数式を入力できる自由度はほぼない。そのため、コーディングの知識がなくてもダイアログボックス上で選択肢を選択していくだけでロジックが完成します。<br/>アクションリスト単位でのデバッグ機能があり、1コマンド毎に実行を一時停止して変数の中身を見るステップオーバー機能や、ブレークポイントを設定する機能があります。部品ロボットであるMeta Botは通常のロボットと同じコマンドから構成することもでき、任意の開発言語でDLLを作成してそれを呼び出すようにすることもできる。|
|Blue Prism|<font color="Orange">★★</font>|開発工程はオブジェクトとプロセスの設計に分かれている。フローチャートの各ステップでアクションプロパティにVBO (Visual Business Object) と呼ばれるライブラリを指定してその中のアクションを指定して入出力の引数を指定することでロジックを組むので、基本はコーディングは発生しない。一部のダイアログボックスでは式/関数の入力を求められる。入力支援機能があるものの、手入力と修正を許す自由度があるため、このダイアログボックスの編集では多少のコーディング知識が求められます。<br/>デバッグ機能は、実行中に停止したり、データ項目を書き換えて途中から実行する等の機能があります。また、VBOは**Visual Basic.NET/C#**で開発します。VBOには様々な種類があるが、CSVファイルやFTPの処理など頻繁に使いそうなもので意外と標準でないものがあり、その場合は.NETでコーディングして開発する必要があるので注意が必要である。|

### WinActorのロジック作成画面
ダイアログボックスのテキストボックスにスクリプトを貼り付ける構造になっています。入力支援の仕組みや、ステップインなどのデバッグの仕組みは備わっていません。
![WinActor-code.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490819/b91b8fdd-dfa6-a819-9a13-6eb63f102d34.png)

### BizRobo!のロジック作成画面
アクションの内容も、エクスプレッション (数式) で使える関数やオペレーターも、すべてメニュー形式で選んでいけるのは初心者にもやさしい。ただし、自由に入力できる余地があるので、いくら支援機能があったとしてもコーディングの知識がないと正しい式は組めないでしょう。
![bizrobo-code.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490819/e59bbe9f-3803-4ed8-9e49-307461bb651f.gif)


### UiPathのロジック作成画面
アクティビティの様々なプロパティで「VBの式」の入力が可能で、式エディターではVisual Studioのインテリセンスという入力支援機能がほぼそのままの形で利用できる。ただし、VB.NETのクラスや関数をある程度覚えている必要がある。
![uipath-code.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490819/18e84041-1f82-f6f6-1d2c-75dfca05ffb9.gif)

また、UiPathは変数に利用できる型が豊富であり、VB.NETのライブラリがそのまま使えるが、これも知識のない現場メンバーには難しく感じるでしょう。逆に、メンバーにVisual Studioを使いこなす平均的なスキルがあるのであれば、さまざまな自由度があるので重宝します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490819/85904042-4700-b825-209f-d48bea693220.png)


### Automation Anywhereのロジック作成画面
Automation Anywhereでは左側のコマンドリストからドラッグ＆ドロップでコマンドを追加します。ドロップが完了するとオプション設定のダイアログボックスが表示されます。
![AutomationAnywhere-command.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490819/643e38e1-c979-2469-aed1-486158448b5d.gif)

ダイアログボックス内では選択式のユーザーインターフェイスとなっており、自由に入力できる部分は基本、静的テキストを入力するボックスです。変数に値を代入するVariable Operationコマンドでは、四則演算と変数を使った簡単な式を入力できます。文法を間違った場合は文字列として認識されます。少し複雑な式を作ろうとすると、このVariable Operationを変数を媒介して複数回実行する必要があり、多少まどろっこしいと感じる場合もあるでしょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490819/a5d76db2-22f7-fac9-2ee8-59c8782aee87.png)


### Blue Prismのロジック作成画面
Blue Prismでは、フローチャートのアクションプロパティでビジネスイブジェクト内のアクションを指定していくという方法でロジックを組んでいきます。VBO (Visual Business Object) というライブラリが標準またはインターネット上で配布されており、必要なVBOを指定してそのアクションを指定して、入力、出力の引数を指定すれば動作するようになっており、基本的にはコーディングは発生しない。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490819/eeb5f558-807f-4f08-3f51-cd3cdd207808.png)

ただし、「計算のプロパティ」など一部のダイアログボックスでは数式を最終的に手入力で入れることが求められます。基本は左側の関数からドラッグ＆ドロップするのですが、最終的な文法チェックは手で修正した後に「Evaluate Expression」ボタンを押して評価するため、ここで間違った文法で指定すると修正するにはコーディングの知識が一部必要になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490819/9ae0aaed-cd94-8940-8ab9-476fbc041c5e.png)


# まとめ
まとめると、WinActor、UiPathは最もコーディングスキルが要求されるつくりになっています。現場のメンバーが触れるロジックもその分自由度が高くなっています。BizRobo!は次いでスキルが要求されます。Automation AnywhereとBlue Prismはコーディングスキルはあまり要求されないため、スキルレベルが高くない現場メンバーでも扱うことが容易です。

# 関連記事

* [【RPA】プロセスマイニング・タスクマイニング (プロセスディスカバリー) 対応状況/ツール別比較](https://qiita.com/Okura_/items/320e84651403ac4266a1)
* [【RPA】ロボット実行環境のOS対応状況/ツール別比較](https://qiita.com/Okura_/items/8975d6cd7ba0ff2ff61b)
* [【RPA】基本用語/ツール別比較](https://qiita.com/Okura_/items/2cb0dd2ce17356bb50ea)
* [【RPA】どのランタイム環境上で作られているか/ツール別比較](https://qiita.com/Okura_/items/a3f9393267e655e7300d)
* [【RPA】メールの送受信/ツール別比較](https://qiita.com/Okura_/items/369d95a938a05e836417)
* [【RPA】自動化に対する思想/ツール別比較](https://qiita.com/Okura_/items/1c8b29d40d98f2e5ce63)
* [【RPA】サーバー管理の仕組み/ツール別比較](https://qiita.com/Okura_/items/dfc380ec50df6b289391)
* [【RPA】トリガー・スケジュール機能/ツール別比較](https://qiita.com/Okura_/items/7d5e617260378fd2947f)
* [【RPA】ロボットの稼働方法 (ヒトロボ協働型・ロボ自律型)別ライセンス提供/ツール別比較](https://qiita.com/Okura_/items/e9c9f394ae5805481b2b)
* [【RPA】オブジェクト指向のロボット作成/ツール別比較](https://qiita.com/Okura_/items/923706e8f4c8e3628522)
* [【RPA】シンクライアント操作への対応/ツール別比較](https://qiita.com/Okura_/items/13de777603cd9912992b)
* [【RPA】SAP対応/ツール別比較](https://qiita.com/Okura_/items/b265ca3f083b92471b58)
* [【RPA】対応ブラウザー/ツール別比較](https://qiita.com/Okura_/items/8501117954139300f427)
* [【RPA】UI Automation 対応状況/ツール別比較](https://qiita.com/Okura_/items/95a78c46454ae0dac036)
* [【RPA】ログイン情報の保管方法/ツール別比較](https://qiita.com/Okura_/items/12cdcc743670c6d9c7c7)