技術情報ブログ
SharePoint
2021.09.22

【Power AutomateでExcelをSharePointリストにインポートしたい時に考えること 第11回】煩雑なフローをスコープアクションで可読性向上!

【Power AutomateでExcelをSharePointリストにインポートしたい時に考えること 第11回】煩雑なフローをスコープアクションで可読性向上!

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

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

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

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

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

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

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

 

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

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

フロー

動的な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の初心者向け」に関する内容を書こうと思います!

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

 

 

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

 

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

小刀稱知哉

大分県出身(温泉大好き)、現在は東京都在住

1990年生まれ

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

趣味は読書

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

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

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

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

Power Apps, Power Automate で作る NFC タグを活用したアプリ例

2025.04.16

Power Apps で NFC タグを使ってみる

2025.04.02

Copilot Studioで作成したコパイロットをTeams に追加する方法

2025.03.19

SharePoint リストで主キーを実装し、比較してみた

2025.03.12

SharePointのデザインをもっとおしゃれに!(X-SP Design | SharePoint デザイン拡張サービスのご紹介)(4) サンプルの紹介その2

attributeO/Rマッパーマーカークラスタリングライブラリビュー動的リスト検索個人列退職ギャラリーDevOpsCalendarモデル駆動型データフローファイルサイズvalidationazure sql databasetailwindcssアクセス制限collectionMicrosoft 365グループユーザー列所有者を変更スクロールMicrosoft 365Teamsセキュリティロールrecycle binフルリモートワークローコードCase式マルチテナント承認コレクションセキュリティグループSharePoint Online異動コンテナ簡易在庫管理ローコード開発ビジネスルールごみ箱アーティサンAngularHTTP Requestドロップダウンメニューリマインド複数の添付ファイル送信元リストLoopショートカットキー時間外非エンジニアDataverseアクセス許可ArtisanAccessCSSBreakpointObserverSet承認フローメールの送信非表示Microsoftshortcut key通知体験談JavaScriptSharePoint Framework転職InfoPathxUnitメディアクエリForAllform差出人アプリdesignconcat関数ファイル勉強表示SPFx主キーMatTable.Net Core 3.1スマホUpdateContextエクスポートインスタントクラウドフロー[市民開発者JSON文字制限フィルター クエリ内製化切替サンプルCopilot StudioAngular MaterialVSCodePCロードマップインポート自動化したクラウドフロー構築デザインフロー実行ドキュメント ライブラリ市民開発登録者samplePowerAppsデータ構造.Net Core Test Explorerレスポンシブ技術カスタマイズ委任自動化したクラウド フロー運用開発環境filter query管理システム列X-SPNFCタグモデル駆動型アプリSortByColumns関数Dataverse for Teams入門ItcomponentVBAフローの種類選択肢列環境sortガバナンス登録日StylePowerAutomatePower AppsTypeScriptitem関数初心者情報技術ダイアログエラーインスタント クラウド フロー参照列本番環境ソートerror notification更新者StudioPower PlatformHTMLGoogle Maps中級者メッセージIDコンポーネントエクセルスケジュール済みクラウド フローChatGPTライセンスmultiple itemエラー通知更新日AISharePointEF CoreMarker Clustererキャンバスアプリメールdialogerrorレスポンシブ レイアウトOpenAI環境構築手順複数項目削除変更生成系AIExcelマイグレーションRANK()関数DatePickerfirst()関数Tips復元responsive layoutオープンAIpipelineシェアポイントフォルダ外部DBCopilotPower AutomateFramework CoreDynamics 365 SalesDropdownnest新機能restoreデータ行の制限チャットGPTCI/CD便利機能ゴミ箱連携licenseC#Attribute directivesMicrosoft Translatorview入れ子変数Power BI引き継ぎgalleryパイプラインカレンダー完全削除接続添付ファイルコントロール
PageTop
ページトップに戻る