Product documentation Docs
    • English
    • Deutsch
    • 日本語
    • 한국어
    • Français
  • More Sites
    • Now Community
    • Developer Site
    • Knowledge Base
    • Product Information
    • ServiceNow.com
    • Training
    • Customer Success Center
    • ServiceNow Support Videos
  • Log in

Product documentation

  • Home
How search works:
  • Punctuation and capital letters are ignored
  • Special characters like underscores (_) are removed
  • Known synonyms are applied
  • The most relevant topics (based on weighting and matching to search terms) are listed first in search results
Topics are ranked in search results by how closely they match your search terms
  • A match on the entire phrase you typed
  • A match on part of the phrase you typed
  • A match on ALL of the terms in the phrase you typed
  • A match on ANY of the terms in the phrase you typed

Note: Matches in titles are always highly ranked.

  • Release version
    Table of Contents
    • Now Platform capabilities
Table of Contents
Choose your release version
    Home Orlando Now Platform Capabilities Now Platform capabilities Configuration Management Database Integrating third-party data into the CMDB Integration Commons for CMDB (2.5.0)

    Integration Commons for CMDB (2.5.0)

    • Save as PDF Selected topic Topic & subtopics All topics in contents
    • Unsubscribe Log in to subscribe to topics and get notified when content changes.
    • Share this page

    Integration Commons for CMDB (2.5.0)

    The Integration Commons for CMDB store app contain a set of RTE (Robust Transform Engine) transforms and script includes. Use these transforms and script includes to standardize the values stored in the CMDB by different data integrations or by changes.

    Request apps on the Store

    Visit the ServiceNow Store website to view all the available apps and for information about submitting requests to the store. For cumulative release note information for all released apps, see the ServiceNow Store version history release notes.

    CMDB Integrations Dashboard

    The Integration Commons for CMDB store app provides a dashboard with a central view of status, processing results, and processing errors of all installed Service Graph Connectors. You can see metrics for all Service Graph Connector runs, or filter the view to a specific connector, a specific time duration, or a specific connector run.

    To access the CMDB Integrations Dashboard:
    1. Navigate to Self-Service > Dashboards.
    2. On the Dashboards view, select the CMDB Integrations Dashboard dashboard.
      • Click the CMDB Execution Status tab to see metrics such as the total number of integrations and processed rows, integration runs actively running, daily statistics, and details about the classes that were updated.
      • Click the CMDB Integration Errors tab to see metrics such as number of import and integration errors, and number of erroneous imported records.
      • Drill down metrics to list associated records, and you can point to charts to show more details for the chart.
      • Narrow down the scope of the integration runs included in the metrics on the dashboard by configuring filters on the right-hand side of the dashboard. Set any of the following filters and then click Apply. The filter settings apply to any metric with a filter icon in its upper left corner.
        Table 1. Filters
        Filter Description
        Import Date Select All or a time period, such as Last 7 days, from which to include integration runs in metrics.
        CMDB Applications Select All, or a CMDB application, such as SCCM, from which to include integration runs in metrics.
        CMDB Import Select All, or a specific integration run to include in metrics.

    Using the transforms and script includes in Integration Commons for CMDB

    The attributes that are included in the Integration Commons for CMDB store app are attributes that Identification and Reconciliation Engine (IRE) requires for identification or attributes that could be used to derive classes.

    The transforms are templated operations, meaning that there is a script that controls the logic for the transform. The result is that there can be only a single output. When a transform returns multiple values, then those values are concatenated by a triple pipe (|||). You then must use the split transform to retrieve the values that you are interested in. The inputs are either a single field or a list of fields. For all but one transform, the inputs are assumed to be a fixed list of fields as described for each of the following individual transform.

    ServiceNow Service Graph Connectors that are available at the ServiceNow Store, have dependencies on the transforms and script includes in the Integration Commons for CMDB store app. Therefore, when you install such CMDB integration, the Integration Commons for CMDB store app is automatically installed too.

    The following RTE transforms are included in the Integration Commons for CMDB store app, and are available in the IntegrationHub ETL (1.5.1) store app.

    Cleanse Company

    Use when there is a hardware manufacturer name that must be cleansed and added to core_company to populate a reference, but the manufacturer is not linked to a model or software (cpu_manufacturer).

    Details
    Table sn_cmdb_int_util_cleanse_company_operation
    Input fields source_sys_rte_eb_field

    Input is a company/manufacturer name.

    Output field target_sys_rte_eb_field

    Output is the resulting sys_id and name of the company in core_company, concatenated by triple pipe (|||).

    Script include function sn_cmdb_int_util.CmdbIntegrationHardwareModelUtil().cleanseCompany(input)

    If a matching record does not exist, then a new record is created in core_company so the return always includes a sys_id and name (unless the input is empty or invalid). The name is cleansed and a fuzzy lookup is done via the CmdbIntegrationCompanyModelUtil script include before the MakeAndModelJS platform API is called.

    Table 2. Example:
    Input Result
    SERVICENOW 93d4ecfac0a8000b6294d71b733977fb|||ServiceNow

    Cleanse Hardware Model

    Use to create, cleanse, or lookup a hardware model to create a reference (model_id).

    Details
    Table sn_cmdb_int_util_cleanse_hardware_model_operation
    Input fields source_sys_rte_eb_fields
    Input in order is:
    1. The manufacturer name
    2. The model name

    If either value is provided by itself, then the operation only processes what is found.

    Output field target_sys_rte_eb_field

    Output is the resulting sys_id and name of the company in core_company, and sys_id and name of the model in cmdb_model - all concatenated by triple pipe (|||).

    Script include function sn_cmdb_int_util.CmdbIntegrationHardwareModelUtil().cleanseModelAndCompany(manufacturer_in, model_in)

    For either the manufacturer or model, if a matching record does not exist then a new record is created so the return always includes sys_ids and names for both records (unless the input is empty or invalid).

    The manufacturer name is processed like the Cleanse Company transform and then both the manufacturer name and model name are sent to the MakeAndModelJS platform API.

    Table 3. Example:
    Manufacturer Name Model Name Result
    ServiceNow Incorporated SERVICENOW 93d4ecfac0a8000b6294d71b733977fb|||ServiceNow|||ba29cb303710200044e0bfc8bcbe5d6d |||ServiceNow

    Cleanse IP Address

    Use when a field provides an IP address.

    Details
    Table sn_cmdb_int_util_cleanse_ip_operation
    Input fields source_sys_rte_eb_field

    Input is the IP address to cleanse.

    Output field target_sys_rte_eb_field

    Output is the resulting IP address, which can be empty.

    Script include function sn_cmdb_int_util.CmdbIntegrationNetworkUtil().cleanseIpAddress(input)

    The IP address is tested for both IPv4 and IPv6 structures along with some known derivations (an IPv4 with spaces instead of periods). If a result is found, then it is formatted and returned.

    Table 4. Examples:
    Ip Ip Results
    192.160.89.1 192.160.89.1
    192.160.89.1,54.21.12.311 192.160.89.1
    192 160 89 1 54 21 12 311 192.160.89.1
    192-160-89-1 192.160.89.1
    2001:0db8:0000:0000:0000:ff00:0042:8329 2001:0db8:0000:0000:0000:ff00:0042:8329
    junk
    175912537 10.124.54.89
    -1
    0

    Cleanse IP Version

    Use when the source of data does not provide an IP version or when the IP version might be unreliable.

    Details
    Table sn_cmdb_int_util_cleanse_ip_version_operation
    Input fields source_sys_rte_eb_field

    Input is the IP address to cleanse.

    Output field target_sys_rte_eb_field

    Output is the resulting cmdb_ci_ip_address.ip_version lookup key (either 4, 6, or empty).

    Script include function sn_cmdb_int_util.CmdbIntegrationNetworkUtil().deriveIpVersion(input)

    The input IP address value is checked for either proper IPv4 or IPv6 structure, otherwise the return is empty. This function provides no IP cleansing.

    Table 5. Example:
    Input Result
    192.160.89.1 4

    Cleanse MAC Address

    Use when a field provides a MAC address.

    Details
    Table sn_cmdb_int_util_cleanse_mac_operation
    Input fields source_sys_rte_eb_field

    Input is the MAC address to cleanse.

    Output field target_sys_rte_eb_field

    Output is the resulting MAC address which can be empty.

    Script include function sn_cmdb_int_util.CmdbIntegrationNetworkUtil().cleanseMacAddress(input)

    The MAC address is tested for proper structure along with some known derivations (for example, a MAC address with spaces instead of colons). If a result is found, then it is formatted and returned.

    Table 6. Example:
    Input Result
    00 0A 95 9D 68 16 00:0a:95:9d:68:16

    Cleanse Operating System

    Use when the source provides an operating system.

    Details
    Table sn_cmdb_int_util_cleanse_os_operation
    Input fields source_sys_rte_eb_field

    Input is the operating system name to cleanse.

    Output field target_sys_rte_eb_field

    Output is the resulting operating system name. The resulting operating system name is also written to the cmdb_ci_computer.os list field.

    Script include function sn_cmdb_int_util.CmdbIntegrationOsUtil().cleanseAndInsertOs(input)

    Most of the current cleansing is centered on Microsoft operating system values aside from common cleansing such as fixing casing.

    Table 7. Examples:
    Operating System Operating System Results
    Windows Server 2003 R2 64 bit Edition Service Pack 2 Windows Server 2003 R2
    Windows 2003 Windows 2003
    Windows Vista 64 bit Edition Windows Vista
    Windows 2000 Professional Service Pack 4 Windows 2000 Professional
    Windows XP Service Pack 2-3 Windows XP
    Microsoft Windows Server 2003 R2 64 bit Edition Service Pack 2 Windows Server 2003 R2
    Microsoft Windows 2003 Windows 2003
    Microsoft Windows Vista 64 bit Edition Windows Vista
    Microsoft Windows 2000 Professional Service Pack 4 Windows 2000 Professional
    Microsoft Windows XP Service Pack 2-3 Windows XP
    linux ubuntu Linux Ubuntu
    Linux Ubuntu Server Linux Ubuntu Server

    Cleanse Serial Number

    Use to cleanse and remove invalid serial numbers.

    Details
    Table sn_cmdb_int_util_cleanse_serial_number_operation
    Input fields source_sys_rte_eb_fields

    Input is the serial number to cleanse.

    Output fields source_sys_rte_eb_field

    Output is the resulting serial number.

    Table 8. Examples:
    Serial Number Serial Number Results
    ec2aa2da-5312-aa3e-804c-c35feabeda5f ec2aa2da-5312-aa3e-804c-c35feabeda5f
    1045–1209–6738–4668–7696–2783 1045–1209–6738–4668–7696–2783

    Cleanse Software Model

    Use to cleanse and create a software model. Also, to create manufacturer and software model if they do not exist and follow with a split operation.

    Details
    Table sn_cmdb_int_util_cleanse_software_model_operation
    Input fields source_sys_rte_eb_fields
    Input in order is:
    1. The manufacturer name
    2. The software name
    3. The software version (not required)

    If only manufacturer or name is provided, then only those values are processed and returned.

    Output field target_sys_rte_eb_field

    Output is the resulting sys_id and name of the company in core_company, the cleansed software name, and the cleansed software version all concatenated by a triple pipe (|||).

    Script include function sn_cmdb_int_util.CmdbIntegrationSoftwareModelUtil().cleanseSoftwareModel(company, model, version)

    If a matching manufacturer record does not exist, then a new record is created so the return always includes the sys_id and name for the manufacturer (if the manufacturer is not empty or invalid).

    The manufacturer name is processed the same as in the Cleanse Company transform and then the manufacturer name is sent to the MakeAndModelJS platform API.

    The software name and version are cleansed and formatted and returned. The version is removed from the software name if present.

    Table 9. Examples:
    Manufacturer Software Name Software Version Output
    Dell Inc.
    NoManufacturer
    1.0.0.0
    Dell Inc. DataEngine 1.0.17.2 b7e7d7d8c0a8016900a5d7f291acce5c|||Dell Inc.|||DataEngine|||1.0.17.2
    GenuineIntel TestSoftware 1.0.0.1 7aad6d00c611228400f00e0f80b67d2d|||Intel|||TestSoftware|||1.0.0.1
    Dell Inc. TestSoftware 232 b7e7d7d8c0a8016900a5d7f291acce5c|||Dell Inc.|||TestSoftware|||232
    Dell Inc. TestSoftware 123.0.0.0 b7e7d7d8c0a8016900a5d7f291acce5c|||Dell Inc.|||TestSoftware|||123.0
    America Online TestSoftware 1.0.0.0 0c43d035c61122750000251553f6f8e8|||America Online|||TestSoftware|||1.0
    America Online TestSoftware 1.0.0.0 0c43d035c61122750000251553f6f8e8|||America Online|||TestSoftware|||1.0
    dell LowerCase 1.0.0.0 b7e7d7d8c0a8016900a5d7f291acce5c|||Dell Inc.|||LowerCase|||1.0

    Dell Corporation.

    Incorporated, Corp.

    TestSoftware 1.0.0.0 b7e7d7d8c0a8016900a5d7f291acce5c|||Dell Inc.|||TestSoftware|||1.0
    Microsoft

    Microsoft SQL

    Server 2016 Enterprise

    2.0.0 0e8b8e650a0a0b3b004f285ffbb1a4fc|||Microsoft|||Microsoft SQL Server 2016 Enterprise|||2.0
    Dell Computer DataEngine 1.0.17.2 b7e7d7d8c0a8016900a5d7f291acce5c|||Dell Inc.|||DataEngine|||1.0.17.2
    Adobe TestSoftware 1 b7e8b5c4c0a80169008b49e468920048|||Adobe Systems|||TestSoftware|||1.0

    Create Software Instance Name

    Use when a hardware name, software name, and software version is provided, to create a new software instance name.

    Table 10.
    Details
    Table sn_cmdb_int_util_create_software_instance_name_operation
    Input fields source_sys_rte_eb_fields
    Input in order is:
    1. The hardware name
    2. The software name
    3. The software version (not required)
    Output field target_sys_rte_ev_field

    Output is the software instance name.

    Script include function sn_cmdb_int_util.CmdbIntegrationSoftwareModelUtil().createSoftwareInstanceName(hw_name_in, sw_name_in, sw_version_in)
    Table 11. Examples:
    Hardware Name Software Name Software Version Results
    computer1 microsoft 2.0.1 microsoft 2.0.1-computer1
    computer2 adobe adobe-computer2
    computer3 adobe 2.1
    hw2 sw3 301 sw3 301-hw2

    Derive CI Class from Model

    Use when processing a computer record and a model is provided but the class of the computer is ambiguous otherwise. Can be used along with other Derive CI Class transforms.

    Details
    Table sn_cmdb_int_util_derive_class_from_model_operation
    Input fields source_sys_rte_eb_fields
    Input in order is:
    1. The model name
    2. The current class name
    Output field target_sys_rte_eb_field

    Output is the resulting class name.

    Script include function sn_cmdb_int_util.CmdbIntegrationClassUtil().deriveClassNameFromModelInput(model_in, class_in)

    Does not return a value of a class which is higher in the class hierarchy (a parent class) than the provided input class. For example, does not return cmdb_ci_computer if the input is cmdb_ci_server. Looks only at the cmdb_ci_computer hierarchy, going through cmdb_ci_server (cmdb_ci_computer, cmdb_ci_server, children of cmdb_ci_server).

    Currently looks for Server, Windows Server, and Linux Server indicators in the model.

    Table 12. Examples:
    Model Class Class Results
    window server cmdb_ci_computer cmdb_ci_win_server
    Microsoft server cmdb_ci_computer cmdb_ci_win_server
    linux server cmdb_ci_computer cmdb_ci_linux_server
    Microsoft server cmdb_ci_server cmdb_ci_win_server
    linux server cmdb_ci_server cmdb_ci_linux_server
    Red hat server cmdb_ci_server cmdb_ci_linux_server
    Arch server cmdb_ci_server cmdb_ci_linux_server
    Centos server cmdb_ci_server cmdb_ci_linux_server
    Debian server cmdb_ci_server cmdb_ci_linux_server
    Fedora server cmdb_ci_server cmdb_ci_linux_server
    Suse server cmdb_ci_server cmdb_ci_linux_server
    Oracle server cmdb_ci_server cmdb_ci_linux_server
    Rhel server cmdb_ci_server cmdb_ci_linux_server
    Ubuntu server cmdb_ci_server cmdb_ci_linux_server
    Junk
    cmdb_ci_server cmdb_ci_server
    Junk server cmdb_ci_computer cmdb_ci_server
    Junk cmdb_ci_computer cmdb_ci_computer

    Derive CI Class from Native Class Identifier

    Use when processing a computer record and a native class indicator is provided but the class of the computer is ambiguous otherwise. Can be used along with other Derive CI Class transforms.

    Details
    Table sn_cmdb_int_util_derive_class_from_native_value_operation
    Input fields source_sys_rte_eb_fields
    Input in order is:
    1. The native class identifier
    2. The current class name
    Output field target_sys_rte_eb_field

    Output is the resulting class name.

    Script include function sn_cmdb_int_util.CmdbIntegrationClassUtil().deriveClassNameFromNativeValue(native_id_in, class_in)

    Does not return a value of a class which is higher in the class hierarchy (a parent class) than the provided input class. For example, does not return cmdb_ci_computer if the input is cmdb_ci_server. Looks only at the cmdb_ci_computer hierarchy, going through cmdb_ci_server (cmdb_ci_computer, cmdb_ci_server, children of cmdb_ci_server).

    Currently looks for Server, Windows Server, and Linux Server indicators in the native identifier.

    Table 13. Examples:
    Model Class Class Results
    window server cmdb_ci_computer cmdb_ci_win_server
    Microsoft server cmdb_ci_computer cmdb_ci_win_server
    linux server cmdb_ci_computer cmdb_ci_linux_server
    Microsoft server cmdb_ci_server cmdb_ci_win_server
    linux server cmdb_ci_server cmdb_ci_linux_server
    Red hat server cmdb_ci_server cmdb_ci_linux_server
    Arch server cmdb_ci_server cmdb_ci_linux_server
    Centos server cmdb_ci_server cmdb_ci_linux_server
    Debian server cmdb_ci_server cmdb_ci_linux_server
    Fedora server cmdb_ci_server cmdb_ci_linux_server
    Suse server cmdb_ci_server cmdb_ci_linux_server
    Oracle server cmdb_ci_server cmdb_ci_linux_server
    Rhel server cmdb_ci_server cmdb_ci_linux_server
    Ubuntu server cmdb_ci_server cmdb_ci_linux_server
    Junk
    cmdb_ci_server cmdb_ci_server
    Junk server cmdb_ci_computer cmdb_ci_server
    Junk cmdb_ci_computer cmdb_ci_computer

    Derive CI Class from Operating System

    Use when processing a computer record and an operating system is provided but the class of the computer is ambiguous otherwise. Can be used along with other Derive CI Class transforms.

    Details
    Table sn_cmdb_int_util_derive_class_from_os_operation
    Input fields source_sys_rte_eb_fields
    Input in order is:
    1. The operating system name
    2. The current class name
    Output field target_sys_rte_eb_field

    Output is the resulting class name.

    Script include function sn_cmdb_int_util.CmdbIntegrationClassUtil().deriveClassNameFromOsName(os_in, class_in)

    Does not return a value of a class which is higher in the class hierarchy (a parent class) than the provided input class. For example, does not return cmdb_ci_computer if the input is cmdb_ci_server. Looks only at the cmdb_ci_computer hierarchy, going through cmdb_ci_server (cmdb_ci_computer, cmdb_ci_server, children of cmdb_ci_server).

    Currently looks for Server, Windows Server, and Linux Server indicators in the operating system name.

    Table 14. Examples:
    Model Class Class Results
    window server cmdb_ci_computer cmdb_ci_win_server
    Microsoft server cmdb_ci_computer cmdb_ci_win_server
    linux server cmdb_ci_computer cmdb_ci_linux_server
    Microsoft server cmdb_ci_server cmdb_ci_win_server
    linux server cmdb_ci_server cmdb_ci_linux_server
    Red hat server cmdb_ci_server cmdb_ci_linux_server
    Arch server cmdb_ci_server cmdb_ci_linux_server
    Centos server cmdb_ci_server cmdb_ci_linux_server
    Debian server cmdb_ci_server cmdb_ci_linux_server
    Fedora server cmdb_ci_server cmdb_ci_linux_server
    Suse server cmdb_ci_server cmdb_ci_linux_server
    Oracle server cmdb_ci_server cmdb_ci_linux_server
    Rhel server cmdb_ci_server cmdb_ci_linux_server
    Ubuntu server cmdb_ci_server cmdb_ci_linux_server
    Junk
    cmdb_ci_server cmdb_ci_server
    Junk server cmdb_ci_computer cmdb_ci_server
    Junk cmdb_ci_computer cmdb_ci_computer

    Derive Virtual From Hardware Model

    Use when processing a computer record that may be virtual, a hardware model is provided, and the virtual status is ambiguous. Can be used along with other Derive Virtual From transforms.

    Details
    Table sn_cmdb_int_util_derive_virtual_from_model_operation
    Input fields source_sys_rte_eb_fields
    Input in order is:
    1. The hardware model name
    2. The current virtual flag value
    Output field target_sys_rte_eb_field

    Output is the resulting virtual flag (true/false). If the current virtual flag is ‘true’, the result is true. Otherwise the result is ‘true’ or ‘false’.

    Script include function sn_cmdb_int_util.CmdbIntegrationVirtualDetectionUtil().detectVirtualFromModelName(model_in, is_virtual_in)

    Looks for indicators in the model name for a virtual device (VMware).

    Table 15. Examples:
    Model Name Virtual Flag Virtual Flag Results
    thinkpad true true
    thinkpad false false
    thinkpad false
    vmware inc true true
    true true
    false false
    false

    Derive Virtual From Native Indicator

    Use when processing a computer record that may be virtual, a virtual indicator is provided by the source, and the virtual status is ambiguous. Can be used along with other Derive Virtual From transforms.

    Details
    Table sn_cmdb_int_util_derive_virtual_from_native_value_operation
    Input fields source_sys_rte_eb_fields
    Input in order is:
    1. The native indicator
    2. The current virtual flag value
    Output field target_sys_rte_eb_field

    Output is the resulting virtual flag (true/false). If the current virtual flag is ‘true’, the result is true. Otherwise the result is ‘true’ or ‘false’.

    Script include function sn_cmdb_int_util.CmdbIntegrationVirtualDetectionUtil().detectVirtualFromNativeIdentifier(native_in, is_virtual_in)

    Tests native indicator against a list of common values and looks for a ‘true’ boolean indicator.

    Table 16. Examples:
    Native Virtual Value Virtual Flag Virtual Flag Results
    virtual false true
    virtual true
    virtual true true
    y false true
    y true
    y true true
    yes false true
    yes true
    yes true true
    true false true
    true true
    true true true
    t false true
    t true
    t true true
    other false false
    other false
    other true true
    not virtual false false
    not virtual false
    not virtual true true
    false false
    false
    true true

    Derive Virtual From Serial Number

    Use when processing a computer record that may be virtual, a serial number is provided by the source, and the virtual status is ambiguous. Can be used along with other Derive Virtual From transforms.

    Details
    Table sn_cmdb_int_util_derive_virtual_from_serial_number_operation
    Input fields source_sys_rte_eb_fields
    Input in order is:
    1. The serial number
    2. The current virtual flag value
    Output field target_sys_rte_eb_field

    Output is the resulting virtual flag (true/false). If the current virtual flag is ‘true’, the result is true. Otherwise the result is ‘true’ or ‘false’.

    Script include function sn_cmdb_int_util.CmdbIntegrationVirtualDetectionUtil().detectVirtualFromSerialNumber (serial_in, is_virtual_in)

    Looks for indicators in the serial number for a virtual device (VMware).

    Table 17. Examples:
    Serial Number Virtual Flag Virtual Flag Results
    123 true true
    123 false false
    123 false
    vmware-123 true true
    true true
    false false
    false

    Extract and Scale by Units

    Use when the source has numerical values that need to be scaled and numeric value with an input unit such as 2048Mb. The source does not always provide the units so it may be required to calculate or guess the units being provided. The target units depend on the target field in the CMDB. If not specified, the decimal place field is set at 2 by default.

    Details
    Table sn_cmdb_int_util_extract_and_scale_by_units_operation
    Input fields source_sys_rte_eb_fields
    Output field target_sys_rte_eb_field
    Script include function sn_cmdb_int_util. CmdbIntegrationExtractScaleUnitUtil().extractAndScaleUnits(input, defaultUnit, outputUnit, decimalPlaces)
    Table 18. Examples:
    Input Value Default Unit Output Unit Result
    2048Mb Mb GB 2GB
    17179869184 B GB 16GB

    First Non Null Value

    Use when you have a list of fields providing similar information that must map to a single field and you want to rank the order in which they can provide those values.

    For example: Internally in SolarWinds, there is a hierarchy of tables that are join. In one example, a computer’s name could come from the child most table or any of that tables parents but each of those is a separate field in the pull. Starting with the most specific table, the values are searched for the first instance of a name value.

    Details
    Table sn_cmdb_int_util_first_non_null_operation
    Input fields source_sys_rte_eb_fields

    Input is a list of fields of any length.

    Output field target_sys_rte_eb_field

    Output is the value from the first field in the list that doesn’t have a null (or empty) value.

    Script include function sn_cmdb_int_util.CmdbIntegrationFirstNonNullValueUtil().firstNonNullValue(batch[i])
    Table 19. Example:
    Field 1 Field 2 Field 3 Result
    foo foo2 foo

    Process Name, Domain, FQDN, DNS set

    Use when the source provides name, domain, FQDN, or DNS information. Can be used for only a subset of these (if for example, the source only provides name and domain). In the case that a source only provides fields that are lower in the input list (FQDN) the CmdbIntegrationHardwareNameUtil script include can be called from a script operation to minimize having to create empty dummy fields.

    Details
    Table sn_cmdb_int_util_process_name_set_operation
    Input fields source_sys_rte_eb_fields
    Takes up to four Input fieldss (any additional fields are ignored), in the following order:
    1. Name
    2. Domain
    3. FQDN
    4. DNS

    You don't have to provide all four input values, but you must provide those values in the specified order. If for example, you only want to cleanse domain, you must provide a name attribute, even it if empty.

    Output field target_sys_rte_eb_field

    Output is a concatenated set of values in the same order, using a triple pipe (|||): {name}|||{domain}|||{fqdn}|||{dns}

    Script include function sn_cmdb_int_util.CmdbIntegrationHardwareNameUtil().processNameDomainFqdnDnsSet(name, domain, fqdn, dns)
    FQDN and DNS are first processed to see if their formats are correct. FQDN has an additional discovery regex it must pass (via properties):
    • glide.discovery.fqdn.regex – default : ^([^.]+)\\.((?:[^.]+\\.)+[^.]+)$
    Possible name and domain values are extracted if possible. When name and domain are processed, if there is no FQDN, a value is generated if possible. A resulting name value is also modified using the following discovery flags:
    1. glide.discovery.hostname.case – default: No change. Can be set to ‘Lower case’, ‘Upper case’, ‘No change’
    2. glide.discovery.hostname.include_domain – default: false. If ‘true’ the domain is added to the final name value
    Table 20. Examples:
    Name Domain FQDN DNS Output (name|||domain|||FQDN|||DNS)
    myName other.net otherName.other.net mycomp.servicenow.com myName|||other.net|||otherName.other.net|||mycomp.servicenow.com
    na other.net otherName.other.net mycomp.servicenow.com otherName|||other.net|||otherName.other.net|||mycomp.servicenow.com
    servicenow.com |||servicenow.com||||||
    name.servicenow.com name|||servicenow.com|||name.servicenow.com|||name.servicenow.com
    name.servicenow.com name|||servicenow.com|||name.servicenow.com|||
    name.servicenow.com name|||servicenow.com|||name.servicenow.com|||
    name servicenow.com name|||servicenow.com|||name.servicenow.com|||

    Process FQDN

    Use when the source provides a suspected FQDN value but no other naming fields such as name, domain, or DNS.

    Details
    Table sn_cmdb_int_util_process_fqdn_operation
    Input fields source_sys_rte_eb_field

    Input is a single field containing an FQDN.

    Output field target_sys_rte_eb_field

    Output is a concatenated set of values in the same order using a triple pipe (|||): {name}|||{domain}|||{fqdn}|||{dns}

    Script include function sn_cmdb_int_util.CmdbIntegrationHardwareNameUtil().processNameDomainFqdnDnsSet('’, '’, fqdn, '’)

    The processing follows the same logic as the ‘Process Name, Domain, FQDN, DNS set’ transform except that only FQDN is used as an input.

    Table 21. Example:
    Input Result
    mycomputer.servicenow.com mycomputer|||servicenow.com|||mycomputer.servicenow.com|||

    Scale Units

    Use when the source has numerical inputs that must be scaled. The source does not always provide the current units so it may be required to calculate or guess the units being provided. The target units depend on the field being targeted in the CMDB.

    Details
    Table sn_cmdb_int_util_scale_unit_operation
    Input fields source_sys_rte_eb_fields
    Inputs in order are:
    1. The input value
    2. The current units
    3. The target units
    Output field target_sys_rte_eb_field

    Output is the input value scaled from the current units to the target units. If no units are found for the current units, then the input value is returned. If no current or target units are found the input is returned as the output.

    Script include function sn_cmdb_int_util.CmdbIntegrationScaleUnitUtil().scaleUnits(input_value, input_unit, output_unit)
    Table 22. Example:
    Input Result
    • Input Field 1: 1
    • Input Field 2: GB
    • Input Field 3: MB
    1024
    • Quick start tests for Integration Commons for CMDB

      Validate that integrations for CMDB pass validation still works after you make any configuration change such as applying an upgrade or developing an application. Copy and customize these quick start tests to pass when using your instance-specific data.

    Related concepts
    • IntegrationHub ETL (1.5.1)
    • Service Graph connector for ExtraHop (2.0.3)
    • Service Graph connector for Microsoft Intune (1.1.1)
    • Service Graph connector for Jamf (2.4.0)
    • Service Graph connector for Microsoft SCCM (2.1.1)
    • Service Graph connector for SolarWinds (2.2.1)
    • Service Graph connector for VMware Workspace ONE UEM (1.0.4)

    Tags:

    Feedback
    On this page

    Previous topic

    Next topic

    • Contact Us
    • Careers
    • Terms of Use
    • Privacy Statement
    • Sitemap
    • © ServiceNow. All rights reserved.

    Release version
    Choose your release version

      Integration Commons for CMDB (2.5.0)

      • Save as PDF Selected topic Topic & subtopics All topics in contents
      • Unsubscribe Log in to subscribe to topics and get notified when content changes.
      • Share this page

      Integration Commons for CMDB (2.5.0)

      The Integration Commons for CMDB store app contain a set of RTE (Robust Transform Engine) transforms and script includes. Use these transforms and script includes to standardize the values stored in the CMDB by different data integrations or by changes.

      Request apps on the Store

      Visit the ServiceNow Store website to view all the available apps and for information about submitting requests to the store. For cumulative release note information for all released apps, see the ServiceNow Store version history release notes.

      CMDB Integrations Dashboard

      The Integration Commons for CMDB store app provides a dashboard with a central view of status, processing results, and processing errors of all installed Service Graph Connectors. You can see metrics for all Service Graph Connector runs, or filter the view to a specific connector, a specific time duration, or a specific connector run.

      To access the CMDB Integrations Dashboard:
      1. Navigate to Self-Service > Dashboards.
      2. On the Dashboards view, select the CMDB Integrations Dashboard dashboard.
        • Click the CMDB Execution Status tab to see metrics such as the total number of integrations and processed rows, integration runs actively running, daily statistics, and details about the classes that were updated.
        • Click the CMDB Integration Errors tab to see metrics such as number of import and integration errors, and number of erroneous imported records.
        • Drill down metrics to list associated records, and you can point to charts to show more details for the chart.
        • Narrow down the scope of the integration runs included in the metrics on the dashboard by configuring filters on the right-hand side of the dashboard. Set any of the following filters and then click Apply. The filter settings apply to any metric with a filter icon in its upper left corner.
          Table 1. Filters
          Filter Description
          Import Date Select All or a time period, such as Last 7 days, from which to include integration runs in metrics.
          CMDB Applications Select All, or a CMDB application, such as SCCM, from which to include integration runs in metrics.
          CMDB Import Select All, or a specific integration run to include in metrics.

      Using the transforms and script includes in Integration Commons for CMDB

      The attributes that are included in the Integration Commons for CMDB store app are attributes that Identification and Reconciliation Engine (IRE) requires for identification or attributes that could be used to derive classes.

      The transforms are templated operations, meaning that there is a script that controls the logic for the transform. The result is that there can be only a single output. When a transform returns multiple values, then those values are concatenated by a triple pipe (|||). You then must use the split transform to retrieve the values that you are interested in. The inputs are either a single field or a list of fields. For all but one transform, the inputs are assumed to be a fixed list of fields as described for each of the following individual transform.

      ServiceNow Service Graph Connectors that are available at the ServiceNow Store, have dependencies on the transforms and script includes in the Integration Commons for CMDB store app. Therefore, when you install such CMDB integration, the Integration Commons for CMDB store app is automatically installed too.

      The following RTE transforms are included in the Integration Commons for CMDB store app, and are available in the IntegrationHub ETL (1.5.1) store app.

      Cleanse Company

      Use when there is a hardware manufacturer name that must be cleansed and added to core_company to populate a reference, but the manufacturer is not linked to a model or software (cpu_manufacturer).

      Details
      Table sn_cmdb_int_util_cleanse_company_operation
      Input fields source_sys_rte_eb_field

      Input is a company/manufacturer name.

      Output field target_sys_rte_eb_field

      Output is the resulting sys_id and name of the company in core_company, concatenated by triple pipe (|||).

      Script include function sn_cmdb_int_util.CmdbIntegrationHardwareModelUtil().cleanseCompany(input)

      If a matching record does not exist, then a new record is created in core_company so the return always includes a sys_id and name (unless the input is empty or invalid). The name is cleansed and a fuzzy lookup is done via the CmdbIntegrationCompanyModelUtil script include before the MakeAndModelJS platform API is called.

      Table 2. Example:
      Input Result
      SERVICENOW 93d4ecfac0a8000b6294d71b733977fb|||ServiceNow

      Cleanse Hardware Model

      Use to create, cleanse, or lookup a hardware model to create a reference (model_id).

      Details
      Table sn_cmdb_int_util_cleanse_hardware_model_operation
      Input fields source_sys_rte_eb_fields
      Input in order is:
      1. The manufacturer name
      2. The model name

      If either value is provided by itself, then the operation only processes what is found.

      Output field target_sys_rte_eb_field

      Output is the resulting sys_id and name of the company in core_company, and sys_id and name of the model in cmdb_model - all concatenated by triple pipe (|||).

      Script include function sn_cmdb_int_util.CmdbIntegrationHardwareModelUtil().cleanseModelAndCompany(manufacturer_in, model_in)

      For either the manufacturer or model, if a matching record does not exist then a new record is created so the return always includes sys_ids and names for both records (unless the input is empty or invalid).

      The manufacturer name is processed like the Cleanse Company transform and then both the manufacturer name and model name are sent to the MakeAndModelJS platform API.

      Table 3. Example:
      Manufacturer Name Model Name Result
      ServiceNow Incorporated SERVICENOW 93d4ecfac0a8000b6294d71b733977fb|||ServiceNow|||ba29cb303710200044e0bfc8bcbe5d6d |||ServiceNow

      Cleanse IP Address

      Use when a field provides an IP address.

      Details
      Table sn_cmdb_int_util_cleanse_ip_operation
      Input fields source_sys_rte_eb_field

      Input is the IP address to cleanse.

      Output field target_sys_rte_eb_field

      Output is the resulting IP address, which can be empty.

      Script include function sn_cmdb_int_util.CmdbIntegrationNetworkUtil().cleanseIpAddress(input)

      The IP address is tested for both IPv4 and IPv6 structures along with some known derivations (an IPv4 with spaces instead of periods). If a result is found, then it is formatted and returned.

      Table 4. Examples:
      Ip Ip Results
      192.160.89.1 192.160.89.1
      192.160.89.1,54.21.12.311 192.160.89.1
      192 160 89 1 54 21 12 311 192.160.89.1
      192-160-89-1 192.160.89.1
      2001:0db8:0000:0000:0000:ff00:0042:8329 2001:0db8:0000:0000:0000:ff00:0042:8329
      junk
      175912537 10.124.54.89
      -1
      0

      Cleanse IP Version

      Use when the source of data does not provide an IP version or when the IP version might be unreliable.

      Details
      Table sn_cmdb_int_util_cleanse_ip_version_operation
      Input fields source_sys_rte_eb_field

      Input is the IP address to cleanse.

      Output field target_sys_rte_eb_field

      Output is the resulting cmdb_ci_ip_address.ip_version lookup key (either 4, 6, or empty).

      Script include function sn_cmdb_int_util.CmdbIntegrationNetworkUtil().deriveIpVersion(input)

      The input IP address value is checked for either proper IPv4 or IPv6 structure, otherwise the return is empty. This function provides no IP cleansing.

      Table 5. Example:
      Input Result
      192.160.89.1 4

      Cleanse MAC Address

      Use when a field provides a MAC address.

      Details
      Table sn_cmdb_int_util_cleanse_mac_operation
      Input fields source_sys_rte_eb_field

      Input is the MAC address to cleanse.

      Output field target_sys_rte_eb_field

      Output is the resulting MAC address which can be empty.

      Script include function sn_cmdb_int_util.CmdbIntegrationNetworkUtil().cleanseMacAddress(input)

      The MAC address is tested for proper structure along with some known derivations (for example, a MAC address with spaces instead of colons). If a result is found, then it is formatted and returned.

      Table 6. Example:
      Input Result
      00 0A 95 9D 68 16 00:0a:95:9d:68:16

      Cleanse Operating System

      Use when the source provides an operating system.

      Details
      Table sn_cmdb_int_util_cleanse_os_operation
      Input fields source_sys_rte_eb_field

      Input is the operating system name to cleanse.

      Output field target_sys_rte_eb_field

      Output is the resulting operating system name. The resulting operating system name is also written to the cmdb_ci_computer.os list field.

      Script include function sn_cmdb_int_util.CmdbIntegrationOsUtil().cleanseAndInsertOs(input)

      Most of the current cleansing is centered on Microsoft operating system values aside from common cleansing such as fixing casing.

      Table 7. Examples:
      Operating System Operating System Results
      Windows Server 2003 R2 64 bit Edition Service Pack 2 Windows Server 2003 R2
      Windows 2003 Windows 2003
      Windows Vista 64 bit Edition Windows Vista
      Windows 2000 Professional Service Pack 4 Windows 2000 Professional
      Windows XP Service Pack 2-3 Windows XP
      Microsoft Windows Server 2003 R2 64 bit Edition Service Pack 2 Windows Server 2003 R2
      Microsoft Windows 2003 Windows 2003
      Microsoft Windows Vista 64 bit Edition Windows Vista
      Microsoft Windows 2000 Professional Service Pack 4 Windows 2000 Professional
      Microsoft Windows XP Service Pack 2-3 Windows XP
      linux ubuntu Linux Ubuntu
      Linux Ubuntu Server Linux Ubuntu Server

      Cleanse Serial Number

      Use to cleanse and remove invalid serial numbers.

      Details
      Table sn_cmdb_int_util_cleanse_serial_number_operation
      Input fields source_sys_rte_eb_fields

      Input is the serial number to cleanse.

      Output fields source_sys_rte_eb_field

      Output is the resulting serial number.

      Table 8. Examples:
      Serial Number Serial Number Results
      ec2aa2da-5312-aa3e-804c-c35feabeda5f ec2aa2da-5312-aa3e-804c-c35feabeda5f
      1045–1209–6738–4668–7696–2783 1045–1209–6738–4668–7696–2783

      Cleanse Software Model

      Use to cleanse and create a software model. Also, to create manufacturer and software model if they do not exist and follow with a split operation.

      Details
      Table sn_cmdb_int_util_cleanse_software_model_operation
      Input fields source_sys_rte_eb_fields
      Input in order is:
      1. The manufacturer name
      2. The software name
      3. The software version (not required)

      If only manufacturer or name is provided, then only those values are processed and returned.

      Output field target_sys_rte_eb_field

      Output is the resulting sys_id and name of the company in core_company, the cleansed software name, and the cleansed software version all concatenated by a triple pipe (|||).

      Script include function sn_cmdb_int_util.CmdbIntegrationSoftwareModelUtil().cleanseSoftwareModel(company, model, version)

      If a matching manufacturer record does not exist, then a new record is created so the return always includes the sys_id and name for the manufacturer (if the manufacturer is not empty or invalid).

      The manufacturer name is processed the same as in the Cleanse Company transform and then the manufacturer name is sent to the MakeAndModelJS platform API.

      The software name and version are cleansed and formatted and returned. The version is removed from the software name if present.

      Table 9. Examples:
      Manufacturer Software Name Software Version Output
      Dell Inc.
      NoManufacturer
      1.0.0.0
      Dell Inc. DataEngine 1.0.17.2 b7e7d7d8c0a8016900a5d7f291acce5c|||Dell Inc.|||DataEngine|||1.0.17.2
      GenuineIntel TestSoftware 1.0.0.1 7aad6d00c611228400f00e0f80b67d2d|||Intel|||TestSoftware|||1.0.0.1
      Dell Inc. TestSoftware 232 b7e7d7d8c0a8016900a5d7f291acce5c|||Dell Inc.|||TestSoftware|||232
      Dell Inc. TestSoftware 123.0.0.0 b7e7d7d8c0a8016900a5d7f291acce5c|||Dell Inc.|||TestSoftware|||123.0
      America Online TestSoftware 1.0.0.0 0c43d035c61122750000251553f6f8e8|||America Online|||TestSoftware|||1.0
      America Online TestSoftware 1.0.0.0 0c43d035c61122750000251553f6f8e8|||America Online|||TestSoftware|||1.0
      dell LowerCase 1.0.0.0 b7e7d7d8c0a8016900a5d7f291acce5c|||Dell Inc.|||LowerCase|||1.0

      Dell Corporation.

      Incorporated, Corp.

      TestSoftware 1.0.0.0 b7e7d7d8c0a8016900a5d7f291acce5c|||Dell Inc.|||TestSoftware|||1.0
      Microsoft

      Microsoft SQL

      Server 2016 Enterprise

      2.0.0 0e8b8e650a0a0b3b004f285ffbb1a4fc|||Microsoft|||Microsoft SQL Server 2016 Enterprise|||2.0
      Dell Computer DataEngine 1.0.17.2 b7e7d7d8c0a8016900a5d7f291acce5c|||Dell Inc.|||DataEngine|||1.0.17.2
      Adobe TestSoftware 1 b7e8b5c4c0a80169008b49e468920048|||Adobe Systems|||TestSoftware|||1.0

      Create Software Instance Name

      Use when a hardware name, software name, and software version is provided, to create a new software instance name.

      Table 10.
      Details
      Table sn_cmdb_int_util_create_software_instance_name_operation
      Input fields source_sys_rte_eb_fields
      Input in order is:
      1. The hardware name
      2. The software name
      3. The software version (not required)
      Output field target_sys_rte_ev_field

      Output is the software instance name.

      Script include function sn_cmdb_int_util.CmdbIntegrationSoftwareModelUtil().createSoftwareInstanceName(hw_name_in, sw_name_in, sw_version_in)
      Table 11. Examples:
      Hardware Name Software Name Software Version Results
      computer1 microsoft 2.0.1 microsoft 2.0.1-computer1
      computer2 adobe adobe-computer2
      computer3 adobe 2.1
      hw2 sw3 301 sw3 301-hw2

      Derive CI Class from Model

      Use when processing a computer record and a model is provided but the class of the computer is ambiguous otherwise. Can be used along with other Derive CI Class transforms.

      Details
      Table sn_cmdb_int_util_derive_class_from_model_operation
      Input fields source_sys_rte_eb_fields
      Input in order is:
      1. The model name
      2. The current class name
      Output field target_sys_rte_eb_field

      Output is the resulting class name.

      Script include function sn_cmdb_int_util.CmdbIntegrationClassUtil().deriveClassNameFromModelInput(model_in, class_in)

      Does not return a value of a class which is higher in the class hierarchy (a parent class) than the provided input class. For example, does not return cmdb_ci_computer if the input is cmdb_ci_server. Looks only at the cmdb_ci_computer hierarchy, going through cmdb_ci_server (cmdb_ci_computer, cmdb_ci_server, children of cmdb_ci_server).

      Currently looks for Server, Windows Server, and Linux Server indicators in the model.

      Table 12. Examples:
      Model Class Class Results
      window server cmdb_ci_computer cmdb_ci_win_server
      Microsoft server cmdb_ci_computer cmdb_ci_win_server
      linux server cmdb_ci_computer cmdb_ci_linux_server
      Microsoft server cmdb_ci_server cmdb_ci_win_server
      linux server cmdb_ci_server cmdb_ci_linux_server
      Red hat server cmdb_ci_server cmdb_ci_linux_server
      Arch server cmdb_ci_server cmdb_ci_linux_server
      Centos server cmdb_ci_server cmdb_ci_linux_server
      Debian server cmdb_ci_server cmdb_ci_linux_server
      Fedora server cmdb_ci_server cmdb_ci_linux_server
      Suse server cmdb_ci_server cmdb_ci_linux_server
      Oracle server cmdb_ci_server cmdb_ci_linux_server
      Rhel server cmdb_ci_server cmdb_ci_linux_server
      Ubuntu server cmdb_ci_server cmdb_ci_linux_server
      Junk
      cmdb_ci_server cmdb_ci_server
      Junk server cmdb_ci_computer cmdb_ci_server
      Junk cmdb_ci_computer cmdb_ci_computer

      Derive CI Class from Native Class Identifier

      Use when processing a computer record and a native class indicator is provided but the class of the computer is ambiguous otherwise. Can be used along with other Derive CI Class transforms.

      Details
      Table sn_cmdb_int_util_derive_class_from_native_value_operation
      Input fields source_sys_rte_eb_fields
      Input in order is:
      1. The native class identifier
      2. The current class name
      Output field target_sys_rte_eb_field

      Output is the resulting class name.

      Script include function sn_cmdb_int_util.CmdbIntegrationClassUtil().deriveClassNameFromNativeValue(native_id_in, class_in)

      Does not return a value of a class which is higher in the class hierarchy (a parent class) than the provided input class. For example, does not return cmdb_ci_computer if the input is cmdb_ci_server. Looks only at the cmdb_ci_computer hierarchy, going through cmdb_ci_server (cmdb_ci_computer, cmdb_ci_server, children of cmdb_ci_server).

      Currently looks for Server, Windows Server, and Linux Server indicators in the native identifier.

      Table 13. Examples:
      Model Class Class Results
      window server cmdb_ci_computer cmdb_ci_win_server
      Microsoft server cmdb_ci_computer cmdb_ci_win_server
      linux server cmdb_ci_computer cmdb_ci_linux_server
      Microsoft server cmdb_ci_server cmdb_ci_win_server
      linux server cmdb_ci_server cmdb_ci_linux_server
      Red hat server cmdb_ci_server cmdb_ci_linux_server
      Arch server cmdb_ci_server cmdb_ci_linux_server
      Centos server cmdb_ci_server cmdb_ci_linux_server
      Debian server cmdb_ci_server cmdb_ci_linux_server
      Fedora server cmdb_ci_server cmdb_ci_linux_server
      Suse server cmdb_ci_server cmdb_ci_linux_server
      Oracle server cmdb_ci_server cmdb_ci_linux_server
      Rhel server cmdb_ci_server cmdb_ci_linux_server
      Ubuntu server cmdb_ci_server cmdb_ci_linux_server
      Junk
      cmdb_ci_server cmdb_ci_server
      Junk server cmdb_ci_computer cmdb_ci_server
      Junk cmdb_ci_computer cmdb_ci_computer

      Derive CI Class from Operating System

      Use when processing a computer record and an operating system is provided but the class of the computer is ambiguous otherwise. Can be used along with other Derive CI Class transforms.

      Details
      Table sn_cmdb_int_util_derive_class_from_os_operation
      Input fields source_sys_rte_eb_fields
      Input in order is:
      1. The operating system name
      2. The current class name
      Output field target_sys_rte_eb_field

      Output is the resulting class name.

      Script include function sn_cmdb_int_util.CmdbIntegrationClassUtil().deriveClassNameFromOsName(os_in, class_in)

      Does not return a value of a class which is higher in the class hierarchy (a parent class) than the provided input class. For example, does not return cmdb_ci_computer if the input is cmdb_ci_server. Looks only at the cmdb_ci_computer hierarchy, going through cmdb_ci_server (cmdb_ci_computer, cmdb_ci_server, children of cmdb_ci_server).

      Currently looks for Server, Windows Server, and Linux Server indicators in the operating system name.

      Table 14. Examples:
      Model Class Class Results
      window server cmdb_ci_computer cmdb_ci_win_server
      Microsoft server cmdb_ci_computer cmdb_ci_win_server
      linux server cmdb_ci_computer cmdb_ci_linux_server
      Microsoft server cmdb_ci_server cmdb_ci_win_server
      linux server cmdb_ci_server cmdb_ci_linux_server
      Red hat server cmdb_ci_server cmdb_ci_linux_server
      Arch server cmdb_ci_server cmdb_ci_linux_server
      Centos server cmdb_ci_server cmdb_ci_linux_server
      Debian server cmdb_ci_server cmdb_ci_linux_server
      Fedora server cmdb_ci_server cmdb_ci_linux_server
      Suse server cmdb_ci_server cmdb_ci_linux_server
      Oracle server cmdb_ci_server cmdb_ci_linux_server
      Rhel server cmdb_ci_server cmdb_ci_linux_server
      Ubuntu server cmdb_ci_server cmdb_ci_linux_server
      Junk
      cmdb_ci_server cmdb_ci_server
      Junk server cmdb_ci_computer cmdb_ci_server
      Junk cmdb_ci_computer cmdb_ci_computer

      Derive Virtual From Hardware Model

      Use when processing a computer record that may be virtual, a hardware model is provided, and the virtual status is ambiguous. Can be used along with other Derive Virtual From transforms.

      Details
      Table sn_cmdb_int_util_derive_virtual_from_model_operation
      Input fields source_sys_rte_eb_fields
      Input in order is:
      1. The hardware model name
      2. The current virtual flag value
      Output field target_sys_rte_eb_field

      Output is the resulting virtual flag (true/false). If the current virtual flag is ‘true’, the result is true. Otherwise the result is ‘true’ or ‘false’.

      Script include function sn_cmdb_int_util.CmdbIntegrationVirtualDetectionUtil().detectVirtualFromModelName(model_in, is_virtual_in)

      Looks for indicators in the model name for a virtual device (VMware).

      Table 15. Examples:
      Model Name Virtual Flag Virtual Flag Results
      thinkpad true true
      thinkpad false false
      thinkpad false
      vmware inc true true
      true true
      false false
      false

      Derive Virtual From Native Indicator

      Use when processing a computer record that may be virtual, a virtual indicator is provided by the source, and the virtual status is ambiguous. Can be used along with other Derive Virtual From transforms.

      Details
      Table sn_cmdb_int_util_derive_virtual_from_native_value_operation
      Input fields source_sys_rte_eb_fields
      Input in order is:
      1. The native indicator
      2. The current virtual flag value
      Output field target_sys_rte_eb_field

      Output is the resulting virtual flag (true/false). If the current virtual flag is ‘true’, the result is true. Otherwise the result is ‘true’ or ‘false’.

      Script include function sn_cmdb_int_util.CmdbIntegrationVirtualDetectionUtil().detectVirtualFromNativeIdentifier(native_in, is_virtual_in)

      Tests native indicator against a list of common values and looks for a ‘true’ boolean indicator.

      Table 16. Examples:
      Native Virtual Value Virtual Flag Virtual Flag Results
      virtual false true
      virtual true
      virtual true true
      y false true
      y true
      y true true
      yes false true
      yes true
      yes true true
      true false true
      true true
      true true true
      t false true
      t true
      t true true
      other false false
      other false
      other true true
      not virtual false false
      not virtual false
      not virtual true true
      false false
      false
      true true

      Derive Virtual From Serial Number

      Use when processing a computer record that may be virtual, a serial number is provided by the source, and the virtual status is ambiguous. Can be used along with other Derive Virtual From transforms.

      Details
      Table sn_cmdb_int_util_derive_virtual_from_serial_number_operation
      Input fields source_sys_rte_eb_fields
      Input in order is:
      1. The serial number
      2. The current virtual flag value
      Output field target_sys_rte_eb_field

      Output is the resulting virtual flag (true/false). If the current virtual flag is ‘true’, the result is true. Otherwise the result is ‘true’ or ‘false’.

      Script include function sn_cmdb_int_util.CmdbIntegrationVirtualDetectionUtil().detectVirtualFromSerialNumber (serial_in, is_virtual_in)

      Looks for indicators in the serial number for a virtual device (VMware).

      Table 17. Examples:
      Serial Number Virtual Flag Virtual Flag Results
      123 true true
      123 false false
      123 false
      vmware-123 true true
      true true
      false false
      false

      Extract and Scale by Units

      Use when the source has numerical values that need to be scaled and numeric value with an input unit such as 2048Mb. The source does not always provide the units so it may be required to calculate or guess the units being provided. The target units depend on the target field in the CMDB. If not specified, the decimal place field is set at 2 by default.

      Details
      Table sn_cmdb_int_util_extract_and_scale_by_units_operation
      Input fields source_sys_rte_eb_fields
      Output field target_sys_rte_eb_field
      Script include function sn_cmdb_int_util. CmdbIntegrationExtractScaleUnitUtil().extractAndScaleUnits(input, defaultUnit, outputUnit, decimalPlaces)
      Table 18. Examples:
      Input Value Default Unit Output Unit Result
      2048Mb Mb GB 2GB
      17179869184 B GB 16GB

      First Non Null Value

      Use when you have a list of fields providing similar information that must map to a single field and you want to rank the order in which they can provide those values.

      For example: Internally in SolarWinds, there is a hierarchy of tables that are join. In one example, a computer’s name could come from the child most table or any of that tables parents but each of those is a separate field in the pull. Starting with the most specific table, the values are searched for the first instance of a name value.

      Details
      Table sn_cmdb_int_util_first_non_null_operation
      Input fields source_sys_rte_eb_fields

      Input is a list of fields of any length.

      Output field target_sys_rte_eb_field

      Output is the value from the first field in the list that doesn’t have a null (or empty) value.

      Script include function sn_cmdb_int_util.CmdbIntegrationFirstNonNullValueUtil().firstNonNullValue(batch[i])
      Table 19. Example:
      Field 1 Field 2 Field 3 Result
      foo foo2 foo

      Process Name, Domain, FQDN, DNS set

      Use when the source provides name, domain, FQDN, or DNS information. Can be used for only a subset of these (if for example, the source only provides name and domain). In the case that a source only provides fields that are lower in the input list (FQDN) the CmdbIntegrationHardwareNameUtil script include can be called from a script operation to minimize having to create empty dummy fields.

      Details
      Table sn_cmdb_int_util_process_name_set_operation
      Input fields source_sys_rte_eb_fields
      Takes up to four Input fieldss (any additional fields are ignored), in the following order:
      1. Name
      2. Domain
      3. FQDN
      4. DNS

      You don't have to provide all four input values, but you must provide those values in the specified order. If for example, you only want to cleanse domain, you must provide a name attribute, even it if empty.

      Output field target_sys_rte_eb_field

      Output is a concatenated set of values in the same order, using a triple pipe (|||): {name}|||{domain}|||{fqdn}|||{dns}

      Script include function sn_cmdb_int_util.CmdbIntegrationHardwareNameUtil().processNameDomainFqdnDnsSet(name, domain, fqdn, dns)
      FQDN and DNS are first processed to see if their formats are correct. FQDN has an additional discovery regex it must pass (via properties):
      • glide.discovery.fqdn.regex – default : ^([^.]+)\\.((?:[^.]+\\.)+[^.]+)$
      Possible name and domain values are extracted if possible. When name and domain are processed, if there is no FQDN, a value is generated if possible. A resulting name value is also modified using the following discovery flags:
      1. glide.discovery.hostname.case – default: No change. Can be set to ‘Lower case’, ‘Upper case’, ‘No change’
      2. glide.discovery.hostname.include_domain – default: false. If ‘true’ the domain is added to the final name value
      Table 20. Examples:
      Name Domain FQDN DNS Output (name|||domain|||FQDN|||DNS)
      myName other.net otherName.other.net mycomp.servicenow.com myName|||other.net|||otherName.other.net|||mycomp.servicenow.com
      na other.net otherName.other.net mycomp.servicenow.com otherName|||other.net|||otherName.other.net|||mycomp.servicenow.com
      servicenow.com |||servicenow.com||||||
      name.servicenow.com name|||servicenow.com|||name.servicenow.com|||name.servicenow.com
      name.servicenow.com name|||servicenow.com|||name.servicenow.com|||
      name.servicenow.com name|||servicenow.com|||name.servicenow.com|||
      name servicenow.com name|||servicenow.com|||name.servicenow.com|||

      Process FQDN

      Use when the source provides a suspected FQDN value but no other naming fields such as name, domain, or DNS.

      Details
      Table sn_cmdb_int_util_process_fqdn_operation
      Input fields source_sys_rte_eb_field

      Input is a single field containing an FQDN.

      Output field target_sys_rte_eb_field

      Output is a concatenated set of values in the same order using a triple pipe (|||): {name}|||{domain}|||{fqdn}|||{dns}

      Script include function sn_cmdb_int_util.CmdbIntegrationHardwareNameUtil().processNameDomainFqdnDnsSet('’, '’, fqdn, '’)

      The processing follows the same logic as the ‘Process Name, Domain, FQDN, DNS set’ transform except that only FQDN is used as an input.

      Table 21. Example:
      Input Result
      mycomputer.servicenow.com mycomputer|||servicenow.com|||mycomputer.servicenow.com|||

      Scale Units

      Use when the source has numerical inputs that must be scaled. The source does not always provide the current units so it may be required to calculate or guess the units being provided. The target units depend on the field being targeted in the CMDB.

      Details
      Table sn_cmdb_int_util_scale_unit_operation
      Input fields source_sys_rte_eb_fields
      Inputs in order are:
      1. The input value
      2. The current units
      3. The target units
      Output field target_sys_rte_eb_field

      Output is the input value scaled from the current units to the target units. If no units are found for the current units, then the input value is returned. If no current or target units are found the input is returned as the output.

      Script include function sn_cmdb_int_util.CmdbIntegrationScaleUnitUtil().scaleUnits(input_value, input_unit, output_unit)
      Table 22. Example:
      Input Result
      • Input Field 1: 1
      • Input Field 2: GB
      • Input Field 3: MB
      1024
      • Quick start tests for Integration Commons for CMDB

        Validate that integrations for CMDB pass validation still works after you make any configuration change such as applying an upgrade or developing an application. Copy and customize these quick start tests to pass when using your instance-specific data.

      Related concepts
      • IntegrationHub ETL (1.5.1)
      • Service Graph connector for ExtraHop (2.0.3)
      • Service Graph connector for Microsoft Intune (1.1.1)
      • Service Graph connector for Jamf (2.4.0)
      • Service Graph connector for Microsoft SCCM (2.1.1)
      • Service Graph connector for SolarWinds (2.2.1)
      • Service Graph connector for VMware Workspace ONE UEM (1.0.4)

      Tags:

      Feedback

          Share this page

          Got it! Feel free to add a comment
          To share your product suggestions, visit the Idea Portal.
          Please let us know how to improve this content

          Check any that apply

          To share your product suggestions, visit the Idea Portal.
          Confirm

          We were unable to find "Coaching" in Jakarta. Would you like to search instead?

          No Yes
          • Contact Us
          • Careers
          • Terms of Use
          • Privacy Statement
          • Sitemap
          • © ServiceNow. All rights reserved.

          Subscribe Subscribed Unsubscribe Last updated: Tags: January February March April May June July August September October November December No Results Found Versions Search preferences successfully updated My release version successfully updated My release version successfully deleted An error has occurred. Please try again later. You have been unsubscribed from all topics. You are now subscribed to and will receive notifications if any changes are made to this page. You have been unsubscribed from this content Thank you for your feedback. Form temporarily unavailable. Please try again or contact  docfeedback@servicenow.com  to submit your comments. The topic you requested does not exist in the release. You were redirected to a related topic instead. The available release versions for this topic are listed There is no specific version for this documentation. Explore products Click to go to the page. Release notes and upgrades Click to open the dropdown menu. Delete Remove No selected version Reset This field is required You are already subscribed to this topic Attach screenshot The file you uploaded exceeds the allowed file size of 20MB. Please try again with a smaller file. Please complete the reCAPTCHA step to attach a screenshot
          Log in to personalize your search results and subscribe to topics
          No, thanks Login