SharePointのファイルを定期的にバックアップする
解決できる課題
SharePointのファイルをバックアップする時、手作業やバッチファイルを使っていませんか? ・バックアップを手作業でしているため、し忘れが発生する ・バッチファイルのコマンドを記述するのが面倒くさい ・手作業でのバックアップは、常に最新の状態を保つのが難しい SharePointドキュメント配下にあるファイルはPower Automateを使えば、自動で定期バックアップが可能です。
完成イメージ

必要なもの
SharePoint コネクタ
作り方
複数人でのファイル管理は、共有サーバーからSharePointに移行している企業も多いです。
共有サーバーであれば、バッチファイルを用意したり、サーバーの標準機能でバックアップも簡単にできました。
SharePointの場合、Web上での管理になるため、これまでの方法ではうまくいかないケースがあります。
最適な手段は、Power Automateを使うことです。
※OneDriveの定期バックアップもPower Automateで実現可能です。
- 1. トリガー「スケジュール済みクラウドフロー」を設定
定期バックアップのため、フローの実行をスケジューリングします。
設定は任意で、[間隔]と[頻度]から日次、週次、月次などを設定します。
※[タイムゾーン]は必ず日本時間にします

- 2. アクション「ファイル メタデータの取得」を設定
バックアップするファイル名とファイル識別子を取得します。
後工程のファイル作成アクションでファイル名を設定する際、手入力をしても良いですが、取得できる値は再利用します。

- 3. アクション「ファイル コンテンツの取得」を設定
ファイルの中身を取得します。
[サイトのアドレス]は対象のSharePointサイトを指定し、[ファイル識別子]はステップ2で取得した値を設定します。
これにより、手作業による誤入力を防ぎます。

- 4. アクション「ファイルの作成」を設定
[サイトのアドレス]と[フォルダーのパス]は、バックアップ先を設定します。
[ファイルコンテンツ]は、ステップ3の取得値です。
[ファイル名]は、元ファイルの名称にバックアップ日時を追加し、定期的なバックアップファイルであることを明記します。
ステップ2の取得値からファイル名を使用すると、拡張子がそのまま入ってしまうため、式で調整します。
replace関数を使い、拡張子を取り除きます。
※replace(outputs('ファイル_メタデータの取得')?['body/Name'], '.xlsx', '')
日時はformateDateTime関数を使い、表現します。
※formatDateTime(addHours(utcNow(), 9), 'yyyyMMddHHmmss')
utcNow関数で現在日時を取得し、9時間を加算して日本時間にします
yyyyMMddHHmmssは、年月日時分秒です

- 5. 動作確認
対象は下図のExcelファイルです。

元のファイル名にあった「test」を先頭にしてハイフンでつなぎ、年月日時分秒で重複を避けています。
同じ日に実行しても、分秒が異なれば、重複は避けられます。
