Task 6: Upgrade Field Mapping

The out-of-box mapping files in the Service Manager 9.41 adapters are already updated to align with the logical name solution. You need to make similar updates to your own field mapping.

  • In Service Manager 9.41 or later, the original CI Name field (id in the device table) is removed from the Configuration Item detail form in Service Manager.
  • No updates are need for CI Relationship push mapping files or federation mapping files.

Perform the following steps to upgrade your own field mapping.

Step 1. Upgrade your data push field mapping

To update your CI push mapping files, follow these steps:

  1. Switch the mapping field from CIIdentifier to DisplayName.

    For example, update <CIIdentifier><xsl:value-of select="."/></CIIdentifier> to:

    <DisplayName><xsl:value-of select="."/></DisplayName>

  2. (Optional) Simplify the business logic for DisplayName.

    If you have customized the original CIIdentifier value to append more fields so that it is unique and not renamed by Service Manager, you can remove such business logic. This is because the DisplayName field in Service Manager now supports duplicate values.

    The following is an example mapping for the out-of-box Cluster CI Push.

     <CIIdentifier>
     <xsl:choose>
     <xsl:when test="ip_addresss/ip_address/@authoritative_dns_name">
     <xsl:for-each select="ip_addresss">
     <xsl:for-each select="ip_address">
     <xsl:sort select="@authoritative_dns_name"/><xsl:value-of select="@authoritative_dns_
    					name"/>_</xsl:for-each>
     </xsl:for-each>
     </xsl:when>
     <xsl:otherwise>
     <xsl:for-each select="ip_addresss">
     <xsl:for-each select="ip_address">
     <xsl:sort select="@name"/><xsl:value-of select="@name"/>_</xsl:for-each>
     </xsl:for-each>
     </xsl:otherwise>
     </xsl:choose>
     </xsl:variable>
     <xsl:value-of select="$combinIP"/><xsl:value-of select="@display_label"/>
     </xsl:when>
     <xsl:otherwise><xsl:value-of select="@display_label"/></xsl:otherwise>
     </xsl:choose>
    </CIIdentifier>

    You can simplify the example above as shown in the following: 

    <DisplayName>
    <xsl:choose>
    <xsl:when test="clusters/cluster/@display_label">
    <xsl:value-of select="clusters/cluster/@display_label"/>
    </xsl:when>
    <xsl:otherwise><xsl:value-of select="@display_label"/></xsl:otherwise>
    </xsl:choose>
    </DisplayName>

Step 2. Upgrade your population field mapping

For population, in the field mapping files you need to make the following changes:

  1. Map the "name" attribute to “DisplayName” :

    <attribute name="name" type="String"><xsl:value-of select="DisplayName"/></attribute>

  2. Map the “sm_id” attribute to “CIIdentifier”:

    <attribute name="sm_id" type="String"><xsl:value-of select="CIIdentifier"/></attribute>

  3. Add the following line to map the "global.id" attribute to "UCMDBId":

    <attribute name="global_id" type="String"><xsl:value-of select="UCMDBId"/></attribute>

Step 3. Configure the UCMDB JMX console, as described in the following steps.

Note This feature enables the UCMDB global ID solution for Service Manager. It is available only in UCMDB 10.21 or later. For this reason, a known issue (QCCR1E122493) exists in UCMDB versions earlier than 10.21: If two CIs with the same display name are pushed to Service Manager and then updated in Service Manager with a new display name, when you run a population job to synchronize the CIs back to UCMDB, the two CIs are merged in UCMDB and therefore have the same ucmdb.id value in Service Manager.

  1. Go to the JMX Console: http://<UCMDB server name>:<port>/jmx-console/.
  2. Enter UCMDB:service=Settings Services in the search box, and then press Enter.
  3. Click setSettingValue to go to this section.
  4. In the customerID field, enter your customer ID.
  5. In the name field, enter reconciliation.match.attributes.
  6. In the value field, enter global_id.
  7. Click Invoke.

    If the configuration is successfully completed, the following message is displayed:

    Setting [reconciliation.match.attributes] value changed successfully to [global_id]