3.1.1.1.2.2.4 GetObjectIdsForLogicalGroupNode

The GetObjectIdsForLogicalGroupNode procedure retrieves the set of object record identifiers that meet the condition represented by the LogicalGroupNode.

The input parameters for this procedure are as follows:

Param_logicalGroupNode: The LogicalGroupNode for which the matching record identifiers of the specified object type is being requested.

Param_objectType: The EnumerationObjectType specifying the object type for which the logical group node membership is being requested.

Param_addressFamily: Specifies the address family of the object type for which the logical group node membership is being requested.

The following is the output parameter of this procedure.

Result_objectIds: A collection of object record identifiers that meet the criteria of a specified logical group.

The processing steps are as follows:

  1. Initialize Result_objectIds with the list of UsedById that meet the following conditions:

    • ObjectType == Param_objectType.

    • Af == Param_addressFamily.

    • CustomFieldId == Param_logicalGroupNode.CustomFieldRecordId.

    • CustomFieldValueId == Param_logicalGroupNode.NodeCustomFieldValueId.

  2. If Param_logicalGroupNode.AncestorNodes contains a list of LogicalGroupNode data, for each ancestorNode in Param_logicalGroupNode.AncestorNodes, perform the following steps:

    1. Enumerate the rows in ADM_CustomFieldValues whose RecordId is present in Result_objectIds as well as it meets the following conditions:

  • ObjectType == Param_objectType.

  • Af == Param_addressFamily.

  • CustomFieldId == ancestorNode.CustomFieldRecordId.

  • CustomFieldValueId == ancestorNode.NodeCustomFieldValueId.

    1. Assign the list of RecordIds to Result_objectIds to be used for processing with the next level of ancestors.

  1. Result_objectIds, which is left at the end of processing, is the final output parameter of this procedure.