diff --git a/Specialized Areas/CMDB/Class-Based Attribute Completeness Report/README.md b/Specialized Areas/CMDB/Class-Based Attribute Completeness Report/README.md new file mode 100644 index 0000000000..3872d001b0 --- /dev/null +++ b/Specialized Areas/CMDB/Class-Based Attribute Completeness Report/README.md @@ -0,0 +1 @@ +This script checks data completeness in the CMDB by identifying missing key fields (like `os` and `location`) across selected CI classes (e.g., servers, applications). It counts how many CIs exist per class and how many are missing each field, helping administrators quickly spot and address data quality issues. This supports CMDB health, audit readiness, and overall data reliability. diff --git a/Specialized Areas/CMDB/Class-Based Attribute Completeness Report/script.js b/Specialized Areas/CMDB/Class-Based Attribute Completeness Report/script.js new file mode 100644 index 0000000000..5618dffc54 --- /dev/null +++ b/Specialized Areas/CMDB/Class-Based Attribute Completeness Report/script.js @@ -0,0 +1,19 @@ +var classes = ['cmdb_ci_win_server', 'cmdb_ci_appl', 'cmdb_ci_computer']; +var fields = ['os', 'location']; + +classes.forEach(function(className) { + var total = new GlideAggregate(className); + total.addAggregate('COUNT'); + total.query(); + var totalCount = total.next() ? total.getAggregate('COUNT') : 0; + + fields.forEach(function(field) { + var missing = new GlideAggregate(className); + missing.addNullQuery(field); + missing.addAggregate('COUNT'); + missing.query(); + var missingCount = missing.next() ? missing.getAggregate('COUNT') : 0; + + gs.print(className + ' | Missing ' + field + ': ' + missingCount + ' / ' + totalCount); + }); +});