You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取组织中运行Apex代码的用户列表及对应许可证类型?

获取运行Apex代码的用户及对应许可证类型

以下是几种可行的实现方案:

方案一:通过Apex日志关联用户与许可证信息

  1. 开启用户的Apex日志追踪:在Setup中找到Debug Logs,为需要追踪的用户启用日志,或者设置日志级别覆盖规则捕获所有用户的Apex执行日志。
  2. 使用SOQL查询关联日志、用户及许可证数据:
SELECT Id, LogUserId, (SELECT Id, Name, Profile.UserLicense.Name FROM User WHERE Id = LogUserId)
FROM ApexLog
WHERE Operation LIKE '%Apex%'
GROUP BY Id, LogUserId

这个查询会返回所有执行过Apex操作的用户ID,以及对应用户的许可证名称(比如“Salesforce Administrator”、“Partner Community User”等)。

方案二:利用Setup Audit Trail结合用户数据

  1. 从Setup的Setup Audit Trail中导出包含Apex相关操作的记录(比如“Apex Class created/modified”、“Apex Trigger executed”等),这些记录会包含操作的用户ID。
  2. 用SOQL查询这些用户的许可证信息:
SELECT Id, Name, Profile.UserLicense.Name
FROM User
WHERE Id IN ('用户ID1', '用户ID2')

通过Profile关联的UserLicense对象,可以直接获取用户的许可证类型。

方案三:自定义Apex执行跟踪机制

如果需要长期、精准追踪所有Apex执行的用户,可以创建一个自定义对象(比如ApexExecutionTracker__c),包含字段User__c(关联用户)、ExecutionTime__c(执行时间)等。
然后在全局Apex类中添加一个通用的跟踪方法,或者通过Apex触发器(针对Apex相关对象的操作),在Apex执行时自动记录用户信息到自定义对象中。后续直接查询这个自定义对象即可获取所有执行过Apex的用户,再关联许可证信息:

SELECT User__r.Name, User__r.Profile.UserLicense.Name
FROM ApexExecutionTracker__c
GROUP BY User__r.Id, User__r.Name, User__r.Profile.UserLicense.Name

内容的提问来源于stack exchange,提问作者aidonsnous

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 11:01:16