有没有办法将列表分配给字段?
Is there a way to assign a List to a field?
我知道这个问题看起来很奇怪,但听我说完...
假设我有一组名为“经理”的用户。
列表 userList = [Manager1, Manager2,Manager3,...,ManagerN]
我想使用循环法将这些管理器中的一个分配给记录,循环法使用模数来确定计数。
integer count = 0;
integer userModulus = Math.round(Math.mod(Count, userList.size()));
count++;
然后使用这个值来return 像userList[userModulus] 这样的列表的索引对吗?
最初我计划使用自定义元数据类型来容纳列表,目的是通过屏幕流管理这些自定义元数据列表...但在实现时我认为这不现实。
有没有办法将这个用户列表存储在一个字段中,或者其他类型的结构中,以便管理员或其他非管理员用户维护它?
有一些免代码的方法,请参阅 https://help.salesforce.com/s/articleView?id=sf.essentials_round_robin_lead_assignment.htm&type=5
或者您可以从中获得灵感的现成代码片段:https://gist.github.com/eskfung/f342b47ecc0849deb0cb
实现这一点的方法有很多种。您可以在用户上有一个字段(选择列表?复选框?被分配一个特殊角色?)然后
List<User> users = [SELECT Id, Name
FROM User
WHERE IsActive = true AND UserRole.Name = 'Sales Manager'
ORDER BY Name];
有点粗糙,但应该能完成工作。
您还可以将他们添加到 public 组或队列中吗?无论如何,队列应该非常接近于正常的所有者分配功能。然后您将查询所有 group/queue 成员。队列是一种组,所以它会坐在同一个 table: Group, GroupMember
SELECT Id, Name, Type
FROM Group
WHERE Type IN ('Regular', 'Queue')
SELECT Id, Name
FROM User
WHERE Id IN (SELECT UserOrGroupId FROM GroupMember WHERE Group.Name = 'MyGroup' AND Group.Type = 'Regular')
有点简单,它假设人们直接分配到组中。实际上 groups/queues 通常由其他组、角色、角色+下属组成,而不仅仅是手动分配的个人...您需要不断查询 GroupMember 记录,直到耗尽树。
不过,应该足以让您入门了吗?
我知道这个问题看起来很奇怪,但听我说完...
假设我有一组名为“经理”的用户。
列表 userList = [Manager1, Manager2,Manager3,...,ManagerN]
我想使用循环法将这些管理器中的一个分配给记录,循环法使用模数来确定计数。
integer count = 0;
integer userModulus = Math.round(Math.mod(Count, userList.size()));
count++;
然后使用这个值来return 像userList[userModulus] 这样的列表的索引对吗?
最初我计划使用自定义元数据类型来容纳列表,目的是通过屏幕流管理这些自定义元数据列表...但在实现时我认为这不现实。
有没有办法将这个用户列表存储在一个字段中,或者其他类型的结构中,以便管理员或其他非管理员用户维护它?
有一些免代码的方法,请参阅 https://help.salesforce.com/s/articleView?id=sf.essentials_round_robin_lead_assignment.htm&type=5
或者您可以从中获得灵感的现成代码片段:https://gist.github.com/eskfung/f342b47ecc0849deb0cb
实现这一点的方法有很多种。您可以在用户上有一个字段(选择列表?复选框?被分配一个特殊角色?)然后
List<User> users = [SELECT Id, Name
FROM User
WHERE IsActive = true AND UserRole.Name = 'Sales Manager'
ORDER BY Name];
有点粗糙,但应该能完成工作。
您还可以将他们添加到 public 组或队列中吗?无论如何,队列应该非常接近于正常的所有者分配功能。然后您将查询所有 group/queue 成员。队列是一种组,所以它会坐在同一个 table: Group, GroupMember
SELECT Id, Name, Type
FROM Group
WHERE Type IN ('Regular', 'Queue')
SELECT Id, Name
FROM User
WHERE Id IN (SELECT UserOrGroupId FROM GroupMember WHERE Group.Name = 'MyGroup' AND Group.Type = 'Regular')
有点简单,它假设人们直接分配到组中。实际上 groups/queues 通常由其他组、角色、角色+下属组成,而不仅仅是手动分配的个人...您需要不断查询 GroupMember 记录,直到耗尽树。
不过,应该足以让您入门了吗?