0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Formsで役割を選択したら適切なチームに自動参加できる仕組みを作ってみた

0
Posted at

この記事の前身として、Excelで用意した従業員のリストと部署セットをもとにTeamsのチームに追加したり、削除したりを自動化する記事を投稿しました。

人事異動などで、必ず入っておくべきチームへ自動追加させる仕組みとしては、なかなかうまくできたと思います。

今回のこの記事では、管理側がExcelでリストを作らずに、Formsで従業員自身にセットを選択させる方式への改造を紹介します。

基本的には同じ作りなので、まずは前記事のフローを組み立ててみてください。

Formsには2種類ある

ご存知かと思いますが、Formsの新規作成には2つの入口があり、どちらを使うかで結果が保存される場所が変わります。

Formsページから作成

この場合はExcelに記録されます。注意点として、ExcelファイルはWebで誰かが開いたときにFormsの結果が反映する点です。一時的なアンケートなどでは手軽な方法です。

SharePointリストから作成する

この場合はSharePointリストに結果が反映します。Excel版に比べて多少できることが制限されますが、システムと連携させたり履歴として長くFormsをつかうならば、データベースとして記録が残るこちらの方法がおすすめです。

SharePointリストからFormsを作る

適当なSharePointサイトに、リストフォームを作成します。
image.png

適当な名前をつけます。
image.png

説明文を入力して、「セットJSON」のキーに対応した選択肢を入力していきます。

image.png

アイコンも適当に画像生成してこんな感じのフォーム画面ができました。回答項目は1つだけ。リストに回答内容が追加される際には、レコードの作成者が回答した本人になるので、そこから誰かという情報を取得すればよいですね。

image.png

実際にアンケートに回答してみると、リストにはこんな感じで登録されました。

image.png

Power Automateでリストトリガーを作る

ロジック側の実装をします。ユーザーがFormsで回答するとリストに登録されるので、それをトリガーにして動かすと良いでしょう。

前記事で作ったフローを改造するので、「名前をつけて保存」します。

image.png

適当名前をつけます。

image.png

作成したコピーはフローが停止しているのでオンにしておきます。

image.png

一番上にあるトリガー部分を削除します。
image.png

SharePoint系のトリガーを探してみると「アイテムが作成または変更されたとき」というのがあるので、こちらが良さそうですね。変更もトリガーになるので、Formsで回答済みのレコードで選択肢を変更したときにも反映可能になります。リストからの変更は受け付けたくないなら、「項目が作成されたとき」を選ぶとよいでしょう。

image.png

トリガーを追加しました。
image.png

currentGroupsをループの外に出す

今回はExcelファイルの情報は使わずに、SharePointリストの作成者にあるメールアドレスをつかうので、currentGroupsのアクションをループの外に出します。
image.png

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

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

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

最後に、先程削除したApply to each の要素だった追加、削除のユーザープリンシパル名のところに、SharePointリストから「登録者 Email」を配置します。

完全に不要になったExcelの「表内に損z祭する行を一覧表示」アクションも削除してしまいます。

image.png

テスト

このまま作成ユーザーでFormsに入力してテストをすると、所有者であるチームから追い出されてしまうので、テストユーザーであるミリアムさんにお願いして試してもらいます。

試しに大阪営業担当として送信してもらいます。

image.png

おや?エラーが出ました。

image.png

なるほど、ループの中でしようするitemsが残っています。セットJSONのキーは、SharePointリストの選択肢から取得しないといけません。

image.png

なぜか値のところでSharePointの値を動的から選ぼうとしても出てこないので、仮で「作成」を作ってそこに「新しい部署タイプ」を選択すると、式が取得できます。日本語の項目名なので難しい名前ですね。(Forms作るときに最初は英語名で作ればよかったかも)
image.png

outputs('セットJSON')?[triggerOutputs()?['body/OData__x65b0__x3057__x3044__x90e8__x7f/Value']]

今度は通りました!「作成」を見ると選択したタイプが表示されています!
image.png

まとめ

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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?