146.5K Views
June 23, 22
スライド概要
Power Platfrom 関連が多いです。
Power Automate における配列 気ままに勉強会 #08
今日の目標 配列を使いこなそう
アジェンダ 1. 配列とは 2. Power Automateで配列を扱う 基本編 3. Power Automateで配列を扱う 応用編 4. Power Automateで配列を扱う 関数編
Miyake Mito @MiTo60448639 https://qiita.com/MiyakeMito https://www.icsoft.jp/
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) とは
配列とは ① 0 変数 1 2 3 4 5 • 変数(値を入れておく箱)が複数つながったもの • それぞれの箱は、配列の「要素」と呼ばれます • また配列の要素には、「添え字」という番号が割り当てられています • Power Automateでは添え字を0から数えます
配列とは ② [ 1, 3, 2, 4, 0, 2 ] • 一つの配列では、 同じ型のものしか扱えません 同じ性質の値だけをいれるようにします • ブラケットで囲み、各アイテム(要素)はカンマで区切ります(JSON) • データを取得する際は、添え字(何個目のデータ)を指定します • Powe Automate は、文字列も一つ一つの文字の連続(=配列)として 解釈できます
練習 ➀ ➀次の値を含む配列を作ってください(JSON形式で) • ボーヒーズ • ボーン • ステイサム • 厚切り ["ボーヒーズ", "ボーン", "ステイサム", "厚切り"] [ "ボーヒーズ", "ボーン", "ステイサム", "厚切り" ]
Power Automateで 配列を扱う 基本編
配列を作る ■ 「データ操作」-「作成」 ■ 「変数を初期化する」 ⇒ アレイ ■ 関数 ⇒ array() createArray() range() split() など
配列を参照する ■ 配列から要素を一つだけ取り出す① ➢ 添え字で指定する outputs(‘アクション名’)?[0] 添え字を指定するときは 「 ’」 (シングルクオーテーション) で囲まない
配列を参照する ■ 配列から要素を一つだけ取り出す② ➢ 最初の要素を取得する first() ➢ 最後の要素を取得する last()
配列を参照する ■ 配列から複数の要素を取り出す ➢ Apply to each Item() でもOK
Power Automateで 配列を扱う 応用編
配列とは ③ ■ おや・・・? 宛先 ぶき ぼうぐ クリスタル レイク クリスタル レイク クリスタル レイク N.Y. 研究所 宇宙船 JSON パンダ男 JSON パンダ子 JSON パン太郎 JSON パンダ美 JSON パン助 JSON パンダ
[ 配列とは ④ {"宛先": {"住所":"クリスタルレイク","名前":"JSON パンダ男"}, "ぶき": {"オノ":1,"チェーンソー":3}, "ぼうぐ": {"マスク":1} • 各要素は、オブジェクトや配列で指 定することも可能です }, {"宛先": {"住所":"クリスタルレイク","名前":"JSON パンダ子"}, "ぶき": {"オノ":2,"チェーンソー":1}, "ぼうぐ": {"マスク":3} [ }, [1,2,3], ---- 中略---- [4,5,6,7], [8,9] {"宛先": {"住所":"宇宙船","名前":"JSON パンダ"}, ] "ぶき": {"オノ":1,"チェーンソー":0}, "ぼうぐ": {"マスク":2} } ]
配列を作成する - 応用編 ■ 「データ操作」-「作成」 ■ 「変数を初期化する」 ⇒ アレイ ■ 関数 ⇒ array() createArray() など
配列を参照する - 応用編 ■ 配列から要素を一つだけ取り出す① ➢ 添え字で指定する outputs(‘アクション名’)?[0]?[‘宛先’]?[‘名前’] JSON Pretty Linter (https://lab.syncer.jp/Tool/JSON-Viewer/) 「気ままに勉強会 #6 JSONについて」 参照 https://speakerdeck.com/miyakemito/jsonhabu-kunai
配列を参照する - 応用編 ■ 配列から複数の要素を取り出す ➢ 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 パンダ男,1 JSON パンダ子,3 JSON パン太郎,2 JSON パンダ美,4 JSON パン助,0 JSON パンダ,2
Power Automateで 配列を扱う 関数編
Power Automate関数に よる配列操作 • Contains() • empty () • union () • intersection () • Item () • Length () • setProperty () ・・・etc ➢ ご要望があれば・・・
まとめ 配列は便利 配列を制するとPower Automateが もっと楽しくなる 使いこなして面白フローをつくろう!
ありがとうございました