Power Automateでテキストファイルを読み込む


Office365にも付随しているPower Automateで、OneDrive等に配置されたテキストファイルの中身のテキストデータを、フロー中に使用したいときにどうするか、という記事です。

本記事では、サンプルとして、以下の要件を満たすフローを作成してみます。

  • OneDriveの特定のディレクトリにファイルが新規作成されたら、そのファイルの中のテキストデータをメール本文として、メールを送信する
  • テキストファイルの中身は、HTML形式とする

メール送信アクションの性質上、テキストファイルの中身はHTMLとします。

なお、本記事では、ファイルの配置場所をOneDrive for Business、メール送信はOffice 365 Outlookを使用します。(通常のOneDriveやSharePointでも、同じことはできると思いますが、未検証です。)

フロー図

トリガー: ファイルが作成されたとき

マイクロソフトのドキュメントはこちら

フォルダー引数には、OneDrive for Businessの任意のフォルダを指定します。サブフォルダーを含める引数をはいにすると、手前で指定したフォルダ直下のみでなく、サブフォルダに作成されたファイルもトリガーの対象となります。コンテンツタイプの推測は、必要であればはい、必要なければいいえにします。

本記事では、常にテキストファイルが新規作成されることを前提にしていますが、そうでない場合は、コンテンツタイプの推測結果をもとに、条件分岐等を挟むことも考えられます。

アクション1: 変数を初期化する

手前のトリガーによって、ファイルコンテンツが取得できるのですが、そのままだと、一律でバイナリ形式として認識され、直接、メールの文面に使用できません。しかし、「変数を初期化する」アクションを使用して、このファイルコンテンツを値とした文字列変数を定義すると、当該変数の値には、テキストファイルの中のテキストがそのまま入るようです。

名前引数には、文字列変数につける好きな名前を指定します。種類引数は文字列にします。引数には、手前のトリガーで取得されたファイルコンテンツを指定します。

参考: How to read unknown text file namess with flow

アクション2: メールの送信(V2)

マイクロソフトのドキュメントはこちら

宛先件名引数には、任意の値を指定します。本文引数には、手前で定義した変数を指定します。その他の引数は、必要に応じて指定します。

試してみる

トリガーで対象としたディレクトリに、以下のようなテキストファイルを新規作成してみます。

テストファイル.txt
これはテストメールです。<br/>
この文は、テキストファイルの文章です。

すると、数分後に、指定した宛先にメールが飛んできました。(本題とはずれますが、本記事で使用した「ファイルが作成されたとき」トリガーはすぐには発動されず、10分~20分程度かかる場合もあるようです。)