【RPA】(Microsoft)Power Automate Desktop を使ってみてわかったこと。~プログラマ視点でできること(できないこと)をまとめてみました(後編)~

目次

前回の続き

今回お話するのは、前編の続きでRPAのお話しです。
RPAを初めて触ってみて、気づいたこと、できること、できないことについてまとめています。前編は以下のリンクからどうぞ。

エラー発生時のアクションを、1アクション内に設定できる。

例外が発生した場合、既定の動作ではフローが停止され、エラーが生成されます。
例外処理を登録しておけば、フローの停止を防げます。
ほとんどのアクションのプロパティには、エラー発生時のボタンがあるので、それぞれに例外処理設定が可能です。ただ、あくまでフロー編集画面のデバックのエラーメッセージとして表示されるのみで、通常の実行ではエラーの詳細は分かりません。
エラー発生時のサブフロー(エラー発生フロー)に、エラー内容をメッセージボックスで表示するよう設定しておけば、分かりやすいかなと思います。

C#でいうところのtry catch~のような例外処理ができる

アクションのブロック単位で例外処理を設定したい場合は、「ブロックエラー発生時」でアクションを囲うことで、try catchのような処理が実現できます。
各アクションに同じ例外処理を設定したい場合や、どのアクションでエラーが起きるかわからないときなどに使用します。
プログラムでは、DBへのアクセスやEXCELを開く・書き込みなどの処理に、try catheが使われますよね。
そのようなイメージで、エラーが発生する可能性がある処理単位で使用することをお勧めします。

VBAでいうところのGoToが使える

GOTOって便利ですよね。ただ、VBAに限らないですが、GOTOのような構文はあまり推奨されません。
理由は、処理順序があっちこっちで飛んでしまい、順番が乱雑になるからです。
できたら、「サブフロー」を駆使して、「メソッド」のように扱うほうが良いかと思います。

JavaScript、コマンド、VBScript等を駆使すれば、いろいろできる

すでに用意されているアクションに限界がきたら、これを検討しましょう。

ログの作成、出力ができる

「テキストをファイルに書き込み」や「現在の日時の取得」等のアクションを使用して、ログの出力が可能です。DOSコマンドを使っても作成するのでもいいかもしれません。

デバック、1行ずつ実行が可能

変数をクリックして、現在の変数の値を見ることができます。

CSVの読み取り時など、文字コードに注意する。文字化けに注意する。

読み取りの際の設定で文字コードを指定できます。
変数の中身を見れば、文字化けしているかわかります。

RPA実行中は、同じ端末で他の作業ができない

RPAの作動中は、操作が奪われるので、RPA専用の端末が必要になります。
正確にいうと、RPAは人間が操作しているのと同じように画面を操作するので、自作業の操作と被り、RPAの動作エラーが発生します。

マルチスレッド(並列処理)ができない

RPAは、順次実行です。
あるアクションを実行中に、他のイベントを実行して今実行中のアクションへ割込みをするなどはできません。
また、他のアクション(イベント)の発生を拾うこともできません。
例えば、
実行中の自動操作(ツール)を、停止ボタンを押したタイミングで停止させる
⇒停止ボタンを押したイベントを拾うために、停止ボタンUIを表示させたとしましょう。
それが押下されるのを待つイベントを発生させた場合、順次実行のため、本来の自動操作と同時に実行することはできません。
理由としては、先の項目で述べましたが、RPAの処理は、PCの操作を占有して処理するので、複数のしなりをを並列実行することができません。
Windowstasタスクマネージャを使用して、指定時間になったら別のシナリオを起動させるという方法もありますが、そのときに実行中のシナリオがある場合は、後に指定したシナリオは開始されないようです。

ifなどの条件文で、算術、比較、論理演算子、()を演算子プルダウンを使用せず、直接入力することで複雑な条件文を作ることができる

ifなどの条件文を使用する際、演算子がプルダウンで選択できるようになっていますよね。
最初は、このプルダウンのみでやっていましたが、複数の条件を書きたいな…と思ったとき、条件文を入れ子にすればいいのですが、1文で書くことができることに気づきました。

使用できる主な例)

算術

+、-、*、/

比較演算子

=、!=、<、<=、>、>=

論理演算子

AND、OR

例)
%5*3%
%Index = 1 OR Index = 2%
%Index = 4 AND Text = "Four"%
%(x+y)*12%

作成したフローは他ユーザと共通できる

有償版であれば、フローを共有化できます。詳しくは、公式サイトを参照してください。
無償版でも、フローを右クリックでコピーし、メモ帳等に張り付けてテキスト化することで共有することができます。ただし、フロー単位なので、Main、サブフローはそれぞれにテキスト化する必要があります。
また、「入出力変数」の変数はコピーされませんので、注意しましょう。

今日はここまで。