LoginSignup
15
18

Power Automateでのコレクション処理のまとめ

Last updated at Posted at 2021-07-14

概要

どうやってたっけ?となることがたまにあるので、備忘録

コネクター

選択(Select)

データの再構築に。MS の以下の例を見れば分かりやすいかと。

実はオブジェクト再構築だけじゃなく、簡単に単純配列化も出来ます。

配列化することで、Key 項目の一意化も楽に。
とはいえ、Automate だけで頑張るのは大変なので Office Scripts に任せた方が楽だったりしますけど・・。

やり方は以下のように、Map 方法を Text Mode にして、単純に配列化したい項目を指定するだけ。

配列化の例
item()?['user']

image.png

フィルター配列(Filter Array)

普通に配列のフィルターが使えます。

複数条件でのフィルター方法

and/or を嚙ませることで、細かい条件指定をすることも可能です。

やり方は、Advanced Mode にして、以下のように条件を複数指定するだけ

複数条件の例
@and(equals(items('Apply_to_each'), item()?['user']), equals(item()?['reactionType'], 'like'))

image.png

関数

基本はここ

コレクション関数 メモ
chunk 文字列またはコレクションを等しい長さのチャンクに分割します。 一定数毎のLoopを行う際の事前分割。
payload is too large の回避例
contains コレクションに特定の項目があるかどうかを確認します。
empty コレクションが空かどうかを調べます。
first コレクションから最初の項目を返します。
intersection 指定したコレクションすべてに共通する項目 "のみ" を含むコレクションを返します。
以下記事を参考に
PowerAutomate: 配列の積集合を取得する(ホワイトリストにある要素だけを抜き出す)
image.png
item 配列に対する繰り返しアクションの内部で使うと、アクションの現在の繰り返しの間に配列の現在の項目を返します。 ループ時のCurrent Item
join 配列の "すべて" の項目を含み、指定された区切り記号で各項目が区切られた、文字列を返します。 配列から文字列への変換
last コレクションから最後の項目を返します。
length 文字列または配列内の項目の数を返します。
:new: reverse コレクション内の項目の順序を逆にします。 sort() とともにこの関数を使用すると、コレクションを降順で並べ替えることができます。
skip コレクションの先頭から項目を削除し、"他のすべて" の項目を返します。
:new: sort コレクション内の項目を並べ替えます。 単純型を含む任意のキーを使用して、コレクション オブジェクトを並べ替えることができます。
take コレクションの先頭から項目を返します。
union 指定した複数のコレクションの "すべての" 項目を含む 1 つのコレクションを返します。 Concat().Distinct()

応用

概要 方法
Distinct Union() に同一配列を設定で、重複削除可能
例)union(variables('Json1'),variables('Json2'))
image.png
Except 差集合 1 二重ループとかで対処
実装例 at 英語サイト
image.png
Except 差集合 2 Office Scriptsで実現
詳細はこちら
image.png
Except
差集合
決定版
Select & Filter Array で簡単に超高速
詳細はこちら
Join マージ 1. Except()と同様にLoopで・・
2. Office Scriptsで・・・面倒そう
配列同士での Exists() Empty(Intersection(Array1, Array2)) で、空で非存在。処理したいリストに対してLoopをかけるのではなく積で対象を見つけて処理すると良さげ

あとがき

思い出しつつ追記することにしよう・・

keyword

how to modify collections by functions and connectors

15
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
18