Populate "Datasource History" table with SCCM Integration

Gaetano De Mitr
ServiceNow Employee
ServiceNow Employee

Hello to all,

I need to populate the cmdb_datasource_last_update table when a Computer is created by SCCM integration, since not populating this table (cmdb_datasource_last_update), the rules of Datasource Precedence and Reconciliation Definitions do not work. As a better approach, what do you recommend:

  • Create an onBefore Transform script on the following SCCM Transform "SCCM 2012 v2 Computer Identity", using the IRE API, or
  • do an insert BR, "onAfter" on the cmdb_ci_computer table that populates the records in the "cmdb_datasource_last_update" table by setting Datasource = SCCM?

My aim is to give SCCM absolute priority over Computers (Workstations) on any field

Furthermore, since to date there are already Computers created by SCCM but without recond in the "Datasource History" table, I imagine an initial remediation should be done on the AS-IS.

Do you agree?

16 REPLIES 16

Patrick DeCarl1
ServiceNow Employee
ServiceNow Employee

Is your SCCM taking the data from import set and sending it through the IRE or just using the IRE to pass back sys_id?

Hi, SCCM are using the IRE to pass back sys_id.

In this case, you will not be able to use Datasource Precedence and Reconciliation Definitions unless you pass all the data via IRE via transform map. 

Hi Patrick.

I know that the API of the IRE engine should be used, but unfortunately ServiceNow seems to advise against using the IRE in the SCCM transform maps, so I can't understand how the rules of precedence and reconciliation could work without using the IRE.

https://hi.service-now.com/kb_view.do?sysparm_article=KB0748948

https://hi.service-now.com/kb_view.do?sysparm_article=KB0721378

 

Furthermore, when you talked about using IRE, you intend to call the API in a Transform Script onBefore, mapping all the fields to be created on the target table. Obviously in doing so, the fields mapped in the transform will no longer be taken into consideration.

As an alternative workaround, I had thought to populate via cmdb_ci_computer via Business Rule (insert, onBefore) when Discovery Source = SCCM, the Datasource History table, so as to allow the correct functioning of the rules of precedence and reconciliation and keeping all transform unchanged by SCCM.