この記事の前身として、Excelで用意した従業員のリストと部署セットをもとにTeamsのチームに追加したり、削除したりを自動化する記事を投稿しました。
人事異動などで、必ず入っておくべきチームへ自動追加させる仕組みとしては、なかなかうまくできたと思います。
今回のこの記事では、管理側がExcelでリストを作らずに、Formsで従業員自身にセットを選択させる方式への改造を紹介します。
基本的には同じ作りなので、まずは前記事のフローを組み立ててみてください。
Formsには2種類ある
ご存知かと思いますが、Formsの新規作成には2つの入口があり、どちらを使うかで結果が保存される場所が変わります。
Formsページから作成
この場合はExcelに記録されます。注意点として、ExcelファイルはWebで誰かが開いたときにFormsの結果が反映する点です。一時的なアンケートなどでは手軽な方法です。
SharePointリストから作成する
この場合はSharePointリストに結果が反映します。Excel版に比べて多少できることが制限されますが、システムと連携させたり履歴として長くFormsをつかうならば、データベースとして記録が残るこちらの方法がおすすめです。
SharePointリストからFormsを作る
適当なSharePointサイトに、リストフォームを作成します。

説明文を入力して、「セットJSON」のキーに対応した選択肢を入力していきます。
アイコンも適当に画像生成してこんな感じのフォーム画面ができました。回答項目は1つだけ。リストに回答内容が追加される際には、レコードの作成者が回答した本人になるので、そこから誰かという情報を取得すればよいですね。
実際にアンケートに回答してみると、リストにはこんな感じで登録されました。
Power Automateでリストトリガーを作る
ロジック側の実装をします。ユーザーがFormsで回答するとリストに登録されるので、それをトリガーにして動かすと良いでしょう。
前記事で作ったフローを改造するので、「名前をつけて保存」します。
適当名前をつけます。
作成したコピーはフローが停止しているのでオンにしておきます。
SharePoint系のトリガーを探してみると「アイテムが作成または変更されたとき」というのがあるので、こちらが良さそうですね。変更もトリガーになるので、Formsで回答済みのレコードで選択肢を変更したときにも反映可能になります。リストからの変更は受け付けたくないなら、「項目が作成されたとき」を選ぶとよいでしょう。
currentGroupsをループの外に出す
今回はExcelファイルの情報は使わずに、SharePointリストの作成者にあるメールアドレスをつかうので、currentGroupsのアクションをループの外に出します。

URIの中にあるMailはループの要素なので、ここを削除してからループの上に出してきました。

先程のループ内の要素の代わりに、動的なコンテンツをつかってSharePointから「登録者 Email」をはめ込みます。

他のアクションも 一番外側のApply to each の外に出します。Apply to eachの要素を使っていると外に出せないので、追加、削除のアクションに設定していたユーザープリンシパルの部分と、Apply to eachの入力部分を削除してやると移動ができます。空っぽになったApply to eachは削除して構いません。

最後に、先程削除したApply to each の要素だった追加、削除のユーザープリンシパル名のところに、SharePointリストから「登録者 Email」を配置します。
完全に不要になったExcelの「表内に損z祭する行を一覧表示」アクションも削除してしまいます。
テスト
このまま作成ユーザーでFormsに入力してテストをすると、所有者であるチームから追い出されてしまうので、テストユーザーであるミリアムさんにお願いして試してもらいます。
試しに大阪営業担当として送信してもらいます。
おや?エラーが出ました。
なるほど、ループの中でしようするitemsが残っています。セットJSONのキーは、SharePointリストの選択肢から取得しないといけません。
なぜか値のところでSharePointの値を動的から選ぼうとしても出てこないので、仮で「作成」を作ってそこに「新しい部署タイプ」を選択すると、式が取得できます。日本語の項目名なので難しい名前ですね。(Forms作るときに最初は英語名で作ればよかったかも)

outputs('セットJSON')?[triggerOutputs()?['body/OData__x65b0__x3057__x3044__x90e8__x7f/Value']]
今度は通りました!「作成」を見ると選択したタイプが表示されています!

まとめ
前回はExcelでの一括処理をつくりましたが、ユーザーの自主的なフォーム入力でチームの一括移動ができるようになりました。













