#PowerPlatform デザインパターン 受注からプロジェクト専用チームを準備する

営業や購買部署が受注を管理していて、プロジェクトがその受注をトリガーとして動きだすことは多いでしょう。システム屋さんの場合、プロジェクト毎に Microsoft Teams で「そのプロジェクト専用チーム」を作成することも多いかと思います。
会社の方針でチーム作成を限定したメンバーのみに許可している、つまり一般ユーザーではチーム作成ができないケースもあるでしょう。また、受発注管理とプロジェクト管理、Teams の管理が一連の流れになっている、という企業さんは・・・いったい日本に何社存在するんでしょうね。おそらく、数えるほどでしょう。今回は、そんな「受注をトリガーにしたプロジェクト準備」を（ある程度）自動化する、１つのアプローチを Power Platform で提案したいと思います。

# 前提条件
1. Microsoft（Office）365 利用中
2. Microsoft Teams 利用中
3. Teams のチーム作成は限られたメンバーのみ可能
（＝ 一般ユーザーはチーム作成が自由にできない）
4. Power Apps、Power Automate 利用可能

※データソースの選定によって、有償ライセンスの有無は変わります。

# ユースケース
登場人物は、営業、全体管理者（情報システム部など）、プロジェクトを運営するPM に限定します。

   1. 受注したら営業担当が関連ファイルや情報を所定の場所へ格納
   （例として SharePoint Online と仮定）
   2. 営業担当から、PM へ受注済みの連絡を実施する
   3. PM から 全体管理者へ Teams のチーム作成依頼を実施
   4. 全体管理者が依頼情報にしたがってチームを作成
   5. プロジェクト用のチームがめでたく完成！
![図1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/3b14f587-b132-a8be-83a0-28fa99a4080d.png)

シンプルに考えてみても、なかなかの手順です。現実には、もっと雑多なイベントがこの間で発生しているかもしれません。これをプロジェクト毎に実施するのは・・・チョッとテマが多すぎですね。たいへんです。

# 要するに
プロジェクトを円滑、かつ軽快に進めるための仕組みでもあるチームの準備が「円滑でも軽快でもない」という点。コレを改善したほうが良いですよね！？
Microsoft 365 をご利用中であれば、Power Platform の出番です。

# アーキテクチャー
今回も「当方だったらどうするか？」です。
まず、案件情報が”ファイルのみ”とは考えにくいです。少なくとも管理用番号など付帯する情報が少なからず存在すると考えます。勿論、契約関連の書類などもあわせて格納する必要があるでしょう。準備の手軽さなら SharePoint Online ですかね。契約関連書類を格納するドキュメントライブラリと、付帯情報を管理するリストが必要になると考えます。（リストの添付ファイルでも可ですし、CDS でまとめても良いと思います）
データやファイル登録に関しては「入力項目の統一化をすべき」と判断するので Power Apps で登録アプリを提供します。なお、複数ファイルを一括でアップロードしたいので、Apps からファイルを格納する処理は Power Automate を経由させます。

付帯情報がリストに登録されたら、ステータスが”受注”になったら、などの条件で新しい Automate を発火させます。このフローでは、チーム作成の承認を全体管理者へ得たうえで、チームを作成します。細かなコトは省略したとしても、一通りの流れが「受注情報の登録」から自動化できると思います。

![図2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/5e0dc145-fe04-a094-fa81-f31911558482.png)

なお、チームを作成した際に PM を所有者へ指定しておけば、自動的にメールが飛ぶので、ソレで”気づき”でいんじゃね？ってノリの処理にしています。実際には、営業担当が受注確定をした際か、チーム作成が承認されたタイミングなどでメールや Teams で通知を出してあげると優しいんでしょうね。イメージをシンプルにしたかったので、あえて”あまり優しくない”設計になってますｗ

# フローがわかれている理由（補足）
なぜ、わざわざ2つのフローに分割したか？お気づきでしょうか？

![図3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/4b99ca5a-99ff-3ec7-e8eb-a725ea14d66c.png)

”いつもどおり”の理由ですね。

[PowerApps + Microsoft Flow 組み合わせ時の設計思想](https://qiita.com/yamad365/items/8483ce8bfbb6085462ca)

上記の記事は旧名のままですが、現時点でも通用する思想だと当方は確信しております。Power Automate のフローは、記事投稿時点でも、履歴管理は提供されていません。共有時に実行権限のみ提供する、といった制御も不可です。
Power Apps から複数ファイルをまとめて処理する際のフローに関しては、Apps を利用する ＝ フローも利用できないとダメ、です。この箇所は諦めて共有せざるをえません。
ただ、チーム作成を実行するフローはシステム用アカウント等に1本化が可能です。

# お断り
実装に関する詳細は記載しませんし、全ての意図も記載しておりません。そのため「ここがうまくデキないんですけど」等のご質問には対応いたしません。個人的な思いですが、自分たちで調べて、実装して試してみて、使ってみて初めて身につくモノがあると考えております。是非、挑戦を。
どうしても・・・、という場合はお仕事として対応できる方（※当方含めて）にご相談ください。

「こういう設計のが良いのでは？」や「こういうデザインもあるよ」というご意見は大歓迎です。

# まとめ
Excel で受注の一覧管理をしていたり、ファイルサーバーや SharePoint で関連ファイルを取り扱っている企業さんは多いと思います。もしかしたら、手書きかも？

Microsoft 365 を利用中で、かつ Power Apps、Power Automate が利用可能であれば、かなりの自動化がスピーディーに実現できると思うんですよね。有償ライセンスを保有していれば、API を公開しているその他サービスにも連携できますし、何よりリッチな CDS を使って、もっと沢山のコトができる（ハズ）。

もちろん、Dynamics とか使ってますよ、って企業さんでも「もうちょっとこーしたいんだよね」を Power Platform で実現できる、かもしれないですよね。

Power Apps で登録画面を提供するだけで、

- 入力項目が統一化できる
- 入力チェックが提供できる（記入ミスの軽減）
- マルチデバイス対応（スマホ対応）が同時に実施可能
- 登録とデータソースの分離が可能（Excel利用中だった場合）

などなど、改善点があるんじゃないかなー、と個人的には考える次第です。

例として「受注からチームを作る」にしてみましたが、受注を別の言葉に置き換えれば様々なタイミングに適用できるかな？と思ってます。
それでは、皆さま、素晴らしい Power Platform Life を！