Slide 1

Slide 1 text

Power Automate に追加された 新関数たち 2022/9 気ままに勉強会 #39 1

Slide 2

Slide 2 text

今日の目標 新しく追加された 強力な関数を知ろう 2

Slide 3

Slide 3 text

Miyake Mito @MiTo60448639 https://qiita.com/MiyakeMito 株式会社アイシーソフト Technical Manager www.icsoft.jp https://speakerdeck.com/miya kemito 3 ななもじさん @sumiika88 感謝

Slide 4

Slide 4 text

connpass (独立発行者) コネクタ が認定されました 4 https://learn.microsoft.com/ja-jp/connectors/connpassip/ イベント情報のキャッチ や管理などに便利です 是非ご活用ください!

Slide 5

Slide 5 text

本日の参考サイト 5 ◼ Azure Logic Apps および Power Automate のワークフロー式関数のリファレン ス ガイド hhttps://learn.microsoft.com/ja-jp/azure/logic-apps/workflow-definition- language-functions-reference ◼ Power Automate 2022年9月に追加された強力な新関数の紹介 https://qiita.com/MiyakeMito/items/b25be62405c04aca2e9c

Slide 6

Slide 6 text

免責事項 当スライドは、 2022年12月現在のバージョンでの情報です 今後のアップデート等により、 仕様変更する可能性があります また、私の見解による内容が含まれます 間違いなどありましたらご指摘ください 6

Slide 7

Slide 7 text

きょうの関数

Slide 8

Slide 8 text

きょうの関数 8 ➢ sort 配列内の項目を並べ替えます ➢ reverse 配列内の項目の順序を逆にします ➢ chunk 文字列または配列を等しい長さのチャンクに分割します ➢ isInt 文字列が整数かどうかを示すブール値を返します ➢ isFloat 文字列が浮動小数点数かどうかを示すブール値を返します ➢ dateDifference 2 つの日付の差をタイムスパンとして返します

Slide 9

Slide 9 text

sort()

Slide 10

Slide 10 text

sort([], ?) 10 ◼ 配列の構造を持つ、コレクション内のアイテムを昇順(asc)に並べ替え ることができます。 ◼ ソートの対象は Array である必要があります。 ◼ 降順(desc)に並べる場合は、後述の reverse() 関数と組み合わせます。 [ "パンダ", "ライオン", "ペンギンロボ" ] [ "パンダ", "ペンギンロボ", "ライオン" ] [ 3, 1, 2 ] [ 1, 2, 3 ] sort(Array) sort(Array)

Slide 11

Slide 11 text

sort([], ?) 11 ◼ ソートキーとしてカラムを指定可能です。 [ {"col1":"1","col2":35}, {"col1":"2","col2":22}, {"col1":"3","col2":10} ] [ {"col1":"3","col2":10} {"col1":"2","col2":22}, {"col1":"1","col2":35}, ] sort(Array, 'col2') ◼ 複数のソートキーを指定不可。よっては工夫が必要です。 [ {"col1":"1","col2":3,"col3":2}, {"col1":"2","col2":3,"col3":1}, {"col1":"3","col2":2,"col3":2} ] [ {"col1":"3","col2":2,"col3":2 ,"col4":"22"}, {"col1":"2","col2":3,"col3":1 ,"col4":"31"}, {"col1":"1","col2":3,"col3":2 ,"col4":"32"} ] [ {"col1":"1","col2":3,"col3":2 ,"col4":"32"}, {"col1":"2","col2":3,"col3":1 ,"col4":"31"}, {"col1":"3","col2":2,"col3":2 ,"col4":"22"} ] sort(Array, 'col4')

Slide 12

Slide 12 text

reverse()

Slide 13

Slide 13 text

reverse([]) 13 ◼ コレクション内の項目の順序を逆にします。 ◼ sort() と組み合わせると、コレクションを降順(desc)にソートできます。 [ "パンダ", "ライオン", "ペンギンロボ" ] [ "ライオン", "ペンギンロボ", "パンダ" ] [ 3, 1, 2 ] [ 2, 1, 3 ] reverse(Array) reverse(sort(Array)) [ 3, 1, 2 ] [ 3, 2, 1 ] reverse(sort(Array))

Slide 14

Slide 14 text

chunk()

Slide 15

Slide 15 text

chunk('', '') 15 ◼ 文字列または配列を同じ長さのチャンクに分割します。 ➢ 文字列をチャンクすると、第2パラメータで指定した長さ毎に、単一な 配列が返ります。 'パンダとライオンとペンギンロボ' [ "パンダと", "ライオン", "とペンギ", "ンロボ", ] chunk( Array, 4 )

Slide 16

Slide 16 text

chunk('', '') 16 ➢ 配列をチャンクすると、指定した長さ毎に要素を分割した配列が返ります。 [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] chunk( Array, 4 ) [ [ 1, 2, 3, 4 ], [ 5, 6, 7, 8 ], [ 9, 10 ] ]

Slide 17

Slide 17 text

chunk('', '') 17 ➢ 要素がオブジェクトの構造を持つ配列のチャンクも同様の動きです。 chunk( Array, 4 ) [ {"col1":"1","col2":35}, {"col1":"2","col2":22}, {"col1":"3","col2":33}, {"col1":"4","col2":84}, {"col1":"5","col2":21}, {"col1":"6","col2":95}, {"col1":"7","col2":35}, {"col1":"8","col2":96}, {"col1":"9","col2":24}, {"col1":"10","col2":1} ] [ [ {"col1":"1","col2":35}, {"col1":"2","col2":22}, {"col1":"3","col2":33}, {"col1":"4","col2":84} ], [ {"col1":"5","col2":21}, {"col1":"6","col2":95}, {"col1":"7","col2":35}, {"col1":"8","col2":96} ], [ {"col1":"9","col2":24}, {"col1":"10","col2":1} ] ]

Slide 18

Slide 18 text

isInt()

Slide 19

Slide 19 text

isInt('') 19 ◼ 文字列が整数かどうかを示すブール値を返します。 引数は文字列型である必要があります。 isInt('1234') true isInt('panda') false int() 前のチェックに

Slide 20

Slide 20 text

isFloat()

Slide 21

Slide 21 text

21 isFloat('', ''?) ◼ 文字列が浮動小数点数であるかどうかを示すブール値を返します。 第1引数は文字列型である必要があります。 isFloat('10.000,00', 'de-DE') true isFloat('-1.7976931348623e+308') true ➢ ロケール固有の形式で表される浮動小数点数を識別するには、オプションで第2引数に RFC4646ロケール・コード を指定します。 (既定ではインバリアント カルチャが適用される) isFloat('123') true

Slide 22

Slide 22 text

dateDifference()

Slide 23

Slide 23 text

dateDifference('', '') 23 ◼ endDateからstartDateを減算し、結果を文字列形式でタイムスタンプと して返します。 ◼ 日付の形式は、ISO 8601 に準拠していれば、正常に動作します。 dateDifference('2022-09-28', '2022-09-23') "-5.00:00:00" dateDifference('2022-12-03T20:20:30.000', '2022-12-25T00:00:00.000') "21.03:39:30" ➢ 時間の計算も可能な模様(リファレンスに記載が無いので注意)

Slide 24

Slide 24 text

まとめ

Slide 25

Slide 25 text

まとめ sort(),chunk(),dateDifference() といった、待望の強力な関数が 追加されました。 使いこなして素敵なフローの作成に お役立てください。 25

Slide 26

Slide 26 text

ありがとうございました 26