コルネの進捗や備忘録が記されたなにか

進捗や成果物や備忘録てきななにかを雑に更新していきます。

Power Automate でソートする(時間編)


スポンサードリンク

はじめに

Power Automate でループなしでソートする方法を纏めました。

koruneko.hatenablog.com

しかし、この方法では日付のソートはできません。
range 関数の制限に引っかかってしまうからです。

f:id:koruneko:20211129003006p:plain

そこで、この記事では日付フィールドを昇順 / 降順で取得する方法を記載しておこうと思います。

ただし、SPO リストから取得する際限定になります。

SPOリストから項目を取得する

取得したデータをソートするというのは難しいことが分かったので、データを取得するときにソートした結果を取得するようにしたいと思います。

これを実現するためには"SharePoint にHTTP 要求を送信します"を利用します。

こちらを利用するとSharePoint に対してREST API を送信することができます。
このAPI を利用することで、項目の取得 & フィールドのソートを行いたいと思います。

今回行うのは項目の取得なので"方法"には GET を利用します。

REST API (URI) では以下を投げます。

_api/web/lists/getbytitle('[リスト名]')/items?$select=Title,Modified&$orderby=Modified asc

_api/web/lists/getbytitle('[リスト名]')/items では[リスト名]のリストから項目を取得しています。

select=Title,Modified ではTitle とModified フィールドから項目を取得しています。

orderby=Modified asc では、Modified を昇順で並び変えています。
もし、降順にしたければ orderby=Modified desc とします。

また、取得する件数を絞りたければ &$top=5 を式の最後に追記します。
この例だと先頭5件を取得する。となります。

先頭5件だけ。とやったうえでModifiedで降順ソートすると、変更日時が5番目に新しいものを last 関数で簡単に取得できますね。

おわりに

このやり方を応用して、取得したデータを一度SPO リストに一時的に格納してそのデータをソートさせて取得する。というやり方をすれば一応時間フィールドのソートもできそうですね。

ループするよりもアクション数自体は少なくなりそうですが、実行時間や一時格納用リスト用意しなくてはならない点を考慮するとちょっと微妙な気もしますが。。。


スポンサードリンク