Apex - 概述



什么是Apex?

Apex是由Salesforce.com开发的一种专有语言。根据官方定义,Apex是一种强类型面向对象编程语言,允许开发人员在Force.com平台服务器上执行流程和事务控制语句,并结合对Force.com API的调用。

它具有类似Java的语法,并且像数据库存储过程一样工作。它使开发人员能够向大多数系统事件添加业务逻辑,包括按钮点击、相关记录更新和Visualforce页面。Apex代码可以由Web服务请求以及对象上的触发器启动。Apex包含在Performance Edition、Unlimited Edition、Enterprise Edition和Developer Edition中。

Apex Code Execution Scenario

Apex作为一种语言的特性

现在让我们讨论一下Apex作为一种语言的特性:

集成

Apex内置支持DML操作,如INSERT、UPDATE、DELETE,以及DML异常处理。它支持内联SOQL和SOSL查询处理,返回sObject记录集。我们将在以后的章节中详细学习sObject、SOQL、SOSL。

类似Java的语法且易于使用

Apex易于使用,因为它使用类似Java的语法。例如,变量声明、循环语法和条件语句。

与数据紧密集成

Apex以数据为中心,旨在同时执行多个查询和DML语句。它在数据库上发出多个事务语句。

强类型

Apex是一种强类型语言。它使用对模式对象(如sObject)的直接引用,如果已删除或数据类型错误,任何无效引用都会快速失败。

多租户环境

Apex在多租户环境中运行。因此,Apex运行时引擎旨在严格防止代码失控,防止它独占共享资源。任何违反限制的代码都会失败,并显示易于理解的错误消息。

自动升级

Apex作为Salesforce版本的一部分进行升级。我们无需手动升级它。

易于测试

Apex提供对单元测试创建和执行的内置支持,包括指示代码覆盖率多少以及代码哪些部分可以更有效的测试结果。

何时开发人员应选择Apex?

当我们无法使用预构建的和现有的开箱即用功能来实现复杂的业务功能时,应使用Apex。以下是我们需要在Salesforce配置中使用Apex而不是其他方法的情况。

Apex应用程序

当我们想要:

  • 创建与其他系统集成的Web服务。

  • 创建用于电子邮件群发或电子邮件设置的电子邮件服务。

  • 同时对多个对象执行复杂验证,以及自定义验证实现。

  • 创建现有工作流功能或流程不支持的复杂业务流程。

  • 创建自定义事务逻辑(在整个事务过程中发生的逻辑,而不仅仅是单个记录或对象),例如使用数据库方法更新记录。

  • 在修改记录时执行某些逻辑,或者在导致触发器触发的某些事件发生时修改相关对象的记录。

Apex的工作结构

如下图所示(参考:Salesforce开发人员文档),Apex完全按需在Force.com平台上运行。

Apex Compilation of Apex Code

操作流程

当开发人员保存代码时以及最终用户执行某些操作调用Apex代码时,有两种操作序列,如下所示:

开发人员操作

当开发人员将Apex代码写入平台并保存时,平台应用程序服务器首先将代码编译成Apex运行时解释器可以理解的一组指令,然后将这些指令保存为元数据。

最终用户操作

当最终用户通过单击按钮或访问Visualforce页面触发Apex的执行时,平台应用程序服务器从元数据中检索编译后的指令,并在返回结果之前将其发送到运行时解释器。与标准应用程序平台请求相比,最终用户不会观察到执行时间的差异。

由于Apex是Salesforce.com的专有语言,因此它不支持通用编程语言的一些功能。以下是Apex不支持的一些功能:

  • 它无法在用户界面中显示元素。

  • 您无法更改标准SFDC提供的功能,也不可能阻止标准功能的执行。

  • 创建多个线程也不像在其他语言中那样可能。

了解Apex语法

Apex代码通常包含许多我们可能从其他编程语言中熟悉的东西。

变量声明

作为强类型语言,您必须在Apex中使用数据类型声明每个变量。如以下代码所示(下面的屏幕截图),lstAcc声明为帐户列表的数据类型。

SOQL查询

这将用于从Salesforce数据库中提取数据。下面屏幕截图中显示的查询正在从帐户对象中提取数据。

循环语句

此循环语句用于遍历列表或在指定次数内迭代一段代码。在下面屏幕截图中显示的代码中,迭代将与我们拥有的记录数量相同。

流程控制语句

If语句用于此代码中的流程控制。根据某些条件,决定是执行还是停止特定代码段的执行。例如,在下面显示的代码中,它正在检查列表是否为空或是否包含记录。

DML语句

对数据库中记录执行记录插入、更新、upsert、删除操作。例如,以下给出的代码有助于使用新字段值更新帐户。

以下是如何显示Apex代码片段的示例。我们将在本教程中进一步学习所有这些Apex编程概念。

Apex Sample Code Syntax
广告