作为Salesforce开发人员,必须紧跟每次发布的新版本。Salesforce每年会进行3次release,主要是更新新功能,有时也会发布新的语言或框架。
每次发布的新版本,都可能提供某一难题的新解决方案,因此,作为Salesforce从业者,要及时更新自己的知识储备。例如,在Spring '20中,WITH SECURITY_ENFORCED为我们提供了一个检查SOQL中的对象和字段级别权限的新方法。
在这篇文章中,我们整理了2021年每个Salesforce开发人员都必须掌握的5个功能。
所有类别所需的共享规则
对于Visualforce Page Controller和Trigger Helper,我们需要使用“with shared”关键字来强制用户访问和权限。从Winter ‘21开始,还将针对基于Aura和LWC的Apex类强制实施该方法。
Apex类通常在系统模式下运行。因此,当前用户的权限不会用于执行Apex逻辑,并且不会自动应用该用户的权限和字段级安全性。在Winter ‘21之后,我们需要确保每个Aura Enabled类的共享权限,与Visualforce Page Controller访问保持一致。
下图是AuraEnabled类的示例:
使用安全导航操作符
开发人员经常会担心空指针异常,但是从Winter ’21开始,这个问题可以由安全导航操作符(?)解决。
之前,我们至少要编写2或3行代码来检查空指针异常,现在只需要一行就可以了。
Salesforce动态表单
动态表单不只是管理员的专属,它还可以帮助Salesforce开发人员避免重复编码。
动态表单的前提是创建以用户为中心的、直观的页面布局,在正确的时间显示正确的信息。随着时间的推移,页面布局或Lightning页面中的“详细信息”部分,可能会被字段塞满。这些字段可能很有必要,但不是在所有情况下,所有用户都需要。通过创建多个页面布局和不同的简档可以解决这一问题,但这需要大量人力和配置。
但如果使用动态表单就轻松多了,只需:
将字段放置在布局上的任何位置,无需将其添加到传统页面布局中(“详细信息”选项卡)
使用可见性规则使字段和组件根据您选择的条件显示或隐藏
取消多页面布局
缩短页面加载时间
你可以创建全新的页面,也可以使用以下提示迁移现有的Lightning页面。
迁移或创建新的Lightning记录页面后,你将看到添加字段部分(Field Section)组件的选项,可以直接将字段添加到Lightning记录页面。
在开发者组织中安装Apex Recipe和LWC Recipe
Apex Recipe是一个遵循最佳实践的通用用例代码示例库。示例包括如何编写出色的Triggers,Callout以及创建Async类。
同样,LWC Recipe主要提供Lightning Web Components的代码和示例,例如如何连接LWC和Apex、创建表单、组合2个组件等等。
下图是LWC Recipe提供的所有组件和示例的列表:
在Apex中实施字段级安全性
Salesforce通过System.AccessType类来检查Apex中的CRUD访问权限,并且最近在该类中添加了UPSERTABLE枚举方法。现在,Salesforce已发布了tripInaccessible方法,以强制执行插入、更新字段和对象级别检查。
stripInaccessible可用于以下用途:从查询和子查询结果中剥离当前用户无法访问的字段。在DML操作之前,从sObject中删除不可访问的字段,以避免出现异常。清理从不受信任的来源反序列化的sObject。
网友评论