Salesforce 的数据模型是基于 sObject 的。在 Apex 中,所有的标准对象、自定义对象都是继承自 sObject 的。

关于在 Apex 中得到 sObject 的信息,我们要基于两点来使用:

  1. 系统类 Schema 中定义了 DescribeSObjectResult 类来保存一个 sObject 的信息,也提供了若干方法来得到 sObject 的信息
  2. 每个 sObject 对象都是一个类,其中有固定的静态变量和方法来得到 sObject 自身的信息

详细的方法可以查阅官方文档。

基本用例

下面用一些基本的例子来说明在 Apex 中得到 sObject 信息的方法和语法。

得到当前 sObject 的类型

使用 getSObjectType() 方法可以得到当前 sObject 变量的类型。与此类似,使用 “XXX.sObjectType” 的语法可以得到名为 “XXX” 的 sObject 的类型。

// 定义一个 sObject 变量,在此以 Account 为例
sObject obj = new Account();// 得到当前的 sObject 的类型
Schema.sObjectType objType = obj.getSObjectType();// 确认其类型是否是 Account
System.assertEquals(objType, Account.sObjectType);

同样的语法可以用在 sObject 列表变量中。

// 定义一个 sObject 列表变量,在此以 Account 为例
List<sObject> objList = new List<Account>();// 得到当前的 sObject 列表的类型
Schema.sObjectType objListType = objList.getSObjectType();// 确认其类型是否是 Account
System.assertEquals(objListType, Account.sObjectType);

使用 describeSObjects() 函数可以得到多个 sObject 类型的信息。

// 定义字符串列表,其中包含若干 sObject 的 API 名称
List<String> objTypeList = new List<String>{'Account', 'ExampleCustomObj__c'};// 得到 Account 和 ExampleCustomObj__c 的信息
Schema.DescribeSobjectResult[] results = Schema.describeSObjects(objTypeList);

得到当前 sObject 类型的描述

使用 getDescribe() 方法可以得到当前 sObject 的类型详细信息。与此类似,使用 “Schema.sObjectType.XXX” 可以得到名为 “XXX” 的 sObject 的类型详细信息。

// 得到 Account 类型的描述信息
Schema.DescribeSObjectResult dsr = Account.sObjectType.getDescribe();// 确认其信息是 Account 类型的信息
System.assertEquals(dsr, Schema.sObjectType.Account);

得到字段的信息

Schema 类中定义了 Schema.DescribeFieldResult 类,可以用来存储字段的信息。得到字段信息的方法与上述示例类似。

// 得到 Account 类型的 Name 字段的信息
Schema.DescribeFieldResult dfr = Schema.sObjectType.Account.fields.Name;// 得到字段的信息
Schema.SObjectField fieldInfo = dfr.getSObjectField();// 确认字段的类型
System.assertEquals(fieldInfo, Account.Name);// 得到字段的描述信息
dfr = dfr.getSObjectField().getDescribe();// 得到关于 Account 类型所有字段的信息,保存到一个 Map 变量中
Map<String, Schema.SObjectField> fieldMap = Schema.SObjectType.Account.fields.getMap();

关于权限

由于用户不一定对 sObject 对象或字段有权限,所以上述代码在不同环境下执行会有不同的结果。

在普通的 Apex 类中执行的时候,用户的权限没有影响。

在匿名代码段中执行的时候,用户的权限会影响到返回的结果。只有用户有权限的类型或字段信息才会返回。

转载于:https://www.cnblogs.com/chengcheng0148/p/apex_get_sobject_information.html

