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

如何通过SOQL/Salesforce API获取占用自定义字段限额的字段?

获取Salesforce对象字段限额占用情况的API与方法

你的原FIELDDEFINITION查询没得到预期结果,是因为这个对象本身不存储字段限额的使用关联数据——要定位哪些字段占用了各类限额,得结合字段属性筛选+对象限额数据核对,以下是可行方案:

1. 用Tooling API查询具体占用限额的字段

针对不同类型的字段限额,通过FieldDefinition的属性筛选对应字段,同时可以结合EntityDefinition查看对象的总限额和已使用数:

先查对象的限额与已使用量

SELECT Id, DeveloperName, 
    CustomFieldLimit, CustomFieldUsage,
    ExternalIdLimit, ExternalIdUsage,
    LookupRelationshipLimit, LookupRelationshipUsage,
    MasterDetailRelationshipLimit, MasterDetailRelationshipUsage
FROM EntityDefinition
WHERE DeveloperName = 'Account'

这个查询能直接看到Account对象各类字段的限额上限和已使用数量,帮你快速掌握整体占用情况。

筛选具体占用限额的字段

  • 自定义字段(占用CustomField限额):
SELECT QualifiedApiName, Label, DataType, IsCustom
FROM FieldDefinition
WHERE EntityDefinition.DeveloperName = 'Account' AND IsCustom = true
  • 外部ID字段(占用ExternalId限额):
SELECT QualifiedApiName, Label, IsExternalId
FROM FieldDefinition
WHERE EntityDefinition.DeveloperName = 'Account' AND IsExternalId = true
  • Lookup关系字段(占用LookupRelationship限额):
SELECT QualifiedApiName, Label, IsLookup
FROM FieldDefinition
WHERE EntityDefinition.DeveloperName = 'Account' AND IsLookup = true
  • MasterDetail关系字段(占用MasterDetailRelationship限额):
SELECT QualifiedApiName, Label, IsMasterDetail
FROM FieldDefinition
WHERE EntityDefinition.DeveloperName = 'Account' AND IsMasterDetail = true

2. 用REST API的Describe SObject端点获取

调用标准REST API的对象描述接口,返回的字段列表包含所有字段属性,可自行筛选占用限额的字段:

GET /services/data/v59.0/sobjects/Account/describe

返回的JSON中,每个字段对象会带externalId、lookup、masterDetail、custom等布尔属性,用来判断是否占用对应限额。

3. 用Salesforce CLI快速导出(适合本地查看)

如果需要批量导出占用限额的字段元数据,可使用CLI命令:

sfdx force:source:retrieve -m CustomField:Account

导出的元数据文件会包含所有Account的自定义字段,你可以从中查看字段类型、是否为外部ID等属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 19:12:02