技術情報ブログ
SharePoint
2021.09.22

Power Automateの「スコープ」でフローを整理する方法|可読性改善と例外処理(try-catch-finally)(第11回)

Power Automateの「スコープ」でフローを整理する方法|可読性改善と例外処理(try-catch-finally)(第11回)
小刀稱知哉

こんにちは。アーティサン株式会社の小刀稱(ことね)です。

Power Automate のフローが大きくなると、アクションが増えて全体像が見えにくくなりがちです。

本記事では、「スコープ」アクションを使って複数アクションをまとまりごとに整理し、可読性を上げる方法を解説します。

さらに、スコープを用いた 例外処理(try / catch / finally) の組み方と、「実行条件の構成」を使ってエラー時・成功時それぞれで処理を分岐する手順も紹介します。

「Power AutomateでExcelをSharePointリストにインポートしたい時に考えること」シリーズの第11回です。
今回で本シリーズは最後となります。

本シリーズでは、私が実際にPower Automateを用いて、「ExcelをSharePointリストにインポートする」フローを作成していきます。
また、作成の際に学んだ点や躓いた点を中心に紹介いたします。

Power Automateでどんな事ができるのか知りたい、実際の作成方法を知りたい、という方に向けた記事です。

第10回目の内容はこちらを参照ください。

Power AutomateでExcelをSharePointリストにインポートしたい時に考えること(第10回)

今回は、スコープアクションを紹介します。

フローが読みにくい/エラー時の挙動が不安な状態のまま運用に入ると、保守コストが跳ね上がりがちです。

Power Automate と SharePoint 連携フローについて、スコープ設計・例外処理・通知設計まで含めて「どこをどう整理すると安定するか」を一緒に棚卸しできます。

「スコープ」アクションについて

突然ですが、前回までで作成したフローをご覧ください。

フロー

動的なExcelデータの取得や256行よりデータが多い場合の対処など、実際の運用に合わせて多くのアクションを追加したため、最初(第2回)に作成したフローと比較すると、フローの可読性が低下してしまいました。

ちなみに最初に作成したフローはこちら。

フロー2

このような際、スコープアクションを用いると、複数のアクションをまとめることが出来るため、可読性を向上させることができます。

また、「エラー発生時、その内容を保持したい」や「エラー発生の有無に関わらず、処理を実行したい」という要望もあると思います。 このような要望に対しては、スコープアクションを用いた例外処理(try catch finally)を実装することで対応できます。

以下では、それぞれの実装方法について説明します。

フローの可読性向上

可読性を向上させるために、まとまりのある一連のアクションを、スコープアクションにて囲みます。
今回のフローでは、「ファイルIDを取得するために必要なアクション」と「テーブルIDを取得するために必要なアクション」でそれぞれまとめることができそうです。

フロー3

上記2つをスコープアクションでまとめると、以下のようになります。(第1階層のみで表示)

フロー4

アクションのまとまり毎に「何を行っているのか」がわかりやすくなったため、フローの可読性が向上したと思います。

例外処理

スコープアクションを用いて、例外処理を実装してみましょう。

ロジックの修正

  • 例外が発生した場合は、対象行をErrorListへ格納

  • 例外発生の有無に関わらず、RowCount・SkipCountを更新

  • インポート結果をメールにて通知

ロジック

項目の作成アクションを用いてExcelデータをインポートする際、表データの中に異なる形式の値が存在すると、アクションの結果は失敗(例外発生)となります。

例外が発生した場合は、対象行をErrorListへ格納します。
また、例外発生の有無に関わらず、RowCount・SkipCountを更新させます。

例外処理の追加

以下の手順で例外処理を作成します。

  • スコープ(try catch finally)でまとめる

  • catchスコープfinallyスコープの「実行条件の構成」を変更する

(1)スコープ(try catch finally)でまとめる

スコープアクションでまとめる前に、インポートできなかった行を格納する配列変数(ErrorList)を追加します。

変数を初期化する(SkipCount)アクションの後続に、変数を初期化する(ErrorList)アクションを追加し、変数を初期化します。

変数の初期化

また、項目の作成アクションの後続に、配列変数に追加アクションも追加します。

配列変数に追加

