Salesforce入门教程(中文)-003 简介 sObject

Apex是一种托管在Salesforce Lightning平台上的面向对象编程语言,类似Java,主要用于业务逻辑处理。Apex支持类、接口、强类型,并且与数据库紧密集成。它允许直接操作记录,提供事务控制,并内置单元测试支持。sObject是Apex中的核心数据类型,代表Salesforce中的任何记录,可以使用构造函数或点表示法添加字段。泛型sObject可用于处理未知类型的记录,但需要通过put()和get()访问字段。

1.Apex是一种编程语言,使用类似Java的语法,其行为类似于数据库存储过程。

Apex使开发人员能够将业务逻辑添加到系统事件中,例如按钮单击、相关记录的更新和Visualforce页面。

作为一种语言,Apex是:
Hosted托管的——Apex在Lightning平台的服务器上保存、编译和执行。
Hosted面向对象的——Apex支持类、接口和继承。
Strongly typed强类型——Apex在编译时验证对对象的引用。
Multitenant aware多租户——由于Apex运行在Multitenant平台上,它通过强制执行限制(防止代码垄断共享资源)来密切防范失控的代码。
Integrated with the database与数据库集成——访问和操作记录非常简单。Apex提供对记录及其字段的直接访问,并提供语句和查询语言来操作这些记录。
Data focused以数据为中心——Apex提供对数据库的事务性访问,允许您回滚操作。
Easy to use易于使用——Apex基于熟悉的Java习惯用法。
Easy to test易于测试——Apex为单元测试的创建、执行和代码覆盖率提供了内置支持。Salesforce通过在任何平台升级之前执行所有单元测试,确保所有定制Apex代码都能按预期工作。
Versioned有版本的-可以针对不同版本的API保存自定义Apex代码。

2.Apex语言亮点
与其他面向对象编程语言一样,Apex支持以下一些语言结构:

类、接口、属性和集合(包括数组)。
对象和数组表示法。
表达式、变量和常量。
条件语句(if-then-else)和控制流语句(用于循环和while循环)。

与其他面向对象编程语言不同,Apex支持:

云开发——Apex在云中存储、编译和执行。
触发器——类似于数据库系统中的触发器。
有允许您进行直接数据库调用的数据库语句,以及用于查询和搜索数据的查询语言。
事务和回滚。
全局访问修饰符,它比公共修饰符更具权限,允许跨名称空间和应用程序进行访问。
自定义代码的版本控制。
此外,Apex是一种不区分大小写的语言。

3.开发工具

您可以使用Salesforce用户界面直接在浏览器中写入和访问调试信息。
在您的姓名或快速访问菜单(Setup gear图标)下打开开发者控制台。
您还可以使用Salesforce Extensions for Visual Studio代码在客户机上编写Apex。
(请参阅Salesforce Visual Studio代码扩展。)

4.数据类型概述

Apex支持各种数据类型,包括Salesforce特有的数据类型sObject数据类型。

primitive原生类型:如整数、双精度、长、日期、日期时间、字符串、ID、布尔值等。
sObject:可以是一般sObject,也可以是特定sObject,例如Account、Contact或MyCustomObject_u__c
collection:list、set、map
类型化的值列表,也称为枚举
用户定义的Apex类
系统提供的Apex类

5.sObject:
①Salesforce中的每一条记录在Apex中本机表示为一个sObject。
例如,Acme account记录对应于Apex中的Account sObject。
可以在用户界面中查看和修改的Acme记录字段也可以直接在sObject上读取和修改。
(Account sObject是Account记录的抽象,将Account字段信息作为对象保存在内存中。)

有两种方法可以添加字段:通过构造函数或使用点表示法。
添加字段的最快方法是将它们指定为构造函数中的名称-值对。
例如,此语句创建一个新的account sObject并用字符串值填充其名称字段。
Account acct = new Account(Name='Acme');

Name字段是accounts唯一必需的字段,这意味着必须先填充它,然后才能插入新记录。
但是,您也可以为新记录填充其他字段。此示例还添加了电话号码和员工人数。
Account acct = new Account(Name='Acme', Phone='(415)555-1212', NumberOfEmployees=100);

或者,可以使用点表示法向sObject添加字段。下面的示例与前面的示例相同,不过它需要更多的代码行。
Account acct = new Account();
acct.Name = 'Acme';
acct.Phone = '(415)555-1212';
acct.NumberOfEmployees = 100;

②使用泛型sObject数据类型

通常,在处理sObject时,使用特定的sObject数据类型,例如标准对象的Account或称为Book的自定义对象的Book_uc。
但是,当您不知道方法正在处理的sObject类型时,可以使用Generic泛型sObject数据类型。

使用泛型sObject数据类型声明的变量可以引用任何Salesforce记录,无论它是标准对象记录还是自定义对象记录。

此示例显示如何将通用sObject变量分配给任何Salesforce对象:一个account 和一个名为Book_uc的自定义对象。
sObject sobj1 = new Account(Name='Trailhead');
sObject sobj2 = new Book__c(Name='Workbook 1');
使用特定sObject数据类型声明的变量只能引用相同类型的Salesforce记录。

与特定的sObject类型不同,只能通过newObject()方法创建泛型sObject。
此外,只能通过put()和get()方法访问泛型sObject的字段。

※创建sObject不会将其作为记录持久保存在数据库中。
要将sObject保存为记录并使用它执行其他操作,请使用数据操作语言(DML)。
要检索记录,请使用Salesforce对象查询语言(SOQL)。

③将Generic sObject强制转换为特定sObject类型
在处理泛型sObject时,有时需要将sObject变量强制转换为特定的sObject类型。
这样做的好处之一是能够使用点表示法访问字段,这在通用sObject上是不可用的。
由于sObject是所有特定sObject类型的父类型,因此可以将通用sObject强制转换为特定sObject。

此示例演示如何将通用sObject强制转换为Account。
// Cast a generic sObject to an Account
Account acct = (Account)myGenericSObject;
// Now, you can use the dot notation to access fields on Account
String name = acct.Name;
String phone = acct.Phone;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一秒变桌子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值