是否可以创建填充了 Salesforce 对象的 sql 表?



Salesforce是否提供了一种获取所有对象(如客户,联系人等(的方法,并将它们填充到SQL表中,并具有某些列,例如 对象实体, 字段名称 , 字段类型 ?

我很确定实现这一目标的唯一方法是使用Schema.sObjectTypeSchema.sObjectField.下面是获取所有 sObject 的文档链接。您基本上将调用Schema.getGlobalDescribe()方法,该方法将返回一个 sObjectType 映射,其 sObject 名称作为键。然后,您需要在每个 sObjectType 上调用getDesribe()从该描述结果中获取对象的字段。您再次需要在每个 sObjectField 上调用getDescribe()才能访问所需的列(例如。字段类型(。这是关于 您可以将每个 DescribeFieldResult 保存到一个列表中,该列表以 sObject 名称作为键进入>映射,然后您可以对它们执行您想要的操作......如果您愿意,请将它们放在桌子上。请记住,当涉及到CPU时间时,这一切都将非常昂贵。您甚至可能会遇到一些州长限制。 下面是一个可以在开发人员控制台中使用匿名执行运行的小示例,其中 sObject 名称及其所有字段名称和类型都打印到调试日志中

Map<String, sObjectType> objects = Schema.getGlobalDescribe();
for(String objName : objects.keySet()){
system.debug('=======' + objName + '=========n Fields: ');
sObjectType o = objects.get(objName);
DescribeSobjectResult oDRes = o.getDescribe();
Map<String, Schema.SObjectField> fields = dResult.fields.getMap();
for(Schema.SObjectField f : fields.values()){
DescribeFieldResult fDRes = f.getDescribe();
system.debug('name: ' + fDRes.getName() + ' | type: ' + fDRes.getType());
}
}

希望这有帮助