Best Known Method - Custom LDDA information permanent

Version 5

    Introduction

    The purpose of this document is to cover the best known methods for ensuring that the custom LANDesk Data Analytics Data(LDDA)  inventory data is retained after a full sync inventory scan is ran on a device.

     

     

    Scope

    This document is designed to provide an experienced LDDA Administrator with the information they need to ensure that they can retain the custom inventory Data that have created

     

    This document will cover:

    • Step that need to be taken to ensure this data is maintained throughout the inventory life cycle

     

     

    Assumptions

    This document assumes that:

    • The reader is familiar with LANDesk® Management Suite in combination with LDDA and their concepts and use.
    • The reader is able to access and make changes to their Database.

     

     

    XML creation

    A new xml should be created. If one of the standard .xml files it will get overwritten by an update and the changes will be lost.

     

    The new .xml file needs to contains the following items:

     

    <?xml version="1.0" encoding="utf-8"?>
    <schema version="8.70.0.0" type="tables">
    </schema>
    
    

     

    These items are a must. Inside the schema element add the additional tables as needed.

     

    Adding columns to an existing table:

     

    Find the table in the existing .xml file (datamart.xml or managedplanet.xml, etc) and copy just the table element.

     

    For example using the AssetInfo table, located in the managedplanet.xml pull the following data and past it into your XML from above:

     

    <?xml version="1.0" encoding="utf-8"?>
    <schema version="8.70.0.0" type="tables">
                    <table name="AssetInfo" desc="" metaAdd="Yes" equiJoin="No" displayName="Asset Info" parentRelation="Computer" parent="Computer" 
                            tableType="1" image="Rom.bmp" rollupIdentity="Yes" >
                    </table>
    </schema>
    

     

    Coredbutil now understands which Table you are updating/creating.

     

    Creating a new table:

    One needs to include the computer_idn column and the primary key and the foreign key relationship as well. It is often easiest to copy an existing one and modify it in the proper places.

     

    <?xml version="1.0" encoding="utf-8"?>
    <schema  version="8.70.0.0" type="tables">
                    <table name="AssetInfo" desc="" metaAdd="Yes" equiJoin="No" displayName="Asset Info" parentRelation="Computer" parent="Computer"
                             tableType="1" image="Rom.bmp" rollupIdentity="Yes" >
                                    <column name="Computer_Idn" type="Int" null="No" />
                                    <primaryKey name="XPKAssetInfo">
                                                    <primaryKeyColumn column="Computer_Idn" />
                                    </primaryKey>
                                    <foreignKey name="R_AssetInfo" foreignTable="Computer">
                                                    <foreignKeyColumn column="Computer_Idn" foreignColumn="Computer_Idn" />
                                    </foreignKey>
    </table>
    </schema>
    
    

     

    Note the Assetinfo Table used above does not have a foreign key in managedplanet.xml one would change the names around and since each one needs to be unique, add the tablename with XPK for primary key and R_ for foreign keys.  It is just a convention, and then names would need to be unique. 

     

    Available attribute values for Table Element.

     

     

    • Name – The actual name of the table.  Needs to be unique.  For a customer table, it is recommended to include a short few characters at the beginning to indicate the company, like we used to add MP_ for Managed Planet.
    • Desc – Not really needed, just a description inside the meta tables.
    • equijoin – Always set to No.
    • displayName – This is the value that shows up in inventory.  AssetInfo is the table name, but Asset Info is what shows up in the inventory view.
    • parentRelation – Always set this to Computer.
    • Parent – This is the Component that is its parent.  Since Asset Info is right under Computer, its parent is Computer.  But for Computer.Memory.Physical, the parent would be Computer.Memory.
    • tableType – Set to 1.
    • Image – The image to display in the inventory browser.  The image has to exist in the managementsuite\resources\inventory\bmps directory.
    • rollupIdentity – Always set to Yes.  We want this data to rollup so say yes.

     


    Now start adding columns as needed.Just keep adding them under the Computer_Idn column like this:

     

    <column name="ShippingPostal" type="Varchar(255)" displayName="Shipping Postal Code" 
              attributeTableType="99" />
    

     

    The attribute names mean the following:

    Name – The db column name.

    Type – What type of data, either Int for a number, Image for a blob, Datetime for a date or Varchar(xxx) for a string.  Recommendation is to use Varchar(255), since there is a not a lot of point in using smaller numbers, but you can go as high as 4000.

    displayName – What name you want to show up in the inventory.

    attributeTableType – Set to 99 for the tables that you don’t want the inventory service to change, otherwise leave it off.

     

    There are several other attributes that maybe used in certain situations that are not listed here.

     

    Add as many columns as needed.  Each attribute’s name and displayname must be unique for this table.

     

    Using the XML

    To then actually use this .xml run coredbutil with the /xml= parameter like this:

     

    1. Coredbutil /xml=new.xml
    2. Click on build components.

     

    This should then cause it the table to get created.

     

    If you did it wrong one the following will occur(so please check both)

    1. An error may occur causing coredbutil may crash
    2. Coredutil does not crash but an error message occurs in the coredbutil.exe.log file.