SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Power Automate Desktopチュートリアル

無償デスクトップ自動化ツール「Power Automate Desktop」のブロックエラー処理とデバッグ

Power Automate Desktopチュートリアル 最終回

  • X ポスト
  • このエントリーをはてなブックマークに追加

 Power Automate for desktopは、自動化可能な作業の流れ(フロー)をデザインし、実行するためのソフトウェアです。第25回では、エラー処理を紹介しました。今回は、フローのブロックエラー処理を紹介します。既定では、各アクションで実行時に想定外の状態(エラー)となると、フローが停止してしまいます。しかし、予期しないエラーが起きた場合にも問題を回避してフローが続行して処理の完了を優先したい場合があります。各アクションのエラー発生時やブロックエラー発生時の設定でフローの継続が実現できます。

  • X ポスト
  • このエントリーをはてなブックマークに追加

ブロックエラーの発生時にロジックエラーをキャッチする

 エラー発生時、時間が経つことでエラー原因が解決する場合は、再試行を選択することもできますが、そうでない場合は、同じことを繰り返しても同じエラーになってしまいます。

 [ブロックエラーの発生時]アクションを利用すると、エラーの発生時に該当アクションの前後のアクションをまとめたブロックの先頭や末尾にジャンプする[例外処理モード]も作成できます。また、特定のアクションに対してではなく起こりうるロジックエラー(0除算など)に対してもエラー処理を指定することができます。

 たとえば以下は、ユーザーが2つの数を入力した後、その2つの数で割り算をするフローです。

[1]新しいフローを作成する

 Power Automate for desktopを開きます。トップ画面から[+新しいフロー]をクリックして、適当な名前で新規のフローを作成します。

[2]ブロックエラー発生時アクションを配置する

 [フローコントロール]アクショングループから[ブロックエラー発生時]アクションを配置します。[End]までで囲まれた範囲のロジックエラーが発生した場合には、ブロックの先頭に戻るようにします。

 ブロックエラー発生時アクションでは、[フロー実行を続行する]を選択した時の例外処理モードについて、「次のアクションに移動」「アクションの繰り返し」「ラベルに移動」に加えて、以下も選択できます。

例外処理モード(ブロックエラー発生時、追加)
例外処理モード名 内容 使用パターン
ブロックの先頭に移動する ブロックエラー発生時で囲んだ最初のアクションから再開する 他のアクションの結果次第で成功となる場合、成功となるまでひとまとまりのアクションの繰り返す
ブロックの末尾に移動する ブロックエラー発生時の次のアクションから再開する エラーの場合、ブロック内の以降のアクションを飛ばして、ブロックの次から再開
図:ブロックエラー発生時の配置
図:ブロックエラー発生時の配置
図:ブロックエラー発生時の設定
図:ブロックエラー発生時の設定

 以下の入力/選択をして保存します。

  • 名前:ブロック1
  • フロー実行を続行する
  • 例外処理モード:ブロックの先頭に移動する
  • 予期しないロジックエラーを取得:オン

[3]最後に発生したエラーを取得する

 [フローコントロール]アクショングループから[最後のエラーを取得]アクションを[ブロックエラー発生時]-[End]の中に配置します。

 最初に通るときは特にエラーはありません。後で、エラー発生時には戻ってきて、エラーメッセージを表示するためこの位置に配置します。

図:最後のエラーを取得の配置
図:最後のエラーを取得の配置

 そのまま保存します。

[4]数値を2つ入力するダイアログを表示する

 [メッセージボックス]アクショングループから[カスタムフォームを表示]アクションを[End]の前に配置します。

 [カスタムフォーム]は入力欄や表示欄、ボタンなどを複数設定できるダイアログです。

図:カスタムフォームを表示の配置
図:カスタムフォームを表示の配置
図:カスタムフォームを表示の設定
図:カスタムフォームを表示の設定

[5]カスタムフォームデザイナーを開きテキストブロックを配置する

 設定画面から[カスタムフォームデザイナー]ボタンをクリックします。

 デザイナーが開いたら、[フォーム要素]-[要素]-[テキストブロック]をドラッグして、[フォーム構造]にドロップします。

