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

Power Automate の新関数について

MiyakeMito
December 03, 2022

Power Automate の新関数について

MiyakeMito

December 03, 2022
Tweet

More Decks by MiyakeMito

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  5. 本日の参考サイト
    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

    View Slide

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

    View Slide

  7. きょうの関数

    View Slide

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

    View Slide

  9. sort()

    View Slide

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

    View Slide

  11. 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')

    View Slide

  12. reverse()

    View Slide

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

    View Slide

  14. chunk()

    View Slide

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

    View Slide

  16. 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
    ]
    ]

    View Slide

  17. 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}
    ]
    ]

    View Slide

  18. isInt()

    View Slide

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

    View Slide

  20. isFloat()

    View Slide

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

    View Slide

  22. dateDifference()

    View Slide

  23. 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"
    ➢ 時間の計算も可能な模様(リファレンスに記載が無いので注意)

    View Slide

  24. まとめ

    View Slide

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

    View Slide

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

    View Slide