Service Catalog - List Collector Variables not populating data when the list table is set to cmdb_ci
|Important: Due to the introduction of the Table-Per-Partition in the CMDB from Jakarta, this article applies only to the Geneva, Helsinki, and Istanbul releases.|
In the Service Catalog, users can configure List Collectors to retrieve a large amount of data from a table. One of the examples is the Configuration Item [cmdb_ci] table, where users wish to retrieve a set of data from a CI Class.
However, due to the re-parenting of the cmdb_ci table, where a new table called "Base Configuration" [cmdb] was introduced in Geneva as a parent to cmdb_ci, it has been noticed that the table schema change can cause list collector variables to no longer populate data when the variable is referencing the list table as "cmdb_ci"
List Collector displays no results on the "Selected" list options.
The main cause of the issue is due to a reference qualifier set on the list collector variable to query data on the "sys_class_name" field. The following example shows a sample reference qualifier. managed_domain=true^sys_class_name=cmdb_ci_computer^EQ
This reference qualifier is designed to query cmdb_ci records, where the sys_class_name field is "cmdb_ci_computer" and managed_domain field is set to "true".
From the Geneva through the Istanbul releases, the reference qualifier will no longer work because sys_class_name field is no longer a field on the cmdb_ci table. The sys_class_name field was moved from cmdb_ci to cmdb due to the reparenting of the cmdb_ci table.
|Warning: Note that the following change will alter the behavior of the Service Catalog Item you are modifying the Variable against. This can cause a behavior change within the Catalog Item and might affect end users. Therefore, you are strongly advised to test the recommendation on a sub-production instance that is cloned from production to ensure that the resolution is tested successfully before it is implemented on a live environment.|
To resolve the problem, remove the sys_class_name filter from the reference qualifier and consider selecting another alternative field to filter records for a specific Configuration Item.
You can also consider selecting a specific child CMDB table, for example, cmdb_ci_computer, to populate a list of computer CIs instead of using the cmdb_ci table.