Slide 1

Slide 1 text

Power Automate における配列 気ままに勉強会 #08

Slide 2

Slide 2 text

今日の目標 配列を使いこなそう

Slide 3

Slide 3 text

アジェンダ 1. 配列とは 2. Power Automateで配列を扱う 基本編 3. Power Automateで配列を扱う 応用編 4. Power Automateで配列を扱う 関数編

Slide 4

Slide 4 text

Miyake Mito https://www.icsoft.jp/ @MiTo60448639 https://qiita.com/MiyakeMito

Slide 5

Slide 5 text

Power Automate と Power Virtual Agents で ゲームを作ってます ⚫ オセロ ⚫ 神経衰弱 ⚫ どうぶつしょうぎ ➢ 配列の操作が必須

Slide 6

Slide 6 text

本日の参考サイト ■ 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

Slide 7

Slide 7 text

配列(array) とは

Slide 8

Slide 8 text

配列とは ① • 変数(値を入れておく箱)が複数つながったもの • それぞれの箱は、配列の「要素」と呼ばれます • また配列の要素には、「添え字」という番号が割り当てられています • Power Automateでは添え字を0から数えます 変数 0 1 2 3 4 5

Slide 9

Slide 9 text

配列とは ② • 一つの配列では、 同じ型のものしか扱えません 同じ性質の値だけをいれるようにします • ブラケットで囲み、各アイテム(要素)はカンマで区切ります(JSON) • データを取得する際は、添え字(何個目のデータ)を指定します • Powe Automate は、文字列も一つ一つの文字の連続(=配列)として 解釈できます [ 1, 3, 2, 4, 0, 2 ]

Slide 10

Slide 10 text

練習 ➀ ➀次の値を含む配列を作ってください(JSON形式で) • ボーヒーズ • ボーン • ステイサム • 厚切り ["ボーヒーズ", "ボーン", "ステイサム", "厚切り"] [ "ボーヒーズ", "ボーン", "ステイサム", "厚切り" ]

Slide 11

Slide 11 text

Power Automateで 配列を扱う 基本編

Slide 12

Slide 12 text

配列を作る ■ 「データ操作」-「作成」 ■ 「変数を初期化する」 ⇒ アレイ ■ 関数 ⇒ array() createArray() range() split() など

Slide 13

Slide 13 text

配列を参照する ■ 配列から要素を一つだけ取り出す① outputs(‘アクション名’)?[0] ➢ 添え字で指定する 添え字を指定するときは 「 ’ 」 (シングルクオーテーション) で囲まない

Slide 14

Slide 14 text

配列を参照する ■ 配列から要素を一つだけ取り出す② first() ➢ 最初の要素を取得する last() ➢ 最後の要素を取得する

Slide 15

Slide 15 text

配列を参照する ■ 配列から複数の要素を取り出す ➢ Apply to each Item() でもOK

Slide 16

Slide 16 text

Power Automateで 配列を扱う 応用編

Slide 17

Slide 17 text

配列とは ③ ぶき ぼうぐ ■ おや・・・? クリスタル レイク JSON パンダ男 クリスタル レイク JSON パンダ子 クリスタル レイク JSON パン太郎 N.Y. JSON パンダ美 研究所 JSON パン助 宇宙船 JSON パンダ 宛先

Slide 18

Slide 18 text

配列とは ④ • 各要素は、オブジェクトや配列で指 定することも可能です [ {"宛先": {"住所":"クリスタルレイク","名前":"JSON パンダ男"}, "ぶき": {"オノ":1,"チェーンソー":3}, "ぼうぐ": {"マスク":1} }, {"宛先": {"住所":"クリスタルレイク","名前":"JSON パンダ子"}, "ぶき": {"オノ":2,"チェーンソー":1}, "ぼうぐ": {"マスク":3} }, ---- 中略---- {"宛先": {"住所":"宇宙船","名前":"JSON パンダ"}, "ぶき": {"オノ":1,"チェーンソー":0}, "ぼうぐ": {"マスク":2} } ] [ [1,2,3], [4,5,6,7], [8,9] ]

