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:
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.
If Param_logicalGroupNode.AncestorNodes contains a list of LogicalGroupNode data, for each ancestorNode in Param_logicalGroupNode.AncestorNodes, perform the following steps:
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.
Assign the list of RecordIds to Result_objectIds to be used for processing with the next level of ancestors.
Result_objectIds, which is left at the end of processing, is the final output parameter of this procedure.