One of the strengths of the inventory database is that it's automatically extendable. If the Ivanti agent on a device discovers new information, the Ivanti inventory service can add it to the database without requiring you to reconfigure anything. This process is handled by a catch-all table where unknown or “unmodeled” attributes are placed.
Unmodeled attributes can become an issue if you're using SQL or a third-party tool to access the inventory database directly. To read the data properly for an unmodeled attribute, the database requires a 5-table join, which most people can't create unless they're familiar with SQL.
With the Model attributes dialog, you can “model” this data, so that it's no longer stored in an UNMODELEDDATA1 table but rather in its own column in a table that you can easily query using an application such as Crystal Reports.
The Model attributes dialog also enables you to change the data type of an attribute. When an attribute is created via a scan file, by default it's added as a string to the inventory database. However, you may want the attribute stored as integer for sorting and comparison purposes.
On the Tools > Reporting/Monitoring > Manage software list toolbar, click the Model Attributes button to open the dialog.
Attributes in the database in unmodeled data list box: This list shows all components in the database that currently have unmodeled attributes. The attribute data type is also shown. Select the attribute you want modeled.
Model for me button: Click this button to map the unmodeled attribute to the proper table in the inventory database. The attribute will use the data type it was assigned.
After clicking the Model for me button, the following New table information will auto-populate:
- Component: The component in the database (for example, Computer or Computer.Memory) associated with the unmodeled attribute.
- Table name: The name of the table that the unmodeled-attribute data will be moved to. If the component is not part of an existing table, a name such as UNMODELEDDATA1 will appear. Change this name to something meaningful to create a new table. If the component is part of an existing table, do not change the name.
- One-to-many class: If the component is a one-to-many, this option is automatically selected. In this case, you'll need to add special columns to the table using your own DATAMART.XML file, not this tool. (DATAMART.XML is the file that contains all of the database table information for Endpoint Manager. It's used in conjunction with COREDBUTIL.EXE to create tables in the database.)
- Add to existing table: If a table already exists for this component, select this option to add a new column to it for the unmodeled-attribute data.
The resulting list shows all modeled and unmodeled attributes for the component in this particular table. Unmodeled attributes are in bold. Attributes that already exist as columns in the table are not in bold and cannot be edited. Click the Model now button to add the unmodeled attribute(s) "as is" to the specified table. You can also click the Edit button to modify an attribute's values, or click the Add button to add other attributes to the table as well.
The attributes list shows these columns:
- Attribute: The name of the attribute as it will appear in the Endpoint Manager console.
- Column: The name of the column that will be created in the table.
- Data Type: The DBMS data type of the new column.
- Size: The length of the new column, in characters.
- Mask: A read-only column in this list, which shows a display mask that modifies how the data appears.
- Key: A read-only column in this list. For one-to-many attributes, one field must be set as the key.
Move existing data: In the case of an UNMODELEDDATA1 table, this option moves the data to the new table you specified. The data will then be deleted from the UNMODELEDDATA1 table.
Model now button: Updates the table with the changes you specified.
Clear all button: Clears all of the information for one component so that you can choose another one with attributes to model.