プロジェクト管理 (PM) のテーブルフィールドと値の計算Issue 日付計算の理解 計画タスクの日付フィールドには、デフォルトで次の値が入力されます。 開始予定日 = 親日付 (ある場合) または今日計画期間 = 1 日 これらのデフォルト値は、planned_taskテーブルのそれぞれの辞書列内で計算されます。 これらのデフォルトを変更することはお勧めしませんが、必要に応じて [辞書オーバーライド] の各テーブル拡張で上書きしてください。 プロジェクトおよびプロジェクトタスクの場合、日付の計算は、次の基準に従って、プロジェクトレコードに添付されたスケジュールに基づきます。 - 実際の開始日と終了日の両方が利用できず、空の場合=> 終了予定日 = 開始予定日 + 計画期間 - [Actual Start Date] が使用可能で入力されているが、[Actual End/Actual Duration] が空の場合 = > 終了予定日 = 開始実績日 + 計画期間 この場合、[Planned end date] は [Actual start date] に基づいた [Expected end date] のように動作します。 - 実際の開始日と実際の終了日の両方が利用可能で、入力されている場合 => 終了予定日 = 開始予定日 + 計画期間 実際の期間 = 実際の終了日 - 実際の開始日 スケジュール外の日付を許可 この列はプロジェクトタスクテーブルにあり、タスク計算をプロジェクトに添付されたスケジュールではなく 24 時間のスケジュール内に収めることができます。 親日付ロールアップ 最短の開始日と最長の終了日が親レコードにロールアップされます。 Jakarta より前は、期間は最も早い開始日と最も遅い終了日の間の時間差に基づいて計算されていました。ジャカルタからロンドンまでは、元の日付に基づいて期間が計算されます。 これらの計算は、「再計算」ビジネスルール内で実行されます。計算とロールアップはテーブルレベルで除外できます。すべてのテーブル除外はplanned_task_recalculation_exclusionsテーブルで設定されます。 注: 除外テーブルでプロジェクトまたはプロジェクトタスクを設定することはお勧めしません。 ビジネスルール 名前 テーブル 説明 再計算 予定されているタスク タスクとプロジェクトの階層を再計算します 再計算 – 削除 予定されているタスク タスクとプロジェクトの階層を再計算します 計画タスクの開始日を計算 (表示) 予定されているタスク 新しいタスクの開始日を初期化します ノードを初期化 予定されているタスク 親に基づいて開始日と期間を初期化し、WBS、トップタスク、トッププログラム、サブツリールートなどを設定します 非アクティブのクローズデータを設定 予定されているタスク 終了実績日を設定します 挿入時の期間とマイルストーンの同期 予定されているタスク 同期期間とマイルストーン 更新時の期間とマイルストーンの同期 予定されているタスク 同期期間とマイルストーン 予定日を現在から更新 予定されているタスク 元の日付を設定します 空の期間を検証 予定されているタスク 期間を検証 子タスクの開始日を検証 予定されているタスク 子タスクの開始日を検証します 作業開始前に作業終了を検証 予定されているタスク 終了実績日が開始実績日より前かどうかを検証 ロールアップと除外 計画タスクは、子のロールアップを親タスクに提供します。計画的なロールアップアーキテクチャでは、複数のデータ型を親にロールアップできます。ロールアップ戦略は、選択したフィールドのタイプによって異なります。 計画タスクによって提供されるデフォルトのシード済みロールアップを以下に示します。 工数残り時間コスト (推定および実際)利益ロールアップ 各ロールアップには、同じロールアップをロールアップするためのシードされたビジネスルールが計画タスクテーブルにあります。汎用ロールアップ戦略では、すべての子値が合計され、集計された合計が親レコードにロールアップされます。これには、上記の 4 つのロールアップのそれぞれが含まれます。 デフォルトでは、各列は子レコードから親レコードに同じ列にロールアップされます。子タスクレコードは、親列の値によって識別されます。 ロールアップは除外することも、構成することもできます。除外/構成可能性には、以下で説明する 2 つのステップのプロセスが付属しています。 1.ロールアップをトリガーするビジネスルール。計画されているすべてのタスク拡張のロールアップが無効になるため、無効にすることはお勧めしません。 2.planned_task_rollupテーブルのロールアップ構成: 列 説明 親 親テーブル。 子 子テーブル。 フィールド 子テーブルのフィールドが集計されます。 ナビゲーター 子テーブルのフィールドは親参照を表します。 ロールアップ false に設定されている場合はロールアップを無効にし、それ以外の場合はデフォルトで true にします。 上記のテーブルにエントリが見つからない場合、ロールアップはデフォルトでアクティブとして設定されます。 ビジネスルール 名前 テーブル 説明 親工数を更新 予定されているタスク 工数ロールアップ 親工数を更新 - 削除 予定されているタスク 工数ロールアップ 親の実績工数を更新 予定されているタスク 実績工数ロールアップ 親の実績工数を更新:削除 予定されているタスク 実績工数ロールアップ 残り時間を設定/更新 予定されているタスク 残り時間を計算します 計画タスクのコスト概算のロールアップ 予定されているタスク コスト概算ロールアップ 計画タスクの計画利益のロールアップ 予定されているタスク 計画利益ロールアップ 合計計画コストを更新 予定されているタスク 計画コストの更新 完了率の計算 [完了率] の値は、最初はすべてのタスクでデフォルトでゼロに設定されています。タスクワークフロー中、個々のタスクの完了率は自動的に計算されず、実際に行われた作業には従いません。ユーザーは、親タスクを除く個々のタスクの完了率の値の入力と変更を担当します。 親タスクの完了率は、各子タスクの期間の合計に個々の子タスクの完了率の値を掛けて計算されます。 タスクがクローズされるか、非アクティブに設定されると、その完了率の値は 100% に設定されます。 ビジネスルール 名前 テーブル 説明 親の完了率を更新 予定されているタスク 完了率のロールアップ 親の完了率を更新 - 削除 予定されているタスク 完了率のロールアップ 非アクティブのクローズデータを設定 予定されているタスク 完了率をクローズ後 100% に設定 状況管理と構成 計画タスクは、タスクテーブルからステータスを継承します。これらのステータスは次のように分類され、可能な値が括弧内にリストされています。 PENDING_STATES [-5]OPEN_STATES [1]WORK_IN_PROGRESS_STATES [2]CLOSE_STATES [3;4;7] ユースケースワークフローに従ったステータスをデフォルトにするために、以下に示すデフォルトのステータス値を内部ステータス処理 API で指定する必要があります。 DEFAULT_PENDING_STATE = -5DEFAULT_OPEN_STATE = 1DEFAULT_WORK_STATE = 2DEFAULT_CLOSE_STATE = 3DEFAULT_SKIPPED_STATE = 7 ステータスロールアップ ステータスのロールアップは、子タスク (存在する場合) に基づきます。 親のステータス 子のステータス 保留中 すべての子レコードが処理待ちの場合 オープン 少なくとも 1 つの子がオープンで、残りが保留中の場合 作業の進捗状況 少なくとも 1 人の子が WIP または完了してクローズされた場合 Closed Complete (完了してクローズ) すべての子が完了してクローズされた場合 ビジネスルール 名前 テーブル 説明 プロセスステータスの変更 プロジェクト/プロジェクトタスク ステータス変更ハンドラー 変更割合に基づいてステータスを設定 プロジェクトタスク 割合の変化に基づいてステータスを設定します バケットにマッピングされたステータスを検証 プロジェクト/プロジェクトタスク ステータスを検証します 時間の制約 タスクの時間制約によって、次の特性とタスクの動作が決まります。 タスクの開始日タスク間に適用すべき、または適用しない関係 時間の制約には、次の 2 つの選択肢があります。 できるだけ早く (できるだけ早く) [制約する時間] を [すぐに] に設定すると、タスクは親タスクの開始日を継承します。関係が適用されると、タスクの開始日/終了日が関連タスクに準拠します。 特定の日付 (START_ON) に開始: 時間の制約を START_ON に設定すると、タスクは親タスクから後の日付を選択します。この場合、関係は適用されません。 注:システムプロパティcom.snc.project.allow_start_on_relationsを使用して、[Start on Task] を [ASAP] に変換する例外がありました。このプロパティは、Kingston 以降、廃止されました。 元の日付 元の日付 (内部列名 schedule_start_date と schedule_end_date) は、プロジェクトが [対応中] に移動する前のプロジェクトの最初の予定日を表します。 プロジェクトが保留中/オープンになるまで、元の日付は常に予定日と同期されます。プロジェクトまたはその下の少なくとも 1 つのタスクが [Work In Progress] に移動すると、元の日付は固定されます。期間は当初の予定日ではなく元の日付から計算できますが、この部分は将来のリリースで再設計される可能性があります。 たとえば、次の State = Pending のプロジェクトについて考えてみます。 タスク ステート 開始予定 終了予定 元の開始 元の終了 プロジェクト 1 保留中 01-01-2018 08:00:00 01-02-2018 17:00:00 01-01-2018 08:00:00 01-01-2018 17:00:00 タスク 1 保留中 01-01-2018 08:00:00 01-01-2018 17:00:00 01-01-2018 08:00:00 01-01-2018 17:00:00 タスク 2 保留中 01-02-2018 08:00:00 01-02-2018 17:00:00 01-02-2018 08:00:00 01-02-2018 17:00:00 プロジェクトが WIP に移行し、タスク 1 が 1 日後に開始されます。 タスク ステート 開始予定 終了予定 実際の開始 元の開始 元の終了 プロジェクト 1 WIP 01-01-2018 08:00:00 01-03-2018 17:00:00 01-02-2018 08:00:00 01-01-2018 08:00:00 01-01-2018 17:00:00 タスク 1 WIP 01-01-2018 08:00:00 01-02-2018 17:00:00 01-02-2018 08:00:00 01-01-2018 08:00:00 01-01-2018 17:00:00 タスク 2 保留中 01-03-2018 08:00:00 01-03-2018 17:00:00 01-02-2018 08:00:00 01-02-2018 17:00:00 プロジェクトがすでに WIP にある場合は、[タスクの追加] が追加され、タスクの元の日付が予定日から取得されます。 タスクの期間が更新されると、元の終了日も更新されます。これは親プロジェクトにロールアップされます。 プロジェクト間の依存関係 - シャドウタスクとシャドウ関係 あるプロジェクトから別のプロジェクトに関係が設定されている場合、次の処理が行われます。 各タスクのコピーは、関連する他のプロジェクトに作成されます。これはシャドウタスクと呼ばれます。関係のコピーがシャドウタスクに作成されます。これをシャドウリレーションと呼びます。これらのタスクはorig_sys_idによって決定され、作成元の実際のタスクにリンクされています。シャドウタスクは、先行タスクまたは後続タスクによって識別される関連タスクの上または下に配置されます。この配置は、最初の作成時にのみ行われます。[Short Description (簡単な説明)] と [Actuals (実績)] は、常に実際のタスクと同期しています。 シャドウタスクとシャドウ関係を作成すると、以下が発生します。 先行プロジェクトでは、後続プロジェクトがリセットされ、リレーションが適用可能かどうかが再計算されます。関係性によってタスクが実際のタスクの開始日より後に移動されている場合は、通知が生成されます。この関係の作成中に関係の [プロジェクト間の依存関係タイプ] が [ハード] に設定されている場合、通知は自動的に受け入れられ、後続プロジェクトに適用されます。それ以外の場合、プロジェクト間の依存関係タイプがソフトの場合は、承認のために後続プロジェクトに通知が表示されます。 関係: 関係は、親子階層の 2 つのタスク間に作成できます。関係のデータモデルは次のとおりです。 列 説明 親 次から始まる関係の前任者/親: 子 関係の末尾の後継者/子 タイプ 先行または後続に設定 サブタイプ 関係のタイプ [FS, SS, FF, SF] 遅れ 関係の遅れ/リード 外部 プロジェクト間の依存関係の場合 関係には 4 つのタイプがあります。 終了 - 開始:関連/後続タスクは、先行タスクの予定終了より前に開始することはできません。開始 - 開始:関連/後続タスクは、先行タスクの開始予定より前に開始することはできません。終了 - 終了:関連/後続タスクは、先行タスクの予定終了より後に終了することはできません。開始 - 終了:関連/後続タスクは、先行タスクの予定終了より後に開始することはできません。 関係が親タスクに適用されると、子タスクはこの関係を継承します。上記の「時間制約」セクションで説明したように、START_ON時間制約のあるタスクには、この関係が適用されない場合があります。 よく寄せられる質問 プロジェクトの日付が更新されない: プロジェクト診断ツールを使用してプロジェクトの正確性を検証します。プロジェクトのいずれかのタスクが、プロジェクトの開始日より前に開始するように設定されているかどうかを確認します。 親ステータスが正しく更新されていません: カスタマイズされた場合は、関連するビジネスルールとスクリプトが含まれていることを確認します。 すべてのプロジェクトタスクが同じ説明で更新されます: 計画タスクの下にORIG_SYS_ID列が作成されているかどうかを確認します。可能なカスタマイズについては、スクリプトインクルード ShadowTaskSync を確認してください。 リレーションが正しく適用されていません: プロジェクト診断ツールを使用してプロジェクトの正確性を検証します。プロジェクト内に循環関係があるかどうかを確認します。