Power AutomateでSharePoint容量を可視化  ──事業部門への自動通知フローを作ってみた──

こんにちは、インフラグループの人見です。 
弊社グループでは、2025年にファイルサーバーをSharepoint Onlineに切り替え、
グループ全体でSharePointを積極的に活用し、業務効率化を推進しています。
しかし、「サイトの容量が100%に達すると新規作成や更新ができなくなる」ことが不便だと感じ、 
不足している機能を補うアイディアとして、Power Automateを活用し、SharePointの容量状況を自動取得し、事業部門にメールで通知するフローを構築しました。
この仕組みにより、事業部門のユーザーが自分たちのサイトの使用状況を把握でき、容量不足による業務停止を未然に防ぐことが可能になります。

フローの目的は以下です 

  • 各事業部門に容量状況を定期的に通知
  • 容量の整理や増加の判断材料を提供 
  • 管理者の負担を軽減し、部門の自律的な運用を促進

フローの構成  

1. 「https://office.com」へSharePointの所有者のアカウントでアクセスし、アプリ>すべてのアプリ>PowerAutomateを開きます。 

2. トリガー:スケジュール(Recurrence)

1 作成>スケジュール済みクラウドフローを選択し、フロー名を入れてから以下の設定値を入力します 

2 毎日午前10時に実行されるように設定 
3 「繰り返し」トリガーを使用し、頻度は「日次」、間隔は「1日」 

3. SharePointのサイトから容量の情報を取得

1 「Recurrence」という1つ目のフローができるので、下の「+」をクリックします
2 SharePointの「SharePointにHTTP要求を送信します」というアクションを選択します 
3 サイトアドレスの箇所に対象のサイトのURLを入力し、URIとヘッダー配下の入力します 
4 URIには /_api/site/usage?$select=usage.StoragePercentageUsed を指定 
5 詳細パラメーターの下矢印をクリックし、ヘッダーを選択します
ヘッダーには Accept: application/json;odata=verbose を設定 

4. HTTPリクエストで取得した結果(サイト容量の利用率、利用容量)を取り出す 

1 更に一番下の「+」をクリックし、「JSONの解析」アクションを選択します 
2 Contentの箇所をクリックすると「」が表示されるのでをクリックし、「本文」を選択します 

3 Schemaには以下を入れます 

{ 
    "type": "object", 
    "properties": { 
        "d": { 
            "type": "object", 
            "properties": { 
                "Usage": { 
                    "type": "object", 
                    "properties": { 
                        "Storage": { 
                            "type": "string" 
                        }, 
                        "StoragePercentageUsed": { 
                            "type": "number" 
                        }
                    } 
                } 
            } 
        } 
    } 
} 

5. 使用済み容量をバイトから(GB)へ計算

1 一番下の「+」をクリックし、「組み込みツール」の「データ操作」アクションを選択し「作成」をクリックします 

2 アクション名をクリックし、「UsedStorageGB」にします 
3 入力の箇所をクリックすると「」が表示されるのでをクリックし、「div(int(body(‘JSON_の解析’)?[‘d’]?[‘Usage’]
[‘Storage’]), 1073741824)」と入力します           
4 「更新」をクリックします 

6. 使用率(%)の計算 

1 一番下の「+」をクリックし、「組み込みツール」の「データ操作」アクションを選択し 「作成」をクリックします (手順5-①の図を参照)
2 アクション名をクリックし、「UsageRatePercent 」に変更します 
3 入力の箇所をクリックすると「」が表示されるのでをクリックし、「formatNumber(mul(body(‘JSON_の解析’)?[‘d’]?[‘Usage’]?[‘StoragePercentageUsed’], 100), ‘0.00’)」と入力します 
4 「更新」をクリックします 

7. 総容量(GB)の計算 

1 一番下の「+」をクリックし、「組み込みツール」の「データ操作」アクションを選択し 「作成」をクリックします(手順5-①の図を参照)
2 アクション名をクリックし、「TotalStorageGB」に変更します
3 入力の箇所をクリックすると「」が表示されるのでをクリックし、「formatNumber(div(div(int(body(‘JSON_の解析’)?[‘d’]?[‘Usage’]?[‘Storage’]), 1073741824), body(‘JSON_の解析’)?[‘d’]?[‘Usage’]?[‘StoragePercentageUsed’]), ‘0.00’)」と入力した後、「更新」をクリックします 

8. 動的なHTMLコンテンツの生成

1 一番下の「+」をクリックし、「組み込みツール」の「データ操作」アクションを選択し 「作成」をクリックします(手順5-①の図を参照) 
2 アクション名をクリックし、「FormattedBody」に変更します 
3 入力の箇所をクリックすると「」が表示されるのでをクリックし、以下を入力します
4 「更新」をクリックします

concat( 
  '<p>使用済み容量: ', string(outputs('UsedStorageGB')), ' GB</p>', 
  '<p>使用率: ', string(outputs('UsageRatePercent')), ' %</p>', 
  '<p>総容量: ', string(outputs('TotalStorageGB')), ' GB</p>' 
) 

9. メール送信(Outlook) 

1 「メールを送信」アクションを使って、事業部門に通知
2 件名、本文を入力します(宛先にはメールアドレスを入力してください) 
容量、利用率、総容量はから「FormattedBody」の本文を選択します 

10. 実行結果 

テストを実施するために、手順9の②で宛先を自分自身のメールアドレスに設定すると、以下のメールが届きました。 

まとめ

Power Automateを活用することで、SharePointの見えづらい情報も可視化でき、業務効率化と情報共有の促進につながります。今後も自動化を活用し、よりスマートな運用を目指していきたいと思います。