BLOGサブスレッドの日常

2025.06.05

Power Automate で複数行を扱うには

kura

くらはしです。

気がついたら6月です。早い…
だんだん蒸し暑くなってきたので、エアコンの試運転を始めました。

さて、前回 Power Automate と少し仲良くなったので、今回は、ぱわお第2弾として新たなフローを試していました。
そこでハマったところがあったので共有したいと思います。

やりたかったこと

アダプティブカードから入力した複数行のテキストを1行ずつ処理したい

やったこと

アダプティブカードを使うのは、前回と同じ方法なのですんなりできました。
入力した内容はこんな感じで取れるので、改行コードで分割すれば1つずつ処理できそうです。

{
    "variables": [
        {
            "name": "inputData",
            "type": "String",
            "value": "てすと1\nてすと2\nてすと3"
        }
    ]
}

分割といえば split です。

こんな感じで指定しましたが、まったく分割されません(泣)

split(variables('inputData'), '\n')

こんな結果になってしまいました...

{
    "variables": [
        {
            "name": "lines",
            "type": "Array",
            "value": [
                "てすと1\nてすと2\nてすと3"
            ]
        }
    ]
}

色々調べた結果、Power Automate の式ではエスケープシーケンスが効かないようで、以下の方法で改行コードを指定すると上手くいきました!

split(variables('inputData'), decodeUriComponent('%0A'))

無事、改行コードで分割されてます!

{
    "variables": [
        {
            "name": "lines",
            "type": "Array",
            "value": [
                "てすと1",
                "てすと2",
                "てすと3"
            ]
        }
    ]
}

使われている環境で改行コードが異なるので、環境に応じた改行コードを指定すると良さそうです。
改行コードについてはこちらを参考にしました。
改行コード - とほほのWWW入門

おまけ

変数として改行コードを登録して利用する方法もありました。

見た目は空っぽですが、コードビューを見るとちゃんと改行コードが入っていました。
(splitで直接指定するのと何が違うのかはさっぱりわかりません)

この場合はこんな感じで指定します。

split(variables('inputData'), variables('改行コード'))

これで複数行の扱いも怖くない!
ぱわお第2弾で作成したフローについては後日ご紹介できるかもしれません!

この記事を書いた人

kura