PowerAutomateで配列に対してフィルターで絞り込みを掛けて再度配列に格納したい

PowerAutomateで配列に対してフィルターで絞り込みを掛けて再度配列に格納したい

タイトルの通り、PowerAutomate(PA)で配列に対して絞り込みをかけてその結果を再度配列に格納して利用する方法を紹介します。

PAで配列にフィルターを掛ける

まずデータを入れたアレイ(配列)を用意しておきます。
そのアレイをアレイのフィルター処理アクションかけます。

ちなみに今回のarr配列は連想配列になっています。
例としてわかりやすく書くと…(サンプルです)

$array = [
    'tit'=>['あああ','いいい','ううう'],
    'ans'=>['111','222','333'],
    'cat'=>['aaa','bbb','ccc']
];

完成形です。
詳細設定モードで見るとこんな感じ。
(基本モードでコンテンツを選択すると自動で作られます)


順番にフィルター条件を説明していきます。
今回はPowerVirtualAgetnsの画面で指定した値と同じカテゴリのものだけを抽出したいフィルターを作成します。

PowerVirtualAgentsからの入力値(カテゴリ)を採用します。
ここは直打ちをして値を固定してもOK。

連想配列のcatのカラムでフィルターしたいが、多次元配列は”動的なコンテンツ”の一覧には出てこないので式から”item()”を選択します。
配列のカラム名”cat”を指定したいので下記のように式を書きます。

item()?['cat']

これで指定はOKです。

jsonの解析アクションで加工

なんとアレイのフィルター処理の返り値はJSON形式で返ってきます。
その為、アレイのフィルター処理をそのまま配列変数に追加してもエラーします。

なのでJSONの解析アクションでフィルター処理の結果を使用できるようにワンクッションはさみます。

スキーマはサンプルから自動生成可能です。
”サンプルから生成”ボタンを押し配列の形を入れてあげればとりあえずはOK。
完了を押すと勝手に出来上がります。

ループ処理でフィルター処理の結果を格納

解析を行うと動的なコンテンツにJSONの解析が増えているのでこれを使っていく。

JSONの解析結果を基に配列変数にセットします。
これで配列に対してフィルター処理を行った結果を再度配列に格納することができます。
格納する配列は予め用意しておきます。ここでは配列名”arr_cat”に格納しています。

格納データを確認

新しく配列に格納されたデータを確認していく。
HTMLテーブルの作成に配列変数を指定すると確認ができます。

ちなみにフィルター処理の結果を確認するだけであれば、HTMLテーブルの作成アクションにフィルター処理の本文をそのまま指定できます。

これで、PAで配列に対してフィルターで絞り込みを掛けた後、再度配列に格納して使用することができました!
まだまだPowerPlatformは開発段階な所がある気がします。もう少し便利なアクションや使い方が出来るようにMSさんに期待ですね…

PowerPlatformカテゴリの最新記事