Default language.

Important This documentation space contains information about the SaaS version of BMC Helix Discovery. If you are using the on-premises version of BMC Helix Discovery, see BMC Helix Discovery 25.2 (On-Premises).

Preparing ServiceNow CMDB for synchronization



The BMC Helix Discovery integration with ServiceNow CMDB is supported for all supported releases of ServiceNow CMDB.


Add BMC Discovery to cmdb_ci discovery_source choice list

The BMC Helix Discovery integration uses a Discovery Source choice list on the base cmdb_ci class. Discovery Source is a choice list meaning that it is not a free text field and that the values allowed are restricted to a predefined list. The Discovery Source text used in theBMC Helix Discovery CMDB integration is BMC Discovery and this must exist in the choice list. For more information on choice lists, see Add missing items to the choice list.

  1. Login to the ServiceNow CMDB with a system administrator privileged account and navigate to System Definition > Choice Lists
  2. Click on New to add a choice list record and complete the following fields:

    Field

    Value

    Table

    "Configuration Item [cmdb_ci]"

    Element

    discovery_source

    Language

    English (mandatory)

    Label

    "BMC Discovery"

    Value

    The default value is, "BMC Discovery". This must match the "Source Name" used in the configuration in BMC Helix Discovery, and be unique in your ServiceNow CMDB instance.

  3. Click Submit.

Create the bmc.integration user

A ServiceNow user must be created to allow the BMC Helix Discovery CMDB integration to create / update and manage CIs within the ServiceNow CMDB.

This procedure assumes that the roles have not been modified from their default configuration.

  1. Login to the ServiceNow CMDB with a system administrator privileged account and navigate to User Administration > Users
  2. Click on New to add a User record and complete the following fields:

    Field

    Value

    User ID

    This must match the Username used in the configuration in BMC Helix Discovery.

    First Name

    Integration user first name

    Last Name

    Integration user last name

    Password

    This must match the Password used in the configuration in BMC Helix Discovery.

    Active

    Set to "Active"

    Locked Out

    Ensure this is not selected

    Password needs reset

    Ensure this is not selected

    Web service access only

    Ensure this is selected.

    Language

    English (mandatory)

  3. Click Submit.
  4. Locate the created user and open the User record, select Roles and Edit. The following roles must be added to the user:

    Role

    Purpose

    itil

    The itil role is required to give access to the cmdb_ci tables

    model_manager

    The model_manager role is required so that any missing products (models) can be created when a CI is added to ServiceNow. The products (models) are stored in the table cmdb_model. The role model_manager gives write access to the cmdb_model table.

    user_admin

    Optional - The user_admin role is to allow write permissions to the core_company table to create / add missing "manufacturers" to the system. If not provided, manufacturers unknown by ServiceNow will be empty on CIs.

    personalize_choices

    The system needs to read the sys_choice records to check that the discovery source exists in the choice list of the cmdb_ci table.

    This procedure assumes that the above roles have not been modified from the default configuration.

  5. Click Save.

Setting the OAuth API Endpoint

Create an OAuth application endpoint to allow the BMC Helix Discovery CMDB integration to access system resources in the ServiceNow CMDB.


  1. Login to the ServiceNow CMDB with a system administrator privileged account and navigate to System OAuth > Application Registry
  2. Click New
  3. On the interceptor page, click Create an OAuth API endpoint for external clients.
  4. Complete the following fields:

    Field

    Value

    Name

    A unique name.

    Client ID

    This is created by default. This must match the Client ID used in the configuration in BMC Helix Discovery.

    Client Secret

    If no value supplied the system automatically generates this. This must match the Client Secret used in the configuration in BMC Helix Discovery.

  5. Click Submit.

Class configuration summary

The following table shows a summary of the configuration changes that you need to make to ServiceNow CMDB classes. 

Info

Unless stated otherwise all dependency rules you create must be of the type "Hosting" rather than the default of "Containment".

Class

Internal Class Name

Change

Dependency

Note

