松本典子の「はじめよう!Azure Logic Apps/Power Automateでノーコード/ローコード」 第9回
データやワークフローを操作するのに欠かせない関数に触れてみよう
覚えておくと便利なPower Automate/Azure Logic Appsの関数
2021年12月27日 11時00分更新
こんにちは、Microsoft MVP(Azure / Business Applications)の松本典子です。本連載の第9回となる今回は、Power Automate/Azure Logic Appsの関数のうち、覚えておくと便利と思われる関数を紹介します。
0. 関数のタイプ
前回の第8回では、Power Automate/Azure Logic Appsの「動的なコンテンツ」と「式」の違いについて紹介し、式の中に関数(1つまたは複数)を組み込んでデータ操作ができると紹介しました。
Power Automate/Azure Logic Appsの関数は、目的とするものが見つけやすいように10種類のカテゴリーに整理されています。
- 文字列関数:文字列を処理します(文字列でのみ機能)
- コレクション:コレクション(通常は配列や文字列、場合によってはディクショナリ)を操作します
- 論理関数:条件の処理、値と式の結果の比較、さまざまな種類のロジックの評価などを行います
- 変換関数:値の型または形式を変更する場合に利用します
- 数学(算術)関数:2つの数値を加算するなど整数と浮動小数点数を操作します
- 日時:日付と時刻を処理します
- 参照関数:あるアクションからの出力を参照し、後のアクションでそのデータを使用するなどの処理を行います
- ワークフロー関数:実行時にワークフロー自体に関するすべての詳細やトリガーまたはアクションを呼び出す「コールバックURL」を返します
- URI解析関数:URI (Uniform Resource Identifier) を処理して、URI のさまざまなプロパティ値を取得します
- 操作:JSONオブジェクトとXMLノードを処理します
1. ワークフローの作成
今回は、関数を使った場合にどんな結果(データ)が得られるかを確認するだけの、図のようなシンプルなワークフローを作成します。
このワークフローは手動でトリガーするようになっていますが、トリガー時の「入力内容」と「作成」部分のみを都度変更して、結果がどうなるかを見ることにします。なお結果表示はワークフローのテストを手動で実行し、その結果を見ます。
今回のように、ワークフローの動作確認や出力結果のみを確認したい場合は、このような簡単なワークフローを作ると便利です。
1-1. トリガーの設定
まずはベースとなるワークフローを作成しましょう。
トリガーは「モバイルのFlowボタン」を利用します。赤枠内の「+入力の追加」は、このあと関数利用時に適宜設定するので、ひとまずは何も設定しません。
1-2. アクションの設定(関数の入力)
アクションの設定を行います。ここではデータ操作の「作成」アクションを追加します。
- 検索窓に「データ操作」と入力
- 一覧から「作成」をクリック
「入力」の部分に式(関数)が入りますが、ひとまずは何も入力せずに進みます。
1-3. アクションの設定(結果の出力)
次に、「1-2. アクションの設定(関数の入力)」と同じように検索窓に「データ操作」と入力し、一覧から「作成」をクリックします。
- 2つ目の「作成」アクションになるので、名前は自動的に「作成2」となります
- 「入力」をクリックし、動的なコンテンツから「出力」を選択
2. 覚えておくと便利な関数
以上のようなワークフローができたら、さまざまな関数を試してみましょう。
以下ではさまざまな関数を紹介していますが、いずれも先ほど空欄にした「作成」アクションの「入力」に関数を入力してワークフローを保存し、「テスト」を実行すれば結果が表示できます。
2-1. 文字列関数:guid関数
「guid関数」は、グローバル一意識別子(GUID)の文字列を自動生成します。GUIDは一意の(他と重複しない)ランダムなIDとなるので、たとえばファイルを自動生成するワークフローで重複しないファイル名を付ける場合などに役立ちます。
「作成」コネクタの「入力」にguid関数を設定します。
実行すると、このようにGUIDが自動生成されます。
2-2. 文字列関数:replace関数
「replace関数」は、入力された文字列の一部分を指定した別の文字列で置換し、更新された文字列を出力します。
まずは基になる文字列が必要です。トリガーの「+入力の追加」をクリックし、「テキスト入力」の項目を追加しておきます。「入力を指定してください」の項目には何も入力しません(Flowボタンのタップ時にテキスト入力が求められます)。
続いて「作成」アクションの「入力」にreplace関数を設定します。「式」→「文字列関数」→「もっと見る」をクリックすると、一覧にreplace関数が表示されます。あるいは式の入力欄に直接「replace(」と入力してもかまいません。
replace関数はこのように「基となる文字列」「置換対象の文字列」「置換後の文字列」を列記する形になります。上記の例は、トリガーの「入力」で入力された文字列に「World」が含まれていたら、それを「Japan」に変更して出力するものです。
なお「triggerBody()['text']」の部分は、「動的なコンテンツ」をクリックしてトリガーの「入力」を選択すると自動入力されます。
テストを実行すると文字列の入力が求められますので、今回は「Hello World」と入力してフローを実行します。テスト結果を見ると、このように指定した文字が置き換わって出力されています。
2-3. 数学(算術)関数:add関数
「add関数」は2つの数値を加算した結果を返します。今回はadd関数で1と2を加算してみます。
「作成」コネクタにadd関数を入力し、図のように数字を入力します。このようにadd関数は「add(数値1,数値2)」というごく単純な書式です。
出力を見ると1+2の計算結果である「3」が出力されています。
数学(算術)関数は、ワークフロー内で簡単な計算を実行したいときに便利です。ほかにも数値を減算するsub関数などがありますので、実際に動作を確認してみてください
2-4. 日付と時刻関数:addDays関数
「addDays」は、入力された日付と時刻(タイムスタンプ)に、指定した日数を加算して出力する関数です。たとえば「ワークフローの実行時点から7日後」のような出力が得られるわけです。
今回は、フローをトリガーしたタイムスタンプに10日を加算してみます。まず、トリガーの直下に「変数を初期化する」アクションを追加します。
- 名前:わかりやすい変数名を入力(今回は「timestamp」)
- 種類:「文字列」を選択
- 値:動的なコネクタから「タイムスタンプ」を選択
「作成」アクションの入力部分に、次のようなaddDays関数を設定します。
「式」で「addDays(」と入力したあと、「動的なコンテンツ」で表示される変数timestampをクリック、さらに「,10)」を追記します。これで、変数timestampに設定された日時に10日を加算した結果が出力されます。なお加算する数字を「-10」のようにマイナス表記すると、減算することも可能です。
実行結果を見てみましょう。ワークフローを実行したタイムスタンプの日付は「12-15」ですが、出力は「12-25」と10日加算された日付が表示されました。
今回ご紹介したaddDays関数このほか、タイムスタンプに時間を加算する「addHours」関数などもあります。日付と時刻の操作はよく使うと思いますので、いくつか知っておくと便利でしょう。
最後に
今回は、覚えておくと便利な関数をご紹介しました。ご紹介できた関数はごく初歩的なものであり、Power Autoamte/Logic Appsで利用できる関数はまだまだ多くあります。以下の公式ドキュメントも参考にして、どのような関数があるのかを探索してみてください。
この連載の記事
-
第44回
Team Leaders
契約書を確実に期限管理! SharePoint+Power Automateで期日通知を自動化 -
第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のチーム全員にメンションを送る方法 - この連載の一覧へ