こさい
こさい

こんにちは。完全自動化研究所の小佐井です。
この記事ではPower Automate for desktopにおけるエラー処理の大切さを解説します。

エラーについて、よく考えたことないな…

めーたん
めーたん

Power Automate for desktopに限らず、RPAにより自動化を実行する際はエラーが発生することを前提としなければなりません。

使用するアプリケーションの変更(図1❶)、使用するファイルが存在しない(図1❷)など、RPA側からはコントロールできない要素でエラーが発生する可能性があるからです。

【図1】RPAはエラー発生が前提

エラー処理は考慮するべきことが多いので、3つの記事で解説していきます。

最初に本記事では、エラー処理を行わないフローを作り、エラー処理の必要性について考えます(図2❶)。

次にエラー処理を行うフローを作成します(図2❷)。エラー処理を行うフローについては、記事を分けて、「まとまったフローのエラー処理を行おう」「ピンポイントでエラー処理を行うには」で解説します。

【図2】記事の構成

【Memo】検証バージョン
OS:Windows10

Power Automate for desktopバージョン:2.23.X

それではどうぞ!

エラー処理の必要性を理解しよう

こさい
こさい

まず、フローを作成する準備を行い、フローを作成しましょう。
エラーについての解説はその後行います。

本記事で作成するフローの概要

テキストファイルを読み込んで(図3❶)、演算を行い(図3❷)、最後にメッセージボックスを表示する(図3❸)簡単なフローを作成します。

【図3】フローの概要

作成準備

STEP1 [エラーテスト.txt]を作成する

ドキュメントフォルダー内に[エラーテスト.txt]を作成してください(図4)。

エクスプローラーでドキュメントフォルダーを開き、右クリック⇒新規作成⇒テキストドキュメントをクリックしてください。新規作成されたテキストファイルの名前を「エラーテスト」とすることで作成できます。

【図4】エラーテスト.txtの作成

[エラーテスト.txt]を開き、「1」と入力して上書き保存してください(図5)。

【図5】エラーテスト.txtの編集

STEP2 新規フロー[エラー処理]を作成する

Power Automate for desktopのコンソールを選択し、[新しいフロー]をクリックしてください(図6)。

【図6】[新しいフロー]をクリック

[フローを作成する]画面が表示されるので、[フロー名]に「エラー処理」と入力し、[作成]をクリックしてください(図7)。

【図7】フローを作成する

フローデザイナーが起動します(図8)。

【図8】フローデザイナーの起動

作成方法

STEP1 [コメント]アクションを追加する

アクションペインの[フローコントロール]グループ内の[コメント]アクションをワークスペースに追加してください(図9)。

【図9】[コメント]アクションの追加

[コメント]ダイアログが開くので、下図のようにコメントを入力し、[保存]をクリックしてください(図10)。

【図10】[コメント]アクションの設定

STEP2 [特別なフォルダーを取得]アクションを追加する

アクションペインの[フォルダー]グループ内の[特別なフォルダーを取得]アクションを[コメント]アクションの後に追加してください(図11)。

【図11】[特別なフォルダーを取得]アクションの追加

[特別なフォルダーを取得]ダイアログが開くので、[特別なフォルダーの名前]のドロップダウンリストから[ドキュメント]を選択してください。

[特別なフォルダーのパス]に自動的にドキュメントのパスが入力されます。ユーザー名はログインユーザー名ですので、環境によって異なります。

ドキュメントをOneDriveに設定している場合は、下図のパスとは異なるので注意してください。 [保存]をクリックしてダイアログを閉じてください(図12)。

【図12】[特別なフォルダーを取得]アクションの設定

【Memo】[特別なフォルダーの名前]の種類

[特別なフォルダーの名前]のドロップダウンリストは[ドキュメント]を含め、20種類あります(図13)。

【図13】[特別なフォルダーの名前]の種類

[お気に入り][デスクトップ]など、ユーザープロファイル(Windows10/11の場合は「C:¥Users\ログインユーザー名\」)の中のフォルダーを示すものが多いです。

※ログインユーザー名は環境によって変化します。

STEP3 [ファイルからテキストを読み取る]アクションを追加する

アクションペインの[ファイル]グループ内の[ファイルからテキストを読み取る]アクションを[特別なフォルダーを取得]アクションの後に追加してください(図14)。

【図14】[ファイルからテキストを読み取る]アクションの追加

[ファイルからテキストを読み取る]ダイアログが開くので、[ファイルパス]に「%SpecialFolderPath%\エラーテキスト.txt」と入力してください。

[内容の保存方法]のドロップダウンリストで[単一のテキスト]を選択してください。

[エンコード]のドロップダウンリストで[UTF-8]を選択してください。

[保存]をクリックしてダイアログを閉じてください(図15)。