Root CIcmdb_ciSet the Identification rule to “Independent” and the Identifier Entry to be “Name”.  

Hardware

cmdb_ci_hardware

If there are separate identifier entries for “Name” and “Serial Number” they should be combined.

Delete the identifier entry for “Name” and update the identifier entry for “Serial Number” to include “Name”. For example, “Name, Serial Number”. Make sure that Allow null attributes is selected

 

 

Storage Volume

cmdb_ci_storage_volume

Change first Identifier Entry to be Object ID and Name with allow null attributes

 

 

Resource Group

cmdb_ci_resource_group

Change Identifier Entry to be Object ID and Name with allow null attributes.

Add in a dependency for Environment

Resource Group - Contains (Contains::Contained by) - Environment

Rule must be of the type “Containment” and should be added via the Metadata Editor. See below for details.

Environment

cmdb_ci_environment

Create Identification Rule: Independent, Set Identifier Entry to be Serial Number and Name with allow null attributes

 

 

Application

 

cmdb_ci_appl 

Add two additional dependencies for Logical Datacenter and Cluster

 

Application - Runs on (Runs on::Runs) - Logical Datacenter

 

Check. This is NOT
Runs (Runs on::Runs)

Rule must be of the type "Hosting".

Application - Runs on (Runs on::Runs) - Cluster

 

Check. This is NOT
Runs (Runs on::Runs)

Rule must be of the type "Hosting".

Virtual Machine Instance

 

cmdb_ci_vm_instance  

Add two additional dependencies for Server and Network Gear

 

Virtual Machine Instance - Runs on (Runs on::Runs) - Server

Check. This is NOT
Runs (Runs on::Runs)

Rule must be of the type "Hosting".

Virtual Machine Instance - Runs_on (Runs on::Runs) - Network Gear

Check. This is NOT
Runs (Runs on::Runs)

Rule must be of the type "Hosting".

Fibre Channel Port

cmdb_ci_fc_port

Change Identifier Entry to be Name and WWPN with allow null attributes and add in another dependency for IP Switch

Fibre Channel Port - Owned By (Owns::Owned by) - IP Switch

 

Check. This is NOT
Owns (Owns::Owned by)

Rule must be of the type "Hosting".

Logical Datacenter

cmdb_ci_logical_datacenter

Add in a dependency for Environment

Logical Datacenter - Hosts (Hosted on::Hosts) - Environment

 

Check. This is NOT
Hosted On (Hosted on::Hosts)

Rule must be of the type "Hosting".

VMware vCenter Datacenter

cmdb_ci_vcenter_datacenter

Add in a dependency for ESX Server

VMware vCenter Datacenter - Contains (Contains::Contained by) - ESX Server

 

Check. This is NOT
Contained by (Contains::Contained by)

Rule must be of the type "Hosting".

VMware vCenter Datastore

cmdb_ci_vcenter_datastore

Add in a dependency for VMware vCenter Datacenter

VMware vCenter Datastore - Contained by (Contains::Contained by) - VMware vCenter Datacenter

Check. This is NOT
Contains (Contains::Contained by)

Rule must be of the type "Hosting".

Service

cmdb_ci_service

Create Identification Rule: Independent, Set Identifier Entry to be Name.

 

 

Datastore Disk

cmdb_ci_vcenter_datastore_disk

Create an Identification Rule: Dependent, Set the Identifier Entry to be Name, and add a dependency for VMware vCenter Datastore.

Datastore Disk - Provided By (Provided By::Provides) - VMware vCenter Datastore

 

Check. This is NOT
Provides (Provided By::Provides)

Rule must be of the type "Hosting".

Load Balancer Service

cmdb_ci_lb_service

Change first Identifier Entry to include Fully Qualified Domain Name, Port, IP Address, Name and Object ID and Allow null attributes and add in another dependency for Load Balancer Application

Load Balancer Service - Runs on (Runs on::Runs) - Load Balancer Application 

Check. This is NOT Runs (Runs on::Runs) 

Rule must be of type “Hosting”. 

