Ahmed Drar
Tera Guru
Tera Guru

Before we go into IRE configuration, we should understand why IRE is necessary for a non-CMDB table.

 

If your core data has several duplicate entries, such as duplicate locations or departments, you might need to adopt IRE.

 

Let's take a look at a typical issue: 'Duplicate Locations.'

 

A typical issue you may have come across with a large number of clients is that their location table has duplicate information, which impacts all of their processes, including the creation of a decent CSDM model.

 

 How can IRE for non-CMDBs assist?

 

IRE  offers a centralised framework for identifying and reconciling data from various sources. When several data sources are utilised to build and update your records, it helps to maintain the integrity of the CMDB and non-CMDB tables.

 

In brief, IRE can prevent duplicate records by uniquely identifying a record based on identification rules.

 

Consider the following scenario.

 

Company XYZ has SAP data source and manual import utilising an Excel sheet for their location. The Excel sheet is a modified version of SAP data export. The ServiceNow integration with SAP employs a transform map that identifies a unique location based on location ID, whereas the manual import transform map identifies a location based on name, location type, and country.

 

Because of several data sources and human errors, Company XYZ has a large number of duplicate locations.

AhmedDrar_3-1682862397468.png

 

To reduce the number of duplicated location data in the platform, the ServiceNow team decides to employ IRE for non-CMDB to handle the duplicate location issue.

 

AhmedDrar_4-1682862438017.png

 

 

Let's have a quick look at how identification rule configurations are done for locations( Step by step )

 

  • Navigate to All > Identification/Reconciliation > CI Identifiers.
  • In the Identifiers list view, click New.
  • Fill out the Identifier form.

AhmedDrar_0-1682861848065.png   

   

  • Click Submit.
  • In the Identifiers list view, locate and open the identifier that you just created.
  • On the Identifier form, select the Identifier Entries tab and then click New.
  • Fill out the Identifier Entry form
  • Click Submit

AhmedDrar_1-1682862055907.png

 

 

AhmedDrar_2-1682862102400.png

 

We have just built our 2 identifiers for locations. let's test what we just configure.

 

How do I put IRE configuration to the test?

 

I'm going to use the IRE API to create three locations, and then I'm going to update one location contact using the location ID as an identifier. right after that, I'm going to update the same location contact with an identifier of name, location type, and country.

 

Let's start testing

Create three locations

 

var payload = {
  "items": [
    {
      "className": "cmn_location",
      "values": {
        "cmn_location_type": "country",
        "country": "UK",
        "name": "Head office- Company XYZ",
        'u_location_id': '1'
      }
    },
    {
      "className": "cmn_location",
      "values": {
        "cmn_location_type": "country",
        "country": "UK",
        "name": "Liverpool - - Company XYZ",
        'u_location_id': '2'
      }
    },
    {
      "className": "cmn_location",
      "values": {
        "cmn_location_type": "country",
        "country": "UK",
       "name": "Essex- - Company XYZ",
        'u_location_id': '3'
      }
    }
  ]
};
var input = new JSON().encode(payload);
var output = SNC.IdentificationEngineScriptableApi.createOrUpdateCI('ServiceNow', input);
gs.print(output);

 

 

Result 

AhmedDrar_0-1682863800359.png

 

 

Update one location contact using the location ID as an identifier

 

 

var payload = {
  "items": [
    {
      "className": "cmn_location",
      "values": {

        "contact": "62826bf03710200044e0bfc8bcbe5df1",
        'u_location_id': '1'
      }
    }

  ]
};
var input = new JSON().encode(payload);
var output = SNC.IdentificationEngineScriptableApi.createOrUpdateCI('ServiceNow', input);
gs.print(output);

 

 

Result

AhmedDrar_1-1682863942619.png

 

Update the same location contact with an identifier of name, location type, and country.

 

 

var payload = {
  "items": [
    {
      "className": "cmn_location",
      "values": {
       "cmn_location_type": "country",
        "country": "UK",
        "name": "Head office- Company XYZ",
        "contact": "aa826bf03710200044e0bfc8bcbe5dd6"
      }
    }

  ]
};
var input = new JSON().encode(payload);
var output = SNC.IdentificationEngineScriptableApi.createOrUpdateCI('ServiceNow', input);
gs.print(output);

 

 

Result

AhmedDrar_0-1682864190602.png

 

 

 

3 Comments