👨‍👩‍👧‍👦

【タスク管理】親子DBの子の期間から親の期間を自動設定する方法

💬
どうもをやっております熊倉です

再帰Formula & Rollupの活用事例を思いつき試したところ出来てしまったので、忘備録的に残しておきます。
Wrikeなどのガントとかでよくある子タスクの期間を変更したら親の期間も自動的に変更するやつやりたくないですか?
クセがありますがNotionでも出来てしまいました・・!

実際の動き

では、早速動きをみてみましょう。マウスカーソルに注目です
 
 
子の期間を変更したら、親の期間も変更されたのがわかるでしょうか?
 
 
 

DB

こちらが実際のDBです
 
これだけだとわからないので、ざっくり解説していきます。
 
 
 

作り方

プロパティの設定

  1. 親子リレーションを貼ります
    1. DB自身にリレーションを貼る
  1. のロールアッププロパティを作ります
    1. 対象は
    2. をそれぞれロールアップ
  1. 開始用の関数プロパティ()を設定 (FRはFormula&Rollupの略)
    1. 終了用の関数プロパティ(FR_終了)を設定
      1. 2で設定したロールアップの向き先を以下の通りに変更します
       
      ↑の設定で再帰的に循環し、子供の期間をロールアップして引っ張って来ます
       

      タイムラインの設定

      ← このように開始と終了を関数プロパティに設定します
       
      設定としては以上で終了です。あとは、いい感じに並び替えてみてください
       

      注意点

      関数プロパティを利用しているため、タイムライン上ではD&Dで期間を変更することが出来ません。
      親子リレーション自体の課題ではありますが、このままだと並び替えに難があるため、
      以下記事の方法を取り入れ、並び替え用の仕組みを取り入れると楽が出来ます
       

      おわりに

      いかがでしたか?
       
      最近になって再帰Formula & Rollupの手法を発見してからNotionの底が見えない、凄いぞNotionとなっておりますが、
      同時に複雑性が増し職人芸っぽくなっているので、もっとスマートな方法があったら知りたいと思ったりもしています。
       
      そんなわけで、ありがとうございましたー!