本投稿は、Power Automate、Logic Apps の「データ操作」アクションの中にある「選択」についてサンプルを交えて解説していきたいと思います。
選択アクションとは
公式ドキュメントでは「選択」については下記のように説明されています。
異なる配列のすべての項目に対して指定されているプロパティから配列を作成します。
アクションの名前とこの説明でピンときた方はきっとプロ開発者のことでしょう。
私なりの言葉で選択アクションについて説明すると・・・
「配列の項目の数を変えることなく、項目の内容を変えた配列にする」
です。
もう少し細かく言うと・・・
「配列の項目の数を変えることなく、あるルールを項目に適用して、項目の内容を変えた配列にする」
です。前述の あるルール というのが選択アクションの設定内容を指します。
ここからは、選択アクションの使い方について初級編、中級編、上級編という形でサンプルを紹介したいと思います。
選択アクション:初級編
まずは初級編です。配列はシンプルなものを例として挙げます。
[1,2,3]
の配列の各項目に対して 1
を加算した配列 [2,3,4]
を取得したい場合を考えます。
選択アクションは次のように設定します。
数学関数 add
を使って、各項目に 1
を加算しました。
結果はこの通りです。
選択アクション:中級編
次はオブジェクトの配列を例に挙げます。
次のような 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"
}
}
]
選択アクションで name
属性を動的なコンテンツで扱えるように、対象の配列を JSON の解析アクションに渡しています。
結果はこの通りです。
選択アクション:上級編
初級編で扱った配列 [1,2,3]
を入力情報として、中級編で扱ったオブジェクト配列を生成する例を紹介します。
頭を悩ませるのは、中級編で扱ったオブジェクト配列の要素には、子オブジェクトである value
属性を持つところです。子オブジェクトを持つオブジェクト配列を生成する場合、まずは子オブジェクトから生成することを考えます。
※ 選択アクションの入力欄に 表形式 のマップが表示される場合、選択アクションの結果はオブジェクト配列になります。
※ 逆に、初級編、中級編のように入力欄が 単一項目 の場合、数値か文字列かブール値の配列になります。
この選択アクションで子オブジェクト部分の配列ができあがります。
結果はこの通りです。
さらに、この後に続いてもう一つ選択アクションを使います。
今生成したオブジェクトを項目として持つ、オブジェクトの配列を生成します。
マップの name
属性には item()['id']
を、value
属性には item()
を設定します。
結果はこの通りです。
まとめ
いかがだったでしょうか。
選択アクションの***「配列の項目の数を変えることなく、項目の内容を変えた配列にする」***という動きを見ていただきました。
読者の方々の選択アクションに対する理解が深まれば幸いです。
選択アクションを利用する機会は沢山あると思います。
「配列のデータをもとに別のデータに変換したい」、「配列のデータの中から、特定の項目だけを抽出したい」と思ったときは選択アクションの出番です。どんどん使って快適なデータ加工の沼にハマりましょう!w