ルドルフもわたるふもいろいろあってな

Microsoft 365、Power Platform、PowerShellについて調べたことや検証したことなどを投稿します。技術の話は面白い。

【2/25 更新あり】【質問回答】【Power Automate】メールに添付された同じファイル名のCSVとPDFをペアにしてリストアイテムに反映する

※2023/2/25更新:不具合があったため、フローのロジックを手直ししました。GitHubにアップロードしているフローを差し替えました。

質問をいただいたのでフローを作成しました。解説します。

フローをGitHubで公開しました。下記リンク先からダウンロードしてください。
github.com

こんなリクエストをいただきました

ブログのコメントでこんなリクエストをいただきました

また質問です。毎度すいません。
メールにPDFとCSVのペアが複数ある場合に対応させたいと思って、メールの添付ファイル全てをいったんSPOのドキュメントに保存して、それをインプットに今回のロジックでSPOリストへ登録してみているのですが、なぜか最初に検出されるファイルのエンコードだかなにかに失敗しているようで、1番目がPDFの場合は、ファイルが壊れていますになり、2番めのCSVは問題なく。1番目がCSVの場合はバイナリデータが1行出力されるだけでアイテムが作成されない といった状況になっております。この入口をメールに複数のCSVとPDFのペアが添付されている場合のやり方について教えていただけると有り難いです。

今回作成したフローの概要

今回作成したフローで実現しているのはこんな内容です。

  • メールに添付されているファイルをすべて取得
  • 同じ名前のCSVとPDFをペアとして認識する
  • そのペア1組みにつきリストアイテムを1つ投稿する
    • CSVの項目をアイテムの入力に記入
    • PDFをアイテムに添付

経緯

今回作成したのは先日公開した下記のフローから派生して作成したフローです。質問もこの記事のコメントでいただきました。
wataruf.hatenablog.com
 

フロー図

※2023/2/25更新:不具合があったため、フローのロジックを手直ししました。GitHubにアップロードしているフローを差し替えました。

アクションの設定を閉じた状態のフロー図


開いた状態のフロー図


 

使用イメージ

事前準備

SharePoint リストの作成

下記の列を持つリストアイテムを作ります。表示名があっていればフローは列を認識できます。内部名は任意の内容で大丈夫です。

  • 書籍名(1行テキスト)
  • 著者名(1行テキスト)
  • 出版日(日付)
  • 価格(通貨)


 

メール格納用サブフォルダと振り分けルールの作成

今回のフローのトリガーは「メールボックスにある特定のサブフォルダにメールが保存されること」です。

トリガー用に「書籍情報」というサブフォルダを作っておきます。

次にメールの振り分けルールを作ります。
ここでは例として「メールの件名に"書籍情報"という文字が含まれる場合は、サブフォルダ”書籍情報”にメールを移動する」という内容のルールを作ります。

フローの設定

「新しいメールが届いたとき 」トリガーが監視の対象にするフォルダを「書籍情報」にします。

フローの実行

メールの新規作成を行い、CSVとPDFを添付します。振り分けルールを適用させるために件名を「書籍情報」にします。


添付するCSVの中身は1行のデータです。


CSVテキストエディタで開くとこうなっています。各項目をダブルクォーテーションで囲んでいます。


メールを受信しました。振り分けルールによってメールが「書籍情報」フォルダに移動されました。


フローが実行されました。


ファイルのペアの個数だけアイテムがSharePointリストに登録されました。


列項目に入力された値とペアになるPDFファイルが添付されているのが分かります。

解説

今回のフローは元ネタのフローと入力情報が違うだけです。そのため、ステップごとの解説は割愛します。

元ネタのフローとの違いだけ解説します。

今回のフローのトリガーは「Office 365 Outlook」>「新しいメールが届いたとき (V3)」です。このトリガーは指定したフォルダにメールが格納されたときにフローを開始します。

このトリガーの出力のなかに「添付ファイル」があります。これは添付ファイルがもっているプロパティ情報です。
#中身のデータは含まれていません。

このプロパティ情報を使ってどうやってファイルのペアを作成しているのかは別途解説回を設けます。

このフローをGitHubで公開しました。(再掲)

※2023/2/25更新:不具合があったため、フローのロジックを手直ししました。GitHubにアップロードしているフローを差し替えました。

フローをGitHubで公開しました。下記リンク先からダウンロードしてください。この投稿の冒頭で記載しているリンクと同じです。
github.com
 
今回は以上です。