📜  Apex-概述

📅  最后修改于: 2020-11-05 03:06:39             🧑  作者: Mango


什么是Apex?

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

它具有类似于Java的语法,其行为类似于数据库存储过程。它使开发人员能够将业务逻辑添加到大多数系统事件中,包括按钮单击,相关记录更新和Visualforce页面。顶点代码可以通过Web服务请求以及对象上的触发器来启动。 Apex包含在Performance Edition,Unlimited Edition,Enterprise Edition和Developer Edition中。

Apex代码执行方案

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服务。

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

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

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

  • 创建自定义事务逻辑(在整个事务中发生的逻辑,而不仅仅是单个记录或对象),就像使用Database方法更新记录一样。

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

Apex的工作结构

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

Apex代码的Apex编译

行动流程

当开发人员保存代码和最终用户执行某些调用Apex代码的操作时,有两个动作序列,如下所示-

开发人员动作

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

最终用户动作

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

由于Apex是Salesforce.com的专有语言,因此它不支持常规编程语言所支持的某些功能。以下是Apex不支持的一些功能-

  • 它不能显示用户界面中的元素。

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

  • 创建多个线程也是不可能的,因为我们可以用其他语言来做到。

了解Apex语法

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

变量声明

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

SOQL查询

这将用于从Salesforce数据库获取数据。下面的屏幕快照中显示的查询是从Account对象中获取数据。

循环语句

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

流程控制声明

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

DML声明

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

以下是Apex代码段的外观示例。我们将在本教程中进一步研究所有这些Apex编程概念。

Apex示例代码语法