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.
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:
- Navigate to .
- 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_fieldsInput in order is:
- The manufacturer name
- 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_fieldsInput in order is:
- The manufacturer name
- The software name
- 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_fieldsInput in order is:
- The hardware name
- The software name
- 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_fieldsInput in order is:
- The model name
- 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_fieldsInput in order is:
- The native class identifier
- 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_fieldsInput in order is:
- The operating system name
- 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_fieldsInput in order is:
- The hardware model name
- 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_fieldsInput in order is:
- The native indicator
- 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_fieldsInput in order is:
- The serial number
- 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_fieldsTakes up to four Input fieldss (any
additional fields are ignored), in the following order:
- Name
- Domain
- FQDN
- 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:
- glide.discovery.hostname.case – default: No change. Can be set to ‘Lower case’, ‘Upper
case’, ‘No change’
- 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:
- The input value
- The current units
- 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 |