Unit 2:Work with a Single Record
让我们来聊聊如何在Salesforce中处理单个记录,特别是关于Bear的详细信息页面。首先,想象一下,你有一个Bear对象,里面存储了很多关于熊的信息,比如名字、种类、栖息地等等。现在,你想要创建一个页面,专门展示某一只熊的详细信息。 在Salesforce中,我们通常会使用Lightning Data Service(LDS)来获取单个记录的数据。LDS是一个非常强大的工具,它可以帮助我们轻松地从Salesforce数据库中获取数据,而不需要编写复杂的Apex代码。 首先,你需要在你的Lightning组件中引入LDS。这就像是在你的工具箱里添加了一个新工具。然后,你可以使用LDS提供的函数来获取你想要的Bear记录。你只需要告诉LDS你想要获取哪一条记录,它就会帮你从数据库中取出数据,并展示在你的页面上。 举个例子,假设你想要展示一只名叫“Yogi”的熊的详细信息。你可以在你的组件中设置一个变量来存储Yogi的ID,然后使用LDS的`getRecord`函数来获取这条记录。LDS会自动处理所有的后台请求,你只需要关注如何展示这些数据。 最后,你可以在你的页面上设计一个漂亮的布局,展示Yogi的名字、种类、栖息地等信息。这样,当用户访问这个页面时,他们就能看到Yogi的所有详细信息了。 简单来说,使用LDS来处理单个记录,就像是在Salesforce中打开了一个快捷通道,让你能够轻松地获取和展示数据。希望这个解释能帮助你更好地理解如何在Salesforce中处理单个记录。
本课程共有 14 个章节
同学们,今天我们来聊聊如何在Salesforce中配置一个Lightning组件,特别是针对一个叫做Bear对象的记录页面。我们会一步步来,确保大家都能跟上。 首先,我们来看一下这个配置文件,叫做`BearLocation-配置文件34`。这个文件是用XML格式写的,XML是一种标记语言,用来存储和传输数据。在这个文件里,我们定义了一个Lightning组件的一些基本信息和配置。 1. ,XML声明,:文件的第一行是XML的声明,告诉系统这个文件是用XML 1.0版本写的,编码是UTF-8。 2. ,LightningComponentBundle,:接下来我们定义了一个`LightningComponentBundle`,这是Salesforce用来打包Lightning组件的一个容器。我们给它起了一个名字`MAP`,并且指定了API版本是47.0。 3. ,isExposed,:这里我们设置`isExposed`为`True`,意思是这个组件可以被其他开发者使用。 4. ,目标,:我们指定了这个组件的使用场景,这里我们选择了`Lightning__RecordPage`,也就是说这个组件可以用在记录页面上。 5. ,Target Configs,:在`Target Configs`部分,我们进一步指定了这个组件只能用在`Bear__c`这个对象的记录页面上。也就是说,这个组件只能在Bear的详细信息页面上使用,不能用在其他对象的页面上。 接下来,我们来看一下`BearLocation.js-meta.xml`文件。这个文件是用来定义组件的元数据的。 1. ,@api装饰器,:在这个文件中,我们需要添加一个用`@api`装饰的属性,叫做`recordId`。这个属性是用来访问当前记录的ID的。`@api`是Salesforce提供的一个装饰器,用来标记那些可以被外部访问的属性。 2. ,配置XML,:在配置XML中,我们指定了`Lightning__RecordPage`作为目标。这样,Salesforce就知道这个组件是用在记录页面上的。 3. ,控制器中的属性,:在控制器中,我们也需要装饰一个名为`@recordId`的属性。这个属性会用来存储当前记录的ID。 最后,我们还要限制这个组件只能在Bear的详细信息页面上使用,不能用在其他对象的页面上。这个限制是通过在配置文件中指定`Object`为`Bear__c`来实现的。 总结一下,我们今天学习了如何配置一个Lightning组件,让它只能在Bear的详细信息页面上使用。我们通过XML文件定义了组件的基本信息和目标,并且在控制器中添加了一个`@api`装饰的属性来访问当前记录的ID。希望大家都能够理解这些内容,如果有任何问题,随时问我!
今天我们来聊聊Lightning Web Components(LWC)中的三个非常重要的装饰器:@api、@track和@wire。这些装饰器可以帮助我们更好地控制组件的行为和数据流。 首先,我们来看@api装饰器。这个装饰器用于公开组件的公共属性或方法。当你用@api装饰一个属性时,这个属性就变成了组件的公共接口的一部分。这意味着,其他组件可以通过这个属性来与你的组件进行交互。而且,这个属性是反应性的,也就是说,如果这个属性的值发生了变化,那么所有引用这个属性的地方都会自动更新。同样地,如果你用@api装饰一个方法,那么这个方法也可以被其他组件调用,从而实现组件间的通信。 接下来是@track装饰器。这个装饰器用于观察对象属性或数组元素的变化。当你用@track装饰一个属性时,LWC会跟踪这个属性的变化,并在变化发生时自动更新相关的视图。这对于处理复杂的数据结构非常有用,因为它可以确保你的视图总是与数据保持同步。 最后是@wire装饰器。这个装饰器用于读取Salesforce的数据。LWC使用电抗线服务来获取数据,当数据发生变化时,组件会自动重新渲染。你可以在组件的JavaScript类中使用@wire来指定一个线缆适配器或一个Apex方法,从而获取所需的数据。这使得与Salesforce后端的数据交互变得非常简单和高效。 总结一下,@api用于公开组件的公共接口,@track用于跟踪数据的变化,而@wire用于与Salesforce后端进行数据交互。这三个装饰器是LWC编程模型中非常重要的工具,掌握它们可以帮助你构建更加强大和灵活的组件。希望这些解释对你有所帮助!
大家好,今天我们来聊聊Salesforce中的Lightning Data Service。想象一下,你有一个魔法盒子,这个盒子能帮你轻松地获取和操作Salesforce中的数据,而不需要写很多复杂的代码。这个魔法盒子就是Lightning Data Service。 首先,Lightning Data Service是建立在UI API之上的,它允许我们使用一些基础的Lightning组件来展示和编辑数据。这些组件包括: 1. ,Lightning Record Form,:这个组件可以让你快速创建一个表单来展示记录的数据。 2. ,Lightning Record Edit Form,:这个组件允许用户编辑记录的数据。 3. ,Lightning Record View Form,:这个组件用于查看记录的数据。 这些组件非常强大,因为它们可以自动处理数据的读取和写入,你不需要写任何Apex代码。 接下来,我们来看看Lightning Web Components(LWC)如何从Salesforce数据库中读取信息。有两种主要的方法: 1. ,Apex Classes,:你可以自己编写SOQL或SOSL查询,然后将结果返回给你的组件。这给了你很大的灵活性,但需要你写一些代码。 2. ,UI API,:这是更简单的方法。Lightning Data Service就是建立在UI API之上的,它允许你处理单个记录,而不需要写任何Apex代码。它还会自动处理CRUD(创建、读取、更新、删除)和FLS(字段级安全性)的权限检查。 所以,总结一下,Lightning Data Service是一个非常强大的工具,它可以帮助你轻松地处理Salesforce中的数据,而不需要写很多代码。希望这个简单的介绍能帮助你理解它的基本概念。我们后续会有更多详细的讲解,敬请期待!
今天我们来聊聊在Salesforce中,什么时候应该使用用户界面API,什么时候又该选择Apex。这个问题对于很多刚开始接触Salesforce开发的朋友来说,可能会有点困惑,但别担心,我会尽量用简单的话来解释。 首先,如果你只需要处理单个记录,并且你是通过recordId来查询这个记录的话,那么用户界面API就是你的好朋友。为什么呢?因为用户界面API会自动帮你处理一些繁琐的事情,比如字段级别的安全性(FLS)、创建、读取、编辑、删除权限(CRED),还有记录的共享规则。这意味着你可以直接读取或写入数据,而不需要担心这些安全性和权限的问题。 但是,如果你需要处理多个记录,或者虽然只处理一个记录,但你是通过recordId以外的条件来查询的,那么你就需要使用Apex了。使用Apex的时候,你就需要自己来处理这些安全性和权限的问题了。你需要确保你的代码能够正确地检查对象和字段的安全性,使用像Dynamics Apex这样的工具,或者使用“GROUP_ENFORCED”和“stripInaccessible”这样的方法来确保你的操作是安全的。 总结一下,如果你只是简单地处理单个记录,并且是通过recordId来查询,那么用户界面API会更简单、更安全。但如果你需要更复杂的操作,比如处理多个记录或者使用复杂的查询条件,那么你就需要编写Apex代码,并且要自己处理所有的安全性和权限问题。 希望这个解释能帮助你更好地理解在Salesforce中何时使用用户界面API,何时使用Apex。如果有任何疑问,随时欢迎提问!
让我们来聊聊Salesforce中的电讯服务和电汇服务。这两个概念听起来可能有点复杂,但其实它们都是为了帮助我们更高效地读取和操作Salesforce中的数据。 首先,电讯服务(Wire Service)是一种基于Lightning Data Service的技术,它允许我们在Lightning Web Components(LWC)中轻松地获取Salesforce数据。想象一下,你有一个组件,需要显示一些来自Salesforce的数据。使用电讯服务,你只需要在组件的JavaScript类中使用一个特殊的装饰器`@Wire`,然后指定你想要从哪个数据源(比如`lightning/ui*Api`模块中的某个适配器)获取数据。电讯服务会自动为你提供一个数据流,这个数据流是不可变的,也就是说,一旦数据被提供给你,你就不能直接修改它。每次数据更新时,你都会得到一个新的、更新后的数据版本。 举个例子,假设你想显示一个客户的名称。你可以使用电讯服务来获取这个客户的数据,然后每当客户信息有更新时,你的组件会自动接收到最新的数据,而不需要你手动去刷新或重新获取。 接下来是电汇服务(Apex Wire Service)。这个服务允许你通过调用Apex类来读取Salesforce数据。Apex是Salesforce的一种编程语言,类似于Java,它允许你编写复杂的业务逻辑。使用电汇服务时,你同样可以使用`@Wire`装饰器,但这次你是从Apex类中获取数据。电汇服务也是只读的,也就是说,你只能用它来读取数据,而不能用它来执行创建、更新或删除操作(这些操作通常被称为TLR操作,即Create、Read、Update、Delete中的后三个)。 总结一下,电讯服务和电汇服务都是为了帮助我们更高效地读取Salesforce数据。电讯服务是基于Lightning Data Service的,而电汇服务则是通过Apex类来获取数据。两者都使用`@Wire`装饰器,并且都提供了不可变的数据流,确保你的组件总是显示最新的数据。 希望这个解释能帮助你更好地理解这两个概念!如果你有任何问题,随时问我哦!
同学们,今天我们来聊聊Salesforce中的@Wire装饰器。这个装饰器其实和我们之前学过的普通装饰器非常相似,就像是我们给函数或者方法穿上了一件“小马甲”,让它们具备了一些额外的功能。 @Wire装饰器的主要作用呢,就是帮助我们轻松地从Salesforce平台上读取数据。想象一下,如果你有一个魔法望远镜,可以随时看到远处的风景,那@Wire就是这个望远镜,让你能够随时获取到Salesforce中的数据。 而且,@Wire装饰器还可以使用一些我们熟悉的参数,比如@future和@isTest。这些参数就像是望远镜上的调节旋钮,可以帮助我们更精确地控制数据的读取方式。比如,@future参数可以让我们在后台异步地获取数据,而@isTest参数则可以在测试环境中查看所有数据,而不仅仅是测试数据。 所以,同学们,@Wire装饰器其实并不复杂,它就像是我们的一个小助手,帮助我们更高效地处理Salesforce中的数据。希望大家能够通过这个例子,更好地理解@Wire的用法和它的强大之处。
同学们,今天我们来学习如何在Salesforce中创建一个名为“BearLocity”的组件。这个组件的主要功能是显示熊的位置信息,并且我们会在一个地图上标记出这个位置。 首先,我们需要创建一个HTML文件,命名为`bearLocation.html`。在这个文件中,我们会使用``来创建一个卡片,这个卡片会显示熊的位置信息。卡片的标题我们会动态定义,这样它可以根据不同的熊来显示不同的标题。 接下来,我们会使用``组件来显示地图。我们会在地图上添加一个标记,这个标记就是熊的位置。为了做到这一点,我们需要从Salesforce中获取熊的`recordId`,然后使用这个ID来获取熊的具体位置信息。 在代码中,你会看到我们使用了`{cardTitle}`和`{地图标记}`这样的占位符。这些占位符会在组件加载时被实际的数据替换。`cardTitle`会根据熊的名字动态生成,而`地图标记`则会根据熊的位置信息来设置。 最后,我们会设置地图的缩放级别为12,这样用户可以清晰地看到熊的位置。 这就是我们今天要学习的内容。通过这个简单的组件,我们不仅能够学习如何在Salesforce中使用动态数据,还能学习如何将数据可视化地展示在地图上。希望你们能够通过这个例子,更好地理解Salesforce的组件开发。
让我们继续聊聊如何创建这个“熊位置”组件。今天我们要用到一个很酷的工具,叫做Lightning数据服务。这个工具可以帮助我们轻松地获取熊的名字、纬度和经度,而不需要写一大堆复杂的代码。 首先,我们需要从uiRecordApi中导入一个叫做“getRecord”的方法。这个方法就像是我们的助手,它会帮我们从数据库中获取我们需要的信息。 接下来,我们要为getRecord方法准备一个参数,这个参数是一个字段列表。简单来说,就是告诉getRecord方法我们需要哪些具体的信息,比如熊的名字、纬度、经度等。 使用Lightning数据服务的好处是,我们不需要编写Apex代码,就能直接获取到记录。这大大简化了我们的工作,让我们可以更专注于组件的设计和功能实现。 所以,总结一下,我们今天要做的是:导入getRecord方法,准备好需要的字段列表,然后利用Lightning数据服务来获取熊的相关信息。这样,我们的“熊位置”组件就能显示出每只熊的具体位置了。是不是很简单呢?
让我们继续聊聊关于创建Bear Location组件的一些细节,特别是关于`@recordId`和反应性变量的部分。 首先,`@recordId`这个值是从Lightning App Builder那里注入到我们的组件中的。你可以把它想象成一个“钥匙”,用来打开特定的数据门。这个“钥匙”会被传递给一个叫做Wire服务的工具,Wire服务会根据这个“钥匙”去获取我们需要的数据。 现在,我们来说说反应性变量。反应性变量是Wire服务的一个很酷的特性,它们以`$`符号开头。在我们的例子中,`recordId`是一个公共属性,这意味着它的父组件可以改变它。当`recordId`改变时,Wire服务会自动感知到这个变化,并相应地提供新的数据。 这里有个有趣的地方:我们说Wire服务“提供”数据,而不是“请求”或“获取”数据。这是因为如果数据已经在客户端的缓存中,Wire服务可能不需要再去网络上请求数据。这种情况在同一个页面上有多个组件连接到同一个记录时特别常见。 所以,总结一下,`@recordId`和反应性变量的结合使用,让我们的组件能够智能地响应数据的变化,而不需要每次都去网络上请求数据,这样既高效又节省资源。希望这个解释能帮助你更好地理解这个过程!
让我们继续讲解如何创建Bear Location组件。今天我们要讨论的是如何使用Salesforce的@wire服务来获取数据,并将这些数据转换成我们需要的格式,以便在地图上显示。 首先,我们使用@wire服务来调用getRecord方法,这个方法需要两个参数:recordId和fields。recordId是我们想要获取记录的ID,而fields是我们想要从记录中获取的字段。在我们的例子中,我们想要获取的是Bear记录的Name和Location字段。 当数据从服务器返回时,@wire服务会返回一个包含错误和数据的对象。我们需要检查这个对象,看看是否有错误发生。如果有错误,我们需要处理这个错误。如果没有错误,我们就可以开始处理数据了。 在我们的LoadBear方法中,我们首先检查是否有错误。如果有错误,我们会在控制台打印出错误信息。如果没有错误,我们就开始处理数据。我们从数据中提取出Name、Location的纬度和经度,然后使用这些信息创建一个地图标记。这个地图标记包括位置、标题和描述。位置是由纬度和经度组成的,标题是Bear的名字,描述是Bear的坐标。 最后,我们将这个地图标记放入一个数组中,并将这个数组赋值给this.mapMarkers。这样,我们就可以在闪电地图中使用这个数组来显示Bear的位置了。 这就是我们今天的内容。希望你们能够理解如何使用@wire服务来获取数据,并将这些数据转换成我们需要的格式。如果有任何问题,欢迎随时提问。
让我们一起来回顾一下关于属性和功能的内容,同时我也会介绍一个新的知识点。 首先,我们知道,如果在线服务中使用了反应性变量(这些变量通常以“$”符号开头),那么这些变量就是反应性的。这意味着,当这些变量的值发生变化时,相关的功能会自动更新。 这里有一个新的知识点:每次当你更新一个反应性属性时,所有的getter函数都会重新评估。这很有趣,因为即使某个getter函数并没有直接使用这个反应性属性,它也会被重新评估。这个机制确保了数据的同步和一致性。 从Spring '20版本开始,还有一个变化:最初定义的属性不需要使用装饰器就可以具有反应性。这简化了开发过程,使得属性管理更加直观。 现在,让我们回顾一下装饰器以及getter和setter的作用。装饰器是一种特殊的声明,它可以改变类或属性的行为。getter和setter则是用来获取和设置属性值的函数。通过使用这些工具,我们可以更精确地控制属性的访问和修改。 最后,我建议我们逐行查看这些概念,确保每个人都理解透彻。如果有任何疑问,我们可以稍后再讨论。这样,我们可以确保每个人都能跟上课程的进度,并且对Salesforce的这些高级功能有一个清晰的理解。
同学们,今天我们来学习如何在Salesforce中创建两个新的组件:一个是关于熊的位置,另一个是关于熊的主管信息。 首先,我们来看第一个组件,叫做“bearLocation”。这个组件的主要功能是显示熊的当前位置。我们会使用一个叫做“getRecord”的方法,这个方法需要传入一个“recordId”,这个ID是系统自动注入的,也就是说,我们不需要手动去设置它。通过这个方法,我们可以获取到熊的纬度和经度信息。有了这些信息后,我们就可以在闪电地图上绘制一个标记,这个标记就代表了熊的当前位置。 接下来是第二个组件,叫做“bearSupervision”。这个组件的目的是显示熊的主管信息。同样地,我们会使用“getRecord”方法,并传入“recordId”来获取数据。这次,我们关注的是“supervisorId”,也就是主管的ID。获取到这个ID后,我们会把它传递给一个叫做“Lightning-Record-form”的组件,这个组件会自动显示主管的详细信息。 简单来说,这两个组件都是通过“getRecord”方法来获取数据,然后分别在地图上显示位置和在表单中显示主管信息。这样,我们就可以很方便地管理和查看熊的位置和主管信息了。 希望这个解释对你们有帮助,如果有任何问题,随时提问哦!
同学们,今天我们来学习如何在Salesforce中处理单个记录,并创建两个新的Lightning Web组件。这些组件将显示在熊的详细信息页面上。我们将通过以下步骤来完成这个练习。 首先,我们需要创建一个名为“熊位置”的组件。这个组件的主要功能是在地图上显示熊的位置。想象一下,如果你是一个野生动物保护者,能够在地图上看到熊的具体位置,那该有多方便啊! 接下来,我们还要创建一个名为“熊主管”的组件。这个组件将显示一个可编辑的表格,里面包含了关于熊的主管的信息。这样,你就可以轻松地查看和更新这些信息了。 在创建这两个组件的过程中,我们会学到两个非常重要的概念:闪电数据服务和公共属性。闪电数据服务可以帮助我们更高效地获取和显示数据,而公共属性则允许我们在不同的组件之间共享数据。 完成这些步骤后,我们需要确认所有的更改都已经成功完成。然后,我们将这些声明性的更改提交到本地的存储库中。这样,我们的工作就被安全地保存下来了。 最后,当你看到“已完成第2步:单记录”的消息时,你就知道你已经成功地完成了这个练习。 好了,现在你们可以开始动手操作了。记住,实践是学习的最好方式。祝你们好运!
同学们,今天我们来聊聊为什么有时候你在Salesforce的Lightning App构建器里找不到你的组件。这个问题其实很常见,但解决起来也很简单。 首先,我们要检查一个叫做``的标签。这个标签决定了你的组件是否会在Lightning App构建器中显示出来。如果这个标签的值是`False`,那么你的组件就不会出现在构建器里。所以,你需要确保这个标签的值是`True`。你可以这样设置: ```xml True ``` 这样,你的组件就会出现在Lightning App构建器里了。 接下来,还有一个重要的点,就是`myDomain`。`myDomain`是Salesforce的一个功能,它允许你自定义你的Salesforce实例的URL。如果你的`myDomain`没有部署好,那么你的组件也可能不会显示出来。所以,请确保你的`myDomain`已经正确部署。 总结一下,如果你的组件没有出现在Lightning App构建器里,首先检查``标签,确保它是`True`。然后,确认你的`myDomain`已经部署好了。这两步做好,你的组件就应该能正常显示了。 希望这个解释对你们有帮助!如果有任何问题,随时问我哦。