Help us understand the problem. What is going on with this article?

#PowerAutomate #LogicApps でデータの操作を実行する(選択アクション編)

本投稿は、Power Automate、Logic Apps の「データ操作」アクションの中にある「選択」についてサンプルを交えて解説していきたいと思います。

選択アクションとは

データの操作の実行 | Microsoft Docs

公式ドキュメントでは「選択」については下記のように説明されています。

異なる配列のすべての項目に対して指定されているプロパティから配列を作成します。

アクションの名前とこの説明でピンときた方はきっとプロ開発者のことでしょう。

私なりの言葉で選択アクションについて説明すると・・・
「配列の項目の数を変えることなく、項目の内容を変えた配列にする」
です。

もう少し細かく言うと・・・
「配列の項目の数を変えることなく、あるルールを項目に適用して、項目の内容を変えた配列にする」
です。前述の あるルール というのが選択アクションの設定内容を指します。

ここからは、選択アクションの使い方について初級編、中級編、上級編という形でサンプルを紹介したいと思います。

選択アクション:初級編

まずは初級編です。配列はシンプルなものを例として挙げます。

[1,2,3] の配列の各項目に対して 1 を加算した配列 [2,3,4] を取得したい場合を考えます。
選択アクションは次のように設定します。
image.png

数学関数 add を使って、各項目に 1 を加算しました。
結果はこの通りです。
image.png

選択アクション:中級編

次はオブジェクトの配列を例に挙げます。

次のような JSON があった時に、name の部分だけを抽出した配列が欲しい場合を考えます。

[
  {
    "name": "name1",
    "value": {
      "id": 1,
      "subKey": "subKey1",
      "subValue": "subValue1"
    }
  },
  {
    "name": "name2",
    "value": {
      "id": 2,
      "subKey": "subKey2",
      "subValue": "subValue2"
    }
  },
  {
    "name": "name3",
    "value": {
      "id": 3,
      "subKey": "subKey3",
      "subValue": "subValue3"
    }
  }
]

選択アクションは次のように設定します。
image.png

選択アクションで name 属性を動的なコンテンツで扱えるように、対象の配列を JSON の解析アクションに渡しています。
結果はこの通りです。
image.png

選択アクション:上級編

初級編で扱った配列 [1,2,3] を入力情報として、中級編で扱ったオブジェクト配列を生成する例を紹介します。

頭を悩ませるのは、中級編で扱ったオブジェクト配列の要素には、子オブジェクトである value 属性を持つところです。子オブジェクトを持つオブジェクト配列を生成する場合、まずは子オブジェクトから生成することを考えます。

選択アクションは次のように設定します。
image.png

※ 選択アクションの入力欄に 表形式 のマップが表示される場合、選択アクションの結果はオブジェクト配列になります。
※ 逆に、初級編、中級編のように入力欄が 単一項目 の場合、数値か文字列かブール値の配列になります。

この選択アクションで子オブジェクト部分の配列ができあがります。
結果はこの通りです。
image.png

さらに、この後に続いてもう一つ選択アクションを使います。
今生成したオブジェクトを項目として持つ、オブジェクトの配列を生成します。

選択アクションは次のように設定します。
image.png

マップの name 属性には item()['id'] を、value 属性には item() を設定します。
結果はこの通りです。
image.png

まとめ

いかがだったでしょうか。
選択アクションの「配列の項目の数を変えることなく、項目の内容を変えた配列にする」という動きを見ていただきました。
読者の方々の選択アクションに対する理解が深まれば幸いです。

選択アクションを利用する機会は沢山あると思います。
「配列のデータをもとに別のデータに変換したい」、「配列のデータの中から、特定の項目だけを抽出したい」と思ったときは選択アクションの出番です。どんどん使って快適なデータ加工の沼にハマりましょう!w

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした