$30 off During Our Annual Pro Sale. View Details »

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  7. 配列(array)
    とは

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  11. Power Automateで
    配列を扱う
    基本編

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  32. Power Automateで
    配列を扱う
    関数編

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide