1. 概要説明対象読者本記事は、次のような方を対象としています:Power BI を使ってレポートを作成したい方Power Automate を使って業務の一部を自動化したい方ノーコード/ローコードで通知機能やレポート更新を実装する方法について、簡単な例をもとに紹介します。今回の検証構成・検証環境この記事では、次のような構成・環境で検証および実装を行っています:OS:Windows 11アカウント:Microsoft 365 の組織アカウントを使用し、Power BI・Power Automate・Teams にアクセスデータベース:Azure SQL Database を使用⚠️ 注意事項本記事で紹介する構成および手順は、Microsoft 365 の組織アカウントの使用を前提としています。個人用の Microsoft アカウントで同様の操作・接続が可能かどうかは未検証です。なお、再現を試みる際は、ご自身の環境やライセンス設定に応じて適宜調整を行ってください(データベース、認証方法等)。今回行うこと本記事ではSQLデータベース内の在庫情報をもとに、「Power BIによる可視化」と「Power Automateによる自動通知の仕組み」を構築する方法を紹介します。Power BIを使って在庫データを可視化しつつ、Power Automateで「在庫がしきい値を下回った商品」を毎朝Teamsに自動通知する仕組みを実装します。今回のゴールAzure SQL Databaseに格納された在庫データをもとに、Power BIを使用してレポートを作成し、自動更新設定を行う。また、Power Automateで毎朝データをチェックし、設定されているしきい値を下回った商品をMicrosoft Teamsに自動で通知する。2. 使用ツールと構成の全体像使用ツール一覧Power BIレポートの作成・データ可視化Power BI サービス (Workspace)レポートのオンライン公開と自動更新の設定SQL Server (Azure SQL Database)在庫データの保管SQL Server Management Studio (SSMS)データベースの作成・クエリ実行Power Automateデータ取得とTeams通知のフロー自動化Microsoft Teamsアラート通知の受け取り先チャネルデータの流れ・通知までの仕組み [Azure SQL Database] ↓ ↓ [Power BI] [Power Automate] (レポート化、Workspaceへの発行) (SQL実行 + Teamsへ毎朝自動投稿) ↓ ↓ [Power BI Service] [Microsoft Teams](在庫データ可視化 + レポートを定期更新) (在庫不足商品の確認)copy3. 事前準備SQL Server Management Studio (SSMS) のインストール1.下記サイトから最新版のSSMSをダウンロードする。 ダウンロードURL公式サイト2.ダウンロードしたexeファイルを実行する。3.出てきた画面の指示に従い、下記の画面まで進んだら、右下の インストール をクリックする。4.インストールが完了したら、SSMSを起動し、以下のような画面が表示されることを確認する。Power BI Desktopのインストール※ 公式サイトからのインストールと、Microsoft Storeからのインストールの二通りの方法がありますが、自動更新できるため、今回はMicrosoft Storeからのインストールを行います。1.Windows検索バーから Microsoft Store を検索し、アプリを起動する。2.検索バーに Power BI と入力し、一覧から Power BI Desktop を選択して、入手ボタンを押下します。3.インストール後、Power BI Desktopが起動できることを確認する。4.起動後、サインインする。Power BI Serviceへのログインとテストワークスペースの作成1.Power BI Serviceにアクセスする。2.メールアドレスを入力して Submit を押下する。3.パスワードを入力して サインイン を押下する。4.ログインできたら、左側にあるメニューから ワークスペース を選択する。5.新しいワークスペース を押下する。6.名前を入力し、適用 を押下する(今回の検証用ワークスペース)。Power Automateへのログイン1.Power Automateにアクセスする。2.メールアドレス を入力して次へを押下する。3.パスワード を入力して次へを押下する。4.トップ画面へ移動することを確認する。Microsoft Teamsへのログイン1.Teamsにアクセスする。2.メールアドレス を入力して次へを押下する。3.パスワード を入力して次へを押下する。4.トップ画面へ移動することを確認する。4. SQLでテスト用の在庫データを作成する在庫データとしきい値の設計の概要1.こちらからExcelファイルをダウンロードして確認できます。※ Officeツールがない場合は、LibreOffice か、Googleスプレッドシート にて確認可能です。SSMSを使用したテーブル・ビューの作成※ 上記のxlsxファイル内の各シートを参考にしてください。1.Categories シートより、「CREATE TABLE」と「テストデータ挿入」内のクエリをコピーし、SSMSのクエリエディターに貼り付けて、F5にて実行する。2.Products シートより、「CREATE TABLE」と「テストデータ挿入」内のクエリをコピーし、SSMSのクエリエディターに貼り付けて、F5にて実行する。3.Warehouses シートより、「CREATE TABLE」と「テストデータ挿入」内のクエリをコピーし、SSMSのクエリエディターに貼り付けて、F5にて実行する。4.AlertThresholds シートより、「CREATE TABLE」と「テストデータ挿入」内のクエリをコピーし、SSMSのクエリエディターに貼り付けて、F5にて実行する。5.InventoryRecords シートより、「CREATE TABLE」と「テストデータ挿入」内のクエリをコピーし、SSMSのクエリエディターに貼り付けて、F5にて実行する。6.vInventoryAlertLatestDate シートより、「CREATE TABLE」と「テストデータ挿入」内のクエリをコピーし、SSMSのクエリエディターに貼り付けて、F5にて実行する。5. Power BIでレポートを作成するPower BI Desktopからデータソースへ接続する1.今回の手順では Azure SQL Database を使用したため、SQL Serverを選択する。2.先ほど複数のテーブルを作成した サーバー と データベース 名を指定する。3.任意の認証方法でデータベースに接続する。※ この手順ではMicrosoftアカウントを使用します。4.先ほど作成したテーブルとビューを選択し、読み込み を押下する。5.左側メニューから、テーブルビュー を選択し、先ほど作成したテーブルとビューが読み込まれていることを確認する。カテゴリ別在庫推移グラフを作成する1.ビジュアル一覧から、折れ線グラフ を選択する。2.作成された 空の折れ線グラフビジュアル を選択し、下記画像のように設定する。3.下記の画像のように、年ごとの推移グラフになってしまうので、X軸のRecordDateを右クリックし、日付の階層 >> RecordDate に変更する。4.大きさ変更、視覚エフェクトの名前変更、ビジュアルの書式設定の変更などを任意で行う。DAXを使用して最新在庫一覧テーブルを作成する1.上部タブ一覧から、モデリング を選択し、新しいテーブル を押下する。2.下記のDAXコードを貼り付けて、仮想テーブルを作成する。LatestInventoryRecordsWithNames = VAR LatestDate = CALCULATE ( MAX ( InventoryRecords[RecordDate] ) )RETURNSELECTCOLUMNS ( FILTER ( InventoryRecords, InventoryRecords[RecordDate] = LatestDate ), "記録日", FORMAT(InventoryRecords[RecordDate], "yyyy/mm/dd"), "在庫数", InventoryRecords[StockAmount], "単価", InventoryRecords[UnitPrice], "在庫金額", InventoryRecords[StockValue], "商品名", RELATED ( Products[Name] ), "カテゴリー", RELATED ( Categories[Name] ), "倉庫名", RELATED ( Warehouses[Name] ))3.データにて、仮想テーブルが作成されたことを確認する。4.ビジュアル一覧より、テーブル を選択する。5.作成された 空のテーブルビジュアル を選択し、下記画像のように設定する。6.大きさ変更、視覚エフェクトの名前変更、ビジュアルの書式設定の変更などを任意で行う。ボタンスライサーを作成する1.ビジュアル一覧より、ボタンスライサー を選択する。2.作成された 空のボタンスライサービジュアル を選択し、下記画像のように設定する。3.同じ手順で、商品名ボタンスライサー、倉庫名ボタンスライサー を作成する。レポート全体を整える1.レポート全体の大きさ変更、視覚エフェクトの名前変更、ビジュアルの書式設定の変更などを行う。6. Power BI Serviceへの発行と、自動更新設定Power BI Serviceへの発行※ 事前に保存しておく(以下の例ではファイル名を InventoryMonitoringTemplate としている)。1.上部メニュー内にある 発行 を押下する。2.先ほどPower BI Serviceにログインした際に作成した検証用ワークスペースを選択し、選択 を押下。3.Power BI Serviceにアクセスし、ワークスペースから先ほど作成したワークスペースを開き、レポートが発行されていることを確認する。レポートの自動更新設定1.Power BI Serviceにて、先ほどレポートを発行したワークスペースを開き、レポートに対応しているセマンティックモデルの その他のオプション から 設定 を選択する。2.上部タブメニューで セマンティック モデル を選択し、項目一覧の中から 最新の情報に更新 を押下する。3.自分の希望する更新設定を行う。※ 下記では、12 AM、6 AM、6PMを指定しています。7. Power Automateで在庫アラートフローを構築するフローの作成を行う1.左のメニューバーから マイ フロー を選択し、上部にある 新しいフロー を押下後、スケジュール済みクラウドフロー を選択する。2.フロー名 と スケジュール を設定し、作成 を押下する。トリガーの設定を行う1.下記画像のような画面になるので、 Recurrence アクションを押下する。※ フロー作成時に作成されたトリガーです。2.アクション名、タイムゾーン、これらの時間に を設定する。SQLクエリ実行の設定を行う1.作成したアクションの下にある、 + ボタンを押下し、検索バーにて SQL と検索後、検索結果から SQL クエリを実行する(V2) を選択する。2.アクション名 と、接続先の サーバー名 と、データベース名 を設定する。3.詳細パラメーターにて query/query を選択後、Query Textに以下のクエリを貼り付ける。SELECT ProductId, WarehouseId, ProductName, WarehouseName, RecordDate, StockAmount, ThresholdAmountFROM vInventoryAlertLatestDate;HTMLテーブル作成の設定を行う1.作成したアクションの下にある、+ ボタンを押下し、検索バーにて HTML と検索後、検索結果から HTMLテーブルの作成 を押下する。2.アクション名を設定後、From 内に / と入力し、動的コンテンツを挿入する を押下する。3.出てきたメニューから、ResultSets…. を選択する。4.From に追加されたことを確認する。Teamsでの投稿設定を行う1.作成したアクションの下にある、+ ボタンを押下し、検索バーにて Teams と検索後、検索結果からMicrosoft Teamsセクションに移動し、 詳しく見る を押下する。2.一覧の中から チャットまたはチャネルでメッセージを投稿 を押下する。3.投稿したい、投稿先、Team、Channel を設定する。4.Messageにて、見出しを入力し、日付: の横に / と入力し、式を挿入するを選択。5.右側にエディターが表示されるので、画像にある式を入力し、左下の 追加 を押下する。utcNow(): 現在のUTC時刻を取得addHours(..., 9): UTCに9時間加算(つまり日本時間に変換)formatDateTime(..., 'yyyy年MM月dd日'): 2025年07月14日 のような形にフォーマット6.任意の文章を追加し、再度 / と入力し、動的コンテンツを挿入する を選択する。7.右側に一覧が表示されるので、直前のアクションの Output を選択する。8.Message に追加されたことを確認する。8.フローのテストとTeams通知の確認テストを行い、Teamsで投稿されることを確認する1.上部メニューにて、保存 を押下後、テスト を押下する。2.手動 を選択し、テスト を押下する。3.フローの実行 を押下する。4.先ほどTeamsでの投稿設定を行った際に設定した、Channel に指定した形式で投稿されていることを確認する。9. まとめ本記事では、Power BI と Power Automate を併用し、在庫データの可視化とアラート通知の自動化を実現する構成を紹介しました。両ツールはそれぞれ独立して動作しつつ、共通のデータソースである Azure SQL Database を参照することで、以下のような役割を担っています:Power BI: 在庫データの定期的な更新とモニタリングPower Automate: Microsoft Teams への定期的な通知このような構成により、在庫管理における「状況の可視化」と「即時の情報共有」を両立することができます。CLOVE合同会社は、企業のデータ活用を推進するための戦略策定、データ基盤構築、データ分析、AI活用支援を提供するコンサルティング会社です。 データ活用の専門家として、マーケティング、営業、業務効率化など幅広い領域で支援を行っております。貴社の課題や目的に応じた最適な設計をご提案しますので、ご興味がありましたらぜひお問い合わせフォームからお気軽にご相談ください。