松本典子の「はじめよう!Azure Logic Apps/Power Automateでノーコード/ローコード」 第8回
「動的なコンテンツ」のデータを柔軟に加工して扱うための必須手段を試して覚える
Power Automate / Azure Logic Appsの「式」を理解しよう
2021年11月25日 08時00分更新
こんにちは、Microsoft MVP(Azure / Business Applications)の松本典子です。本連載の第8回となる今回は「Power Automate / Azure Logic Appsの式」について紹介します。
1. 「動的なコンテンツ」と「式」
Power AutomateやAzure Logic Apppsでワークフローを作成する場合、図のようにコネクタ(最初のコネクタを「トリガー」、2つ目以降は「アクション」と呼ぶ)を追加していくことは、これまでの連載でも紹介してきました。
そして、あるコネクタが取得した結果(データ)は、後続のコネクタに渡して処理に使うことができます。このとき、通常は「動的なコンテンツ」という機能を用いてデータの受け渡しをします。たとえば上の図中では、「アレイのフィルター処理」コネクタの処理設定の中で、いくつかの動的なコンテンツを選択しています。
このように、動的なコンテンツとして表示される項目は後続のコネクタで選択するだけで利用可能です。ただし、コネクタが取得したデータそのままではなく、そのデータを計算したり加工/変換したりしてから使いたい場合もあるでしょう。また、コネクタが取得するすべてのデータが「動的なコンテンツ」として表示されるわけでもありません。
「動的なコンテンツ」だけではできない処理を行うために、Power Automate / Azure Logic Apppsには、もうひとつのデータの受け渡し方法として「式」という仕組みも用意されています。「動的なコンテンツ」と「式」の違いは以下のようなイメージです。
- 動的なコンテンツ:前のコネクタ(トリガー、アクションによる処理)で得られた結果データそのものを、後続のコネクタが利用できる
- 式:前のコネクタで得られた結果データに何らかの加工をしたり、取得はできているが「動的なコンテンツ」として表示されないデータを読み出したりして、後続のコネクタで利用できる
2. Power AutomateやAzure Logic Apppsの「式」とは
Power Automate / Azure Logic Apppsにおける「式」とは、データを返すための簡単な関数(1つ、または複数の組み合わせ)です。たとえばコネクタでの処理に適した形式に日付の書式を変換したり、2つの文字列を1つに統合したりするなど、動的なコンテンツだけでは対応できない多くの処理が可能になります。
3. 「式」を使ったワークフローの作成
――と、このように言葉で説明してもなかなかピンとこないですよね(筆者も説明するのに苦労しています……)。実際に簡単な式を使ったワークフローを作ってみたほうが理解しやすいと思います。そこで今回は、複数の文字列を結合できる「concat」関数を使ったワークフローを作成してみましょう。
3-1. concat関数を使ったワークフローを作成する
この非常にシンプルなワークフローでは、Power Automateのモバイルアプリでボタンをタップすると、concat関数の中で指定した文字列を結合し、モバイル通知として表示します。
ワークフローは次の手順で作成していきます。
- トリガーを設定します。今回は「手動でフローをトリガーします」をクリック
- アクションを設定します。「+新しいステップ」をクリックし、コネクタの検索窓に「データ操作」と入力して「作成」コネクタをクリック
- 最初は「動的なコンテンツ」タブが表示されるので「式」タブをクリックして表示を切り替えます
- 式(関数)の一覧はカテゴリ分けされており、最初は代表的なものしか表示されません。「もっと見る」をクリックすると、利用できるすべての式が表示されます
今回は「文字列関数」カテゴリの一番上に表示されている「concat」をクリックします。
3-1-1. concat関数の設定
「concat」をクリックすると、式の入力欄にconcat関数が入力されて図のような表示に変わります。
concat関数は「concat(文字列1,文字列2,……,文字列n)」という形で文字列を列記することで、それらをすべて結合した値を返します。今回は「WorkFlow」と「01」という2つの文字列を結合するように設定してみます。
- 文字列は「'(シングルクォーテーション)」で囲み、「,(カンマ)」で区切ります
- 文字列を入力すると図のようにヘルプが自動で表示されます。入力すべき内容がわからないときなどは参考にしてください
図のように式が入力できたら「OK」ボタンをクリックします。
最後にモバイル通知のアクションを追加します。「+新しいステップ」をクリックし、検索窓に「notification」と入力して「Send me a mobile notification」コネクタを選択します。
通知テキストの入力欄(Text欄)に「動的なコンテンツ」から「出力」を選択すると、先ほど作成した式(concat関数)の処理結果がここに入り、モバイルデバイスの通知内容となります。
ここまででワークフローは完成です。忘れずに画面上部の「保存」をクリックして、ワークフローを保存しておきましょう。
3-1-2. ワークフローをテスト実行する
画面上部の「テスト」をクリックし、手動でワークフローを実行します。テスト実行後には、各コネクタの具体的な入力/出力内容が表示されます。
このように、notificationコネクタのText部分には、concat関数を使った式で結合された「WorkFlow01」が出力されています。モバイルデバイスにもこのテキストが通知として表示されるはずです。
3-2. 式と動的なコンテンツを組み合わせて使う場合
動的なコンテンツのデータを加工して使いたい場合などは、式と動的なコンテンツを組み合わせて(式の中に動的なコンテンツを組み込んで)使うと便利です。そうしたワークフローも作成してみましょう。
ここでは、先ほど3-1で作成したワークフローを修正していきます。
3-2-1. アクション(コネクタ)の追加
まず、3-1で作成したワークフローを開きます。トリガーとして使用している「ボタン」コネクタには、動的なコンテンツとして「日付」(ボタンをタップした日付)があります。今回はこれを後続のコネクタで使いたいので、アクションを1つ追加します。
トリガーから下に伸びる矢印にマウスを合わせると、「+」とともに「新しいステップを挿入します」と表示されるので、これをクリックしたのちに「アクションの追加」をクリックします。
検索窓に「変数」と入力し、表示されるアクション一覧から「変数を初期化する」をクリックします。なお変数とは、何らかの値を一時的に保存しておくための“名前付きの箱”のようなものです。
変数を初期化するアクションは、以下のように設定します。
- 名前:今回は「日付」と入力
- 種類:「文字列」を選択
- 値:動的なコンテンツから「日付」を選択
これにより、「日付」という名前の変数に動的なコンテンツ「日付」の値(ボタンをタップした日付)が格納されます。
3-2-2. concat関数の修正
続いて、先ほどconcat関数を使って作成した式を修正します。図のように作成コネクタの「concat()」部分をクリックします。
ここでは、先ほど「01」とした文字列を日付に置き換えてみましょう。まず、concat関数部分の「'01'」を削除します。
- マウスカーソルが「,(カンマ)」の右側にある状態で「動的なコンテンツ」タブをクリック
- 「変数」一覧に表示されている「日付」をクリック
上図のような表示になったら「更新」ボタンをクリックします。これで式の修正が完了しました。
なお、最後のnotificationコネクタの修正はありません。ここまで作業したら忘れず「保存」をクリックしてください。
3-2-3. ワークフローをテスト実行する
画面上部の「テスト」をクリックし、手動でワークフローを実行します。
先ほどと同様にconcat関数で結合した文字列が出力されますが、3-1と違って「WorkFlow+日付」という結果に変わっています。
最後に
このように、動的なコンテンツに加えて式も利用することで、より複雑な処理をワークフローで自動化することが可能になります。
なお、式として使える関数の種類は非常に多くあります。最初はどんな関数があるのか、またどう使えばよいのかわからないと思いますが、以下の公式ドキュメントでも紹介されていますので、よく使うものから1つずつ覚えて活用してみてください。
この連載の記事
-
第43回
Team Leaders
社内からの質問に自動回答! AI Builder+ノーコードでQ&Aボットを作ろう -
第42回
Team Leaders
Power Automateで複数人の承認(多段階承認)ワークフローを簡単作成しよう -
第41回
Team Leaders
重要なTeamsメッセージの見失い/見落としを防ぐPower Autometeのフローを作ろう -
第40回
Team Leaders
クラウドフローからデスクトップフローを「Picture-in-Picture」で起動する -
第39回
Team Leaders
面倒なカレンダー登録作業を生成AIで自動化するワークフローを作ろう -
第38回
Team Leaders
生成AIに日本語プロンプトで指示を出し、メールから情報を抽出してもらおう -
第37回
Team Leaders
フォルダー内のすべてのファイルを添付してメールを自動送信するフローを作ろう -
第36回
Team Leaders
ローカルPCのテキストファイルをPower Automateに読み込ませて活用しよう -
第35回
Team Leaders
受信メールの添付ファイルを種類に応じたフォルダに自動保存する -
第34回
Team Leaders
Power AutomateでTeamsのチーム全員にメンションを送る方法 -
第33回
Team Leaders
Power AutomateのCopilotは日本環境でも使えるか? 試してみました - この連載の一覧へ