Key | Value |
---|---|
Table | DS01 WBS |
Severity | MAJOR |
Unique ID | 1010003 |
Summary | Does the CA have a CA as a child in the WBS hierarchy? |
Error message | CA found with child of type CA in the WBS hierarchy. |
The Data Integrity and Quality (DIQ) check titled "CA with CA Child" is designed to verify the hierarchical structure of the Work Breakdown Structure (WBS) in the DS01 WBS table. Specifically, it checks whether a Control Account (CA) has another CA as a child in the WBS hierarchy, which is not a standard practice in project management.
The error message "CA found with child of type CA in the WBS hierarchy" indicates that there is a CA that has been assigned another CA as a child. This could be due to a data entry error or a misunderstanding of the WBS hierarchy structure.
The fields causing this issue are the 'parent_WBS_ID' and 'WBS_ID' fields. In a standard WBS hierarchy, a CA should not have another CA as a child. Therefore, the 'parent_WBS_ID' of a CA should not match the 'WBS_ID' of another CA.
To resolve this issue, review the WBS hierarchy and ensure that each CA is correctly assigned to a parent that is not another CA.
The importance of this check is to ensure the correct organization and structure of the WBS. A CA should typically have Work Packages (WP) or Planning Packages (PP) as children, not other CAs. Having a CA as a child to another CA could lead to confusion, misallocation of resources, and difficulties in tracking project progress and costs.
The severity of this check is marked as a MAJOR, which means that while it may not prevent the data from being reviewed, it is likely to cause problems during the analysis of the project management data. It is recommended to correct this issue to ensure accurate and efficient project management and reporting.
CREATE FUNCTION [dbo].[fnDIQ_DS01_WBS_DoesCAHaveACAChild] (
@upload_id int = 0
)
RETURNS TABLE
AS RETURN
(
with WBS as (
SELECT *
FROM DS01_WBS
WHERE upload_ID = @upload_ID and type = 'CA'
)
SELECT
Parent.*
FROM
(SELECT parent_WBS_ID FROM WBS) as Child INNER JOIN (SELECT * FROM WBS) as Parent ON Child.parent_WBS_ID = Parent.WBS_ID
)