図:テキストブロックの配置
図:テキストブロックの配置

 右側の[カスタムフォーム]で、以下を入力します。

  • テキスト:数値xと数値yの割り算をおこないます

[6]1つめの数値入力を配置する

 続いて、[フォーム要素]-[入力]-[数値入力]をドラッグして、[フォーム構造]にドロップします。

図:数値入力の配置
図:数値入力の配置

 右側の[カスタムフォーム]で、以下のように入力します。

  • ID:x
  • ラベル:数値x=

[7]2つめの数値入力を配置する

 [フォーム要素]-[入力]-[数値入力]をドラッグして、[フォーム構造]にドロップします。右側の[カスタムフォーム]で、以下のように入力します。

  • ID:y
  • ラベル:数値y=

[8]エラーメッセージ表示欄を配置する

 [フォーム要素]-[要素]-[テキストブロック]をドラッグして、[フォーム構造]にドロップします。右側の[カスタムフォーム]で、以下のように入力します。

  • テキスト:%LastError.Message%
図:テキストブロック(エラーメッセージ)の配置
図:テキストブロック(エラーメッセージ)の配置

[9]Okボタンを配置する

 最後に、[フォーム要素]-[アクション]-[送信]をドラッグして、[フォーム構造]にドロップします。

図:送信の配置
図:送信の配置

[10]フォームを確認する

 これでフォームが完成したので、画面下のプレビューフォームを開いてフォームを確認します。

図:プレビューフォーム
図:プレビューフォーム

 上のようなプレビューを確認できたら、カスタムフォームデザイナーの[完了]ボタンをクリックします。[カスタムフォームを表示]の設定画面で保存をクリックします。

[11]入力した数字を数値に変換する

 [テキスト]アクショングループから[テキストを数値に変換]アクションを[End]の前に2つ配置します。1つを設定した後、コピーペーストをして、設定を変更しても構いません。

図:テキストを数値に変換の配置
図:テキストを数値に変換の配置
図:テキストを数値に変換の設定
図:テキストを数値に変換の設定

 それぞれ、以下の入力をして保存します。

図:テキストを数値に変換の設定
1個目 2個目
変換するテキスト %CustomFormData.x% %CustomFormData.y%
生成された変数 x y

[12]割り算を計算する

 [変数]アクショングループから[変数の設定]アクションを[End]の前に配置します。

図:変数の設定(割り算)の配置
図:変数の設定(割り算)の配置
図:変数の設定(割り算)の設定
図:変数の設定(割り算)の設定

 以下の入力をして保存します。

  • 変数:z
  • 値:%x/y%

[13]結果を表示する

 [メッセージボックス]アクショングループから[メッセージを表示]アクションを[End]の前に配置します。

図:メッセージを表示(割り算)の配置
図:メッセージを表示(割り算)の配置
図:メッセージを表示(割り算)の設定
図:メッセージを表示(割り算)の設定

 以下の入力をして保存します。

  • メッセージボックスタイトル:割り算 
  • 表示するメッセージ:%x%/%y%=%z%

[14]実行する

 実行ボタンをクリックします。

 まず、フォームが表示されるので、そのまま[Ok]ボタンをクリックします。入力ダイアログが表示され、「テキスト''を有効な数値に変換できません…」というエラーメッセージが表示されることを確認してください。

図:エラーメッセージ1
図:エラーメッセージ1

 続いて、x=1、y=0を入力して、[Ok]ボタンをクリックします。今度は入力ダイアログが表示され 「0で割る演算は許可されません」というエラーメッセージが表示されます。

図:エラーメッセージ2
図:エラーメッセージ2

 最後に、x=1、y=2を入力して、[Ok]ボタンをクリックします。今度は、正しく結果ダイアログが表示されます。

図:結果ダイアログ
図:結果ダイアログ

次のページ
デバッグについて

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Power Automate Desktopチュートリアル連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 飯島 聡(WINGSプロジェクト イイジマ サトシ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/19269 2024/04/25 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング