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

Power Automateで配列を扱う②

MiyakeMito
March 05, 2022

Power Automateで配列を扱う②

MiyakeMito

March 05, 2022
Tweet

More Decks by MiyakeMito

Other Decks in Technology

Transcript

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

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

  3. アジェンダ 1. 配列(array)とは 2. 関数(function)とは 3. Power Automateの配列関数 4. Power

    Automateで配列操作
  4. Miyake Mito https://www.icsoft.jp/ @MiTo60448639 https://qiita.com/MiyakeMito

  5. 本日の参考サイト ▪ Azure Logic Apps および Power Automate のワークフロー式関数のリファレン ス

    ガイド https://docs.microsoft.com/ja-jp/azure/logic-apps/workflow-definition- language-functions-reference ▪ Power Automateで文字列を1文字ずつに分割する方法 https://qiita.com/h-nagao/items/e0153b9a2c700cc2c95e ▪ Power Automateでのソート (Loopなし) https://qiita.com/h-nagao/items/765826be914fbf08bd02 ▪ Power Automate で配列をシャッフルする方法 https://mofumofupower.hatenablog.com/entry/2020/10/06/160200
  6. 配列(array) とは

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

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

    • Powe Automate は、文字列も一つ一つの文字の連続(=配列)として 解釈できます [ 1, 3, 2, 4, 0, 2 ]
  9. 配列とは ③ ぶき ぼうぐ ▪ おや・・・? クリスタル レイク JSON パンダ男

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

    {"オノ":1,"チェーンソー":3}, "ぼうぐ": {"マスク":1} }, {"宛先": {"住所":"クリスタルレイク","名前":"JSON パンダ子"}, "ぶき": {"オノ":2,"チェーンソー":1}, "ぼうぐ": {"マスク":3} }, ---- 中略---- {"宛先": {"住所":"宇宙船","名前":"JSON パンダ"}, "ぶき": {"オノ":1,"チェーンソー":0}, "ぼうぐ": {"マスク":2} } ] [ [1,2,3], [4,5,6,7], [8,9] ]
  11. 関数(function) とは

  12. 関数とは ① ▪ 関数とは自動販売機のようなものである 引数(Input) 戻り値(Output) 関数(function)

  13. 関数とは ② ▪ 関数とは自動販売機のようなものである createArray() (1,3,2) [1,3,2] createArray()

  14. Power Automate の配列関数 変換関数

  15. 配列を作る ⚫ array() 1 つの入力から配列を返します ⚫ createArray() 複数の入力から配列を作成して返します 1つの入力からも作成可能なので ➢

    常にcreateArray()を推奨 ➢ アクションの[変数を初期化する]や[作成]でも作成可能
  16. Power Automate の配列関数 コレクション関数

  17. 配列を捜索する ⚫ contains() コレクションに特定の項目があるかどうかを確認します ⚫ empty() コレクションが空かどうかを調べます ⚫ length() 文字列または配列内の項目の数を返します

    ➢ 文字列の場合、全角も半角も1として数える (サロゲートペア(UTF-16)は2)
  18. 配列から要素を取得する ⚫ first() コレクションから最初の項目を返します ⚫ last() コレクションから最後の項目を返します

  19. 配列から要素を取得する ⚫ skip() コレクションの先頭から項目を削除し、"他のすべて" の項 目を返します ⚫ take() コレクションの先頭から項目を返します ➢

    パラメータがStringの場合は substring() で代用可
  20. 配列から要素を取得する ⚫ join() 配列の "すべて" の項目を含み、指定された区切り記号で 各項目が区切られた、文字列を返します ➢ [結合]と同じ

  21. 配列から要素を取得する ⚫ intersection() 指定したコレクションすべてに共通する項目 "のみ" を含む コレクションを返します ⚫ union() 指定した複数のコレクションの

    "すべての" 項目を含む 1 つの コレクションを返します [ ],[ ],[ ] [ ] [ ],[ ],[ ] [ ]
  22. 配列から要素を取得する ⚫ item() 配列に対する繰り返しアクションの内部で使うと、アク ションの現在の繰り返しの間に配列の現在の項目を返しま す Apply to each で

    [データ操作]-[選択]や [アレイのフィルター処理]
  23. Power Automate の配列関数 文字列関数

  24. 配列から要素を取得する ⚫ split() 元の文字列で指定された区切り文字に基づいたより大きい 文字列から、コンマで区切られた部分文字列を含む配列を 返します ⚫ replace() 部分文字列を指定した文字列で置換し、更新された文字列 を返します

  25. Power Automate の配列関数 算術関数

  26. 配列から要素を取得する ⚫ max() 数値のセットまたは配列から最大の値を返します ⚫ min() 数値のセットまたは配列から最小の値を返します ⚫ range() 指定した整数から始まる整数の配列を返します

    123 123
  27. Power Automate の配列関数 JSON関数

  28. 配列から要素を取得する ⚫ addProperty() JSON オブジェクトにプロパティとその値または名前と値 のペアを追加し、更新されたオブジェクトを返します ⚫ setProperty() JSON オブジェクトのプロパティの値を設定し、更新され

    たオブジェクトを返します ⚫ removeProperty() JSON オブジェクトからプロパティを削除し、更新された オブジェクトを返します
  29. Power Automate で配列操作 応用編

  30. Power Automateで配列操作 [関数] item() range() substring() union() [データ操作] 可能性(出来ること)が無限大

  31. 文字列を1文字ずつに分割 substring(outputs('target_text'),item(),1) range(0,length(outputs('target_text')))

  32. 配列をソート ① substring(outputs('mapping_Text'),item(),1) ▪ ソートマッピングを作成 range(0, length(outputs('mapping_text')))

  33. 配列をソート ② Item() ▪ ソートマッピングを基にソート output(‘mapping_array’) output(‘target_array’)

  34. 配列をシャッフル ① rand(0,length(outputs('target_array'))) ▪ ターゲットの要素数×100個の、0~要素数のランダムな 数字を含む配列を作成 range(0,mul(length(outputs('target_array')),100))

  35. 配列をシャッフル ② ▪ Union()で出力される配列は、第一引数の要素順になります union(body('random_array_work'),range(0,length(outputs('target_array'))))

  36. 配列をシャッフル ③ ▪ 生成したランダムな配列を、添え字として指定 outputs('target_array')?[item()] outputs(‘random_array')

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

    ⚫ 神経衰弱 ⚫ どうぶつしょうぎ ➢ 公開中 https://github.com/MiyakeMito/Repository ➢ インポート手順 https://qiita.com/MiyakeMito/items/b2df9ca9832fbce26a0d
  38. まとめ 配列は便利 配列を制するとPower Automateが もっと楽しくなる 使いこなして面白フローをつくろう!

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