お久しぶりです、AI&ロボティクスセンター あきやまです。
残暑が厳しい今日この頃です。

 

暑いのは苦手なので、早く涼しくなって欲しいものです。
冬は好きなのですが、寒いなら寒いで文句は言うと思います。

皆さん、お身体にはお気をつけて。
さて、以前「クレスコエンジニアに聞いた!おすすめアクティビティ 10 選!」という記事をご覧になった方はいらっしゃいますでしょうか?
おすすめはするものの、実際のプロジェクトでは仕様や目的に合わせたActivityを選択する必要がありますね。

UiPathのActivity数は膨大で、全て覚えるのは非常に困難です。
ですが、実際にはその中の数十程度しか使わない事が殆どでは無いでしょうか。

今回は、クレスコエンジニアがUiPathで作成したロボットで、よく使われているActivityを調査してみました。

ActivityのTOP10だけを覚えれば、ロボットの大部分が作成できる!かも知れません。
では早速御覧ください。
対象ロボット数:7
Activity種別数:151
Activity総数:11,957

〇よく使われるActivity TOP10

よく使われるActivity TOP10 (PJ別)

1位 Sequence [2605個/21.8%]
・説明
含まれる子アクティビティを逐次実行する。
・考察
Activityを並べる際にベースにしたり、処理の纏まりを作る際にも使用しますので、
使用頻度が多いのは予想通りかと思いますが、5回に1回は使っている事になりますね。
見てわかりやすい構成にする為には必須という事でしょう。

例えば繰り返し処理内部の「Do」部分や、Excelアプリケーションスコープ内部の「Body」部分もSequenceだったりするので、人が手動で追加した箇所以外でも、多くの箇所でSeqenceは活用されています。

UiPathには欠かせないActivityですね。

2位 Assign [1865個/15.6%]
・説明
ワークフロー変数の値を設定する。
・考察
UiPathでは、複数のActivity間でデータを共有するために変数を利用しますが、変数を操作する際にはAssignを使うケースが多いです。
また、Acitivityで用意されていない処理を行いたい場合、.NET関数を利用することが多く、そう言った場合にもAssignを利用します。
Assign自体は単なる「代入式」で汎用的な用途に利用できるため、利用シーンも多く上位にラインクインしてきました。

3位 LogMessage [1584個/13.2%]
・説明
指定のレベルにおいて診断メッセージを書き込む。
このメッセージはOrchestratorのログページにも表示される。
・考察
なぜ多いかと言うより、(自社プログラムですが)適切に使用されているなと感じました。
プロジェクトによってはSequenceを抑えて1位になる位使ってますね。
使い過ぎと思うくらいに、多めに使うのがUiPathエンジニアへの近道かも知れませんね。

4位 AddLogFields [532個/4.4%]
・説明
カスタムログフィールドをログに追加する。
・考察

クレスコ標準フレームワークで使用しています。
やはり、エンジニアにとってシステムの挙動を参照出来るログは超重要な機能なのです。

5位 If [492個/4.1%]
・説明
If – Then – Else で条件分岐を形成する。
・考察
処理を分岐させる事が出来るアクティビティですので、順位が高いのは納得ですね。
次点のFlowDecisionと合わせても思ったより少ないなと感じました。
分岐で大事なのは、IFの出現回数よりも分岐の入れ子(ネスト)が深くならないように注意することが大事ですよね。

6位 FlowDecision [489個/4.1%]
・説明
(フローチャートで)条件分岐を形成する。
・考察
IFと内容は一緒ですが、Sequenceで使えない分、少しだけ少ない様です。
Flow Chartアクティビティの中で複数使用し、全体の視認性が高くなる様に工夫している為、
Flow Chartアクティビティの数よりも多くなっていると考えられます。

7位 InvokeWorkflowFile [487個/4.1%]
・説明
指定のワークフローを同期的に呼び出す。
・考察
機能単位のワークフローに切り出す事で、機能の再利用を積極的に行っている様です。
ロボットの規模に関わらず、必ず使用している事からも便利さが伺えますね。
ログと並んで、使いこなす事がUiPathエンジニアへの1つのステップだと思います。

8位 Flowchart [351個/2.9%]
・説明
フローチャート形式でワークフローを作成する。
・考察
よくSequenceと比較される基本的なアクティビティですが、10分の1程度しか使っていません。
これはFlowchartが処理全体の視認性を上げる目的で、1つのFlowchartの中に複数の処理を作成している事が理由と思われます。

9位 State [312個/2.6%]
10位 Transition [312個/2.6%]
・説明
ステートマシンに配置可能なステートを作成する。
・考察
セットなので、纏めて考察します。
Sequence/Flowchartよりも複雑なフローを作成したい時に、このアクティビティで実現する事があります。
Stateアクティビティで”この状態の時の挙動”を、Transitionアクティビティで”状態が変わる条件”を作成し、ロボットの挙動を状態管理する事が出来ます。
クレスコ標準フレームワークで使用しているので数が多くなっていますが、自動化対象によらずロボットの標準化が実現出来るので便利です。

如何でしたでしょうか、皆さんも良く使うアクティビティばかりではありませんか?
思ったより比率が高い/低いと思われたアクティビティもあるかと思います。

正直、基本的なアクティビティばかりでは無いか、と思われるかもしれませんが、基本的なアクティビティがやはり重要という事なのでしょう。

TOP3のアクティビティで約50%、TOP10のアクティビティで75%に上ります。
ロボットの大部分がこれらのアクティビティで構成されている事になります。

もちろん、品質の高いロボットを作成する為には残りの25%も重要ですが、数あるアクティビティの中から、まずはTOP10のアクティビティの理解を深める事が、近道なのかも知れません。

さて、ここで非エンジニアが作成したロボットのActivityを見てみましょう。

対象ロボット数:2
Activity種別数:54
Activity総数:2128

〇よく使われるActivity TOP10(非エンジニア)

クレスコエンジニアのロボットと比較すると、同じアクティビティが多いですね。
ただ、以下の点が面白いなと感じましたので、考察してみましょう。

①AssignとSequenceの順位が逆転している。
Sequenceが少ないというより、Assignの使用が非常に多いと考えられます。

見てみるとExcel操作が多く、Excelアプリケーションスコープが60もあるのは多すぎますね。
UiPathは範囲を読み込み(ReadRange)アクティビティを使い、シートを丸ごと表データ型(DataTable型)で抽出する方法がデファクトスタンダードなので、シート数が膨大でない限りはExcelアプリケーションスコープをそこまで使わずに済むはずです。
この例では、ReadCellで1セルずつ読みだしているため、プリミティブな変数に書き出したりするのにAssignを多くつかってるんじゃないかという仮説が経ちます。

②機能的なアクティビティが多い。
ExcelReadCellアクティビティやGetRowItem等、特定の目的を持ったアクティビティが多いですね。
Excel関連の比重が高いので、Excelを使用する業務を対象としていたと見受けられます。
ただ、前述の通りExcel関連のアクティビティはもっと減らす事が出来そうです。
恐らく、ロボットを構築しながら、都度使用するアクティビティを決めたのでは無いかと考えられます。
設計の時点で、適切に機能分割が出来ていれば、同じ業務でもアクティビティの総数を減らし可読性の向上が見込めますね。

今回の調査では、クレスコエンジニアの使用したアクティビティ種類数が151、非エンジニアが使用したアクティビティ種類数は54でした。
約300種類あるアクティビティの中で、これだけの数があれば自動化が可能である事がお分かりいただけたかと思います。

さらにクレスコエンジニアが作成したロボットは、安定性・効率性も意識して作成しています。
特に、使用率が高いアクティビティは自動化対象の業務に関わらず、使用すべきアクティビティと考えられます。

参考に、ページ下部にTOP11~TOP50を載せておりますので、併せてご覧ください。
意外なアクティビティがあるかもしれません、逆に無い事に驚かれる事もあるかもしれませんね。
もちろん、自動化したい業務、操作に適したアクティビティを選択する事が重要ですし、使い道が無いアクティビティは存在しません。

ですが、アクティビティが多すぎて、UiPathは難しいのではと感じてしまっている方。
この記事を参考に、まずは使用率の高いアクティビティから学習頂いては如何でしょうか?

私も含め、クレスコエンジニアでも最初から様々なアクティビティを使いこなせたわけではありません。
メンバーそれぞれが学習し、共有し、少しずつ使いこなせるようになってきました。

同じように、皆さんのUiPathライフの一助になれば幸いです。
〇参考(TOP11~TOP50)