119.7K Views
June 23, 22
スライド概要
Power Platfrom 関連が多いです。
Power Automate における配列② 気ままに勉強会 #09
今日の目標 関数を使って 配列を使いこなそう
アジェンダ 1. 配列(array)とは 2. 関数(function)とは 3. Power Automateの配列関数 4. Power Automateで配列操作
Miyake Mito @MiTo60448639 https://qiita.com/MiyakeMito https://www.icsoft.jp/
本日の参考サイト ■ Azure Logic Apps および Power Automate のワークフロー式関数のリファレン ス ガイド https://docs.microsoft.com/ja-jp/azure/logic-apps/workflow-definitionlanguage-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
配列(array) とは
配列とは ① 0 変数 1 2 3 4 5 • 変数(値を入れておく箱)が複数つながったもの • それぞれの箱は、配列の「要素」と呼ばれます • また配列の要素には、「添え字」という番号が割り当てられています • Power Automateでは添え字を0から数えます
配列とは ② [ 1, 3, 2, 4, 0, 2 ] • 一つの配列では、 同じ型のものしか扱えません 同じ性質の値だけをいれるようにします • ブラケットで囲み、各アイテム(要素)はカンマで区切ります(JSON) • データを取得する際は、添え字(何個目のデータ)を指定します • Powe 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} } ]
関数(function) とは
関数とは ① ■ 関数とは自動販売機のようなものである 引数(Input) 関数(function) 戻り値(Output)
関数とは ② ■ 関数とは自動販売機のようなものである createArray() (1,3,2) createArray() [1,3,2]
Power Automate の配列関数 変換関数
配列を作る ⚫ array() 1 つの入力から配列を返します ⚫ createArray() 複数の入力から配列を作成して返します 1つの入力からも作成可能なので ➢ 常にcreateArray()を推奨 ➢ アクションの[変数を初期化する]や[作成]でも作成可能
Power Automate の配列関数 コレクション関数
配列を捜索する ⚫ contains() コレクションに特定の項目があるかどうかを確認します ⚫ empty() コレクションが空かどうかを調べます ⚫ length() 文字列または配列内の項目の数を返します ➢ 文字列の場合、全角も半角も1として数える (サロゲートペア(UTF-16)は2)
配列から要素を取得する ⚫ first() コレクションから最初の項目を返します ⚫ last() コレクションから最後の項目を返します
配列から要素を取得する ⚫ skip() コレクションの先頭から項目を削除し、"他のすべて" の項 目を返します ⚫ take() コレクションの先頭から項目を返します ➢ パラメータがStringの場合は substring() で代用可
配列から要素を取得する ⚫ join() 配列の "すべて" の項目を含み、指定された区切り記号で 各項目が区切られた、文字列を返します ➢ [結合]と同じ
配列から要素を取得する ⚫ intersection() 指定したコレクションすべてに共通する項目 "のみ" を含む コレクションを返します [ ],[ ],[ ] [ ] ⚫ union() 指定した複数のコレクションの "すべての" 項目を含む 1 つの コレクションを返します [ ],[ ],[ ] [ ]
配列から要素を取得する ⚫ item() 配列に対する繰り返しアクションの内部で使うと、アク ションの現在の繰り返しの間に配列の現在の項目を返しま す [データ操作]-[選択]や Apply to each で [アレイのフィルター処理]
Power Automate の配列関数 文字列関数
配列から要素を取得する ⚫ split() 元の文字列で指定された区切り文字に基づいたより大きい 文字列から、コンマで区切られた部分文字列を含む配列を 返します ⚫ replace() 部分文字列を指定した文字列で置換し、更新された文字列 を返します
Power Automate の配列関数 算術関数
配列から要素を取得する ⚫ max() 123 数値のセットまたは配列から最大の値を返します ⚫ min() 123 数値のセットまたは配列から最小の値を返します ⚫ range() 指定した整数から始まる整数の配列を返します
Power Automate の配列関数 JSON関数
配列から要素を取得する ⚫ addProperty() JSON オブジェクトにプロパティとその値または名前と値 のペアを追加し、更新されたオブジェクトを返します ⚫ setProperty() JSON オブジェクトのプロパティの値を設定し、更新され たオブジェクトを返します ⚫ removeProperty() JSON オブジェクトからプロパティを削除し、更新された オブジェクトを返します
Power Automate で配列操作 応用編
Power Automateで配列操作 [データ操作] [関数] item() range() substring() union() 可能性(出来ること)が無限大
文字列を1文字ずつに分割 range(0,length(outputs('target_text'))) substring(outputs('target_text'),item(),1)
配列をソート ① ■ ソートマッピングを作成 range(0, length(outputs('mapping_text'))) substring(outputs('mapping_Text'),item(),1)
配列をソート ② ■ ソートマッピングを基にソート output(‘mapping_array’) output(‘target_array’) Item()
配列をシャッフル ① ■ ターゲットの要素数×100個の、0~要素数のランダムな 数字を含む配列を作成 range(0,mul(length(outputs('target_array')),100)) rand(0,length(outputs('target_array')))
配列をシャッフル ② ■ Union()で出力される配列は、第一引数の要素順になります union(body('random_array_work'),range(0,length(outputs('target_array'))))
配列をシャッフル ③ ■ 生成したランダムな配列を、添え字として指定 outputs(‘random_array') outputs('target_array')?[item()]
Power Automate と Power Virtual Agents で ゲームを作ってます ⚫ オセロ ⚫ 神経衰弱 ⚫ どうぶつしょうぎ ➢ 公開中 https://github.com/MiyakeMito/Repository ➢ インポート手順 https://qiita.com/MiyakeMito/items/b2df9ca9832fbce26a0d
まとめ 配列は便利 配列を制するとPower Automateが もっと楽しくなる 使いこなして面白フローをつくろう!
ありがとうございました