Power Automateにおける配列気ままに勉強会 #08
View Slide
今日の目標配列を使いこなそう
アジェンダ1. 配列とは2. Power Automateで配列を扱う 基本編3. Power Automateで配列を扱う 応用編4. Power Automateで配列を扱う 関数編
Miyake Mitohttps://www.icsoft.jp/@MiTo60448639https://qiita.com/MiyakeMito
Power Automate とPower Virtual Agents でゲームを作ってます⚫ オセロ⚫ 神経衰弱⚫ どうぶつしょうぎ➢ 配列の操作が必須
本日の参考サイト■ JSONと仲良くなるために (まとめ)https://mofumofupower.hatenablog.com/entry/2020/09/04/190039■ Apply to each のパフォーマンス改善 (配列加工の場合)https://mofumofupower.hatenablog.com/entry/2020/08/12/093000■ Power Automateの裏側をみてみよう! (1/2)https://qiita.com/h-nagao/items/be565fdac60a9b2968d5■ Power Automateの裏側をみてみよう (2/2)https://qiita.com/h-nagao/items/4f590a6e3b21ea669d0d
配列(array)とは
配列とは ①• 変数(値を入れておく箱)が複数つながったもの• それぞれの箱は、配列の「要素」と呼ばれます• また配列の要素には、「添え字」という番号が割り当てられています• Power Automateでは添え字を0から数えます変数0 1 2 3 4 5
配列とは ②• 一つの配列では、同じ型のものしか扱えません同じ性質の値だけをいれるようにします• ブラケットで囲み、各アイテム(要素)はカンマで区切ります(JSON)• データを取得する際は、添え字(何個目のデータ)を指定します• Powe Automate は、文字列も一つ一つの文字の連続(=配列)として解釈できます[ 1, 3, 2, 4, 0, 2 ]
練習 ➀➀次の値を含む配列を作ってください(JSON形式で)• ボーヒーズ• ボーン• ステイサム• 厚切り["ボーヒーズ", "ボーン", "ステイサム", "厚切り"]["ボーヒーズ","ボーン","ステイサム","厚切り"]
Power Automateで配列を扱う基本編
配列を作る■ 「データ操作」-「作成」■ 「変数を初期化する」⇒ アレイ■ 関数⇒ array() createArray() range() split() など
配列を参照する■ 配列から要素を一つだけ取り出す①outputs(‘アクション名’)?[0]➢ 添え字で指定する添え字を指定するときは「 ’ 」(シングルクオーテーション)で囲まない
配列を参照する■ 配列から要素を一つだけ取り出す②first()➢ 最初の要素を取得するlast()➢ 最後の要素を取得する
配列を参照する■ 配列から複数の要素を取り出す➢ Apply to eachItem() でもOK
Power Automateで配列を扱う応用編
配列とは ③ぶきぼうぐ■ おや・・・?クリスタルレイクJSON パンダ男クリスタルレイクJSON パンダ子クリスタルレイクJSON パン太郎N.Y.JSON パンダ美研究所JSON パン助宇宙船JSON パンダ宛先
配列とは ④• 各要素は、オブジェクトや配列で指定することも可能です[{"宛先":{"住所":"クリスタルレイク","名前":"JSON パンダ男"},"ぶき":{"オノ":1,"チェーンソー":3},"ぼうぐ":{"マスク":1}},{"宛先":{"住所":"クリスタルレイク","名前":"JSON パンダ子"},"ぶき":{"オノ":2,"チェーンソー":1},"ぼうぐ":{"マスク":3}},---- 中略----{"宛先":{"住所":"宇宙船","名前":"JSON パンダ"},"ぶき":{"オノ":1,"チェーンソー":0},"ぼうぐ":{"マスク":2}}][[1,2,3],[4,5,6,7],[8,9]]
■ 「データ操作」-「作成」■ 「変数を初期化する」⇒ アレイ■ 関数⇒ array() createArray() など配列を作成する - 応用編
配列を参照する - 応用編■ 配列から要素を一つだけ取り出す①JSON Pretty Linter (https://lab.syncer.jp/Tool/JSON-Viewer/)「気ままに勉強会 #6 JSONについて」 参照https://speakerdeck.com/miyakemito/jsonhabu-kunaioutputs(‘アクション名’)?[0]?[‘宛先’]?[‘名前’]➢ 添え字で指定する
配列を参照する - 応用編■ 配列から複数の要素を取り出す➢ Apply to each
配列を参照する - 応用編Apply to each ちょっと遅い問題Apply to eachの処理実行速度はちょっととても遅いですこれを許容しなくてはならない局面はありますが、回避できるシーンもあります
配列を参照する - 応用編Apply to each を回避◼ 繰り返しの回数が決まっている➢ ループの回数分、アクションを並べる➢ 「何回目か」は添え字で指定する
配列を参照する - 応用編Apply to each を回避◼ ループ処理を内包するアクションを利用する➢ [データ操作](Data Operation)• 各要素の値のみを扱う• CSV テーブルを出力…など➢ 配列を解釈できるアクション「リスト形式のデータを Adaptive Cards で表示する方法」https://mofumofupower.hatenablog.com/entry/2020/07/27/153632・・・など
配列を参照する - 応用編■ 配列からApply to eachを使わずに複数の要素を取り出す➢ [選択](Select)item()?[‘宛先’]?[‘名前']
配列を参照する - 応用編■ 配列からApply to eachを使わずに複数の要素を取り出す➢ [選択](Select)item()?[‘切り身‘] item()?[‘骨尾頭付き‘]concat(item()?[‘切り身‘], ‘シャリ‘)
配列を参照する - 応用編■ 配列からApply to eachを使わずに複数の要素を取り出す➢ [アレイのフィルター処理](Fiter array)item()?[‘ぼうぐ’]?[‘マスク']
配列を参照する - 応用編■ 配列からApply to eachを使わずに複数の要素を取り出す➢ [アレイのフィルター処理](Filter array)
配列を参照する - 応用編■ 配列からApply to eachを使わずに複数の要素を取り出す➢ Apply to each
配列を参照する - 応用編■ 配列からApply to eachを使わずに複数の要素を取り出す➢ [結合](Join)"JSON パンダ男,JSON パンダ子,JSON パン太郎,JSON パンダ美,JSON パン助,JSON パンダ"
配列を参照する - 応用編■ 配列からApply to eachを使わずに複数の要素を取り出す➢ [CSVテーブルの作成](Create CSV table)名前,マスクJSON パンダ男,1JSON パンダ子,3JSON パン太郎,2JSON パンダ美,4JSON パン助,0JSON パンダ,2
Power Automateで配列を扱う関数編
Power Automate関数による配列操作➢ ご要望があれば・・・• Contains()• empty ()• union ()• intersection ()• Item ()• Length ()• setProperty () ・・・etc
まとめ配列は便利配列を制するとPower Automateがもっと楽しくなる使いこなして面白フローをつくろう!
ありがとうございました