技術情報ブログ
Power Platform
2021.08.11

【Power AutomateでExcelデータをSharePointにインポートするために考えること 第5回】ExcelファイルIDを動的取得

【Power AutomateでExcelデータをSharePointにインポートするために考えること 第5回】ExcelファイルIDを動的取得

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

「Power AutomateでExcelをSharePointリストにインポートしたい時に考えること」シリーズの第5回です。

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

Power Automateでどんな事ができるのか知りたい、実際の作成方法を知りたい、という方に向けた記事です。
前回までで、Power Automateを用いて「ExcelをSharePointリストにインポートする」最低限の機能を作成しました。 以降では、作成したフローを実際の運用にも活用できるよう機能を向上させていきたいと思います。

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

Power AutomateでExcelデータをSharePointにインポートするために考えること(第4回)

今回は、「動的にExcelデータを取得する」方法についてお伝えしていきます。

(本シリーズの中で一番難易度が高い内容です!)

 

前回までで作成したフローは、事前にSharePointに保存したExcelデータ(=静的なExcelデータ)がある状態でPower Automateを起動していました。

このような場合、取得したいExcelのファイル名(正確にはファイルID)テーブル名(正確にはテーブルID)は一覧から選択するだけで簡単に設定できます。

しかし実際の運用では、「メールに添付されたExcelデータを自動的にインポートする」や、「SharePointにExcelデータが保存された際、自動的にインポートする」という要望が多いです。

ファイルIDやテーブルIDはSharePointに保存された段階で初めて値が設定されるため、 上記要望のように、「フロー内でSharePointにExcelデータを保存し、そのデータを利用する」という フローを作成する場合、フロー内の設定項目として、事前にファイルIDやテーブルIDを設定することができません。

このような場合は、フローの中で動的にファイルIDやテーブルIDを取得する必要があります。

今回は、そのための仕掛けを作っていきます。

動的なExcelデータの取得

 

Excelデータの動的な取得(ファイルID編)

Microsoft Graph REST API を介した SharePoint REST 操作

具体的には、「SharePointにHTTP要求を送信します」アクションを用いて、ExcelデータのファイルIDを動的に取得していきます。

流れとしては、以下の手順です。 (いずれも「SharePointにHTTP要求を送信します」アクションを用います。)

 Excelデータが保存されたSharePointドキュメントライブラリのドライブIDを取得

 ExcelデータのファイルIDを取得

 

Excelデータが保存されたSharePointドキュメントライブラリのドライブIDを取得

ドライブIDを取得するには、以下の手順を実施していきます。

  • ドライブ一覧を取得
  • ドライブ一覧から今回使用するドライブ情報をドライブ名で検索
  • 対象のドライブIDを取得

 

(1)ドライブ一覧を取得

SharePointにHTTP要求を送信しますアクションを選択し、以下の項目を入力します。

サイトのアドレス:保存したSharePointのサイト

方法
GET
URL
_api/v2.0/drives/
ヘッダー
accept application/json

 

ドライブID取得のための設定

上記を一度実行し、実行履歴から「出力」のbody部分を見てみましょう。

ドライブIDの取得

 

(2)ドライブ一覧から今回使用するドライブ情報をドライブ名で検索

上記の手順でドライブ一覧を取得することができました。

続いて対象のドキュメントライブラリ(=Excelファイルの保存場所)の「id」値(ハイライト部分)を抽出していきます。

まずは、「JSONの解析」アクションを用います。 本アクションは絶対に必要なものではありませんが、このアクションを入れることで、後続のアクションで必要な式を自分で作成する手間を省く事ができるため、利用することをオススメします。

(この説明では分かりづらいと思いますので、詳細は後ほどお伝えします。)

では、JSONの解析アクションを作成します。

JSONの解析

コンテンツ項目にはSharePointにHTTP要求を送信しますアクションのbodyを設定します。

またスキーマ項目については、「サンプルから作成」をクリックし、 body内の値({から} まで)の内容をコピー&ペーストすることで完了です。