変数の準備が整いましたので、try・catch・finallyのスコープアクションを作成し、以下のようにアクションを囲みます。

フロー-5

(2)catchスコープとfinallyスコープの「実行条件の構成」を変更する

catchスコープfinallyスコープの「実行条件の構成」を変更することで、例外処理機能を実装します。

「実行条件の構成」は第10回で説明しておりますので、参照してください。

設定内容は以下です。

catchスコープ :前のアクションが失敗したら実行

finallyスコープ:前のアクションが成功or失敗orスキップorタイムアウトしたら実行

この設定により、catchアクションは、tryアクションが失敗(例外発生)した場合、実行されます。
また、finallyアクションは、例外発生の有無に関わらず実行されます。

実行条件の構成

最後に、インポート作業終了時、メールにて通知するようアクションを追加しましょう。

Do Untilアクションの後続に条件アクションを追加し、ErrorListの要素数によりメールの送信内容を変更します。

要素数が0の場合  :すべての行が正常にインポートされたされた旨を通知

要素数が0でない場合:インポートに失敗した旨を通知 ※失敗した行も併せて通知

ErrorListの要素数を取得するには、length()関数を用います。
具体的な式は以下です。

length(variables(‘ErrorList’))

メール送信

ここまで作成したフローは以下のとおりです。

フロー-6

フロー実行

ではフローを実行してみてください。

表データの中に異なる形式の値がある場合は、その内容がメールにて通知されていると思います!

エラー通知メール

 

さて、全11回でお届けした本連載は今回で終了です。

Power Automateはコーディングの知識が不要であり、IT技術者以外の方も手軽に業務の自動化を実施することができます。

しかし、お手軽といえど多少の慣れは必要になりますので、今回の連載のようにトライアンドエラーを繰り返していきながら、操作方法や各アクションの使い方などを覚えていただくことが技術習得の一番の近道になると思います。

次回以降のテーマですが、「Power Automateの中級者向け」や「Power Appsの初心者向け」に関する内容を書こうと思います!

最後まで読んでいただき、ありがとうございました!

 

連載の内容を試してみて、「自社のフローに当てはめると詰まるポイントが出た」場合は、設計の型(命名・スコープ分割・run after・ログ/通知)を一度整理すると再現性が上がります。

Power Automate / Power Apps の内製化支援・育成(現場の作り方に合わせた伴走)も対応しています。

 

【このシリーズの過去回一覧】

 

Power Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当:小刀稱知哉

小刀稱知哉

🖊小刀稱知哉さんのブログ一覧はこちら

大分県出身(温泉大好き)、現在は茨城県在住

1990年生まれ

30才でメーカーの技術営業からIT業界にジョブチェンジ!!!

趣味は読書(最近書道を始めました)

主にMicrosoftのローコード(SharePoint・Power Platform)に関するに関する営業活動や設計、開発などを担当しております!

(最近はCopilot Studioについても勉強中)

Microsoft MVPを受賞させていただきました!

持ってる資格はPL-200/PL-300/PL-400/PL-600/MS-700/AZ-104/AZ-305/SC-200/SC-100

Microsoftクラウド関連

シェアする
記事カテゴリ
最新記事
2026.03.03

Dataverse入門(5)!モデル駆動型アプリの作り方-キャンバスアプリとの違いは?

2026.03.03

Dataverse入門(4)!代替キーってどんな場面で役に立つの?-データの重複を許さない

2026.02.25

Dataverse:Dataverse入門(3)!リレーションでデータを構造化する-テーブル間の連携とは?

2026.02.18

Dataverse入門(2)!テーブルに列を追加してみる-列の型の決め方

2026.02.11

Dataverse入門(1)!注文管理アプリを作ってみる-Dataverseテーブルの作り方

