要在Apex中获取用户的层级关系并判断一个用户是否属于某个用户的下属,可以通过查询User
对象和其相关的Role
对象来实现。Salesforce中的User
对象包含了与角色和层级相关的信息,可以利用这些信息来确定用户之间的上下级关系。
以下是一个示例代码,用于获取某个用户是否是另一个用户的下属:
public class UserHierarchyUtil {
// Method to check if a user is a subordinate of another user
public static Boolean isSubordinate(Id userId, Id managerId) {
// Get the role of the manager
User manager = [SELECT Id, UserRoleId FROM User WHERE Id = :managerId];
if (manager.UserRoleId == null) {
// If the manager does not have a role, return false
return false;
}
// Get the role hierarchy
UserRole managerRole = [SELECT Id, Name, ParentRoleId FROM UserRole WHERE Id = :manager.UserRoleId];
// Get the user roles in the hierarchy
List<UserRole> roles = [SELECT Id, Name, ParentRoleId FROM UserRole];
Map<Id, UserRole> roleMap = new