The Provance Blog

The Provance Blog will provide you with expert advice, insights and opinions in regard to IT Service Management, Microsoft, Microsoft Dynamics 365 and Microsoft System Center.  

Three Data Practices to Keep Your CMDB Clean and Lean


Your IT service management and IT asset management functions are only as good as the information supporting them. Comprehensive, accurate and up to date data properly maintained in a Configuration Management Database (CMDB) is essential to support these important IT management functions.

One of the most powerful features of Microsoft System Center is the ability to easily create and maintain a central repository of data from the different System Center components. Microsoft System Center – Service Manager provides a consolidated CMDB with out-of-the-box connectors to Active Directory®, Configuration Manager, Operations Manager, Virtual Machine Manager and Orchestrator. The CMDB is highly extensible, supporting the creation of new configuration item classes, properties and relationships, or modification of the existing ones.

Unfortunately, the out-of-the-box ability to import data into the CMDB from sources other than the System Center components is limited to flat (CSV) files. To supplement this capability, independent third parties have introduced data import extensions for Service Manager. Of these, only the Provance Data Management Pack provides capabilities to support three important data import practices:

  • Determine whether to create or update configuration items in the CMDB based on certain conditions;
  • Adjust source data at import to match the desired format for the CMDB; and,
  • Import data to multiple classes in a single import pass.

Create or update
The out-of-the-box Microsoft System Center – Service Manager CSV connector provides few options to determine whether a new configuration item is created in the CMDB, or if properties of an existing configuration item are updated based on certain conditions. Configuration items are only updated if the source data includes a value that matches either the unique configuration item ID or a key field property. If the source data does not include one of these values, it will create a new configuration item. This makes it difficult to prevent new configuration items from being created instead of simply updating existing records, and the unnecessary creation of redundant records containing the same data.

If the source data does include the ID or a key field value, the corresponding configuration item will be overwritten, even if there is no new or different information in the source data. This will result in unnecessary use of processing within the Service Manager server, excessive data logging and the creation of history records when no data changes are being made. Furthermore, in cases where you have null or empty values in source fields, you will actually overwrite and remove property values in your CMDB configuration items that existed prior to the import.

Automating data import without conditions that determine whether a record will be created or updated means you risk importing the same data over...and over...and over...


Automated import greatly increases and amplifies both these issues — that is, the unmanaged creation of new records and unmanaged updating through overwriting. Let’s say you use the scheduling feature of an import tool to import a .CSV from a file share on specified days and times, or at regular intervals, such as every two hours. For files that do not have the ID or key field values, if you do not have the ability to specify update criteria you will repeatedly import the same data over and over every time the import runs, even if you don’t make any changes to the file. Conversely, if the source file does contain a value that matches the ID or a key field property of a configuration item, the record will be overwritten even if there are no changes to the data. This will cause unnecessary processing, logging, and creation of excess history records.

Transform and normalize
Source data is seldom in “CMDB ready” format. Often, there are more or fewer fields in your source records than there are properties in your target configuration items, the source data is not in the standard format you want to use in your CMDB, or there are variances in the source data that you want to cleanse or normalize.

For example, if you are migrating from a legacy help desk application to Microsoft System Center – Service Manager, there may be historical data that you want to transform and normalize at import. Perhaps there are five different incident impact classifications in the legacy system, but you want to use just the three enum values you have defined in the list properties for your Impact List in the Service Manager Library. While the Service Manager CSV connector and other data import tools are limited to making a straight copy of source data or enum values, the Provance Data Management Pack provides the ability to perform manipulation to source data values, and apply “if-then-else” import logic to list values. This lets you easily create a template that transforms the incident impact classifications from five source categories to the three Service Manager list values at import in a single pass. Without this capability, it would be necessary to either manipulate the source data prior to input, or edit the properties in the configuration items in Service Manager after import.


The Provance Data Management Pack let's you use
"if-then-else" import logic to set list values based on source values

Multiple classes and relationships
The CSV connector and other import tools are limited to copying data into a single configuration item class or combination class in the CMDB. While combination classes provide access to target properties from multiple classes, they are restricted to the few relationships predefined in the projection types. Even simple import scenarios can require a large number of target properties from many classes with many relationships in the CMDB. For example, here’s what the source data, target classes and relationships might look like to import purchase order data that supports IT asset management:


Again, only the Provance Data Management Pack overcomes the limitation of a single target class or combination class by allowing you to choose multiple classes and specifying any of the available relationships that relate any two classes together. In the example above, you’ll even note that the Company class is used twice in the same import with two different relationships to two different classes (HardwareCatalogItem Has Manufacturer, HardwareAsset Has Supplier).

When it comes to supplementing the Microsoft System Center – Service Manager CSV connector, only the Provance Data Management Pack supports create and update without ID or key fields, source data transformation and normalization, and single pass import to multiple target configuration item classes not related by combination classes. These three data practices are essential to maintain a clean, lean CMDB that properly supports effective IT management.



Comments are closed.