Slide 19

Slide 19 text

■ 「データ操作」-「作成」 ■ 「変数を初期化する」 ⇒ アレイ ■ 関数 ⇒ array() createArray() など 配列を作成する - 応用編

Slide 20

Slide 20 text

配列を参照する - 応用編 ■ 配列から要素を一つだけ取り出す① JSON Pretty Linter (https://lab.syncer.jp/Tool/JSON-Viewer/) 「気ままに勉強会 #6 JSONについて」 参照 https://speakerdeck.com/miyakemito/jsonhabu-kunai outputs(‘アクション名’)?[0]?[‘宛先’]?[‘名前’] ➢ 添え字で指定する

Slide 21

Slide 21 text

配列を参照する - 応用編 ■ 配列から複数の要素を取り出す ➢ Apply to each

Slide 22

Slide 22 text

配列を参照する - 応用編 Apply to each ちょっと遅い問題 Apply to eachの処理実行速度は ちょっと とても遅いです これを許容しなくてはならない局 面はありますが、回避できるシー ンもあります

Slide 23

Slide 23 text

配列を参照する - 応用編 Apply to each を回避 ◼ 繰り返しの回数が決まっている ➢ ループの回数分、アクションを並べる ➢ 「何回目か」は添え字で指定する

Slide 24

Slide 24 text

配列を参照する - 応用編 Apply to each を回避 ◼ ループ処理を内包するアクションを利用する ➢ [データ操作](Data Operation) • 各要素の値のみを扱う • CSV テーブルを出力…など ➢ 配列を解釈できるアクション 「リスト形式のデータを Adaptive Cards で表示する方法」 https://mofumofupower.hatenablog.com/entry/2020/07/27/153632 ・・・など

Slide 25

Slide 25 text

配列を参照する - 応用編 ■ 配列からApply to eachを使わずに複数の要素を取り出す ➢ [選択](Select) item()?[‘宛先’]?[‘名前']

Slide 26

Slide 26 text

配列を参照する - 応用編 ■ 配列からApply to eachを使わずに複数の要素を取り出す ➢ [選択](Select) item()?[‘切り身‘] item()?[‘骨尾頭付き‘] concat(item()?[‘切り身‘], ‘シャリ‘)

Slide 27

Slide 27 text

配列を参照する - 応用編 ■ 配列からApply to eachを使わずに複数の要素を取り出す ➢ [アレイのフィルター処理](Fiter array) item()?[‘ぼうぐ’]?[‘マスク']

Slide 28

Slide 28 text

配列を参照する - 応用編 ■ 配列からApply to eachを使わずに複数の要素を取り出す ➢ [アレイのフィルター処理](Filter array)

Slide 29

Slide 29 text

配列を参照する - 応用編 ■ 配列からApply to eachを使わずに複数の要素を取り出す ➢ Apply to each

Slide 30

Slide 30 text

配列を参照する - 応用編 ■ 配列からApply to eachを使わずに複数の要素を取り出す ➢ [結合](Join) "JSON パンダ男,JSON パンダ子,JSON パン太郎,JSON パンダ美,JSON パン助,JSON パンダ"

Slide 31

Slide 31 text

配列を参照する - 応用編 ■ 配列からApply to eachを使わずに複数の要素を取り出す ➢ [CSVテーブルの作成](Create CSV table) 名前,マスク JSON パンダ男,1 JSON パンダ子,3 JSON パン太郎,2 JSON パンダ美,4 JSON パン助,0 JSON パンダ,2

Slide 32

Slide 32 text

Power Automateで 配列を扱う 関数編

Slide 33

Slide 33 text

Power Automate関数に よる配列操作 ➢ ご要望があれば・・・ • Contains() • empty () • union () • intersection () • Item () • Length () • setProperty () ・・・etc

Slide 34

Slide 34 text

まとめ 配列は便利 配列を制するとPower Automateが もっと楽しくなる 使いこなして面白フローをつくろう!

Slide 35

Slide 35 text

ありがとうございました