はじめに
Power Automate では HTTP 要求アクションを利用することによって Graph API を実行することが可能です。
しかし組織の情報によっては一度のアクションですべての結果が得られない場合があります。
そのような場合は @odata.nextLink プロパティを利用してページング処理を行ってあげる必要があります。
今回は Power Automate を利用してページング処理を行う方法を簡単にまとめたいと思います。
Power Automate でページング処理を行う
変数の用意
まずは変数を2つ用意します。
- URI を格納する変数
- 結果を格納する変数

1つ目の変数の方には実行する API の URI を設定します。
変数の初期化時点で API を設定可能な場合はこのタイミングで変数に設定しておきましょう。

2つ目の変数の方には Graph API による実行結果の取得結果を格納します。
複数回実行することになりますので、結果を結合する必要がありますね。
今回は簡単に配列の結果で格納しようと思います。

ページング処理を行う
ページング処理の根幹です。

仕組みとしては @odata.nextLink プロパティがなくなるまでループ処理を行うようにしています。

実行する API は URI という名前の変数に格納されているので、これを実行します。

また次にページング処理で実行する URI (があるのであれば) は @odata.nextLink プロパティに格納されているのでこれを変数に設定します。

最後に結果を順次格納していきます。
今回はオブジェクトとして取得していくのではなく、配列として格納していこうと思いますので、特定の要素、ここでは mail を抽出します。

配列の結合は union 関数を利用することで行えます。
union(variables('Results'), body('Select'))
ただし、重複は削除されてしまいますので場合によっては注意が必要です。

あとはこれを変数に格納すれば終了ですね。

おわりに
以上、 Power Automate でページング処理を行う方法でした。
もうちょっとシンプルに行うこともまぁできなくもないですけど、これが一番シンプルでぱっと見でわかりやすいやり方じゃないかなー
