CMDB updates and reconciliation behavior
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hello!
I have a scenario with two data sources:
Source A -> Reports on the operational status of a CI
Source B -> Reports additional details about the CI, but does not provide lifecycle/operational status information
Here’s what I’m seeing:
Source A last reported 1 year ago, with operational status = Operational.
I’ve set up a custom rule: if a CI hasn’t been discovered by Source A within 60 days, it should be set to Retired.
This part works fine.
However, when integration from Source B runs, the CI’s operational status unexpectedly changes back to Operational, even though Source B has no mapping to that field.
My suspicion: ServiceNow is pulling the last known value from cmdb_multisource_data, effectively reusing Source A’s old record when Source B updates the CI. This is problematic, since that record is very outdated.
I’m considering whether Data Refresh Rules might help here, but since Source B has no reconciliation rule for operational status, there’s no “lower priority” source compared to A.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago - last edited 3 weeks ago
You can quickly fix this. Configure this. It will stop updates on CI if its retired,. It's called inclusion rule. CI Class manger -> Identification rule -> scroll down to bottom and configure this.
Regards,
Pratiksha
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Thanks, I will look into it.
But is it really the case that a year old multisource record really overwrites the CMDB value. Sounds strange. I have verified that CMDB value is retired, trigger Source B which has no mapping or no value of operational status, and the CI changes back to operational.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
This happens if any data refresh rule has been configured. Check if any customisation has been done.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
We have no data refresh rules as of now
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hi Tresselt,
We only pull data from cmdb_multisource_data records if you change your reconciliation records and do a Recompute. Otherwise, we don't re-read from those old records nor do we reuse the values. They are just for your visibility if you do not use them to recompute.
Do you have a business rule on that class which updates the operational status if it has been updated? Or perhaps some part of the Source B process updates that for you. I am not sure without delving into it more. I do not know if setting up a reconciliation rule will fix your issue if you are not sending the new value through IRE. Reconciliation rule only prevents another source from overriding the value at a later time if it also goes through IRE. IRE cannot prevent other scripts/business rules/sources not using IRE from overwriting the value.