
PowerAutomateで日付のソートにハマった話
みなさんこんにちは。
PowerAutomateでカレンダーイベントをソートしようとしたら、思わぬ落とし穴があったのでシェアしたいと思います。
Outlookの予定表からある期間のイベント(予定)を取得するときに便利なアクションが、「イベントのカレンダービューの取得」です。

期間を指定して実行すると、以下のようにイベントの情報がずらっと取得できます。

ところがちょっと難点がありまして、取得されるイベントの並び順が時系列にならないんですよね。(何順なのかはよくわかりませんでした)
詳細オプションを開くと、「並び替え順」の項目がありましたので、これを使って時系列にソートしてみたいと思います。

説明書きによれば、ODATAクエリを使用して並び替えを行うようです。
調べたところこちらの情報が見つかりました。
イベント情報内の項目を指定すればソートできるのでは、と思い、イベントの開始時刻である”start”を指定して実行してみました。
なお昇順はasc、降順はdescを指定するようですが、デフォルトが昇順なのでその場合は指定しなくてもいいらしい。

すると・・

うーむ。失敗です。

エラー詳細を見ると
The $orderby expression must evaluate to a single value of primitive type.
となっています。
項目を指定すること自体が間違っている訳ではなさそうですが、これだけではちょっとわかりませんね。
調べてみたところ、同じような内容(日時でソートする)でこのエラーに当たっている情報がいくつか出てきました。
その中に「start/dateTime にするといけるよ〜」という情報が。
とりあえずやってみようという事で試したところ・・

無事成功しました!
並び順もちゃんと昇順(時系列)になっているようです。
正直なところ詳細は不明なのですが、おそらくデータ型の不一致とかそういった類の問題なのでしょう。
ということで、以上ご参考になれば幸いです。
気軽にクリエイターの支援と、記事のオススメができます!