Common: Identifying Related Inventory

IT Asset Management (Cloud)
This topic applies to all forms of gathered inventory:
  • All forms of FlexNet inventory gathering, including all the cases covered in this reference
  • Inventory imported from third-party tools, such as Microsoft Endpoint Configuration Manager (previously Microsoft SCCM), IBM ILMT, and others.
Before gathered data sets can be merged into distinct inventory records, the group (or set) of imported records that relate to a single device must be identified. This topic gives considerable detail about the process of matching records into sets that relate to a single device.

The process of grouping incoming inventory records into matched sets, such that each set relates to a single unique device, is as follows:

  1. All incoming inventory records held in the staging tables are copied into memory for faster processing.
  2. An ordered list of assessments (called "Matchers") is applied to the incoming inventory records. Each Matcher is applied in turn:
    1. A Matcher preselects only those records that fit a list of conditions. Whenever a list of multiple conditions is present, every condition in the list must be matched.

      (Strictly speaking, conditions are an optional part of a Matcher, but they are ubiquitous. If ever there were no conditions, the subsequent tests in the Matcher would be applied to every inventory record currently left in the memory array.)

      Each Condition specifies an inventory Property, a testing Method, and one or more values used as the test cases. Those records that meet all the conditions in the list are used for further processing in this Matcher, while other records not meeting the current list of conditions are left aside for later reconsideration in other Matchers. In short, the list of conditions filters down the set of incoming inventory records to be assessed in the current Matcher.

      For example:
      <Condition Property="ComputerType" Method="InRange" Value="Computer, VMHost"/>
      This condition admits only computers and VM hosts for possible matching, and excludes VMs, remote devices, mobile devices, and VDI templates.
    2. The Matcher then tests the preselected processing candidates using a list of one or more rules. Every rule in the Matcher's list must be satisfied.
      Each rule specifies that a named inventory Property must match across inventory records, using a defined matching Method (the methods include equal, not equal, like, set, and not set, with the default being equal). Pairs (or sets) of devices that pass all the rules are considered matched, and those that fail any rule in the list are set aside for later reconsideration in other Matchers.
      For example:
      <Rule Property="Manufacturer"/>
      <Rule Property="ModelNo"/>
      <Rule Property="FirmwareSerialNumber"/>
      This list of rules means that when each of these properties in turn has a common value across candidate records (because "equal" is the default when no Method is specified), inventory records from the preselected processing candidates are considered "matched", so that they refer to a single device.
    3. Any group of records that have been matched by this Matcher are now known to refer to a single device. They are removed from the testing pool, and are not subjected to any further assessment by other Matchers. Each matched group (or set) is queued up for import into the compliance database.
  3. After all Matchers have been processed in turn, the unmatched records left in the testing pool are known to be individual records each applying to a unique device, and these are now similarly queued for import into the compliance database.
  4. The queue of matched sets (including the sets with just a single member) are now tested for matching against the existing records in the compliance database. The exact same tests used to bunch up the incoming inventory records are now applied to align the matched sets with existing records.
    • If any Matcher finds that an incoming set is matched to an existing record, that existing record is updated with values from the incoming set. The constraints about Primary source and latest inventory date are used to select which of the incoming set of records is used to update each property (see Common: Acting on Inventory Results).
    • If all Matchers fail to connect an incoming set with an existing record, a new inventory device record is created. Once again, properties are taken first from the Primary inventory source with gaps filled from secondary inventory sources; and competition is resolved by using the most recent inventory if there are multiples from the same priority source(s).
The tests used to match sets of inventory records to individual devices are listed in the following table. The Matchers run in order from top to bottom in this table. In each case, every Condition must be satisfied before an inventory record is included in an individual assessment; and then every Rule must be satisfied before two (or more) records are taken as matched, applying to a single device.
Table 1. Matchers
Candidates (Conditions) Assessment (Rules)

1. Matcher for VMware ESX Servers via ComputerName and DomainID

  • InstanceCloudID is null in either or both of the records being compared
  • OperatingSystem contains vmware (see note 1)
  • ComputerName is set
  • ComplianceDomainID is set
Records have identical values for each of:
  • ComputerName
  • ComplianceDomainID

2. Matcher for physical computer with manufacturer, model, firmware serial number and host ID

  • InstanceCloudID is null in either or both of the records being compared
  • VMType is not set
  • Manufacturer is set
  • ModelNo is set
  • HostID is set
  • FirmwareSerialNumber is set
Records have identical values for each of:
  • HostID
  • FirmwareSerialNumber
  • ModelNo
  • Manufacturer