Cloud Load Balancer

cmdb_ci_cloud_load_balancer

Change Identifier Entry to include Name, IP Address and Object ID and Allow null attributes

 

 

Business Application 

cmdb_ci_business_app 

Create Identification Rule: Independent. Set Identifier Entry to be Name. 

 

 

File System 

cmdb_ci_file_system 

Change first Identifier Entry to be Name and Mount Point with allow null attributes 

 

 

IP Network 

cmdb_ci_ip_network 

Create Identification Rule: Independent. Set Identifier Entry to be Subnet. 

 

 

Load Balancer Application 

cmdb_ci_lb_appl

Change the Identification Rule to be Independent. Set Identifier Entry to be Name and Serial number with allow null attributes 

 

 

Load Balancer Pool 

cmdb_ci_lb_pool 

Add in a dependency for Load Balancer Application 

Load Balancer Pool - Owned by (Owns::Owned by) – Load Balancer Application 

Check. This is NOT Owns (Owns::Owned by) 

Rule must be of type “Hosting”. 

Metadata Editor

Some IRE rules require a type of "Containment" rather than "Hosting". To set up these rules, use the Metadata Editor.

The following example shows how to set up the Containment rules between Environment and Resource Group:

  1. Navigate to the Metadata Editor in the Service Now UI.
  2. Under the Containment Rules tab, click Add New Rule .
  3. In the "Add Top-Level Containment Rule select "Environment".
  4. For the newly create rule for environment select "Add Containment Rule".
  5. Select "Resource Group" for the configuration Item type and "Contains::Contained by" for the relationship type.

System Property Modification

Some classes in ServiceNow are configured to require specific attributes to be defined at the time of creation, for example, it_application_owner and cmdb_software_product_model in the cmdb_ci_business_app class.

To enable successful creation of CIs with these mandatory attributes, disable the following system property in ServiceNow:

  1. Open the ServiceNow menu, in the All search field, enter sys_properties.list and press Enter.
  2. On the resulting table view, filter the Name column by using the term glide.required.attribute.enabled, and open the system property.
  3. Change the value from true to false. The term false must be in lowercase.

You should consult your ServiceNow product documentation for full details on its configuration.

Network device types require additions to default mappings in ServiceNow

Network device types cannot be correctly mapped as they are not included in the default mappings in ServiceNow. For example, the following types are not mapped:

  • "Load Balancer / Web Caching"
  • "Firewall / Load Balancer"

When synchronized to ServiceNow CMDB, the "device Type" attribute is not set and remains empty. You should consult your ServiceNow product documentation for full details adding to the default mappings.
  

Add missing relationships

Complete synchronization of some CIs requires additional relationships in ServiceNow. For example, some database tables require the Allocated_from__Allocated_to class, which requires the Allocated from::Allocated to relationship.

To determine whether this relationship is present:

  1. Check the CMDB table cmdb_rel_type for an Allocated_from__Allocated_to record.
  2. If it does not exist, add the relationship with the following details:

     Display name  Parent descriptor  Child descriptor 
    Allocated_from__Allocated_toAllocated from Allocated to

Add missing items to a choice list

When the CMDB sync connection is created, the ServiceNow CMDB reads the permitted choices for choice lists. If CMDB sync sends an unknown value, for example, an OS type of GNU /Linux, it is discarded by the ServiceNow CMDB.

To add an item to a choice list


The following procedure extends the GNU/Linux example:

  1. Open a CI which contains the choice list. For example, a Linux server.
  2. Select and right-click the field name, in this example, Operating System. Select Show Choice List.
    The existing choice list values are displayed.
  3. Click the column header with the label corresponding to the CI class.
  4. Right-click the first table name in the list. In this example, cmdb_ci_computer.
  5. Click Show Matching in the pop-up menu.
  6. To create a new choice list item, click New.
  7. Enter the new value in the label and value fields, for example, GNU/Linux.
  8. Click Submit.
  9. Confirm that the new value shows in the choice list.

















































 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*