【図15】[ファイルからテキストを読み取る]アクションの設定

STEP4 [変数の設定]アクションを追加する

アクションペインの[変数]グループ内の[変数の設定]アクションを[ファイルからテキストを読み取る]アクションの後に追加してください(図16)。

【図16】[変数の設定]アクションの追加

[変数の設定]ダイアログが開くので、[変数]に表示されている[NewVar]を[Result]に変更してください。

[値]に「%100 / FileContents%」と入力してください。「%FileContents%」は{X}(変数の選択)を使うと入力間違いを防げます。

[保存]をクリックしてダイアログを閉じてください(図17)。

【図17】[変数の設定]アクションの設定

STEP5 [メッセージを表示]アクションを追加する

アクションペインの[メッセージボックス]グループ内の[メッセージを表示]アクションを[変数の設定]アクションの後に追加してください(図18)。

【図18】[メッセージを表示]アクションの追加

[メッセージの表示]ダイアログが開くので、[メッセージボックスのタイトル]に「成功」と入力してください。

[表示するメッセージ]に「フローの実行に成功しました」と入力し、[メッセージボックスを常に手前に表示する]を[有効]にしてください。

[保存]をクリックしてダイアログを閉じてください(図19)。

【図19】[メッセージを表示]アクションの設定

本記事のフローはこれで完成です。

フローを確認する

完成したフローは下図のようになります(図20)。

【図20】完成したフロー

4 実行する

エラーが発生しないパターン

フローを実行してください。メッセージボックスが表示されるので、[OK]をクリックしてください(図21)。

このようにエラーは発生せず、正常終了します。

フロー変数を変数ペインで確認しましょう。[FileContents]には「1」が格納されています。[エラーテスト.txt]から値を読み込めていることがわかります。

また[Result]には「100」が格納されています。[変数の設定]アクションで[値]に「%100 / FileContents%」と入力しましたが、その計算結果が格納されていますね。

【図21】フローの実行結果

めーたん
めーたん

問題なく実行できました!

じゃ、次にいくよ

こさい
こさい

エラーが発生するパターン

次にエラーを発生させましょう。まず、[エラーテスト.txt]の名前を[エラーテスト2.txt]に変更してください(図22)。

【図22】エラーテスト.txtの名前変更

では、フローを実行してください。[エラーテキスト.txt]が見つからなくなるので、[ファイルからテキストを読み取ります]アクションでエラーが発生します。

エラーが発生したアクションが赤枠で囲われ、エラーパネルにエラーが表示されます(図23)。

【図23】エラー発生時の画面

めーたん
めーたん

たしかにエラーになってしまいましたね!

次の記事でもエラーが発生するパターンを実行するので、[エラーテスト.txt]の名前を[エラーテスト2.txt]のままにしておいてください(図24)。

【図24】エラーテスト2.txtはそのままに

5 エラー処理をしていないことによる問題

めーたん
めーたん

エラーになったけど、何が問題なの?

それを考えてみよう!

こさい
こさい

さて、エラーが確認できましたが、問題はなんでしょうか?このままでもフローに大きな問題はありません。ですが、よく考えると2つの問題があります。

(1) エラー発生時の処理を行えない

エラー発生時に、適切な対応が行えないというデメリットがあります(図25)。

エラー発生時の対応とは、エラーの内容をメッセージボックスやメールでユーザーに通知したり、フローで操作していたファイルを適切に閉じたりすることです。

Power Automate for desktopはコンソールから実行することを「本番実行」としているので、コンソールから実行することが基本です。

コンソールから実行する場合、フローデザイナーと違ってPower Automate for desktopの出すエラーメッセージのままだとエラー原因を特定するのに時間がかかる場合があります。

エラー内容をわかりやすい言葉で伝えることで、対応が早くなり、運用がスムーズになります。

【図25】エラー発生時の処理を行えない

(2) フローを続けられない

エラーに対する対処方法があり、本来ならばフローを続行することができるのに、エラー処理を行っていないため、エラー発生のたびに手動でリカバリー(回復)しないといけないというデメリットがあります(図26)。

エラーが発生するたびに、手作業でリカバリーしていたのでは工数がかかってしまい、自動化のメリットが薄れてしまいます。

【図26】フローを続けられない

まとめ

こさい
こさい

エラー処理の必要性が少しわかってもらえたかな?

問題なのはわかりました。

めーたん
めーたん

この記事ではエラー処理の必要性を理解するために、わざとエラーが発生するフローを作成しました。

具体的なエラー処理を行うフローについては、記事を分けて、「まとまったフローのエラー処理を行おう」「ピンポイントでエラー処理を行うには」で解説します。

【図27】記事の構成

関連する記事

Power Automate for desktopの書籍を出版しています。