AccessCSSBreakpointObserver承認動的リスト検索個人列退職ギャラリーDevOpsCalendarモデル駆動型データフローフルリモートワークPowerAutomateブランドセンター感想フォルダ構成設定アクセシビリティPCF代替キー業務アプリ開発InfoPathxUnitメディアクエリリマインドcollectionMicrosoft 365グループユーザー列所有者を変更スクロールMicrosoft 365Teamsセキュリティロールrecycle binアーティサンX-SP Designテーマ作成チームサイトMicrosoft Learn Docsアジャイル開発Wordテンプレート環境構築重複チェックDataverse テーブルMatTable.Net Core 3.1スマホSetコレクションセキュリティグループSharePoint Online異動コンテナ簡易在庫管理ローコード開発ビジネスルールアクセス許可Artisanスライドショーデザイン拡張コミュニケーションサイトカスタムコネクタ準委任契約業務自動化カスタムコンポーネントGUIDAngular MaterialVSCodePCForAll複数の添付ファイル送信元リストLoopショートカットキー時間外非エンジニアDataverseSharePoint Framework転職Slide showMicrosoft365サイトの種類OpenAPI請負契約効率化Power Platform CLI業務キーデータ構造.Net Core Test ExplorerレスポンシブUpdateContext承認フローメールの送信非表示Microsoftshortcut key通知体験談JavaScriptSPFx主キー比較移行要件定義MCPサーバー総合評価型入札資料作成開発手順複合キーモデル駆動型アプリSortByColumns関数Dataverse for TeamsDynamics 365ロードマップform差出人アプリdesignconcat関数ファイル勉強表示サンプルCopilot Studio社内ポータル多言語化サイト構成FAQエージェントデジタルトランスフォーメーション初心者向け拡張機能データ整合性Power AppsTypeScriptitem関数入門技術エクスポートインスタントクラウドフロー[市民開発者JSON文字制限フィルター クエリ内製化切替samplePowerAppsグループウェアMUI権限設計AIチャットボットプロポーザル方式ハウツービルドデータベース設計Power PlatformHTMLGoogle Maps初心者Itインポート自動化したクラウドフロー構築デザインフロー実行ドキュメント ライブラリ市民開発登録者X-SPNFCタグエンゲージメントMultilingualデータ移行実運用官公庁システム画像挿入プロジェクト作成ユニークキーSharePointEF CoreMarker Clusterer中級者DXカスタマイズ委任自動化したクラウド フロー運用開発環境filter query管理システム列StyleDLPポリシー地方自治体MLJSON書式保守性デジタル化推進複数レコードPCFギャラリー一意制約ExcelマイグレーションRANK()関数キャンバスアプリノウハウcomponentVBAフローの種類選択肢列環境sortガバナンス登録日StudioTestCopilot Studiot共有リンクテンプレート化DX推進テーマカラーPDF変換業務システムMicrosoft DataversePower AutomateFramework CoreDynamics 365 SalesDatePicker情報技術ダイアログエラーインスタント クラウド フロー参照列本番環境ソートerror notification更新者AICanvas自治体DXレポート化サイト複製作り方ダークモード資料自動作成キャンバスアプリ 違いフォーム設定C#Attribute directivesMicrosoft TranslatorDropdownメッセージIDコンポーネントエクセルスケジュール済みクラウド フローChatGPTライセンスmultiple itemエラー通知更新日生成系AITest Studio生成AI自治体APIPnP PowerShellページ承認Formulasプロパティフロー設計Power Apps 導入ビュー設定attributeO/Rマッパーマーカークラスタリングライブラリviewメールdialogerrorレスポンシブ レイアウトOpenAI環境構築手順複数項目削除変更Copilotテスト事例HTTP リクエストカスタムスクリプトドキュメント管理カラーセットテンプレート活用Power Apps 比較Power Apps モデル駆動型validationazure sql databasetailwindcssビューfirst()関数Tips復元responsive layoutオープンAIpipelineシェアポイントフォルダ外部DBlicenseテストスタジオ活用ワーケーション業務効率化IT管理カラーユニバーサルデザイン自動化事例モデル駆動型 とは注文管理アプリローコードCase式マルチテナントアクセス制限nest新機能restoreデータ行の制限チャットGPTCI/CD便利機能ゴミ箱連携添付ファイルコントロール使い方サイトブランド化名古屋ファイル保存申請システムアプリデザインNode.jsシステム構築サイトマップAngularHTTP Requestドロップダウンメニューノーコード入れ子変数Power BI引き継ぎgalleryパイプラインカレンダー完全削除接続ファイルサイズ基本知識フォントカスタマイズ体験記エンティティワークフロー自動化UI/UXVisual Studio CodeAlternate Keyサブグリッド
PageTop
ページトップに戻る