We're reclaiming inactive PDIs to keep them available for active builders. Learn what's changing, who's affected, and how to protect your work. Read More

Business Application Retirement Date

adamtoth
Tera Contributor

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

2 REPLIES 2

Vikram Reddy
Tera Guru

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

 

Thank you,
Vikram Karety
Octigo Solutions INC

Tanushree Maiti
Tera Patron

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:

  1. 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)
  2. 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

 

 

Please Accept the solution if it assisted you with your question & Mark this response as Helpful.
Regards
Tanushree Maiti
ServiceNow Technical Architect
LinkedIn: https://www.linkedin.com/in/tanushreemaiti