CSDM: Dependant Application Services not added to 'Impacted Services' in Change OOB?

Johnathan R
Tera Contributor

I have a Platform Host App Service, and several 'Module' Application Services that 'Depend On' it (like example below).

When I create a Change, and add the Platform Host CI as my primary Configuration item, the Impacted Services DOES NOT bring in any of the Application Services that depend on it. I have verified this in a personal dev instance, so it seems to be by design.

I find it weird I would have to customize this?

Example: Adding SN Paris Prod as your CI, does not bring in SN Paris HR Prod as an Impacted Service.

find_real_file.png

1 ACCEPTED SOLUTION

Read this, there are indeed many different options (tables) where to store your application services that makes the system behave in different ways. I already forgot the details, but storing them in one specific table does populate the associations automatically based on the relationships.


View solution in original post

9 REPLIES 9

CMDB Whisperer
Mega Sage
Mega Sage

I agree it is frustrating.  It used to work differently.  ServiceNow used to just iterate through the relationships to find all of the impacted services, and it did this the same way for both Incident and Change.  But that has changed, and now you get different criteria for calculating impacted services for change vs incident, and neither of them really works the way it "should" in my opinion.  There is a lot of room for improvement here.  In the meantime you need to follow the prescribed methods of each tool (which vary depending on what applications you have installed, namely Service Mapping and Change Management Workbench I believe) and how your system is configured.  Either that or you have to be willing to customize the methods of populating the impacted services table, which I'm not a big fan of.  It seems to me that the impacted services are the cornerstone of getting value out of a well managed CMDB, so it is important to make sure that this is getting the best information possible from the CMDB.


The opinions expressed here are the opinions of the author, and are not endorsed by ServiceNow or any other employer, company, or entity.

Aaron W_ Smith
Mega Guru

Johnathan,

First is is good to check the most obvious things like are the Service not Retired and related to the target CI on the Change.

Next check the related system property settings mentioned in Docs: https://docs.servicenow.com/bundle/sandiego-it-service-management/page/product/change-management/task/refresh-impacted-cis.html 

But assuming they are all correctly set, next you really have to dig for the answer. Walking from the Business Rule "Refresh Impacted Services" on the Change Request table through a few more scripts, you eventually get to a Script Include "CIUtils" which holds the logic to build the list of Services.

In the code, you will see it is looking for three specific classes of services:
find_real_file.png

If you look at CSDM, Application Services may be created in tables other than these three:
find_real_file.png

find_real_file.png

So my hypothesis is your Application Services not showing up may be in a class that is not considered by the base code.  You solution options would be to add to the classes considered in the OR condition or to move your CIs to one of the included Classes.

Thanks! See my response to Stefan.

As I created the app service and left population method empty - it only exists in cmdb_ci_service_auto and none of the extended tables.

I added cmdb_ci_service_auto to the CIUtils 'servicesAffectedByCI' - but it did not change the behavior.

Manually adding a reference between the app services in 'svc_ci_assoc' gave the desired behavior.

 

It is very weird you have to do that. It seems when you relate 'empty' app services to other CI's they are just not putting that relationship in the right place? I don't really get why its so hard to deal with!

Stefan K_
Tera Expert

The key is system property "change.refresh_impacted.include_affected_cis", see docs

Depending on your settings then, either the table "svc_ci_assoc" OR "cmdb_rel_ci" needs to have the good relationship data.