皆さんは、Power Automateの「例を使用してデータを書式設定する」という機能をご存じでしょうか?
こちらは2023年5月に一般提供された機能で、式を自動で作成してくれるものとなっています。
Power Automateでは様々な式(関数)がサポートされていますが、種類が多く式の形式を覚えるのが大変だと感じている方もいらっしゃるかと思います。
「例を使用してデータを書式設定する」機能は、そんな方々にとてもなおすすめな機能です。
今回はこちらの機能についての概要や使用例などをご紹介します。
前提
今回ご紹介する「例を使用してデータを書式設定する」機能は、新しいデザイナーでは現状利用できない機能のようです。
本記事で紹介している機能を使用したい場合は、クラシックデザイナーに切り替えてから利用する必要があるため、ご注意ください。
通常の式の使い方
通常、式を使用したい場合には、入力する場所を選択して[動的なコンテンツの追加]>[式]の順に選択します。
例として、氏名が名字と名前を全角スペースで区切った状態で(例:山田 花子)入力されてくるものとして、そこから名字だけを抽出する式を作成してみます。
実際に入力したものがこちらです。
split関数を用いて入力値を全角スペースで区切る式を作成しました。
式は以下の通りです。
split(triggerBody()['text'],' ')[0]
split関数で値を区切ると配列の形で出力されるので、名字だけを取り出すために"[0]"と指定しています。
試しに「山田 花子」と入力し、これを実行すると以下のような結果になります。
「山田」という名字だけを抽出することができました。
以上が通常の式の使い方となります。
「例を使用してデータを書式設定する」を使って式を生成する
では、先程と同様に名字のみを抽出する式を、「例を使用してデータを書式設定する」を使って作成してみましょう。
こちらの機能は通常と同じように[動的なコンテンツの追加]>[式]の順で選択すると出てきます。
これを選択してみると以下の画面が表示されます。
ここでは前段のトリガーやアクションで取得した項目を指定することができます。
[手動でフローをトリガーします]>[氏名]を選択すると、以下の画面になります。
上部に選択した項目が表示され、その下に「例を入力」という項目があります。
ここでは入力される値の例を左側に入力し、どのような形で出力したいかを右側に入力します。
今回は名字と名前をスペースで切り離して名字のみを出力したいので、以下のように入力します。「式を取得する」ボタンが有効になるので、押下します。
すると、「提案された式」という項目が表示され、先程作成した式と同じ式が生成されていることがわかります。式を確認し、適用ボタンを押します。
式を入力することができました。
任意の値を入れて実行してみると、名字だけ出力することができました。
なお、「提案された式」の下にある「テスト値」という項目では、この式を用いて出力される値をテストすることができます。
例えばテスト値に「長谷川 太郎」と入力すると、期待通り「長谷川」と名字だけが出力されました。
この例では比較的簡単な式なのでテストしなくても良さそうな気もしますが、さらに複雑な式の場合や期待通りの式になっているか判別が難しい場合などは、ここで確認できるので便利です。
より複雑な式の場合
今度は、日付の書式を以下のように変更することができるか見てみます。
- 入力値の例:2000-01-01
- 希望する出力:2000年1月1日(土)
実際に入力してみると、以下のような式が生成されました。
concat(formatDataTime(parseDateTime(triggerBody()['date'],'ja-JP','yyyy-MM-dd'),'yyyy','ja-JP'),'年1月1日(土)')
この式をよく見ると、入力値から'yyyy'という年の部分だけ抽出することは出来ていますが、そのあとの月日と曜日の部分が変換されずに文字列として結合されてしまっていることがわかります。
これだと期待通りの値にはならないので、さらに例を追加する必要がありそうです。
そこで、以下の例を追加してみます。
- 入力値の例:2001-12-31
- 希望する出力:2001年12月31日(月)
すると、「提案された式」が再生成されました。かなり長く複雑な式になっています。
テスト値でテストしてみると、想定通りの値が取得できました。
生成された式を見てみると無駄な部分や変わった値の出し方をしている部分がいくつかありますが、想定通りの値は取得できたことになります。
生成された式に対する考察
生成された式の無駄な部分や変わった値の出し方をしている部分について、実際に一つとりあげて考察してみます。
以下の画像は生成された式のうち、「○月○日」の「日」を出力するための式を抜粋し、分かりやすいように色分けしたものです。
式の赤枠部分では入力された日付を年・月・日に分けてハイフンで結合し直していますが、式の中で日本の日時形式に変換したあと更にアメリカの日時形式に変換する無駄な式が含まれています。
また、そもそも、欲しかったのは「○月○日」の「日」なのですが、抜粋した式全体で取得できる値は曜日としての ”日” です。
文字列として「日」を結合したかったのですが、曜日として認識されてしまったために、長い式が生成されたと考えられます。
このように、結果としては期待通りの値が出力されていても、こちらの意図とは違った式が生成されてしまうことがあります。
自動で式を作成してくれる便利な機能ではありますが、式の中身が正しいかどうかも確認すると良いでしょう。
まとめ
今回は「例を使用してデータを書式設定する」機能の概要や使用例についてご紹介しました。
式の作り方がわからない、どの関数を使えばよいかわからないといった方におすすめの機能ですので、ぜひ使ってみて下さい。
ただし、テキスト、日付、数値には対応していますが、配列などより複雑な構造のものはサポートされていないようですのでご注意ください。