一、维护你的 Platform Developer 认证(Winter ’26)(01 Maintain Your Platform Developer Certification)
本单元回顾 Winter ’26 对 Platform Developer 的重要更新,帮你保持认证有效、开发技能常新。学完本单元你将能够:
- 用指针实现大型外部服务调用,避免 Apex 堆限制;
- 在 abstract 和 override 方法上正确应用访问修饰符,避免编译错误;
- 配置 LWS Trusted Mode 以安全运行 Lightning Web 组件中的第三方脚本;
- 用新的 lightning/graphql 模块以用户级安全控制查询数据;
- 用 LWC 本地操作增强屏幕流程的交互性与性能。
保持认证有效(Stay Current With Your Certification)
Salesforce 认证只有在保持时效时才最有价值。要让 Platform Developer 认证持续有效,请在 Certification Release Maintenance Schedule 上标注的截止日期前完成本模块。虽然任何人都可以获得此徽章,但它是为持有 Platform Developer 认证的人设计的。
作为 Salesforce Certification Program 的一部分,继续之前请先阅读认证计划协议中的考试政策,以及 Salesforce Credentialing and Certification Program Agreement and Code of Conduct 文章。
Platform Developer 认证概览(Platform Developer Certification Overview)
Salesforce 持续扩展面向 Apex、Lightning Web Components(LWC)和 Flow 开发者的能力。本模块覆盖影响你构建和保护应用方式的关键更新:高效处理大型外部服务载荷、遵循 Apex 新的访问修饰符要求、提升可信第三方脚本、用新的 GraphQL API 模块获取数据,以及用 LWC 本地操作让流程更具交互性。
处理大型外部服务调用而避免 Apex 堆限制(Handle Large External Service Callouts)
在 Apex 中处理大量数据,尤其在向外部系统传输文件或二进制载荷时,很容易撞上堆大小限制。本版本引入了更高效的大调用处理方式:External Services 不再把二进制数据直接载入 Apex 堆,而是使用指向 ContentDocument 对象 ID 的指针。
这意味着你可以上传或下载最高 16 MB 的二进制文件而不会爆堆限制,显著提升数据密集集成的可靠性。例如,把 Salesforce 与数字资产管理集成的开发者,现在可以传输大图片或 PDF 而不触犯 Apex governor limits。由于该过程用 ContentDocument 作为存储机制,文件在 Salesforce 内仍可访问,便于审计或重处理。
当需要处理不需要在 Apex 中做内存处理的大文件时用此方式;如果必须在 Apex 中解析或转换文件内容,考虑分成小块处理以避免堆限制。
在 abstract 和 override 方法上使用访问修饰符(Use Access Modifiers on Abstract and Override Methods)
从 API 版本 65.0 开始,Salesforce 强制在 abstract 和 override 方法上使用显式访问修饰符。你必须把这些方法声明为 protected、public 或 global——private 不允许,因为它会阻止实现类访问该方法。
这一改变提升了代码清晰度,并防止开发者意外写出无法被子类实现的方法。如果你省略修饰符或使用不受支持的修饰符,就会遇到编译错误。在把 API 版本升级到 65.0 或更高前,先审查你的 Apex 类,为任何 abstract 或 override 方法补上正确的访问修饰符,确保代码继续编译并正常运作。
用 LWS Trusted Mode 提升第三方脚本(Elevate Third-Party Scripts with LWS Trusted Mode)
Lightning Web Security(LWS) 和 Lightning Locker 通过隔离组件、阻止对全局命名空间的未授权访问来保护 Salesforce 环境。但有时这些安全措施会阻碍需要全局访问才能正常运作的关键第三方库。
LWS Trusted Mode 允许开发者对可信代码安全地绕过这些限制:把组件标记为可信,就能让它在没有 LWS/Locker 限制的情况下运行第三方脚本。这对集成分析库、高级可视化框架或需要直接访问浏览器全局上下文的脚本尤其有用。
只对经过审查、安全的库启用 LWS Trusted Mode,因为它会扩大攻击面;在生产环境启用前,务必遵循 Salesforce 安全指南和组织的治理流程。
探索新增与变更的 LWC 模块(一):新模块(New Modules)
LWC 能力持续扩展,本版本新增:
- lightning/graphql:支持可选字段和动态查询构建,推荐用于所有新的基于 GraphQL 的数据获取;
- lightning/omnistudioPubsub:适合嵌入 OmniStudio 包装组件,实现组件间无缝交互。
探索新增与变更的 LWC 模块(二):变更模块(Changed Modules)
同时有一个需要迁移规划的变更:inactivateConversation(recordId) 函数——按 ID 停用会话记录,返回一个 resolve 为 true(或出错时 reject)的 promise——它所在的模块即将弃用。需要采取的行动:迁移到 lightning/graphql,确保持续获得支持和最新功能。
用 LWC 组件实现 Screen Flow 本地操作(Use LWC Components for Local Actions)
屏幕流程(Screen Flow)是引导用户完成业务流程的强大工具,但过去与浏览器交互的能力受限。本版本起,你可以在屏幕流程中使用 Lightning Web Component 本地操作执行客户端操作:例如在用户提交屏幕后显示自定义 toast 提示,或自动导航到记录页——都无需服务器调用。本地操作完全在用户浏览器中运行,更快、更高效、不消耗服务器资源。
用本地操作处理不需要服务器数据的任务(如 UI 反馈、导航、表单重置);需要 Salesforce 数据的操作则继续用服务端 action。
总结(Sum It Up)
本单元覆盖了今年对 Platform Developer 影响最大的更新:
- 在 Apex 中处理大载荷而不触堆限制;
- 强制访问修饰符以提升代码清晰度;
- 安全提升可信第三方脚本;
- 采用新的 LWC 模块(lightning/graphql、lightning/omnistudioPubsub);
- 迁移弃用 API;
- 用 LWC 本地操作让流程更具交互性。
把它们应用到项目中,你就能构建更可扩展、更安全、更友好的解决方案。下一单元,你将学习如何一起运行 Apex 与 Flow 测试。
二、动手实践:一起运行 Apex 与 Flow 测试(02 Get Hands-On by Running Apex and Flow Tests Together)
本单元统一你的测试执行:用 Test Discovery 和 Test Runner API 一起查看和运行 Apex 与 Flow 测试,然后跟着动手演练构建一个带自动化 Flow 测试的记录触发流程。学完本单元你将能够:
- 用 Test Discovery API 获得 Apex 与自动化 Flow 测试的统一视图;
- 用 Test Runner API 在同一次运行中执行 Apex 与 Flow 测试;
- 在 Setup 中以声明式方式运行并查看 Apex 与自动化 Flow 测试。
统一你的测试执行(Unify Your Test Execution)
分别管理 Apex 和 Flow 测试很麻烦——现在你可以在一个地方看到它们。Test Discovery API 给你 org 中每个 Apex 和自动化 Flow 测试的单一视图;更新后的 Test Runner API 则能在同一次运行中执行两种测试。两个 API 都是 Tooling API REST 资源,可集成进你的开发工作流;偏好声明式?你现在也可以直接在 Setup 里运行 Apex 和 Flow 测试。
动手实践(一):安装托管包(Install the Managed Package)
在一个新的 Trailhead Playground 中跟着做:
- 启动一个全新 playground;
- 用 Install a Package 标签页(若没有该标签页,则通过 App Launcher 里的 Playground Starter)安装包;
- 粘贴包 ID
04tNS000000EQYv; - 点击 Install → 选择 Install for Admins Only → Install;
- 确认安装,点击 Done,然后导航到 Setup。
这个包和 playground 会用于完成挑战。
动手实践(二):创建记录触发流程(Create a Record-Triggered Flow)
创建将被测试的流程:
- Setup → Flows → New Flow;
- 在 Frequently Used 下选择 Record-Triggered Flow;
- Object 选 Account;
- Trigger the Flow When 选 A record is created or updated;
- Set Entry Conditions 的 Condition Requirements 保持 None;
- Optimize Flow 选 Actions and Related Records;
- Add Asynchronous Path 设为 Off。
动手实践(三):添加元素(Add an Element)
添加一个更新记录的元素:
- 点击 Add Element 图标,选择 Update Triggering Record;
- Label 设为
Update Description,API Name 设为Update_Description; - How to find Records to Update 选触发该流程的 Account 记录;
- Set Filter Conditions 设为 None — Always Update Record。
动手实践(四):为 Account 记录设置字段值(Set Field Values)
定义元素做什么:
- Field 列选 Account Description;
- Resource Type 选 Text Template,API Name 设为
Default_Description; - Body 里选 View as Plain Text,粘贴
This is a default description.; - 点击 Done,确认 Value 列里是 Default_Description。
然后保存并激活:Flow Label 设为 Account Update(API Name 自动为 Account_Update),点击 Save,再点 Activate。现在你有了一个会给账户写默认描述的活跃流程。
动手实践(五):为 Flow 设置测试(Setup Test for Flow)
创建自动化 Flow 测试:
- 打开流程,点击 View Tests → Create;
- Label 设为
Test Account Update Description; - Run the Test When a Record is 设为 Created;
- Data Source 设为 Run from Org Data;
- Account Name 字段输入
Account with Flow; - 添加断言:Resources 选 Triggering Account → Account Description,Operator 选 Is Null,Value 选 False;
- 点击 Save。
动手实践(六):运行并验证测试(Run and Verify the Test)
一起运行 Apex 与 Flow 测试:
- 在页面右上角进入 Setup,选择 Developer Console;
- 点击 Debug → Open Execute Anonymous Window;
- 粘贴
RunTestsUsingToolingAPI.runAsynchronousTestsWithToolingAPI();,点击 Execute; - 回到 Setup,Quick Find 搜索并选择 Application Test Execution;
- 选择要运行的 Apex 和 Flow 测试,点击 Run;
- 点击 View Test History 查看运行结果。
注意:Application Test Execution 和 Application Test History 页面取代了旧的 Apex Test Execution 和 Apex Test History 页面。完成后点击 Check Challenge to Earn 500 Points 校验成果。
文章来源:Trailhead - Platform Developer Certification Maintenance (Winter '26)



















