Power Automate for desktopで止まらないフローを作るコツ – T2 Labs


みなさんこんにちは。ASAHIロボ研のT2です。
Japan Power Platform Conference 2022 楽しかったですね。
運営に携わってくださった方、大変お疲れ様でした。

 

今日のお題は、Power Automate for desktop(以下PAD)で、皆さんがお困りの「フロー止まっちゃうんだけど…」問題に対し、何に気を付ければ、止まりにくいデスクトップフローを作れるのか、というお話です。

 

言葉の説明など細かな話はここでは割愛していますので、分からない言葉があるかたは サポートサイト をご確認ください。

 

止まらないフローとは

では、止まらないフローとは何かを考えてみましょう。

当社のお客様の中には、2年間でフローのメンテナンスはたったの2回だけ、それもパソコンの入れ替えと、システム側の設定変更によるもので、それ以外は常時稼働しているフローであったり、そもそもパソコントラブル以外ではノーメンテナンスというフローが稼働している企業様もいらっしゃいます。

 

ですが、これらのフローもユーザーの設定ミス、例えば社員コードの間違いなどにより、フローが正しく動作しない場合があります。

この際に「エラーです」としか表示されなければ、フローに問題があるのではないかと考えてしまうかたが多いのではないでしょうか。

ですが、「社員コードXXXは登録されていないアカウントです。マスタを確認し再度実行してください。」という表記であれば、フローではなくユーザーの間違いであることが瞬時に分かります。

これであれば、フローは動いていませんが「RPAが止まった!」と感じるかたは、一気に少なくなるのではないでしょうか。

 

 

そして、そもそもRPAを実行してから間違いに気づくのではなく、RPAを実行する前にユーザーが間違えに気づいたり、間違わない仕組みを作ることが理想形です。(最も簡単なものであれば、VLOOKUPでマスタ参照かけるとかですかね。XLOOKUPスバラシイ)

ユーザー側の間違いを正しく伝えることが、とまらないフローの第一歩だと思います。

 
ですが、ユーザーに起因したものはすぐに解決できますが、RPAが止まる原因は様々です。
次にフロー内で発生する様々な外部要因に対し、止まらずに動作させるフローを構築する方法をお伝えしていきます。

 

セレクターを正しく設定

「XXに失敗しました」というのは、よくみるエラーの内容ですね。
その際、あなたはUI要素を毎回取得しなおしていませんか
ほとんどの場合、UI要素を取り直す必要はありません
必ずこの方法でうまくいく、というわけでありませんが、ここを気を付ければほとんどのケースに対応できるものについて、お話していきます。

 

ウィンドウを取得できません

PADの場合は、かっこ書きの部分が原因を表しています。
「Clickに失敗しました。(ウィンドウを取得できません)」というエラーの場合は、ウィンドウを取得できないために発生しているので、ウィンドウを取得するためのセレクターに問題がある、ということになります。

 

このような場合は、ウィンドウのUI要素を修正します。
よくあるパターンはウィンドウタイトルが変わってしまう、というもので、「XXシステム ver 20221024」みたいなシステムをよく見かけます。(会計システムだと、令和XX年 税制対応版のようなタイトルになっているものがありますね)

 

また、Webページの場合はどうすればいいですか?というご質問をいただくケースがありますが、「Webページのリンクをクリックする」のようなブラウザー自動化アクションを使用していれば、ブラウザインスタンスで操作対象のブラウザ(タブやウィンドウ)を判断しますので、気にしなくて大丈夫です。
ただし「名前を付けて保存する」など、ウィンドウ内のUI要素を操作する場合(UIオートメーションのアクションを使用する場合)は、セレクターの修正が必要となります。

 

UI要素を取得できません

次にウィンドではなく、項目が取得できないケースを見ていきます。これで困っている人多いですよね。
今回はEdgeの名前をつけて保存がうまくいかない、という方が結構いらっしゃると思いますので、これをベースにお話しします。
実は対処方法は簡単で Class もしくは Id にランダムっぽい値が入っていたら外す だけです。

 

 

実際に取得したUI要素を見てみると「Class=”c0190″」のような’c+数字’で構成された情報がいくつか設定されています。(黄色いマーカー)
またidも「Id=”list-item-2674″」と、これまたランダムっぽい値が入っています。(赤いマーカー)

なので、これらのチェックを全て外します。

これだけで、名前を付けて保存がキチンと押せるようになります。(もちろんパソコンを変更しても動きます)
実際には外さなくてもいい箇所もありますが、1個ずつ確認するよりも、一気に外した方が楽ですよね。
この方法は Edge だけではなく、ほかのシステムでも流用できます。

 

待機のアクションを正しく使う

