UPDATE! The community will be go into read-only on April 19, 8am Pacific in preparation for migration on April 21. Read more.
UPDATE! The community will be go into read-only on April 19, 8am Pacific in preparation for migration on April 21.Read more.
Absent Member.
Absent Member.
620 views

SM - uCMDB Integration: Replace xslt files to populate uCMDB

Hello,

 

It's the first time I do an integration of UCMDB with SM. I have some custom CI Types and to pass the information to UCMDB I am using the "Universal CMDB Integration Guide", if I follow the steps outlined in the guide a Warning message appears and no longer let me proceed. I want to use OOB files for only replace the data i want, business_service_population for example:

 

<xsl:when test="file.device/Subtype='Infrastructure Service'">
<ci class="infrastructure_service">
<xsl:for-each select="file.device">
<!--import:cmdb_root_attributes_population.xslt-->
</xsl:for-each>

 

For this:
<xsl:when test="file.device/Subtype='MyCISubtype'">
<ci class="MyCISubtype">
<xsl:for-each select="file.device">
<!--import:cmdb_root_attributes_population.xslt-->
</xsl:for-each>

 

I can do this? Or i need change another file? Since when do I get completed with warning symbol and I get the bizservice CI in the Failed column. How can i populate the custom CI?

 

I'm usign SM 9.33, uCMDB 10.10

0 Likes
3 Replies
Absent Member.
Absent Member.

Hi,

I guess you are trying to populate CIs of new type, not only new subtypes.

The file you modified can only add in new subtypes of an existing Sm type.

 

To support a new CI type in population, you will need (please refer to the existing OOB configuration files to make your own):

1. add a new pop mapping file for your new CIT, e.g. new_cit.xslt

 

 

2. modify smPopConfFile.xml

 

<tql name="SM New CI Population" xslFile="new_cit.xslt">
            <request type="Retrieve" dataType="ci"
                retrieveFileList="?"
                retrieveKeysQueryName="?"
                retrieveListQueryName="?"
                basicQueryCondition="type=&quot;newcit&quot;"
                fullQueryCondition="istatus~=&quot;Retired/Consumed&quot;"
                changedCreationQueryCondition="created.by.date&gt;'{fromDate}' and istatus~=&quot;Retired/Consumed&quot;"
                changedUpdateQueryCondition="created.by.date&lt;='{fromDate}' and devicemodtime&gt;'{fromDate}' and istatus~=&quot;Retired/Consumed&quot;"
                changedDeletionQueryCondition="devicemodtime&gt;'{fromDate}' and istatus=&quot;Retired/Consumed&quot;"/>
        </tql>

 

3. Create a pop job to test it. SM New CI Population will be displayed as the TQL name, while you don't need to create the TQL.

0 Likes
Absent Member.
Absent Member.

Please note that, value for <ci class="MyCISubtype"> , should be UCMDB ci type value.

0 Likes
Absent Member.
Absent Member.

Okay,

first I create a xslt file namened Switch.xslt and contains a copy of business_service_population.xslt but I change the values.

 

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/RetrieveucmdbBusinessServiceListResponse">
<topology>
<xsl:for-each select="instance">
<xsl:choose>
<xsl:when test="file.device/Subtype='HCS'">
<ci class="HCS">
<xsl:for-each select="file.device">
<!--import:cmdb_root_attributes_population.xslt-->
</xsl:for-each>
</ci>
</xsl:when>
<xsl:when test="file.device/Subtype='NGN'">
<ci class="NGN">
<xsl:for-each select="file.device">
<!--import:cmdb_root_attributes_population.xslt-->
</xsl:for-each>
</ci>
</xsl:when>
<xsl:otherwise>
<ci class="Switch">
<xsl:for-each select="file.device">
<!--import:cmdb_root_attributes_population.xslt-->
<attribute name="provider" type="String"><xsl:value-of select="ServiceProvider"/></attribute>
</xsl:for-each>
</ci>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</topology>
</xsl:template>
</xsl:stylesheet>

 

 

Then i modify smPopConfFile.xml file and add the values of the xslt file that I create.

 

<tql name="Switch Test" xslFile="Switch.xslt">
<request type="Retrieve" dataType="ci"
retrieveFileList="file.device"
retrieveKeysQueryName="RetrieveucmdbBusinessServiceKeysListRequest"
retrieveListQueryName="RetrieveucmdbBusinessServiceListRequest"
basicQueryCondition="type=&quot;newcit&quot;"
fullQueryCondition="istatus~=&quot;Retired/Consumed&quot;"
changedCreationQueryCondition="created.by.date&gt;'{fromDate}' and istatus~=&quot;Retired/Consumed&quot;"
changedUpdateQueryCondition="created.by.date&lt;='{fromDate}' and devicemodtime&gt;'{fromDate}' and istatus~=&quot;Retired/Consumed&quot;"
changedDeletionQueryCondition="devicemodtime&gt;'{fromDate}' and istatus=&quot;Retired/Consumed&quot;"/>
</tql>

 

Finally I create a new integration point, add the job and run it, that was successful but not populate information.

 

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.