Lifecycle synchronisation for Configuration Items without Assets

JakePowers
Tera Contributor

Hello,

As per Enabling CSDM life-cycle sync between asset and CI to support product instance, there is no longer a direct synchronisation between legacy field values and lifecycle values for records within cmdb_ci. Instead, these records get their lifecycle values from their Asset counterpart. This works if there is an Asset linked to a CI, but this is not always the case, such as with the Service table (cmdb_ci_service). Consequently, the records in this class are no longer updated properly when a change is made to the value of one of the legacy status fields.

Is this by design, and if so, how should the lifecycle fields in these assetless Configuration Item classes be approached?

6 REPLIES 6

Jonathan Schnei
Giga Guru

Can you review this again or clarify?

 

The Life Cycle mapping definitions between legacy fields are defined for each table, and then the OOB Business Rules are used to update the corresponding asset/CI. There are mappings between legacy status and lifecycle for the cmdb_ci_service table in the CSDM > Life Cycle Mapping table. You can see some OOB mappings between legacy and lifecycle for the services table in the screengrab below.

JonathanSchnei_0-1739804627327.png

 

Yes, but the OOB Business Rule you are referring to, "Update life cycle from legacy", has a new condition called "isProductInstanceSyncActive()". This script include function checks a system property that should reflect whether there is active synchronisation between Assets and CI's. If this is true, then this Business Rule will not run.

In other words, the legacy fields of a CI only synchronise to the new CSDM fields when there is no synchronisation between Assets and CI's, as explained in the article I linked. This is a new development that came with the Xanadu release, that has not been properly explained by ServiceNow. 

 

JakePowers_0-1739810089167.png

 

I think you have it right. My understanding is it is to ensure the first activation step is completed.

Hi @JakePowers 

From this community post it seems this came in with the Xanadu release rather than Yokohama. I have checked instances on both versions and this Business Rule with its condition is present in both.

 

You are correct however, if you enable system property csdm.lifecycle.sync.between.ci.and.asset.activated , then any CIs that are not sync'ed to an Asset will no longer reflect changes to operational status in their Life Cycle Stage and Life Cycle Stage Status fields. I have tested this with a vanilla Yokohoma instance and the values no longer sync. 

 

I would report this to ServiceNow as a defect as it clearly indicates that enabling CSDM life cycle Sync no longer permits lifecycle updates to be run as enabling the sync activates the property above.

 

Interestingly the condition in the Business Rule Update life cycle from legacy will never evaluate to true, because if the first part of the condition - new LifeCycleUtil().isLifeCycleMigrationActivated() - evaluates to true, then it will make the system property true and mean the second part condition - !(new LifeCycleUtil().isProductInstanceSyncActive() - evaluates to false - which means the Business Rule will never run. Bizarre...

 

I hope this helps!

Mat