3. Matcher for physical computer with manufacturer, model and firmware serial number when no host ID is available

  • InstanceCloudID is null in either or both of the records being compared
  • VMType is not set
  • Manufacturer is set
  • ModelNo is set
  • HostID is not set
  • FirmwareSerialNumber is set
Records have identical values for each of:
  • FirmwareSerialNumber
  • ModelNo
  • Manufacturer

4. Matcher for physical computer with manufacturer, host type, firmware serial number and host ID

  • InstanceCloudID is null in either or both of the records being compared
  • VMType is not set
  • Manufacturer is set
  • HostID is set
  • HostType is set
  • FirmwareSerialNumber is set
Records have identical values for each of:
  • HostID
  • FirmwareSerialNumber
  • HostType
  • Manufacturer

5. Matcher for physical computer with manufacturer, host type and firmware serial number when no host ID is available

  • InstanceCloudID is null in either or both of the records being compared
  • VMType is not set
  • Manufacturer is set
  • HostID is not set
  • HostType is set
  • FirmwareSerialNumber is set
Records have identical values for each of:
  • FirmwareSerialNumber
  • HostType
  • Manufacturer

6. Matcher for physical computer with machine ID

  • InstanceCloudID is null in either or both of the records being compared
  • VMType is not set
  • MachineID is set
Records have identical:
  • MachineID

7. Matcher for physical computer with manufacturer, host ID and computer name

  • InstanceCloudID is null in either or both of the records being compared
  • VMType is not set
  • Manufacturer is set
  • HostID is set
  • FirmwareSerialNumber is set
Records have identical values for each of:
  • ComputerName
  • HostID
  • Manufacturer

8. Matcher for vPar, LPAR and Zone with Partition ID

  • InstanceCloudID is null in either or both of the records being compared
  • VMType is one of vPar, LPAR, or Zone
  • PartitionID is set
Records have identical values for each of:
  • PartitionID
  • VMType

9. Matcher for LPAR with firmware serial number and partition number

  • InstanceCloudID is null in either or both of the records being compared
  • VMType is LPAR
  • FirmwareSerialNumber is set
  • PartitionNumber is set
Records have identical values for each of:
  • PartitionNumber
  • FirmwareSerialNumber

10. Matcher for LPAR with Machine ID and partition number

  • InstanceCloudID is null in either or both of the records being compared
  • VMType is LPAR
  • MachineID is set
  • PartitionNumber is set
Records have identical values for each of:
  • PartitionNumber
  • MachineID

11. Matcher for vPar, nPar and LPAR with machine ID and partition name

  • InstanceCloudID is null in either or both of the records being compared
  • VMType is one of vPar, nPar, or LPAR
  • VMName is set
  • MachineID is set
Records have identical values for each of:
  • VMName
  • VMType
  • MachineID

12. Matcher for vPar, nPar and LPAR with partition name and firmware serial number

  • InstanceCloudID is null in either or both of the records being compared
  • VMType is one of vPar, nPar, or LPAR
  • FirmwareSerialNumber is set
  • VMName is set
Records have identical values for each of:
  • VMName
  • VMType
  • FirmwareSerialNumber

13. Matcher for Zones with host ID and partition name

  • InstanceCloudID is null in either or both of the records being compared
  • VMType is Zone
  • HostID is set
  • VMName is set
Records have identical values for each of:
  • VMName
  • HostID

14. Matcher for computers using HostID, HostIdentifyingNumber, HostType and Manufacturer

  • InstanceCloudID is null in either or both of the records being compared
  • HostID is set
  • HostIdentifyingNumber is set
  • HostType is set
  • Manufacturer is set
Records have identical values for each of:
  • HostID
  • HostIdentifyingNumber
  • HostType
  • Manufacturer

15. Matcher for computers using HostIdentifyingNumber, HostType and Manufacturer when HostID not provided

  • InstanceCloudID is null in either or both of the records being compared
  • HostID is not set
  • HostIdentifyingNumber is set
  • HostType is set
  • Manufacturer is set
Records have identical values for each of:
  • HostIdentifyingNumber
  • HostType
  • Manufacturer

16. Matcher for computers using HostID, HostIdentifyingNumber and HostType when Manufacturer not provided

  • InstanceCloudID is null in either or both of the records being compared
  • HostID is set
  • HostIdentifyingNumber is set
  • HostType is set
  • Manufacturer is null in either or both of the records being compared
Records have identical values for each of:
  • HostID
  • HostIdentifyingNumber
  • HostType

17. Matcher for computers using HostIdentifyingNumber and HostType when HostID and Manufacturer not provided

  • InstanceCloudID is null in either or both of the records being compared
  • HostID is not set
  • HostIdentifyingNumber is set
  • HostType is set
  • Manufacturer is null in either or both of the records being compared