在 Apex 中得到 sObject 的信息相关推荐

  1. Salesforce Apex 中常用技能总结(持续更新)

    前言 博主也是Salesforce Apex 工作不久,有用到的知识和平时查阅到的知识和大家分享一下. 总结 1.使用SOQL语句查询时,字符串类型的只能使用'单引号',否则报错:Unknown er ...

  2. apex 查询_在 Apex 中使用合并统计查询

    SOQL 中的合并统计查询 在 SOQL 中,我们可以使用一系列函数来进行合并统计查询.它们的功能和标准 SQL 中的 SUM(),COUNT() 等函数类似. Apex 中使用合并统计查询 在 Ap ...

  3. 学习Jonathan Shewchuk的Triangle:分治法中三角形的几何信息和拓扑信息的操作

    介绍 想必研究网格细分技术的同学们不会不知道Jonathan Richard Shewchuk,凭借作品Triangle获得了2003年数值计算软件威尔金森奖.先拿下他的图来镇下楼(图片出自:点击打开 ...

  4. 利用python获取指定url在ATS中缓存对象的信息

    业务需求 给定url,如何查询指定的ATS中是否有该url的缓存对象信息?如果缓存了的话,希望提供该缓存对象的大小,缓存时间,缓存文件名,缓存份数(document alternative)等等信息 ...

  5. R语言ggplot2可视化使用vjust和hjust参数对齐图像中的文本注释信息(左对齐、右对齐、居中)实战

    R语言ggplot2可视化使用vjust和hjust参数对齐图像中的文本注释信息(左对齐.右对齐.居中)实战 目录

  6. 涉密计算机格式化维修,涉密计算机中的涉密信息被删除或格式化后,不可复原,可以连接互联网 - 作业在线问答...

    相关题目与解析 涉密计算机中的涉密信息被删除和格式化后可连接互联网使用.() 涉密计算机的涉密信息被删除或格式化后,通过一定的技术手段仍可以复原,连接互联网易造成泄密.() 涉密计算机删除涉密信息后可 ...

  7. 根据excel中的容填写信息

    一句话 使用xlrd 中的row方法读取一行返回的为一个所有值的list list中的所有值的索引和excel中的索引是绝对关系 只要在list中找到你想要的值得索引即可 根据excel中的内容填写信 ...

  8. 统一处理jquery ajax请求过程中的异常错误信息的机制

    统一处理jquery ajax请求过程中的异常错误信息的机制 参考文章: (1)统一处理jquery ajax请求过程中的异常错误信息的机制 (2)https://www.cnblogs.com/wi ...

  9. 查询数据库中的表结构信息

    查询数据库中的表结构信息 SELECT COLUMN_NAME 列名, COLUMN_TYPE 数据类型, DATA_TYPE 字段类型, CHARACTER_MAXIMUM_LENGTH 长度, I ...

最新文章

  1. 在OperaMasks中使用ELite和JRuby动态语言的秘笈
  2. select返回记录的顺序
  3. python声音分类_Python音频信号分类MFCC特征神经网络
  4. 回味颜宁演讲:“勇敢做独一无二的你”
  5. windows 程序设计及API
  6. CentOS 6.3 下编译cyrus-sasl报错解决
  7. 多台电脑集群运算_答疑 | 三维建模的【电脑】配置问题
  8. [转] Understanding and Solving Internet Explorer Leak Patterns
  9. MySQL:常用备份方式(基于5.7)
  10. Moment.js 一款JS时间封装库
  11. android gradle NDK简介
  12. avalon2 非必填项的表单验证规则
  13. 经典网络DenseNet介绍
  14. C语言程序设计C语言之父,C程序设计语言-美-里奇-C语言之父-机械工业出版社
  15. python爬取豆丁网文章_百度文库爬取分析 - osc_tgjycqas的个人空间 - OSCHINA - 中文开源技术交流社区...
  16. 德标螺纹规格对照表_德标、欧标、国际、国标对照表
  17. 26岁考计算机研究生,26岁考研究生好还是考公务员好?总结得太精辟了
  18. 亚马逊云的服务器(EC2)+阿里云的域名,添加ssl证书
  19. 细读《深入理解 Android 内核设计思想》(三)Binder 机制 [上]
  20. 反常积分(Anomalous Integrals)

热门文章

  1. WordPress /wp-admin/users.php畸形s参数路径泄漏漏洞
  2. domain name
  3. visual studio 2008 intellisense does not work
  4. Linux命令之sed使用入门概述
  5. 4个技巧,教你如何用excel绘制出高大上的图表
  6. AIR文件上传与文件断点续传方式下载
  7. xampp安装后无法启动apache
  8. eclipse java读取文件_在eclipse完成对Java_web项目里面资源文件的读取
  9. 东风科技php,东风科技(600081)违规记录_新浪财经_新浪网
  10. dom4j获取指定节点值_XML解析之DOM4j以及XPATH技术