Power Appsで入力したテキストを、Power Automateを用いてTeamsに投稿したいというケースがあるかと思います。
その際、Power Appsから受け取った情報でそのままTeamsへ投稿させようとすると、改行が反映されていないことに気が付きました。
今回は、Power Appsで入力した改行ありのテキストを、Teamsに改行ありで投稿させる方法をご紹介します。
実現したかったこと
Power Appsでテキストを入力して送信すると、入力した内容がTeamsへ投稿されるというものです。
下記のようなイメージです。
まず、Power Appsでテキストを入力して、送信ボタンを押します。*1 
入力した内容が、改行情報を保持したままTeamsへ投稿されます。
発生した事象と原因
作成していたフロー
当初、作成していたフローです。「Power Apps (V2)」でPower Appsで入力された内容を取得し、取得した内容を「チャットまたはチャネルでメッセージを投稿する」アクションでチャネルへ投稿するようにしていました。*2

上記のフローで試したところ、Power Apps側で改行ありのテキストを入力しても、改行が反映されずにTeamsへ投稿されてしまいました。
Power Appsでの入力画面です。改行が入っています。
連動してTeamsへ投稿された内容です。改行が消えて一行になってしまっています。
何かしらの設定をしないと、Power Apps側で入力した改行は反映されないことが分かりました。
Power Appsより受信した内容を確認
受信した内容を確認すると、改行を反映して情報を取得していることが分かります。また、「未加工情報の表示」を選択すると、Power Appsで入力した内容である「"text"」部分で改行している部分が「\n」で表示されていることが分かります。

"text": "おはよう\nこんにちは\nこんばんは"
Power Appsから受信される内容はJSON形式であり、改行は「\n」で表されます。
※ なお、「\n」については以下の記事でもご紹介しているので、こちらの記事もご覧ください。
Teamsで送信されている内容を確認
続いて、Teamsで送信されている内容を確認します。メッセージ部分に注目すると、<p>と</p>にPower Appsで入力した内容が挟まれていることが分かります。

<p>と</p>はHTML形式で段落を表すものですので、TeamsメッセージはHTML形式で送信されていることが分かります。
改行が反映されない原因
上記で記載した内容より、以下2つのことが分かりました。
- Power Appsから受信したテキストはJSON形式で表される。
- Teamsで送信されるメッセージはHTML形式で表される。
受信側と送信側で形式が異なるため、改行が反映されないことが分かりました。
対応策
上記より、JSON形式で表されている改行をHTML形式で改行を表す文字列に変換すればよいことが分かります。
HTML形式の場合、改行は「<br>」で表されますので、フローに2つのアクションを追加して、変換させるようにしました。
全体イメージ
JSON形式での改行を表現して、その内容をreplace関数を用いて変換し、その内容でTeamsへ投稿するように指定します。

改行を設定
ここからは、追加したアクションを見ていきます。
「作成」アクションでは単純にEnterを押して空白のまま改行を入れています。

当初、「\n」と入力して試したのですが、改行として反映されませんでした。Power Apps (V2)で確認したときも同様でしたが、未加工情報の際は「\n」が表示されていたものの、出力結果として表示される際は「\n」が消えて表示されていました。
それを避けるために、今回はそのままEnterによる改行のみ入力しています。
加工された改行をHTML形式での改行に変換

「作成 2」アクションではreplace関数を用いて式を設定しています。式の内容は下記の通りです。
replace(triggerBody()['text'],outputs('作成'),'<br>')
replace関数はテキストを指定し、そのテキスト内にある特定の文字列を指定した文字列に変換することが出来る関数です。
今回はテキストに含まれるJSON形式での改行(「作成」アクションで作成)をHTML形式での改行を表す「<br>」に変換しています。
replace関数の詳細については、Microsoft learnのリファレンスページもご覧ください。
変換された出力を送信するメッセージに指定
「作成 2」アクションでの出力結果を、送信するメッセージに指定します。

これにより、HTML形式での改行コード「<br>」に変換された内容でメッセージ送信されます。
対応後の実行結果
実行結果
対応策で紹介した2つのアクションを入れて実行した結果は下記のとおりです。
まず、Power Appsで改行入りのテキストを入力して、送信ボタンを押します。
Teamsに送信された内容を確認します。改行が反映されてメッセージ投稿されていることが確認できました。
実行履歴
実行履歴を確認します。「作成 2」アクションの出力で、HTML形式で改行を表す「<br>」が入っていることが分かります。

Teamsへメッセージ送信では、送信されるメッセージにHTML形式で改行を表す「<br>」が入っていることが確認できます。

おわりに
Power Appsで入力した改行ありのテキスト内容を、改行を反映させてTeams上で改行させる方法をご紹介しました。
Power Apps側で加工する方法もあると思いますが、本記事ではPower Automate側で加工する方法でご紹介しました。
同じような現象で悩んでいる方の参考になれば幸いです。