Records have identical values for each of:
  • HostIdentifyingNumber
  • HostType

18. Matcher for computers using HostID, HostIdentifyingNumber and Manufacturer when HostType not provided

  • InstanceCloudID is null in either or both of the records being compared
  • HostID is set
  • HostIdentifyingNumber is set
  • HostType is null in either or both of the records being compared
  • Manufacturer is set
Records have identical values for each of:
  • HostID
  • HostIdentifyingNumber
  • Manufacturer

19. Matcher for computers using HostIdentifyingNumber and Manufacturer when HostID and HostType not provided

  • InstanceCloudID is null in either or both of the records being compared
  • HostID is not set
  • HostIdentifyingNumber is set
  • HostType is null in either or both of the records being compared
  • Manufacturer is set
Records have identical values for each of:
  • HostIdentifyingNumber
  • Manufacturer

20. Matcher for computers using HostID and HostIdentifyingNumber when HostType and Manufacturer are not provided

  • InstanceCloudID is null in either or both of the records being compared
  • HostID is set
  • HostIdentifyingNumber is set
  • HostType is null in either or both of the records being compared
  • Manufacturer is null in either or both of the records being compared
Records have identical values for each of:
  • HostID
  • HostIdentifyingNumber

21. Matcher for computers using HostIdentifyingNumber when HostID, HostType and Manufacturer are not provided

  • InstanceCloudID is null in either or both of the records being compared
  • HostID is not set
  • HostIdentifyingNumber is set
  • HostType is null in either or both of the records being compared
  • Manufacturer is null in either or both of the records being compared
Records have identical values for each of:
  • HostIdentifyingNumber

22. Matcher for computers using the serial number and computer name

  • InstanceCloudID is null in either or both of the records being compared
  • UntrustedSerialNo is false
  • SerialNo is set
  • ComputerName is set
Records have identical values for each of:
  • SerialNo
  • ComputerName

23. Matcher for computers using the agent ID which IBM ILMT uses for tracking operating environments

  • InstanceCloudID is null in either or both of the records being compared
  • ILMTAgentID is set
Records have identical values for each of:
  • ILMTAgentID

24. Matcher for computers using InstanceCloudID from the ImportedCloudServiceInstance table

  • InstanceCloudID is set
Records have identical values for each of:
  • CloudServiceProviderID
  • InstanceCloudID

25. Matcher for incomplete computers using computer name and domain details

  • The ObjectType is Incomplete (see note 2)
  • ComputerName is set
  • ComplianceDomainID is set
Records have identical values for each of:
  • ComputerName
  • ComplianceDomainID

26. Matcher for incomplete computers using computer name where no domain is available

  • The ObjectType is Incomplete (see note 2)
  • ComputerName is set
  • ComplianceDomainID is null in either or both of the records being compared
Records have identical values for:
  • ComputerName

27. Matcher for unmatched computers without hardware details using computer name and domain details

  • The ObjectType is Unmatched (see note 2)
  • InstanceCloudID is null in either or both of the records being compared
  • ComputerName is set
  • ComplianceDomainID is set
  • SerialNo is not set
Records have identical values for each of:
  • ComputerName
  • ComplianceDomainID

28. Matcher for unmatched computers without hardware details using computer name and domain details along with UntrustedSerialNo

  • The ObjectType is Unmatched (see note 2)
  • InstanceCloudID is null in either or both of the records being compared
  • UntrustedSerialNo is true
  • ComputerName is set
  • ComplianceDomainID is set
Records have identical values for each of:
  • ComputerName
  • ComplianceDomainID

29. Matcher for unmatched computers using computer name where no domain is available

  • The ObjectType is Unmatched (see note 2)
  • InstanceCloudID is null in either or both of the records being compared
  • ComputerName is set
  • ComplianceDomainID is null in either or both of the records being compared
Records have identical values for:
  • ComputerName
Note:
  1. For Condition checks, the method "contains" tests whether the value of the property under test includes the test string in any position.
  2. Here, ObjectType is an intermediate value calculated during import and not saved to the compliance database. It may be Complete (default), Incomplete, or Unmatched.
  3. Computers with the same serial number on the same connection will only be grouped into a matched set if the number of these computers is less than or equal to MaxDuplicateImportedComputerSerialNo, which has a default value of 2. If the number of computers is greater than MaxDuplicateImportedComputerSerialNo, no grouping will occur and each computer will remain in its own set subjected to further assessment by the subsequent Matchers.

IT Asset Management (Cloud)

Current