Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Power Automateで配列を扱う①

MiyakeMito
February 19, 2022

Power Automateで配列を扱う①

MiyakeMito

February 19, 2022
Tweet

More Decks by MiyakeMito

Other Decks in Technology

Transcript

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

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

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

    応用編 4. Power Automateで配列を扱う 関数編
  4. Miyake Mito https://www.icsoft.jp/ @MiTo60448639 https://qiita.com/MiyakeMito

  5. Power Automate と Power Virtual Agents で ゲームを作ってます ⚫ オセロ

    ⚫ 神経衰弱 ⚫ どうぶつしょうぎ ➢ 配列の操作が必須
  6. 本日の参考サイト ▪ 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
  7. 配列(array) とは

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

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

    • Powe Automate は、文字列も一つ一つの文字の連続(=配列)として 解釈できます [ 1, 3, 2, 4, 0, 2 ]
  10. 練習 ➀ ➀次の値を含む配列を作ってください(JSON形式で) • ボーヒーズ • ボーン • ステイサム •

    厚切り ["ボーヒーズ", "ボーン", "ステイサム", "厚切り"] [ "ボーヒーズ", "ボーン", "ステイサム", "厚切り" ]
  11. Power Automateで 配列を扱う 基本編

  12. 配列を作る ▪ 「データ操作」-「作成」 ▪ 「変数を初期化する」 ⇒ アレイ ▪ 関数 ⇒

    array() createArray() range() split() など
  13. 配列を参照する ▪ 配列から要素を一つだけ取り出す① outputs(‘アクション名’)?[0] ➢ 添え字で指定する 添え字を指定するときは 「 ’ 」

    (シングルクオーテーション) で囲まない
  14. 配列を参照する ▪ 配列から要素を一つだけ取り出す② first() ➢ 最初の要素を取得する last() ➢ 最後の要素を取得する

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

  16. Power Automateで 配列を扱う 応用編

  17. 配列とは ③ ぶき ぼうぐ ▪ おや・・・? クリスタル レイク JSON パンダ男

    クリスタル レイク JSON パンダ子 クリスタル レイク JSON パン太郎 N.Y. JSON パンダ美 研究所 JSON パン助 宇宙船 JSON パンダ 宛先
  18. 配列とは ④ • 各要素は、オブジェクトや配列で指 定することも可能です [ {"宛先": {"住所":"クリスタルレイク","名前":"JSON パンダ男"}, "ぶき":

    {"オノ":1,"チェーンソー":3}, "ぼうぐ": {"マスク":1} }, {"宛先": {"住所":"クリスタルレイク","名前":"JSON パンダ子"}, "ぶき": {"オノ":2,"チェーンソー":1}, "ぼうぐ": {"マスク":3} }, ---- 中略---- {"宛先": {"住所":"宇宙船","名前":"JSON パンダ"}, "ぶき": {"オノ":1,"チェーンソー":0}, "ぼうぐ": {"マスク":2} } ] [ [1,2,3], [4,5,6,7], [8,9] ]
  19. ▪ 「データ操作」-「作成」 ▪ 「変数を初期化する」 ⇒ アレイ ▪ 関数 ⇒ array()

    createArray() など 配列を作成する - 応用編
  20. 配列を参照する - 応用編 ▪ 配列から要素を一つだけ取り出す① JSON Pretty Linter (https://lab.syncer.jp/Tool/JSON-Viewer/) 「気ままに勉強会

    #6 JSONについて」 参照 https://speakerdeck.com/miyakemito/jsonhabu-kunai outputs(‘アクション名’)?[0]?[‘宛先’]?[‘名前’] ➢ 添え字で指定する
  21. 配列を参照する - 応用編 ▪ 配列から複数の要素を取り出す ➢ Apply to each

  22. 配列を参照する - 応用編 Apply to each ちょっと遅い問題 Apply to eachの処理実行速度は

    ちょっと とても遅いです これを許容しなくてはならない局 面はありますが、回避できるシー ンもあります
  23. 配列を参照する - 応用編 Apply to each を回避 ◼ 繰り返しの回数が決まっている ➢

    ループの回数分、アクションを並べる ➢ 「何回目か」は添え字で指定する
  24. 配列を参照する - 応用編 Apply to each を回避 ◼ ループ処理を内包するアクションを利用する ➢

    [データ操作](Data Operation) • 各要素の値のみを扱う • CSV テーブルを出力…など ➢ 配列を解釈できるアクション 「リスト形式のデータを Adaptive Cards で表示する方法」 https://mofumofupower.hatenablog.com/entry/2020/07/27/153632 ・・・など
  25. 配列を参照する - 応用編 ▪ 配列からApply to eachを使わずに複数の要素を取り出す ➢ [選択](Select) item()?[‘宛先’]?[‘名前']

  26. 配列を参照する - 応用編 ▪ 配列からApply to eachを使わずに複数の要素を取り出す ➢ [選択](Select) item()?[‘切り身‘]

    item()?[‘骨尾頭付き‘] concat(item()?[‘切り身‘], ‘シャリ‘)
  27. 配列を参照する - 応用編 ▪ 配列からApply to eachを使わずに複数の要素を取り出す ➢ [アレイのフィルター処理](Fiter array)

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

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

    each
  30. 配列を参照する - 応用編 ▪ 配列からApply to eachを使わずに複数の要素を取り出す ➢ [結合](Join) "JSON

    パンダ男,JSON パンダ子,JSON パン太郎,JSON パンダ美,JSON パン助,JSON パンダ"
  31. 配列を参照する - 応用編 ▪ 配列からApply to eachを使わずに複数の要素を取り出す ➢ [CSVテーブルの作成](Create CSV

    table) 名前,マスク JSON パンダ男,1 JSON パンダ子,3 JSON パン太郎,2 JSON パンダ美,4 JSON パン助,0 JSON パンダ,2
  32. Power Automateで 配列を扱う 関数編

  33. Power Automate関数に よる配列操作 ➢ ご要望があれば・・・ • Contains() • empty ()

    • union () • intersection () • Item () • Length () • setProperty () ・・・etc
  34. まとめ 配列は便利 配列を制するとPower Automateが もっと楽しくなる 使いこなして面白フローをつくろう!

  35. ありがとうございました