在 Apex 中得到 sObject 的信息
Salesforce 的数据模型是基于 sObject 的。在 Apex 中,所有的标准对象、自定义对象都是继承自 sObject 的。
关于在 Apex 中得到 sObject 的信息,我们要基于两点来使用:
- 系统类 Schema 中定义了 DescribeSObjectResult 类来保存一个 sObject 的信息,也提供了若干方法来得到 sObject 的信息
- 每个 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 的信息相关推荐
- Salesforce Apex 中常用技能总结(持续更新)
前言 博主也是Salesforce Apex 工作不久,有用到的知识和平时查阅到的知识和大家分享一下. 总结 1.使用SOQL语句查询时,字符串类型的只能使用'单引号',否则报错:Unknown er ...
- apex 查询_在 Apex 中使用合并统计查询
SOQL 中的合并统计查询 在 SOQL 中,我们可以使用一系列函数来进行合并统计查询.它们的功能和标准 SQL 中的 SUM(),COUNT() 等函数类似. Apex 中使用合并统计查询 在 Ap ...
- 学习Jonathan Shewchuk的Triangle:分治法中三角形的几何信息和拓扑信息的操作
介绍 想必研究网格细分技术的同学们不会不知道Jonathan Richard Shewchuk,凭借作品Triangle获得了2003年数值计算软件威尔金森奖.先拿下他的图来镇下楼(图片出自:点击打开 ...
- 利用python获取指定url在ATS中缓存对象的信息
业务需求 给定url,如何查询指定的ATS中是否有该url的缓存对象信息?如果缓存了的话,希望提供该缓存对象的大小,缓存时间,缓存文件名,缓存份数(document alternative)等等信息 ...
- R语言ggplot2可视化使用vjust和hjust参数对齐图像中的文本注释信息(左对齐、右对齐、居中)实战
R语言ggplot2可视化使用vjust和hjust参数对齐图像中的文本注释信息(左对齐.右对齐.居中)实战 目录
- 涉密计算机格式化维修,涉密计算机中的涉密信息被删除或格式化后,不可复原,可以连接互联网 - 作业在线问答...
相关题目与解析 涉密计算机中的涉密信息被删除和格式化后可连接互联网使用.() 涉密计算机的涉密信息被删除或格式化后,通过一定的技术手段仍可以复原,连接互联网易造成泄密.() 涉密计算机删除涉密信息后可 ...
- 根据excel中的容填写信息
一句话 使用xlrd 中的row方法读取一行返回的为一个所有值的list list中的所有值的索引和excel中的索引是绝对关系 只要在list中找到你想要的值得索引即可 根据excel中的内容填写信 ...
- 统一处理jquery ajax请求过程中的异常错误信息的机制
统一处理jquery ajax请求过程中的异常错误信息的机制 参考文章: (1)统一处理jquery ajax请求过程中的异常错误信息的机制 (2)https://www.cnblogs.com/wi ...
- 查询数据库中的表结构信息
查询数据库中的表结构信息 SELECT COLUMN_NAME 列名, COLUMN_TYPE 数据类型, DATA_TYPE 字段类型, CHARACTER_MAXIMUM_LENGTH 长度, I ...
最新文章
- 在OperaMasks中使用ELite和JRuby动态语言的秘笈
- select返回记录的顺序
- python声音分类_Python音频信号分类MFCC特征神经网络
- 回味颜宁演讲:“勇敢做独一无二的你”
- windows 程序设计及API
- CentOS 6.3 下编译cyrus-sasl报错解决
- 多台电脑集群运算_答疑 | 三维建模的【电脑】配置问题
- [转] Understanding and Solving Internet Explorer Leak Patterns
- MySQL:常用备份方式(基于5.7)
- Moment.js 一款JS时间封装库
- android gradle NDK简介
- avalon2 非必填项的表单验证规则
- 经典网络DenseNet介绍
- C语言程序设计C语言之父,C程序设计语言-美-里奇-C语言之父-机械工业出版社
- python爬取豆丁网文章_百度文库爬取分析 - osc_tgjycqas的个人空间 - OSCHINA - 中文开源技术交流社区...
- 德标螺纹规格对照表_德标、欧标、国际、国标对照表
- 26岁考计算机研究生,26岁考研究生好还是考公务员好?总结得太精辟了
- 亚马逊云的服务器(EC2)+阿里云的域名,添加ssl证书
- 细读《深入理解 Android 内核设计思想》(三)Binder 机制 [上]
- 反常积分(Anomalous Integrals)
热门文章
- WordPress /wp-admin/users.php畸形s参数路径泄漏漏洞
- domain name
- visual studio 2008 intellisense does not work
- Linux命令之sed使用入门概述
- 4个技巧,教你如何用excel绘制出高大上的图表
- AIR文件上传与文件断点续传方式下载
- xampp安装后无法启动apache
- eclipse java读取文件_在eclipse完成对Java_web项目里面资源文件的读取
- 东风科技php,东风科技(600081)违规记录_新浪财经_新浪网
- dom4j获取指定节点值_XML解析之DOM4j以及XPATH技术