Highlighted
Absent Member.. Absent Member..
Absent Member..
465 views

Handling \ Character in the HP SM >> UCMDB Pop Integration.

Currently am working on the HP uCMDB <> HP Service Manager Integration.

I've got all the Push jobs from SM to uCMDB working except for a job which populates relevant information from SM to uCMDB. But we are a facing a issue with the MSSQL Servers. The server is mentioned as: SDB00332\SQLKA01.

 

But with the Population job we are facing the error that the Pop couldn’t handle the \ in the name and it fails.

A additional field is added to change the \ into a . but then still it fails, because of the oob reconciliation rule.

Preferable is that the integration handes \ instead of changing reonciliation rules.

 

Version HP uCMDB 10.11 CUP3

CP 14.04

Integration: ServiceManager 9.3X.

HP Service Manager 9.30.

 

I also tried to escape the backslash, by using an additional '\' i.e. \\

Other population jobs suchs as computer are working perfectly.

Population jobs will be used to store CI specific information in uCMDB such as AssignmentGroups / Departments.

 

I've validated it also against a OOB environment uCMDB 10.20 / SM9.40 but there am facing the same issues.

Also the new integration Enhanced Integratio is having the same difficulties.

 

DatabasePopulationScript:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:variable name="productNameList" select="document('enum_definition.xml')/lists/list[@name='runningsoftware_product_name']"/>

    <xsl:template match="/RetrieveucmdbDatabasePopListResponse">

        <topology>

            <xsl:for-each select="instance">

  

                <ci class="database">

      

                    <xsl:variable name="hostStripped" select="normalize-space(substring-before(CIIdentifier,'('))"/>

                    <xsl:variable name="hostUpperCase" select="translate($hostStripped,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>               

                    

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

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

                    

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

                    <xsl:variable name="smProductName" select="ApplicationName"/>

                    <xsl:variable name="productNameEntry" select="$productNameList/entry[@sm=$smProductName]"/>

                    <xsl:choose>

                        <xsl:when test="$productNameEntry">

                            <attribute name="product_name" type="String"><xsl:value-of select="$productNameEntry/@ucmdb"/></attribute>

                        </xsl:when>

                        <xsl:otherwise>

                            <!-- donot set product name because no match in enum list defined in enum_definition.xml -->

                        </xsl:otherwise>

                    </xsl:choose>

    

                    

                    

                          <!-- IPSoft integration fields-->

                          <!--import:eq_ipsoft_attributes.xslt-->

         

                    <link direction="incomming" linkType="composition">

                              <ci class="node">

                                  <container tql="EQ SM Computer Population" keyFields="CIIdentifier">

                                      <linkTql>EQ SM Computer To Database With Composition</linkTql>

                                      <linkRetrieveCondition>downstreamci.logical.name=&quot;<xsl:value-of select="CIIdentifier"/>&quot;</linkRetrieveCondition>

                                      <linkValueFields>upstreamci.logical.name</linkValueFields>

                                  </container>

                              </ci>

                     </link>

                </ci>

              

            </xsl:for-each>

        </topology>

    </xsl:template>

</xsl:stylesheet>

 

 

Rencociliation (oob) RunningSoftware

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<identification-config type="running_software" description="Running Software is identified by a combination of their container Node and either Product Name, Discovered Product Name or a used IP Service Endpoint.  Two similarly identified running software will be considered different entities in case of mismatch of either Product Name, Discovered Product Name or Name.  Two running software CIs will also be different if one of them lack the Name and all used IP Service Endpoints are different.">

    <identification-criteria>

        <identification-criterion>

            <attribute-condition attributeName="root_container" includeNullValue="false" conditionType="approveAndContradict"/>

            <connected-ci-condition ciType="ip_service_endpoint" linkType="usage" conditionType="approveAndContradict">

                <overlap-fixed-operator number-of-matches="1"/>

            </connected-ci-condition>

        </identification-criterion>

        <identification-criterion>

            <attribute-condition attributeName="product_name" includeNullValue="false" conditionType="approveAndContradict"/>

            <attribute-condition attributeName="root_container" includeNullValue="false" conditionType="approveAndContradict"/>

        </identification-criterion>

        <identification-criterion>

            <attribute-condition attributeName="discovered_product_name" includeNullValue="false" conditionType="approveAndContradict"/>

            <attribute-condition attributeName="root_container" includeNullValue="false" conditionType="approveAndContradict"/>

        </identification-criterion>

    </identification-criteria>

    <match>

        <verification-criteria>

            <verification-criterion>

                <attribute-condition attributeName="product_name" includeNullValue="false" conditionType="approveAndContradict"/>

            </verification-criterion>

            <verification-criterion>

                <attribute-condition attributeName="discovered_product_name" includeNullValue="false" conditionType="approveAndContradict"/>

            </verification-criterion>

        </verification-criteria>

        <validation-criteria>

            <validation-criterion priority="1">

                <attribute-condition attributeName="name" includeNullValue="false" conditionType="approveAndContradict"/>

            </validation-criterion>

            <validation-criterion priority="2">

                <connected-ci-condition ciType="ip_service_endpoint" linkType="usage" conditionType="approveAndContradict">

                    <overlap-fixed-operator number-of-matches="1"/>

                </connected-ci-condition>

            </validation-criterion>

        </validation-criteria>

    </match>

</identification-config>

0 Likes
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.