← 手順一覧へ戻る
クラウドフローデータ処理

SharePointの一覧をHTML表にして1通のメールで送る

SharePointのIDと件名をHTML表にまとめ、Outlookで1通だけ送る練習です。2件・0件の入力例、カスタム列、送信前の確認、最大10件の取得制限を説明します。

画面上の名前は、表示言語やバージョンによって異なる場合があります。クラウドフローはトリガー(フローを開始する条件)から始まり、その後にアクションを実行します。値の受け渡しには、前のステップの出力を選ぶ「動的コンテンツ」を使います。式は[式]欄へ入力します。

実行前に確認

  • SharePointとOffice 365 Outlookは標準コネクタですが、利用するサービスの契約、Power Automateの利用権、接続権限、組織のDLPポリシーを確認してください。すべての契約で追加費用なしに使えるという意味ではありません。
  • 初回は作成アクションまでで確認し、送信を追加するときも宛先は自分だけにします。表のカスタム列は見せる列を絞る仕組みで、SharePointの閲覧権限をメール受信者へ引き継ぐものではありません。
  • 最大10件の練習例です。再実行や送信処理の再試行による重複を防ぐ仕組みはありません。「1通」は1回の通常処理での配置を指し、厳密な一度だけの配信保証ではありません。
  • 件名が空になる場合は標準タイトル列の内部名Titleを使っているか確認します。人物列や複数選択列は値が複雑になるため、この例には含めません。表の見た目は受信するメールアプリによって異なります。

1使うトリガーとアクション

  1. トリガー手動でフローをトリガーする
  2. アクション複数の項目の取得GetItems:練習用リストをID昇順で最大10件取得
  3. アクション条件value配列の件数が0より大きいか
  4. アクションHTML テーブルの作成はい:IDと件名の2列で一覧を作成
  5. アクションメールの送信 (V2)はい:表全体を自分へ1通送信。初回は作成アクションで確認
  6. アクション作成いいえ:対象なし、と記録。メールは送らない

図で見る処理のイメージ

概念図

架空の備品点検2件を、IDと件名だけの1つの表にまとめる例です。

  1. 入力

    備品の在庫確認/会議室の整理の2項目

  2. 取得・判定

    ID昇順で最大10件。0件なら対象なしで終了

  3. 整形

    はい:ID・件名の2列、データ2行のHTML表

  4. 事前確認

    まず作成の出力で表を確認し、まだ送信しない

  5. 送信

    確認後に追加。表全体を自分宛てのメール1通へ

結果の例

2件なら見出し+データ2行を1通にまとめます。0件ならメールを送りません。

図は架空データの概念例です。実際のフローを実行して確認した結果ではありません。

設定と処理を説明する模式図です。実際の設定画面や実行結果のスクリーンショットではありません。

2実際の設定内容

入力する値・操作手順を確認する9ステップの設定と確認方法
  1. 1

    準備:Microsoft 365の組織アカウントで、練習用SharePointリスト「一覧メール練習」を用意します。標準のタイトル列に「備品の在庫確認」「会議室の整理」を1件ずつ登録します。IDは自動採番された値を使い、1・2とは限りません。実データや機密情報は使わず、SharePoint接続の読み取り権限とOutlook接続のメールボックスを確認します。

  2. 2

    インスタントクラウドフローで「手動でフローをトリガーする」を選び、SharePointの「複数の項目の取得」を追加します。後続の式を入れる前にアクション名をGetItemsへ変更します。サイトと練習用リストを選び、並べ替え順(Order By)=ID asc、上から順に取得(Top Count)=10、フィルタークエリ=空欄とします。この練習ではページネーションをオフにします。

  3. 3

    取得の直後に「条件」を置き、左の式=length(body('GetItems')?['value'])、比較=次の値より大きい、右=数値の0にします。valueは今回取得した項目の配列です。body全体は取得結果の入れ物なので、表の元データには使いません。

  4. 4

    はい側にデータ操作の「HTML テーブルの作成」を置きます。元(From)には式 body('GetItems')?['value']、列には「カスタム」を指定。1列目は見出しID/値の式 item()?['ID']、2列目は見出し件名/値の式 item()?['Title'] にします。item()はこの表に入れる各項目を指します。式は式欄に入力し、式全体を引用符で囲まないでください。

  5. 5

    最初は送信アクションをまだ追加せず、はい側のHTML表の後にデータ操作の「作成」を置き、入力にHTMLテーブルの出力を選びます。いいえ側にも「作成」を置き、固定文字「対象なし」を入れます。手動テストで実行履歴を開き、GetItemsのvalueが2件、表の出力が見出しID・件名とデータ2行であることを確認します。作成の出力ではHTMLタグが文字で見えても正常です。

  6. 6

    0件も確認します。同じ列構成の空の練習用リストを別に用意し、GetItemsのリストだけを一時的に切り替えて実行。いいえ側の「対象なし」だけが動き、HTML表側がスキップされることを確認します。確認後は元の2件のリストへ戻します。

  7. 7

    表の内容を確認できたら、はい側の「作成」の後にOffice 365 Outlookの「メールの送信 (V2)」を追加します。宛先は自分の組織アドレス、件名は「一覧テスト(最大10件)」、本文にはHTMLテーブルの出力を動的コンテンツで挿入します。HTMLを編集する場合は本文エディターのHTML表示を使います。V2の本文はHTMLであり、別のIsHtmlスイッチを探す必要はありません。

  8. 8

    「それぞれに適用する(Apply to each)」は追加しません。メールは項目ごとの繰り返し内ではなく、表を作成した後に1個だけ置きます。2件なら2行を含むメール1通、0件ならメール0通が期待結果です。何通も届く場合は送信アクションがループ内にないか、手動実行を繰り返していないか確認します。

  9. 9

    11件以上で使う場合、この設定ではID昇順の先頭10件だけです。最新10件でも全件でもありません。全件報告が必要な業務にはそのまま転用せず、取得件数・フィルター・ページネーションとメールの大きさを別途設計します。

Microsoft公式ページで確認する

設定を確認できる公式資料