乱雑になったSharePointドキュメントライブラリを作成者ごとのフォルダを作って整理する
解決できる課題
SharePointのドキュメント管理で、こんな課題を感じていませんか? ・SharePointの管理ルールがなく、ファイルがごちゃまぜになっている ・SharePoint内のファイルは、担当者ごとに振り分けたい ・定期的に手動でSharePointを整理している 乱雑に放置されたたSharePointのドキュメントを担当者ごとに自動整理します。
完成イメージ

必要なもの
SharePoint コネクタ
作り方
SharePointドキュメントライブラリに溜まった古いフォルダやファイルを整理します。
SharePointをTeamsと連携させている場合、チャットに添付するたびに、ファイルがルール無視で溜まります。
こういったファイルは、ファイルの投稿者に整理してもらうため、担当者ごとのフォルダに振り分けます。
- 1. トリガー「フローを手動でトリガーする」を設定
このレシピでは、SharePointを整理するタイミングは任意とします。

- 2. アクション「ファイルの取得 (プロパティのみ)」を設定
[サイトのアドレス]は任意のサイトを、[ライブラリ名]はドキュメントを選択します。
詳細パラメーターから[エントリをフォルダーに制限する]は、対象フォルダを選択します。
※ドキュメントライブラリであれば、/Shared Documentsのみ

- 3. アクション「フォルダーの一覧」を設定
[サイトのアドレス]はステップ2と同じにします。
[ファイル識別子]は、ステップ2の[エントリをフォルダーに制限する]と同じにします。

- 4. 「条件」を設定
このレシピは、ファイル作成者ごとにフォルダ分類するため、条件でファイル作成者のフォルダが作成済みか判定します。
「Name」が「登録者 DisplayName」を「含む」にします。
※このアクションを作成すると、自動的にForeachが2つ(ステップ2とステップ3の分)できます

- 5. アクション「新しいフォルダーの作成」を設定
[サイトのアドレス]はステップ2,3と同じにします。
[一覧またはライブラリ]は、「ドキュメント」にします。
[フォルダーのパス]は、分類先のフォルダを設定し、末尾に「登録者 DisplayName」を付けます。
※このレシピでは、整理用フォルダを用意し、その中で分類しています(ステップ6に後述)

- 6. 「条件」を設定
ステップ5に記載したように、整理用フォルダがあるため、このフォルダを対象除外します。
※除外しないと、以降のステップで対象にしてしまうため
「完全パス」(FullPath)が「整理用」を「含む」にします。
※このアクションを作成すると、自動的にForeach(ステップ2の分、取得するファイル名に「整理用」が含まれるか判定するため)ができます

- 7. 「条件」を設定
整理用を含まない場合に処理を行うため、このステップはFalse側に配置します。
先に補足しますが、SharePointコネクタは、フォルダとファイルを厳密に分けています。
とはいえ、厳密に分けなくても(フォルダ判定しなくても)、処理は成功します。
※フォルダが対象時のフロー結果は失敗するが、移動処理は成功している
このレシピでは、紹介目的も兼ね、整合性を取る意味でも、明示的に使い分けています。
「フォルダーである」(IsFolder)が「true」と「等しい」にします。

- 8. アクション「フォルダーの移動」を設定
[現在のサイトアドレス]と[送信先サイトアドレス]は、ステップ2,3,5と同じにします。
[移動するフォルダー]は、「完全パス」を選択します。
[インストール先フォルダー]は、「パス」「整理用」「/」「登録者 DisplayName」を組み合わせます。
※「パス」の末尾には/が入るため、不要ですが、整理用の後ろは明示的に/が必要です
[別のフォルダーが既に存在する場合]は任意ですが、「Move with a new name」(新しい名前で移動する)にします。

- 9. アクション「ファイルの移動」を設定
ここの設定値はステップ8と全て同じです。
設定項目の名称が、[移動するファイル]や[別のファイルが既に存在する場合]で異なるだけです。

- 10. 動作確認
SharePointの特定ドキュメントライブラリ内が下図のようになっています。

フローを実行後、検証用フォルダ内は整理用のみが残ります。

整理用フォルダ内にファイル作成者のフォルダができます。

ファイル作成者のフォルダ内には、ファイル作成者が作成したフォルダとファイルが移されます。


