Skip to main content

用 Apex 编写业务逻辑

备注

备注

用中文(简体)学习?在此徽章中,Trailhead 实践挑战验证使用英文。括号中提供了译文,用作参考。在您的 Trailhead playground 中,您需确保 (1) 将区域设置切换为美国,(2) 将语言切换为英语,(3) 仅复制粘贴英文值。按此处说明进行。

查看 Trailhead 本地化语言徽章了解如何利用 Trailhead 译文。

跟随 Trail Together 进行学习

进行这一步骤时,想要跟专家一起学习吗?观看此视频,它是 Trail Together 系列的一部分。

(此视频片段从 34:00 开始,方便您回放并再次观看步骤的开头部分。)

简介

Apex 是一种强类型、面向对象的编程语言,经过优化,可在 Salesforce 多租户架构中运行。Apex 使开发人员能够自动化复杂的后端业务流程,并将其编译为 Java 字节码。

Apex 语言经过优化,可与 Salesforce 数据交互,并与 Salesforces 持久层紧密集成。Apex 提供了类似于 SQL 的 SOQL(Salesforce Object Query Language,Salesforce 对象查询语言),用于执行查询,并提供了 DML(Data Manipulation Language,数据操纵语言)语句,用于对先前创建的对象执行数据库操作。

创建和部署 Apex 类

  1. 在 Visual Studio Code 中,在 force-app/main/default 下,右击 classes(类)并选择 SFDX: Create Apex Class(SFDX:创建 Apex 类)
    “SFDX:创建 Apex 类”选项。
  2. 在 Visual Studio Code 命令面板中,把这个类命名为 HouseService。点击 Enter | Enter
  3. 将文件内容替换为以下代码。
    public with sharing class HouseService {
        @AuraEnabled(cacheable=true)
        public static List<House__c> getRecords() { 
            try {
                // Create a list of House records from a SOQL query
                List<House__c> lstHouses = [
                    SELECT
                       Id,
                       Name,
                       Address__c,
                       State__c, 
                       City__c,
                       Zip__c
                       FROM House__c
                       WITH USER_MODE
                       ORDER BY CreatedDate
                       LIMIT 10
                    ];
                      return lstHouses;
            }
            // Code to handle exception
            catch (Exception e) {
               throw new AuraHandledException(e.getMessage());
            }
        }
    }  
      
    代码重要内容 在这段代码中,您创建了一个类 HouseService,其中具有一个名为 getRecords 的方法。该方法通过查询 House__c 对象返回房屋记录列表(作为数组)。
    请注意在 HouseService Apex 类中,您自动将之前(在步骤 2 中)创建的对象 (House__c) 作为一个类展现出来,无需编写类文件。此外,您可以将 House__c 对象中的字段作为属性引用,而无需声明它们。
    我们已使用 SOQL 编写查询,引用了对象和对象上的字段。查询会进行编译,因此在编译时要进行类型检查。
    您已经在数据模型和 Apex 类之间实现了紧密耦合。现在,如果您对代码进行与数据模型不一致的更改,代码将无法编译,因此您无法破坏代码。
  4. 保存此文件。
  5. 右击 HouseService.cls 并选择 SFDX: Deploy Source to Org(SFDX:将源代码部署到组织)。您会看到一条确认消息,表明 Apex 类已成功部署到组织中。部署代码也会在服务器上对其进行编译。
    “将源部署到 Salesforce 组织”选项。

现在,使用匿名脚本测试这个类是否按预期返回查询结果。匿名脚本是不存储在元数据中但可以编译和执行的 Apex 代码。

按照以下步骤创建一个用于测试的匿名脚本。

  1. 在 scripts/apex 文件夹中创建一个名为 dreamhouseapp.apex 的新文件。
  2. 将文件内容替换为以下代码:System.debug(HouseService.getRecords());
  3. 单击以下截图中以粉色框突出显示的 Code Lens Execute Anonymous Apex
    执行 Apex 脚本的 Code Lens Execute Anonymous Apex
    如果您编写的 Apex 类是功能性的,您将在下方显示的输出面板中看到查询结果。显示执行 Apex 脚本时的查询结果的输出面板。

Apex 是一种紧密耦合的强类型编程语言,经过优化可处理与 Salesforce 平台良好兼容的业务应用程序。如果有任何引用无效,它将在编译时迅速失败。

由于它与 Salesforce 持久层集成,并提供内置的支持,可以直接使用 Salesforce 数据而无需连接其他数据层,因此可以提高您的工作效率。此外,Apex 还通过强制执行调控器限制和测试要求来自动促进良好的编程实践。

资源

继续免费学习!
注册帐户以继续。
有什么适合您的内容?
  • 为您的职业目标获取个性化推荐
  • 通过实践挑战和测验练习您的技能
  • 跟踪并与雇主分享您的进度
  • 与人联系以获取指导和就业机会