Office 365 Groups コネクター、「グループの一覧」アクションの罠？


Power Platform、Power Apps・Power Automate の「Office 365 Groups コネクター」の「グループの一覧」アクションに関する小ネタです。

# 「グループの一覧」アクション
該当の Microsoft 365 テナント、Microsoft Entra ID（略称 ME-ID／旧 Azure AD）や Exchange Online の

- メールが有効なセキュリティーグループ
- セキュリティ グループ
- Microsoft 365 グループ
- 配布グループ

の、全グループの一覧を取得できます。
例えば、テナント内に存在するセキュリティーグループを一覧化するなどのタイミングで利用します。検索いただくと利用例などは有志の Blog 等が見つかると思います。

https://learn.microsoft.com/ja-jp/connectors/office365groups/?WT.mc_id=DX-MVP-5004053#%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%E3%81%AE%E4%B8%80%E8%A6%A7

# Power Automate の場合
さて、皆さん、この「Office 365 Groups コネクター」の「グループの一覧」アクションにあるプロパティを操作したコトあるでしょうか？

![スクリーンショット 2024-03-29 235938.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/231b917f-6d2f-7d6a-fea8-edc3f1e12bf9.png)

3つあるプロパティのうち［ページ サイズ］をおもむろに 9999 を指定してみたんですよ。
![スクリーンショット 2024-03-30 003631.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/17c09164-5e4e-4372-0894-4ea514d37aea.png)

問題なく保存できます。
![スクリーンショット 2024-03-30 003841.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/2b57dd89-4387-8343-faa7-ac9204efbc4b.png)

さて。テスト実行を・・・したらエラーになりました(´・ω・`)
![スクリーンショット 2024-03-30 003958.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/2a3876e0-3acf-ae4e-8ea7-294ec4e17698.png)

エラー内容はこちらです。
> "message": "Invalid page size specified: '9999'. Must be between 1 and 999 inclusive.",

「ページサイズは 1 から 999 ですよ」って言ってますね。

# やまさんの想定
おそらく Graph API のコチラを内部的に呼び出していると想定します。

https://learn.microsoft.com/ja-jp/graph/api/group-list?view=graph-rest-1.0&tabs=http&WT.mc_id=DX-MVP-5004053#optional-query-parameters

>  既定のページ サイズと最大ページ サイズは、それぞれ 100 と 999 のグループ オブジェクトです。

上記のように 規定が 100、最大が 999 と明記されています。
では、最大値で保存してみましょう。

![スクリーンショット 2024-03-30 004159.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/41d560f6-01f9-b2f1-81d7-1c9d8e4a752c.png)

![スクリーンショット 2024-03-30 004257.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/f427c4a7-3f93-3263-914d-e4a307d86649.png)
問題なく動作しました。

うーん、おそらくコネクターのアクションが裏側で呼び出している API の制限があるのは理解します。

が！

実行時エラーでしか判明しないのは・・・チョット不親切だなぁ、と思いました。また、これを、Power Platform のコネクターページにも明記しておいてほしいですよねぇ。冒頭で紹介した Learn（Docs）にはプロパティの制約事項は明記されていません。（※フィードバック済みです）

# Power Apps の場合
Power Apps の場合は「Office 365 コネクター」を追加して利用します。前述の Power Apps では［ページ サイズ］でしたが、Power Apps の場合は ”$top” で指定します。
![スクリーンショット 2024-03-30 004605.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/2db19cc6-2785-fe47-3e72-10a2a2392e36.png)

最大値を超えた値を指定した場合は、クラウドフローと異なりエラー検知された瞬間に警告が表示されます。（これだよ、コレ。この動きが望ましい）
![スクリーンショット 2024-03-29 235807.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/9909f3ac-264e-071d-d142-d38300e0e2bc.png)

# まとめ
「Office 365 Groups コネクター」の「グループの一覧」アクションの仕様ですね。

- 「グループの一覧」アクションは、デフォルト（規定）では 100 グループ取得する
  - 取得可能な最大は 999 グループまで
- Power Automate で指定するプロパティは「ページ サイズ」
  - 上記、最大値を超過する値（例：99999）を設定した場合は”実行時エラー”となる
  - クラウドフローの保存時はエラーにならない
- Power Apps で指定するプロパティは ”$top”
  - 上記、最大値を超過する値を設定したタイミングでエラーとなる

1,000 件以上を取得した場合は工夫が必要ですね。
Teams のチームを作成すると Microsoft 365 グループが自動で増えていくので、Microsoft 365 を利用している期間が長ければ長いほど遭遇する可能性があがるなぁ・・・などと思います。

それでは、皆さま。素晴らしい Power Platform Life を！