基于官方wiki page,用户标准记录可能包含一组特定的用户,组,角色,部门....
我的问题是,我是否必须根据用户标准对用户进行手动检查,例如:
或者雪中是否有开箱即用的东西为我执行这些检查?我想应该有一些方法,但我在官方维基或文档中找不到任何相关的东西
答案 0 :(得分:1)
因此,有一个内置函数可以获取当前登录用户可用的所有用户条件记录的ID:
SNC.UserCriteriaLoader.getAllUserCriteria()
上述函数返回ArrayList<String>
类型的对象,因此您可以通过以下方式检查此对象中是否存在目标用户条件:
SNC.UserCriteriaLoader.getAllUserCriteria().contains(user_criteria_sys_id)
这解决了我的问题,我怎么还不知道是否有一些接受用户id作为参数的通用方法
答案 1 :(得分:0)
我相信您要找的是全部匹配复选框,请查看http://wiki.servicenow.com/index.php?title=User_Criteria#Matching_All
上的文档如果您取消选中此框,则会检查用户是否符合条件的任何部分。
如果您检查此框,则需要匹配所有条件。
示例1 - 全部匹配 未选中
在此示例中全部匹配 未选中,如果用户符合以下任何条件,则他们就是此用户标准的一部分。
User in role: Asset
or
User in company: ACME EMEA
or
User in department: Development
示例2 - 全部匹配 已选中
在此示例中,全部匹配 已选中,并且用户必须满足以下所有符合此用户条件的条件。
User in role: Asset
and
User in company: ACME EMEA
and
User in department: Development
答案 2 :(得分:0)
除了SNC.UserCriteriaLoader.getAllUserCriteria()
之外,还有另一种更通用的方法:
SNC.UserCriteriaLoader.getUserCriteria(userId)
似乎返回指定用户的匹配用户标准列表(ArrayList<String>
)。例如。
SNC.UserCriteriaLoader.getUserCriteria(gs.getUserID())
和
SNC.UserCriteriaLoader.getAllUserCriteria()
返回相同的结果。