Best practice to show “X / Y related records completed” on parent record and enable reporting
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
yesterday
Hi Community,
I’m working on a requirement where I need to track and display the completion progress of child records on a parent record, and I’m looking for a best-practice, report-friendly approach.
Requirement
Parent table: Problem
Child table: Incident
Incidents are related to Problem using the standard problem_id reference.
When an Incident moves to Closed, it is considered “completed”.
On the Problem form, I need to display progress in a readable format like:
2 / 5 incidents completed
(where 2 incidents are closed out of 5 total incidents related to the Problem)
Constraints
I am allowed to create only ONE custom field on the Problem table.
The display should be read-only (informational).
The progress data should also be usable for reporting / dashboards.
What I tried
I initially tried using a UI Formatter (UI Macro + Jelly) to calculate and display the progress.
I ran into multiple issues (Jelly execution failures, inconsistent rendering, AJAXTableCompleter only visible on form).
Based on this, I moved away from UI Formatters and instead:
Used a Business Rule on Incident to calculate progress.
Stored the value as a string field on Problem, for example:
u_incident_progress = "2 / 5 incidents completed"
This works well for UI display, but I understand that string fields are not ideal for reporting.
My questions
Is this approach (UI display via string field + reporting directly on child table) considered best practice in ServiceNow?
Is there a better way to support reporting and dashboards while still respecting the “only one field” constraint?
Are there recommended patterns (Script Include, Flow Designer, roll-up strategy) for this kind of parent–child progress tracking?
Goal
I want a solution that:
Avoids fragile UI logic
Uses ServiceNow reporting the right way
Thanks in advance for your guidance!
