Setting API & Package Versions

DEX455 - Apex 类与 Java 类的区别

📄 第 159 页 🎬 视频课程

课程章节介绍

我们来看一下这一页,关于 Salesforce API 版本设置,其实很简单。 你在写 Apex 类或者触发器的时候,Salesforce 会用一个特定的 API 版本来编译你的代码。如果你需要调整它,操作步骤是这样的:打开你要编辑的类或触发器,在页面上找到“版本设置”这个按钮,点进去,选择你想要的 API 版本,然后保存就行了。 那这里有个很容易被忽视的点:如果你在不同的类之间传递对象,比如你从 A 类传一个 SObject 给 B 类,而这两个类用的 API 版本不一样,那么这个对象里的字段行为,听谁的?答案是——接收方的版本设置说了算。也就是 B 类用什么版本,这个对象在 B 类里就表现出那个版本的字段特性。所以要特别注意,尽量让关联紧密的类保持在同一个版本,避免出现字段访问不一致的问题。 接下来,我们讲托管包的版本设置。如果你在类或触发器里引用了托管包,你还需要单独设定包的版本。操作方式是:在类或触发器的详细信息页,点编辑,然后切换到“版本设置”选项卡,在这里你能选所用的包版本。选定之后保存。关键点是:就算以后你在 org 里安装了更高版本的同一个包,这个类还是会死死绑在你当初选的这个版本上,除非你手动去更新。这一点在长期维护的包升级后尤其重要,很容易造成依赖的类还是跑在旧版 API 上,所以记得回头检查。 最后一个注意点:一旦你的类里引用了某个包,那在这个类的版本设置里,你就不能删除掉这个包的版本配置了。所以设置的时候要想好,改了就要用到,但这同时也是一种保护,避免你误删导致代码依赖断裂。 总结下来,就是三点:普通类或触发器通过版本设置切换 API 版本;对象行为由接收方版本决定;托管包版本要单独设,而且不会自动升级,引用了就不能删。记住了这些,版本问题就不容易踩坑了。

关键词

Apex Salesforce Developer Guide