Power AutomateでSharePointドキュメントライブラリのフォルダ・ファイル一覧を生成する
更新日:2023.05.05
作成日:2021.09.19
Microsoft Teams
のFiles
タブを利用していると、いつの間にかファイルがルート直下に増えてしまい、あとから見返したとき、どこに何のファイルがあるかわからなくなる課題がありました。
まずは、整理のため任意のタイミングでフォルダ・ファイル一覧を生成したいと思い、そのためのフローを作成しました。
完成版
Power AutomateのFlow
- 手動トリガーで実行後、
Get files (properties only)
でSharePointドキュメントライブラリのプロパティ一覧を取得 Select
でプロパティ一覧から必要な項目のみ抽出Run script
で、抽出結果を受け取り、Excelファイルに書き出し
フォルダ・ファイル一覧
Office Script
を利用し、Path, FileName, Linkの簡素なフォルダ・ファイル一覧を作成
Office Script
function main(workbook: ExcelScript.Workbook, records: File[]) {
// 削除処理
let table = workbook.getTable("テーブル1");
let rowCount = workbook.getTable("テーブル1").getRowCount();
table.deleteRowsAt(0, rowCount);
// Power Automateから受け取ったファイル一覧をもとに追加
let selectedSheet = workbook.getActiveWorksheet();
let rownum = 1;
for (let record of records) {
if (record.IsFolder) {
selectedSheet.getCell(rownum, 0).setValue(record.FullPath);
} else {
selectedSheet.getCell(rownum, 0).setValue(record.Path);
selectedSheet.getCell(rownum, 1).setValue(record.File);
}
selectedSheet.getCell(rownum, 2).setFormula('=HYPERLINK("' + record.Link + '", "Link")');
rownum++;
}
}
interface File {
"Path": string,
"File": string,
"FullPath": string,
"Link": string,
"IsFolder": boolean
}
main
関数にrecords
などの引数を追加することで、Power Automate
側からデータを受け取れるinterface
で型を定義できる
Power AutomateのFlow作成での学び
Get files (properties only)
を利用することで、SharePointドキュメントライブラリの一覧を取得できるのは当たりが付いていました。しかし、その後、Power Automate
での変数操作、配列操作に不慣れで試行錯誤のため時間を費やしました。
Power Automate
でやりたいことを実現するためには、余計なところで時間が取られないように素振りが必要ですね。
ハマりどころは、以下の記事を読んで理解しました。
Related contents
TECH
2021.09.03
Power Automateで配布リストや共有メールボックスのアドレスから代理送信する
TECH
2022.05.16
SharePoint上のファイルパスを取得するブックマークレット