SCCM Integration does not respect the data precedence or data refresh rules, setup on the CI class manager. This is because SCCM Integrations does not use the Identification and Reconciliation engine for any of the inserts or updates.
Release or Environment
- The article is applicable only when SCCM Integration is being actively used to update the CMDB. It impacts the out-of-box discovery and may conflict with updates from other discovery_source records.
- Another condition for this issue to be visible is that the customer has one or more data precedence / data refresh rules, applicable to the CMDB tables being populated by the SCCM Integration / Discovery / Other Sources.
SCCM Integration uses 'Transform Maps' to populate the CMDB tables.
Normally, a transform map event scripts can be added to change the behavior of the transform. We can use an onBefore transform script to apply CI Identification and Reconciliation to Import Sets. However, this method isn't used in the SCCM Integration plugins. The sequence of scripts being evaluated during a transform is as follows:
- source script for (coalesce) field(s)
- onBefore script
- script for transform map
In earlier versions, in the 'SCCM 2012 v2 Computer Identity' data source, within the source script for sys_id, we 'used to' call the CMDB Identification Engine to find us a matching computer (or create one if one doesn't exist). Because of this, the record was already present before the onBefore script is evaluated. This breaks the desired behaviour.
To overcome this issue, the designed behaviour was changed such that 'SCCM Integration' no longer uses IRE to Insert or Update the CIs. As per the current release(s), SCCM uses IRE only to check whether CI already exists or not. This check is made in the source script for sys_id.
- It is not recommended or supported to use IRE to populate the CMDB, by using Transform Map onBefore script (in this case SCCM Integration Transform Map). Hence, it is not possible for SCCM Integration to honour the data precedence or data refresh rules.
- Steps mentioned in KB0721378 can be used to modify the transform map onBefore script to make sure SCCM does not update CIs that were created / updated by Discovery (discovery_source='ServiceNow'). The logic can be applied in case there is a conflict with any other discovery_source type.