SELECT COUNT(Id) FROM User WHERE Id IN (SELECT UserorGroupId FROM GroupMember WHERE Group.Type = 'Queue' AND Group.Name = 'Support Queue') AND isActive = true
Note: Change the Queue Name as per your requirement.
Public with sharing class Sample{
Public List<string> CusrrentUserRole{get;set;}
Public List<String> RolesInHierarchy{get;set;}
Public Sample(){
CusrrentUserRole = New List<string>();
CusrrentUserRole.add([SELECT UserRoleId FROM User Where Id =:UserInfo.getUserId() LIMIT 1].UserRoleId);
}
Public Void getRollInHierarchy(){
RolesInHierarchy = New List<Id>();
RolesInHierarchy = getAllRoleInHierarchy(CusrrentUserRole);
}
Public List<string> getAllRoleInHierarchy (List<Id> UserRole) {
List<string> currentRoleIds = new List<string>();
for(UserRole userRoleName :[SELECT Id,name FROM UserRole Where ParentRoleId = :UserRole AND ParentRoleID != null]){
currentRoleIds.add(userRoleName.id);
}
if(currentRoleIds.size() > 0) {
currentRoleIds.addAll(getAllRoleInHierarchy(currentRoleIds));
}
List<String> RoleList = New List<String>();
for(UserRole r:[SELECT Name From UserRole Where Id In:currentRoleIds]){
RoleList.add(r.name);
}
return RoleList;
}
}
Visualforce Page:
<apex:page controller="Sample">
<apex:form>
<apex:pageBlock>
<apex:commandButton value="Show Roles below my Hierarchy" action="{!getRollInHierarchy}"/>
</apex:pageBlock>
<apex:pageBlock >
<b> Role below in Hierarchy are : </b>{!RolesInHierarchy}
</apex:pageBlock>
</apex:form>
</apex:page>
Output:
This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish.AcceptReject