緒言
前回書いたPlannerを救いたい with Power Appsの続きです。前回はPower Apps ⇒ Planner連動について書きましたが、Planner ⇒ Power Apps連動はPower Automateの出番!かな?
Planner ⇒ Power Appsの連動がなぜ必要か?
前回記事でApps側でタスク新規作成/更新/削除したら即座にデータソースのSharePoinntリストとPlannerの同期がとれる仕組みは構築済。利用者がAppsだけを使ってくれるように徹底できたら良いがそんなことは望めない。よってPlanner側でタスク新規作成/更新/削除されてもSharePointリストとの整合を担保する必要がある。
1. Apps使わずPlannerでタスクが新規作成された時
この対処は簡単で方法は2通り。When a new task is created
トリガーでSharePointリストに同じTaskID
のレコードが無いか判定し、無ければPlannerタスク側を削除してしまうかまたはSharePointリストにレコード追加するか。下図の例は前者の削除パターン。削除したことを理由とともにユーザーへ通知。
2. Apps使わずPlannerでタスクが更新や削除された時
新規作成と違って更新や削除はPlannerコネクタに"更新された時"みたいなトリガーが用意されてない。。。ということで、Recurrence
トリガーで即時性は無いけど定期的に強引に同期をとる。。。SharePointリストのレコード一覧を取得してそれぞれに格納されたTaskID
からPlannerデータ取得してSharePointリストを更新する。
チームでPlannerを使ったことがある方は経験されたことがあるんじゃないかと思いますが、完了じゃなく削除されちゃって「あれ?何かタスク減ってね?」と思ってもごみ箱も無いので復元できず・・・その対策としてGet a task
が失敗した時のスコープの中でSharePointリストからPlannerタスクを復元する処理を実行。
↑のGet a task
が失敗した時のスコープがスキップされた時、すなわちGet a task
が成功した時のスコープ内ではPlannerタスクの内容をSharePointリストに反映させる処理を実行。
結言
かなり強引にPower AppsとPower AutomateでPlannerを救ってみました。どこかにある理想のタスク管理を探し求め続けます。。。
あと最近はNew Designer大好きです。