课程章节介绍
同学们,今天咱们聊聊Salesforce里一个特别灵活的功能,叫做“动态Apex”。平时我们写的代码,对象、字段、查询语句都是固定写死的,对吧?但有时候,我们需要程序在运行的时候,根据情况自己决定去访问哪个对象、查什么字段,甚至拼出一句查询语句来。这就是动态Apex要做的事儿。
简单来说,动态Apex能让我们创建更加灵活的应用程序。它主要提供了这么几个能力:
第一,可以访问s对象和字段的“描述信息”。注意,这不是某一条具体数据,而是对象和字段本身的元数据,比如“这个字段是什么类型、有多长、能不能编辑”。有了这些信息,程序就能自己判断该怎么处理数据了。
第二,可以写出动态的SOQL和SOSL查询语句。平时我们写查询,都是提前写死的,比如[SELECT Name FROM Account]。但动态SOQL呢,就像是在代码里搭积木,可以在运行时用字符串拼接出查询语句去执行。这样,一旦需要查哪个对象、哪个字段不确定的时候,就可以动态生成查询。
第三,还可以用动态TLR,也就是通过程序动态创建记录。比如,你从一个外部系统收到一些数据,但不确定它到底要存进哪个对象里,你就可以在运行时根据规则决定创建什么类型的记录。
那这个能力在什么时候最有用呢?尤其是那些从AppExchange上安装的应用。因为这些应用要兼容各家客户的org,客户的字段可能不一样,对象也可能没创建出来。用动态Apex,应用就可以先探测一下环境,再根据实际情况去做查询,或者把数据存到相应的对象里,这样就不用为每个客户都定制一套代码了,非常灵活。
所以记住,动态Apex让我们的代码不再是“硬邦邦”的,而是能根据运行时的信息,自己去“思考”和适应,特别适合那些需要高通用性的场景。好了,这个点我们就讲到这,接下来可以看看具体的用法。
关键词
Apex
Salesforce
Developer Guide