Power Automate : SharePoint の 画像列をメール本文に表示したい
今回は Power Automate 関連でよくいただくご質問ネタです。
リストの画像列に保存された画像を、Power Automate で送信するメールの本文に入れる方法をご紹介します。
リストの画像列
リストの画像列は、列作成時に [画像] を選択して作成します。作成後にリストの設定画面で確認すると、種類は [縮小表示] と表示されます。
リストフォームには次図のように表示され、[画像の追加] をクリックすると、ローカル PC 上から選択した画像1点を列に保存することができます。
またビューにはサムネイルが表示され、サムネイルをクリックすると大きいサイズで画像が開きます。
画像はどこに保存されている?
画像列に保存した画像ファイルは、以前は SiteAssets 内に保存される動作でしたが、現在は仕様が変更されており、アイテムの添付ファイルとして保存されます。
そのため、画像列にファイルを保存したアイテムでは、添付ファイルを1つも追加していなくても、添付ファイル列に添付ありマークが表示されます。フォーム内の添付ファイルには表示されません。
#微妙な隠し添付ファイル扱いなのですね。
まずは SharePoint コネクタの [項目の取得] アクションでアイテムを取得して、、、となるのですが、[項目の取得] アクションでは画像列の情報は取得できません。
フローの設定例
[SharePoint に HTTP 要求を送信します] アクションを利用して、SharePoint REST API にてアイテムを取得して画像列が保存された後の内部でのファイル名を取得 → その後、添付ファイルの情報を名前指定して取得する方法を私はよく使っています。
① アイテムの取得
[SharePoint に HTTP 要求を送信します] アクションで次のように設定します。
② ファイル名を指定して添付ファイルの情報を取得
[SharePoint に HTTP 要求を送信します] アクションで次のように設定します。
- 方法:GET
- URI:
_api/web/lists/getbytitle('<リスト名>')/items(<アイテムID>)/AttachmentFiles('<ファイル名を数式でいれる>')/$value
※ ファイル名を数式で入れる箇所
json(body('SharePointHTTPアイテム取得')?['d']?['Image1'])?['fileName']
– 最初の赤字部分 : アイテム取得したアクション名
– 2つ目の赤字部分 : 画像列の内部名
③ メール送信
メール送信アクションを利用
- 画像列の画像を表示
concat('<img src="data:image/png;base64,', outputs('SharePointHTTPPic1取得')?['body']['$content'], '" />')
- その他列の値を入れたい場合
例 タイトル列 :body('SharePointHTTPアイテム取得')?['d']?['Title']
おまけ:添付ファイル無効にしたら画像列はどうなる?
ブログを書いていて、今まで特に気にしていなかった疑問がわいてきました。画像列のファイルが添付ファイルとして内部では保存されているなら、リストの設定で添付ファイル無効にしたらどうなんの?
ってことで、ためしてみました。
結論 → 画像列は使える! ファイルは以前と同じく SiteAssets に保存された!
Power Automate 関連コース
-
CI628-H Power Automate クラウド フロー 基礎
クラウド フローの基本的な概念、構築手順を習得いただけます。日常的な業務に沿った Excel 操作やメール操作を中心としたシナリオを実習の題材とし、クラウド フローの基本操作を習得し、自部門の業務を効率化するためのフローを自力で構築できるようになることをめざします。
-
CI618-H Power Automate クラウド フロー 実践
Power Automate の基本操作を習得した方を対象に、関数を用いた数式記述、繰り返し処理、JSON データ処理、さらに安定したフローを構築するためのエラーハンドリング手法など、Power Automate の応用力を高めるために必要なスキル習得をめざします。
-
CI627-H Power Automate for desktop による自動化
Power Automate for desktop の利用方法について、基本的な UI 操作の自動化、条件分岐やループ処理などの制御構造、ファイル操作、Excel 連携など、業務現場で頻出するシナリオを題材に、ローカル環境での反復作業を自動化するフローを、自ら設計・構築できるスキルの習得をめざします。
-
CI626-H Microsoft 365 – Office スクリプトと Excel によるデータ活用
Power Query を利用したデータの取り込みや加工、Power Pivot による高度なデータ モデルの構築と分析手法を学びます。また Office スクリプトを利用することで、Excel 内で行うルーチン業務をスクリプト化して自動化し、業務の効率化と標準化を実現する方法も解説します。