始めてデスクトップフローを作ったかたの多くに共通しているのが Waitアクションの多用です。
指定した秒数だけ待機するので、直感的でわかりやすいのですが、いざ運用しようとするとよく止まります
そして止まってしまうのを回避するために10秒待機を30秒待機に伸ばす、といったように、実際に画面を操作する時間より、待機している時間のほうが長くなってしまうということに心当たりがあるかたもいらっしゃるのではないでしょうか。

 

使いこなせるようになると分かりますが、PADは人より速く処理を行います
作ったフローが人より遅いということは、フローの作り方がほぼ確実に間違っています

 

ウィンドウを待機する、ウィンドウコンテンツを待機する、Webページのコンテンツを待機する、ファイルを待機するといった、待機のアクションを正しく利用できるようになると、フローの安定性がぐっと上がります。

 

例外処理を正しく構築

次に例外処理について触れていきます。
これがうまくができれば、ほとんどのケースで止まらずに動きます。

 

アクションを再試行する

一番簡単なものですね。
システムの仕様で、ベストな待機アクションがなく、やむを得ず Wait で待つしかなかったり、ページのロードが異常に遅いシステムなんかで設定しておくと、とりあえず対象のアクションを繰り返してくれるので、なんやかんやで上手くいったりします。
ただ、全てのアクションに設定しておくわけではなく、対象アクションの前の処理で時間がかかる場合に使ってあげると効果的じゃないかなと思います。

 

ラベルで特定の処理ブロックを繰り返す

私はキー送信を使う時に、よくこの方法を使います。
例えば、 キー送信 → ウィンドウ待機 → テキストを入力 という流れの場合、キー送信がうまくいかないと、そこでフローが止まってしまいます。
そこでキー送信の前にラベルを配置し、ウィンドウ待機でタイムアウトしたら、キー送信に戻る、といった流れにします。

 

処理を全部やり直す

皆さんはフローが止まったら、とりあえずもう1回動かしてみる、ということをしませんか?
そしてなぜかうまくいく、ということを経験した方もいらっしゃるかと思います。

 

市民開発者はプロではありません。
フローが止まった原因を追求するよりも、そのフローが動くことで、本来の業務が楽になったり、時間短縮することが目的です。

なので、深いことは考えず、止まったら最初からやり直し、という方法もありです。
そこで活躍するのが、ブロックエラー発生時のアクションです。

 

例えば、ブラウザを操作する処理であれば、エラー発生時に、起動したブラウザやExcelを閉じるように設定したサブフローを実行し、クリーンにした状態で、再度ブロックの先頭から処理を行います。
これにより、全ての処理を最初からやり直す、ということが出来ます。

 

やり直しは規定回数まで

さて、ここまでやれば、恐らくほとんどのケースで止まらなくなります。
ですが悪い意味でも止まりません。
すなわち、明らかなバグがあったとしても、処理を繰り返し続けてしまう、ということになります。

 

なので、やり直しを行う場合には必ず回数制限を設けるようにしましょう。
エラー発生時に変数をプラス1するように設定することで、エラー回数を取得できます。

そして次にIfアクションで規定回数を超えた際に、フローを止めてしまえばOKです。

 

履歴を残す

ですが、これだけだと結果的に何で止まったのか、一から確認が必要です。
そこで、どのデータ(何行目なのかや、どの担当者なのかなど)が、何のエラーで止まったのか、というのを履歴を残すようにしましょう。

エラーの内容は、最後のエラーを取得アクションをつかうことで、取得できます。

 

ログの残し方はやり方は様々ありますが、シンプルなものだと、Excelに残す、テキストファイルに保存する、あるいはメールで通知するといった方法が一般的かと思います。

 

RPAがストレスにならないように

市民開発者のかたで、PADやRPAを頑張って導入したものの、中々うまく動かずプレッシャーを感じてしまう人もいらっしゃると思います。
頑張りすぎて、自分が辛くなってしまっては本末転倒です。
そういったかたは是非ロボ研を頼ってください。
PADに関する情報量、経験は国内でトップクラスだと自負していますので、ほとんどの課題はすぐに解決できると思います。
是非ストレスを感じているかたや、導入がうまく進まないかたは、一度ご相談いただければ幸いです。




 
ロボ研では、Microsoftパートナーとして、Power Automate を利用したフローの導入・運用・開発支援、
Power AppsなどのPower Platformを活用した効率化・自動化支援、Power Automate for desktop(RPA)の勉強会の開催を行っております。


お客様の業務効率化・生産性向上に向け、最大限のご支援をさせていただきます。

ぜひご相談ください。

 

 

◆ Power Automate / Power Automate for desktop 向けサポートサイト ◆
Power Automate サポート ★一部無償でご覧いただけます★

 

◆ セミナー定期開催中◆
経営者のためのDXセミナー(仙台、山形)
事務スタッフが始める!自動化・デジタル化Webセミナー(オンライン)

 

◆ 過去の記事 ◆
ブログ記事一覧

 

◆ 書籍 ◆

Power Automate for desktop(Power Automate Desktop)や RPA に関する書籍を出版、監修しております。