技術情報ブログ
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 の内製化支援・育成(現場の作り方に合わせた伴走)も対応しています。

 

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

 

この記事を書いた人
小刀稱知哉

小刀稱 知哉ことね ともや

SharePoint Power Platform全般 Copilot Studio 技術アドバイス・教育支援

Power PlatformやSharePointを中心に設計・開発・アドバイス・教育まで幅広く担当しています。内製化をご希望の場合はお気軽にお問い合わせください!

2025 Microsoft MVP(Power Apps・Power Automate)
PL-200 PL-300 PL-400 PL-600 MS-700 AZ-104 AZ-305 SC-200 SC-100

Microsoftクラウド関連

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

ソリューション内で異動・退職者のPower Apps/Power Automateなどを引き継ぐには?所有者変更の手順と注意点を解説

2026.04.15

SharePoint:『リンクのコピー』は危険?権限トラブルを防ぐ推奨運用を解説

2026.04.08

技術ブログ100本書いてみたら、想像以上に得るものがあった話

2026.04.01

社内に聞く人がいない「孤独なDX」を解決!アーティサンの内製化支援サービス

2026.03.25

SharePointの便利なURLパラメータ活用術|ヘッダー削除・リスト絞り込み・メンテナンスモード

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