続いて、「アレイのフィルター処理」アクションを追加します。

このアクションでは、nameExcelファイルの保存場所である項目を検索し、その情報を抽出しています。

アレイのフィルター処理

ここまでの結果を見てみましょう。

結果

ドライブ一覧から、[Excelファイルの保存場所]に関する情報のみ抽出することができました!

 

「JSONの解析」アクションの必要性について補足します。

アレイのフィルター処理アクションで値の選択をクリックすると、使用するコンテンツの候補がでてきます。

JSONの解析アクションを事前に追加している場合は、ここに今回使用するnameが自動的に表示されます。

アレイのフィルター処理-2

JSONの解析アクションを追加していない場合、こちらのname項目が自動的に表示されないため、具体的な式を自身で作成する必要があります。

アレイのフィルター処理-3

「JSON」の解析アクションを用いると、自身で式を作成する手間が不要となるためオススメです。

 

少し長くなってしまいましたので、今回はここまでとさせていただきます。

次回は、今回の続きを作成し、ドライブID・ファイルID・テーブルIDを動的に取得する方法についてお伝えしていきます!

ここまで読んでいただき、ありがとうございました。

 

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

 

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

小刀稱知哉

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

1990年4月9日生まれ

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

趣味は読書

Power Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当しております!

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

Power Apps・Power Automateの勉強方法(1)

2024.04.03

非エンジニア【(元)自治体職員】が半年間ローコード開発をしてみたら

2024.03.27

Power Automateのベストプラクティス・アンチパターン(5)【Apply to each×コンカレンシー×変数の設定はNG】

2024.03.20

Power Apps×Teams:Teams上からPower Appsを実行する方法

2024.03.13

Power Apps:SharePointリストと連携したカレンダーアプリを自作してみよう

モデル駆動型アプリPower AppsPower PlatformSharePointExcelPower AutomateC#attributevalidationローコードAngularAccessInfoPathMatTableAngular Materialデータ構造SortByColumns関数TypeScriptHTMLEF CoreマイグレーションFramework CoreAttribute directivesO/Rマッパーazure sql databaseCase式HTTP RequestCSSxUnit.Net Core 3.1VSCode.Net Core Test ExplorerDataverse for Teamsitem関数Google MapsMarker ClustererRANK()関数Dynamics 365 SalesMicrosoft TranslatorマーカークラスタリングライブラリtailwindcssマルチテナントドロップダウンメニューBreakpointObserverメディアクエリスマホPCレスポンシブ入門初心者中級者キャンバスアプリDatePickerDropdownviewビューアクセス制限承認リマインドSetForAllUpdateContextロードマップ技術It情報技術メッセージIDメールfirst()関数nest入れ子動的リストcollectionコレクション複数の添付ファイル承認フローformエクスポートインポートカスタマイズcomponentダイアログコンポーネントdialogTips新機能変数検索Microsoft 365グループセキュリティグループ送信元メールの送信差出人インスタントクラウドフロー自動化したクラウドフロー委任VBAエラーエクセルerror復元restorePower BI個人列ユーザー列SharePoint Onlineリスト非表示アプリ[市民開発者構築自動化したクラウド フローフローの種類インスタント クラウド フロースケジュール済みクラウド フローレスポンシブ レイアウトresponsive layoutデータ行の制限引き継ぎ退職所有者を変更異動LoopMicrosoftdesignJSONデザインtemplateテンプレート運用選択肢列参照列ChatGPTOpenAIオープンAIチャットGPTgalleryギャラリースクロールコンテナショートカットキーshortcut keyconcat関数文字制限フロー実行開発環境環境本番環境ライセンス環境構築手順pipelineCI/CDパイプラインDevOpsMicrosoft 365簡易在庫管理時間外通知ファイルフィルター クエリドキュメント ライブラリfilter querysortソートmultiple item複数項目シェアポイント便利機能カレンダーCalendarTeamsローコード開発非エンジニア体験談勉強内製化
PageTop
ページトップに戻る