Business Application Retirement Date
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 hours ago
Hello,
How can I bring the date a Business Application was retired into a report/visualization? I do not want to use a filter for CI Status = Retired and then use the last updated on date as this is not accurate. Is there any simple way to do this?
Thank you,
Adam
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 hours ago
Hi @adamtoth,
You're right to avoid sys_updated_on, and there genuinely is no retirement timestamp field on cmdb_ci_business_app or the base cmdb_ci, so you'll have to add one yourself. Before you do, pin down which "retired" you actually mean, because on a CSDM-activated instance there are two definitions in play and they don't always line up:
- install_status = Retired: on cmdb_ci_business_app that's value 3, the base cmdb_ci choice list uses 7 for the same label, so don't assume the numbers match across tables
- Life Cycle Stage = End of Life AND Life Cycle Stage Status = Retired: this is what CMDB Data Manager's active Retirement Definition is actually evaluating, not install_status
A Retirement Definition only maps a field/value combo to mean "retired" for Data Manager's purposes, it never stamps a date anywhere, so that path is a dead end either way.
The fix is a Date/Time field like u_retired_on plus a before-update Business Rule on cmdb_ci_business_app. Condition it on current.install_status.changesTo('3') if you're tracking install_status, or on the lifecycle fields if that's the definition you care about. Once populated it's a normal date field, straight into Reports or PA, no filter workaround needed.
Make sure auditing is actually enabled on Business Application (it drives changesTo reliably and gives you sys_audit as a fallback), and if you ever query sys_audit directly for a backfill, treat it as a large table and scope your query tightly rather than running it as an open report.
References
- Manage retirement definitions for CMDB Data Manager
- Understanding the sys_audit table
- GlideRecord API reference (changesTo)
Thank you,
Vikram Karety
Octigo Solutions INC
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 hours ago
Hi @adamtoth
To accurately capture retirement dates in a report- configure a dedicated date/time field to capture the retirement action and pull it into your reports.
Follow these steps to establish this in your instance:
- Create a Custom Field: Navigate to System Definition > Dictionary and create a new Date/Time field (Like u_retired_date) on the Business Application or Hardware/CI table (cmdb_ci_business_app)
- Write an after update Business Rule that triggers when the install status changes, setting the u_retired_date field to gs.nowDateTime().
OR
Use Flow to set the time stamp
Regards
Tanushree Maiti
ServiceNow Technical Architect
LinkedIn: https://www.linkedin.com/in/tanushreemaiti