Assigned to not syncing from CI to Asset when state is 'In Stock'

mfhaciahmetoglu
Mega Sage

Hello Community,

 

I've come across some puzzling behavior with the Asset/CI synchronization that I can't seem to trace, and I'm hoping someone might have seen this before.

 

The Scenario: When an Asset's state is "In Stock," if we update the Assigned to field on the related CI, the change does not get synchronized back to the Assigned to field on the Asset (which we supposed to see when we change the state to "In use"). 

 

If we first change the Asset's state to "In use," the synchronization for Assigned to works perfectly as expected.

 

Our Investigation So Far: We've traced the standard technical path for this synchronization, but we've hit a dead end. Here's what we've confirmed:

  1. Business Rule: The Update Asset fields on change Business Rule on the cmdb_ci table is active. Its condition is simply !current.asset.nil(), so it runs correctly. It successfully calls the AssetAndCISynchronizer Script Include.

  2. Script Include: We have reviewed the AssetAndCISynchronizer Script Include, and it appears to be the current, out-of-the-box version. The logic seems to be driven by mapping tables.

The Question: Given that there is no condition on the field mapping record, the synchronization should be happening regardless of the Asset's state.

 

Why is the sync being blocked only when the state is "In Stock"? Is there another business rule, platform property, or a hardcoded section of a script that we might be missing?

 

Any insights or ideas on where else to look would be greatly appreciated!

 

Thanks in advance.

Best,

Firat

1 ACCEPTED SOLUTION

Maik Skoddow
Tera Patron
Tera Patron

Hi @mfhaciahmetoglu 

 

When an Asset is in the "In Stock" state, updates to the "Assigned to" field on the linked CI do not propagate to the Asset record. This occurs because the OOB synchronization logic excludes assignment-related fields for assets not in an operational state (e.g., "In Use").

 

The behavior is governed by:

  • Business Rules: Specifically, "Update Asset fields on change" (on the cmdb_ci table) and "Update CI fields on change" (on the alm_asset table).

  • Script Include: AssetAndCISynchronizer handles field-level sync based on predefined mappings and asset/CI states.

  • State-Dependent Logic: Fields like assigned_to are intentionally suppressed during synchronization if the Asset’s state is non-operational (e.g., "In Stock," "On Order") to prevent invalid assignments.

 

Please also refer to the documentation page https://www.servicenow.com/docs/csh?topicname=c_ManagingAssets.html&version=latest which provides the detailed explanation.

 

Maik

View solution in original post

2 REPLIES 2

Maik Skoddow
Tera Patron
Tera Patron

Hi @mfhaciahmetoglu 

 

When an Asset is in the "In Stock" state, updates to the "Assigned to" field on the linked CI do not propagate to the Asset record. This occurs because the OOB synchronization logic excludes assignment-related fields for assets not in an operational state (e.g., "In Use").

 

The behavior is governed by:

  • Business Rules: Specifically, "Update Asset fields on change" (on the cmdb_ci table) and "Update CI fields on change" (on the alm_asset table).

  • Script Include: AssetAndCISynchronizer handles field-level sync based on predefined mappings and asset/CI states.

  • State-Dependent Logic: Fields like assigned_to are intentionally suppressed during synchronization if the Asset’s state is non-operational (e.g., "In Stock," "On Order") to prevent invalid assignments.

 

Please also refer to the documentation page https://www.servicenow.com/docs/csh?topicname=c_ManagingAssets.html&version=latest which provides the detailed explanation.

 

Maik

J Siva
Tera Sage

HI @mfhaciahmetoglu 

In addition to Maik's response, there is a Business Rule in the alm_asset table that is triggered in the backend to clear the Assigned To field on the asset record.

Consequently, we receive the following informational message when attempting to update the Assigned To field in the CI record that is linked to an asset with the install status set to "In Stock."

JSiva_0-1751428495186.png

JSiva_1-1751428531660.png

 

Regards,
Siva