SOQL 生成器

内容

  • 概述
  • 使用 SOQL Builder
  • 生成查询
  • 在 SOQL Builder 和文本编辑器中查看查询
  • 保存查询结果
  • 在 SOQL Builder 和文本编辑器之间切换

概述

SOQL Builder 作为 Salesforce 扩展包的一部分提供。借助 SOQL Builder,任何人都可以直观地构建、运行和探索查询结果,从而消除构建 SOQL 查询时的猜测。在可视化编辑器中使用单击生成查询,然后使用文本编辑器保存和扩展查询。您可以立即查看查询结果,然后将结果保存到 或 文件中。.csv.json

使用 SOQL Builder

使用 SOQL Builder 构建简单的查询语句,包括:

  • 仅用于一个 sObject 类型的 FROM 子句
  • SELECT 子句用于从选定的 sObject 中选取字段,或 COUNT() 用于执行结果聚合
  • 用于筛选数据的 WHERE 子句
  • 支持 ASC、DESC、NULLS FIRST 和 NULLS LAST 的 ORDER BY 子句
  • LIMIT 子句若要更深入地了解 SOQL 语法或在文本编辑器中构建更复杂的查询,请参阅 SOQL 和 SOSL 参考指南。

注意:

  • 您可以在 SOQL Builder 中运行复杂的查询,即使您看到“不支持的语法”信息性消息。
  • WHERE 子句可能非常复杂。SOQL Builder 支持简单的 WHERE 表达式。可以使用 AND 或 OR 组合条件,但不能同时使用两者。

建立

  • 确保您已通过默认组织的身份验证。如果对默认组织的身份验证已过期,则无法使用 SOQL Builder。
  • 在 VS Code 中,打开一个 Salesforce DX 项目。
  • 授权要查询其对象的组织。

在 SOQL Builder 中打开现有 SOQL 文件

DX 项目在目录中有一个示例文件。但是,您可以在任何目录中创建和存储文件。accounts.soql<project-folder>/scripts/soql.soql

  1. (如有必要)创建文件。.soql
  2. 单击该文件。.soql
  3. 单击“在 SOQL Builder 和文本编辑器之间切换”图标。

还可以在 SOQL Builder 中从 VS Code 菜单打开文件。右键单击文件名,选择“打开方式”,然后选择“SOQL Builder”。.soql

启动 SOQL Builder 并创建查询

  1. 在命令面板中,运行 SFDX: Create Query in SOQL Builder
  2. 单击“文件”>“保存”以保存查询。请确保保留文件扩展名。.soql

生成查询

在生成查询时,请观察 SOQL Builder 在同时更新文件时显示查询语法。生成完语句后,单击“运行查询”以查看输出。.soql

您可以从下拉列表中选择对象和字段,也可以键入以缩小列表结果范围。您只能选择一次对象或字段。如果已选择某个值,则该值不会显示在下拉列表或搜索结果中。

使用 LIKE 运算符进行筛选

筛选结果时,可以通过使用 LIKE 运算符(使用通配符来匹配部分文本字符串)来进一步缩小这些结果的范围并确定这些结果的目标。此查询仅返回以 开头的姓氏。mc

SELECT AccountId, FirstName, lastname
FROM Contact
WHERE lastname LIKE 'mc%'

您可以使用 LIKE 构建自己的过滤器,也可以选择这些预构建选项之一。

  • 开头为
  • 结尾为
  • 包含

查看 COUNT 结果

由于 COUNT() 是一个聚合函数,因此将删除所有其他选定字段。如果您不打算选择 COUNT,则可以从主菜单中撤消该操作。您可以通过添加筛选器(WHERE 子句)来进一步优化结果。运行查询时,返回的行数与记录总数相对应。在此示例中,COUNT 为 3。

局限性:

  • SOQL Builder 目前支持以交互方式构建简单查询。但是,您仍然可以打开更复杂的文件并从 SOQL Builder 中运行查询,但必须使用文本编辑器来更新它。.soql
  • 选择字段时,一次只能选择(单击)一个字段。
  • 每次单击“运行查询”时,都会显示“SOQL 查询结果”选项卡。无法将结果与特定查询语句相关联。SOQL Builder 编辑器会反映您最近的更新。
  • 在单个 SOQL 查询中最多可以检索 2000 条记录。

下一个:

  • 保存(文本)文件以避免丢失更新。.soql
  • 将查询结果输出保存到 or 文件。.csv.json

在 SOQL Builder 和文本编辑器中查看查询

拆分视图以在 SOQL Builder 和文本编辑器中查看查询。

  1. 右键单击该选项卡,然后选择其中一个“拆分”选项。
  2. 右键单击新选项卡,选择“重新打开编辑器”,然后选择“文本编辑器”。

保存查询结果

单击其中一个“保存”图标,将查询结果另存为所选位置的 或 文件。若要避免将这些文件部署到组织或将其添加到源代码管理中,请记住在文件中包含已保存文件的任何路径。.csv.json.gitignore

在 SOQL Builder 和文本编辑器之间切换

您可以在 SOQL Builder 和文本编辑器中查看 SOQL 语句之间轻松切换。

编写 SOQL 查询

内容

  • SOQL文件
  • 代码完成
  • 使用 SOQL Builder 生成和运行查询
  • 执行 SOQL 文本
  • 内联执行 SOQL

可以使用 SOQL 查询代码段查看 SOQL 查询的代码完成建议。

要了解如何使用 Salesforce 对象查询语言 (SOQL),请参阅 SOQL 和 SOSL 参考。

注意:SOQL 语言支持目前处于测试阶段。如果发现任何 bug 或有反馈,请打开 GitHub 问题。有关更多信息,请参阅我们的路线图。

SOQL文件

VS Code 支持在 Apex 文件和独立文件中编写 SOQL。写入文件时,我们建议将文件位于 your 中注册的目录之外,因为这不是要部署到组织的文件。该文件的目的是提供一种在将 SOQL 查询导入 Apex 代码之前生成和测试 SOQL 查询的方法。默认情况下,新项目具有一个包含示例文件的文件夹。您可以使用此文件夹保存所有 SOQL 查询。.soql.soqlsfdx-project.json.soqlscripts/soqlaccounts.soql

代码完成

VS Code 支持嵌入在 Apex 文件和文件中的 SOQL 的代码完成。若要使用此功能,必须刷新 SObject 定义,以便 SOQL 语言服务器可以提供代码完成建议。从命令面板运行。.soqlSFDX: Refresh SObject Definitions

  • 若要在建议之间导航,请使用箭头键。
  • 要根据建议自动完成,请按 Enter 键。

使用 SOQL Builder 生成和运行查询

使用 SOQL Builder 生成并运行 SOQL 查询。请参阅 SOQL Builder。

执行 SOQL 文本

要执行 SOQL,您只需选择文本并运行命令 。您可以选择针对 REST 或工具 API 执行查询。SFDX: Execute SOQL Query with Currently Selected Text

执行查询后,结果将显示在输出窗格中。

内联执行 SOQL

要编写查询并执行它而不将其保存到文件中,您可以使用该命令并直接在命令栏中输入 SOQL。结果将显示在输出窗格中。SFDX: Execute SOQL Query...

SOQL 任务

内容

  • 使用 SOQL 查询编辑器创建查询以列出具有纽约州地址的帐户
  • 资源

这是使用 SOQL 的示例任务存储库,您可以使用 Salesforce 扩展在 Code Builder 或 VS Code 中完成这些任务。我们将继续添加到此列表中,因此请确保您经常访问此主题。

使用 SOQL 查询编辑器创建查询以列出具有纽约州地址的帐户

  1. 在命令面板中,运行 SFDX: Create Query in SOQL Builder 以打开 SOQL Query Builder。
  2. 单击“文件”>“保存”以保存查询。请确保保留文件扩展名。.soql
  3. 单击“在 SOQL 生成器和文本编辑器之间切换”图标 () 以重新打开 SOQL 查询生成器。
  4. 在字段中,搜索对象,然后选择该对象。FromAccount
  5. 在 中,选择 、 和 。FieldsNameBillingStateBillingCountry
  6. 在字段中,选择 ,然后设置:FilterANDBillingCountry = USA AND BillingState = NY
  7. 单击“运行查询”。

此时将弹出“查询结果”选项卡。然后,您可以将结果保存为 或 格式。csvjson

资源

指南:

登山口:

LWC概述

适用于 VS Code 的 Lightning Web 组件扩展利用编辑器的内置代码导航和语言功能,以便您可以高效地构建 Lightning Web 组件。

利用以下适用于 VS Code 的 Lightning Web 组件扩展功能:

  • 代码补全
  • Linting
  • 查看有关悬停的文档
  • 代码导航

代码补全

Lightning Web 组件扩展基于 VS Code 的 HTML 和 JavaScript 语言功能构建,包括语法突出显示、括号匹配以及使用 IntelliSense 完成特定于语言的代码。该扩展为以下 Lightning Web 组件资源提供代码完成。

代码片段

代码片段可用于基架类和接口定义,以及各种语句(如循环和条件语句等)。在处理 LWC HTML 文件时,请从命令面板运行以查看可用代码段。您还可以通过键入组件名称(例如,)。Insert Snippetaccordion

以下存储库中提供了用于 Salesforce 开发的开箱即用代码段:

  • Apex 代码片段
  • 用于 LWC 开发的 HTML 代码片段
  • 用于 LWC 开发的 JavaScript 代码片段

@salesforce作用域模块

Lightning 组件通过作用域模块访问 Salesforce 值。Lightning Web 组件扩展为以下作用域模块提供代码完成:

  • @salesforce/resourceUrl
  • @salesforce/contentAssetUrl
  • @salesforce/apex
  • @salesforce/user

要了解有关模块的更多信息,请参阅《Lightning Web 组件开发人员指南》中的@salesforce模块了解更多信息。@salesforce

在此示例中,VS Code 显示完成语句时可供选择的可能静态资源名称。import

下面是 的代码完成。@salesforce/schema

下面是 Apex 控制器的代码完成示例。

闪电 API

VS Code 还完善了 Lightning API 资源,例如 和 .有关详细信息,请参阅《照明 Web 组件开发人员指南》中的 lightning/ui*Api Wire和功能。lightning/uiRecordApilightning/uiObjectInfoApi

Lightning Web 组件语法

VS Code 完善了 Lightning Web Components 框架的反应式属性和连线服务。有关详细信息,请参阅《Lightning Web 组件开发人员指南》中的反应性属性和使用线路服务获取数据。

下面是在装饰器中包含 Apex 函数的代码完成示例。getContactList@wire

HTML 属性和标记中的命名空间补全

还为 和 命名空间中组件的 HTML 标记和属性提供了代码完成功能。在这里,VS Code 使用 ,完成其属性。lightningcc-view-sourcesource

查看有关悬停的文档

当您将鼠标悬停在命名空间中的标准 Lightning Web 组件上时,VS Code 会显示文档,如果您为自定义组件提供文档,则会显示命名空间。以下是显示的文档。该下拉列表还提供了一个链接,用于在组件库中查看组件。lightningclightning-layout

Linting

Linting 会在您编辑时提供有关格式错误或外观可疑的代码的错误。 VS Code 强制执行 Salesforce 的 ESLint 规则。要激活 ESLint,请从命令行安装它。有关说明,请参阅 Lightning Web 组件 ESLint 插件和 Lightning Web 组件 ESLint 配置存储库。

在此示例中,当将鼠标悬停在 上时,linter 会报告您不能命名以“on”开头的 API 属性。onpress

窥视问题和快速修复

VS Code 具有一系列操作来快速解决问题和重构代码,包括快速修复和速览问题。若要了解详细信息,请参阅 VS Code 文档中的重构。

单击错误消息上的“查看问题”将突出显示 linter 发现错误的行。如果邮件显示存在多个错误,请单击邮件右上角的向下箭头以查看其他错误。

单击“快速修复”可提供用于禁用行或文件中有效 API 名称警告的选项,以及指向文档的链接。您可以通过单击旁边的黄色灯泡图标来查看这些相同的选项。@api onpress;

错误和警告

悬停时显示文件和编译器错误。在这里,当鼠标悬停在上面时,错误消息说必须声明它。@track

代码导航

VS Code 提供了预览或跳转到代码中定义的快捷方式,而不会丢失当前正在处理的代码。有关详细信息,请参阅 VS Code 文档的“代码导航”部分。

若要预览定义,请按住 Ctrl(Windows 或 Linux)或 Command (macOS),然后将鼠标悬停在要查看其定义的项目上。此示例显示命名空间组件源的预览。c

若要查看定义,请右键单击该项并选择“速览定义”,或按 Alt+F12

若要跳转到定义的位置,请右键单击该项,然后选择“转到定义”,或按 F12

支持 js-meta.xml

VS Code 通过集成红帽对 js-meta.xml 的 XML VSCode 扩展来提供 IntelliSense 支持。它支持扩展开箱即用的功能,例如但不限于自动建议、语法错误报告、重命名支持、自动代码生成等。

快速启动 LWC 开发

概述

创建一个名为 LWC 的组件,用于在应用中显示联系人姓名和电话号码。您将从名为 的 Apex 类中获取要显示的联系信息。contactListContactController

在开始之前,请安装 Salesforce Extensions for Desktop 或 Set Up Code Builder

添加查询联系人的 Apex 类

  1. 在 VS Code 中,运行命令 SFDX:从命令面板创建项目以创建 Salesforce DX 项目(如果没有)。
  2. 登录到要添加 LWC 的组织。
  3. 从命令面板运行 SFDX: Refresh SObject Definitions 命令,以获取 SObjects 相关代码的完成建议。
  4. 从命令面板中,运行 SFDX: Create Apex Class 并创建一个名为 .ContactController

接下来,让我们添加一个调用到此类的方法。使此方法既是公共的,又是静态的。因为它是一个静态方法,所以你不需要创建类的实例来访问该方法,你只需使用类的名称,后跟点 () 和方法的名称。此方法查询联系人对象上的一组字段。将此代码粘贴到:getContacts.ContactController.cls

public with sharing class ContactController {
    @AuraEnabled(cacheable=true)
    public static List<Contact> getContacts() {
        return [
SELECT
Id,
Name,
Email,
Phone
FROM Contact
WITH SECURITY_ENFORCED
LIMIT 10
];
    }
}

接下来,添加显示查询字段的 LWC 组件。

创建显示联系人信息的 LWC 组件

  1. 从命令面板中,运行 SFDX:创建 Lightning Web 组件,并创建在默认位置调用的组件。contactList
  2. 在文件中,剪切并粘贴以下代码,然后保存文件:contactList.html
<template>
    <lightning-card title="Contact List">
        <template if:true={contacts.data}>
            <template for:each={contacts.data} for:item="contact">
                <div class="slds-var-p-horizontal_medium" key={contact.Id}>
                    <p>{contact.Name}, {contact.Phone}</p>
                </div>
            </template>
        </template>
        <template if:true={contacts.error}>
            <p>{contacts.error}</p>
        </template>
    </lightning-card>
</template>

  1. 在文件中,剪切并粘贴以下代码并保存:contactList.js
import { LightningElement, wire } from 'lwc';
import getContacts from '@salesforce/apex/ContactController.getContacts';

export default class ContactList extends LightningElement {
    @wire(getContacts) contacts;
}
  1. 将以下代码剪切并粘贴到文件中并保存:contactList.js-meta.xml
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
 	<apiVersion>57.0</apiVersion>
 	<isExposed>true</isExposed>
 	<targets>

   		<target>lightning__HomePage</target>
 	</targets>
</LightningComponentBundle>

  1. 右键单击“SFDX:将源部署到组织”下的默认文件夹,然后运行“将源部署到组织”。force-app/main

在 Lightning Experience 中将新组件添加到您的应用程序

  1. 在 Visual Studio Code 中,打开命令面板并运行 SFDX: Open Default Org。 这将在单独的浏览器中打开您的组织。
  2. 应用启动器中,找到并选择销售
  3. 点击设置齿轮,然后选择编辑页面
  4. 将 Lightning Web 组件从“Lightning 组件”列表的“自定义”区域拖动到“页面画布”的顶部。contactList
  5. 点击保存
  6. 单击“激活”。
  7. 单击 Assign as Org Default(分配为组织默认值)。
  8. 点击保存
  9. 再次单击“保存”,然后单击“后退”箭头返回页面。
  10. 刷新页面以查看新组件。

测试 Lightning Web 组件

内容

  • 探索您的 LWC 测试
  • 为 Jest 测试添加调试配置
  • 在文件内运行、调试或观看 Jest 测试

安装 sfdx-lwc-jest,以便准备好 Lightning Web 组件的 Jest 测试运行程序。

探索您的 LWC 测试

LWC 测试边栏提供了一个中心位置,供你对你编写的代码运行测试。可以运行一个测试用例、一个文件中的测试用例或所有测试。您还可以查看上次测试运行的结果,并直接从测试导航到相应的代码行。要访问测试侧边栏,请单击视图栏中的烧杯图标(悬停文本:测试)。如果未看到此图标,请确保在 VS Code 中打开的项目在其根目录中包含 sfdx-project.json 文件。

若要运行选定的测试,请将鼠标悬停在测试用例或文件的名称上,以显示 LWC 测试视图中的播放图标。单击播放图标(悬停文本:SFDX:运行 Lightning Web 组件测试用例,SFDX:运行 Lightning Web 组件测试文件)以运行测试用例或文件中的所有测试用例。要运行视图中的所有测试,请单击 LWC 测试视图顶部较大的播放图标(悬停文本:SFDX:运行所有 Lightning Web 组件测试)。

测试结果记录如下:绿色表示通过测试,红色表示测试失败,橙色表示跳过测试。

若要跳转到测试文件或测试用例,请点按边栏中的测试名称。

要清除测试结果,请单击边栏顶部的刷新图标(悬停文本:SFDX:刷新 Lightning Web 组件测试资源管理器)。

为 Jest 测试添加调试配置

添加 Jest Tests 调试配置以自动更新 。作为先决条件,必须安装 node.js 和 npm。launch.json

注意:如果您从空项目开始,请先安装 sfdx-lwc-jest,然后使用所述步骤添加测试配置。

要快速将 Jest Tests 配置添加到您的标准项目中:

  1. 转到活动栏中的“运行和调试”。
  2. 从下拉列表中选择“添加配置”。
  3. 选择 Debug: LWC Jest Tests
  4. 保存更新后的 .launch.json
  5. 从“运行”视图的“配置”下拉列表中选择“调试:LWC Jest 测试”配置,然后开始调试。

在文件内运行、调试或观看 Jest 测试

你可以在文件中的上下文操作中运行或调试 Jest 单元测试,也可以通过单击编辑器窗口右上角菜单栏中的按钮来运行或调试 Jest 单元测试。在“终端”面板中查看测试结果。

运行 Jest 测试

要运行单个 Jest 测试用例,请导航到该文件,然后单击 Jest 测试用例定义上方的 Run Test.test.js

要运行 Jest 测试文件中的所有测试用例,请单击编辑器窗口右上角菜单栏上的播放图标。

调试 Jest 测试

要调试单个 Jest 测试用例,请导航到该文件,然后单击 Jest 测试用例定义上方的 Debug Test.test.js

要调试 Jest 测试文件中的所有测试用例,请单击编辑器窗口右上角菜单栏上的调试图标。

将启动 VS Code 的内置调试器,以便在 VS Code 中调试测试。您可以设置断点,通过调试操作控制调试会话,或使用调试控制台来计算表达式。

观看 Jest 测试

要观看 Jest 测试文件,请单击编辑器窗口右上角菜单栏上的眼睛图标。切换图标以停止观看。在观看 Jest 测试文件时,如果您编辑 Jest 测试文件或 Jest 测试文件正在测试的 LWC JavaScript 文件,则测试文件将重新运行。

Linting

内容

  • 先决条件
  • 安装
  • 配置 Linting 规则
  • 添加其他脚本
  • 另见

Linting 在编辑时提供有关格式错误的代码的错误。 VS Code 强制执行 Salesforce 的 ESLint 规则。

先决条件

使用 SSL 支持构建的 Node.js 的活动 LTS 版本。

安装

对于新项目

如果使用该命令创建 SFDX 项目,则您的项目将包含一个已包含 ESLint 插件的文件。sfdx force:project:createpackage.json

  1. 要安装 ESLint 插件和其他依赖项,请在项目目录中运行。npm install
  2. 配置 ESLint 插件规则(可选)。
  3. 若要运行 linting,项目中必须有组件。要开始 linting,请运行 。npm run lint:lwc

对于现有项目

  1. 验证您的项目是否具有这些配置。如果您没有配置,请运行 .package.jsonpackage.jsonnpm install eslint @salesforce/eslint-config-lwc --save-dev "scripts": { "lint": "npm run lint:lwc", "lint:lwc": "eslint force-app/main/default/lwc" } "devDependencies" { "@salesforce/eslint-config-lwc": "3.4.0", "eslint": "^5.16.0" }
  2. 如果项目没有 package.json 文件,请复制该文件并将其添加到项目目录。
  3. 验证您的项目是否具有此 .eslintignore 文件。此文件指定哪些文件不进行 lint 检查。如果您的项目没有它,请将其添加到您的项目目录中。
  4. 验证您的项目是否具有此 .eslintrc.json 文件。此文件指定 linting 配置级别。如果您的项目没有它,请将其添加到您的项目目录中。
  5. 要安装 ESLint 插件和其他依赖项,请在项目目录上运行。npm install
  6. 若要运行 linting,项目中必须有组件。要开始 linting,请运行 。npm run lint:lwc

配置 Linting 规则

ESLint 包括三个配置级别。缺省级别为 。@salesforce/eslint-config-lwc/recommended

要更改配置级别,请在.eslintrc.json

{
 "extends": ["@salesforce/eslint-config-lwc/recommended"]
}
  • @salesforce/eslint-config-lwc/base此配置可防止 Lightning Web 组件的常见陷阱,并强制实施其他 Salesforce 平台限制。
  • @salesforce/eslint-config-lwc/recommended此配置可防止常见的 Javascript 陷阱,并强制执行所有最佳实践。
  • @salesforce/eslint-config-lwc/extended此配置限制了某些 Javascript 语言功能的使用,这些功能在较旧的浏览器(如 IE11)中有时速度较慢。为了在较旧的浏览器上支持新的 Javascript 语法和语言功能,Lightning Web 组件编译器转换了 Lightning Web 组件模块。

有关 linting 规则和单独使用它们的更多详细信息,请参阅 ESLint 插件 Github 存储库。

添加其他脚本

该部分包括一些已预先配置为运行 ESLint 的脚本。若要添加自己的,请参阅 npm 文档。"scripts"package.json

使用 Salesforce 扩展进行 Apex 开发

内容

  • 概述
  • 其他资源

概述

Apex 是一种强类型、面向对象的编程语言,结合对 Salesforce API 的调用,允许 Salesforce 开发人员添加业务逻辑来操作其组织中的数据。 Salesforce 扩展包附带了大量工具,用于编写、测试、重构和调试 Apex 代码。应用内帮助使低代码开发人员和管理员能够轻松编写、测试和调试 Apex 代码,例如,从他们使用 Flow Builder 等工具创建的事件激活的触发器。

您可以使用 Salesforce Extensions 执行以下操作:

  • 快速创建 Apex 类、测试类和触发器。
  • 在各种类型的调试器之间进行选择,以满足调试要求。
  • 轻松执行 Anonymous Apex。

其他资源

  • Apex 开发人员指南
  • Salesforce DX 开发人员指南
  • 快速入门:使用 Salesforce 扩展进行 Apex 开发

登山口:

  • Apex 触发器
  • 使用 Apex Replay Debugger 查找并修复 Bug

快速入门 Apex 开发

概述

完成此快速入门,即可创建、测试和调试使用 Apex 类创建的工作流,并触发 Apex 触发器。

您将创建一个名为 的自定义对象,并向该自定义对象添加一个名为的自定义字段。您将使用 Apex 更新和测试更新的 Price 字段,并了解如何使用 Salesforce 扩展使用 Apex Code。BookPrice

在开始之前,请安装 Salesforce Extensions for Desktop 或 Set Up Code Builder

创建自定义对象

  1. 登录到您的沙盒或开发人员组织。
  2. 转到“设置”>“对象管理器”>创建>自定义对象
  3. 输入标签。Book
  4. 输入复数标签。Books
  5. 点击保存。
  6. 在“书籍详细信息”页面的“自定义字段和关系”部分中,单击“新建”。
  7. 选择数据类型,然后单击下一步Number
  8. 输入字段标签。Price
  9. 在长度文本框中输入。16
  10. 在小数位文本框中输入,然后单击下一步2
  11. 单击“下一步”接受字段级安全性的默认值。
  12. 点击保存

添加 Apex 类

  1. 在 VS Code 中,使用组织选取器或命令面板连接到将自定义对象添加到的组织。
  2. 从命令面板运行 SFDX: Refresh SObject Definitions 命令,以获取 SObjects 相关代码的代码完成建议。
  3. 单击活动栏中的云图标以打开组织浏览器。
  4. 向下滚动到“自定义对象”并找到该对象。单击检索图标以运行 SFDX:从组织检索源Book_c
  5. 从命令面板中,运行 SFDX:Create Apex Class 并创建一个名为 .MyBooks
  6. 添加对此类调用的方法。applyDiscount

使此方法既是公共的,又是静态的。因为它是一个静态方法,所以你不需要创建类的实例来访问该方法,你只需使用类的名称,后跟一个点 (.) 和方法的名称。

此方法采用一个参数,即分配给变量 books 的记录列表。该方法循环访问书籍列表,并对当前书籍价格应用 10% 的折扣:

public with sharing class MyBooks {
    public MyBooks() {

    }
    public static void applyDiscount(Book__c[] books) {
        for (Book__c b : books){
           b.Price__c *= 0.9;
        }
     }
}

接下来,添加调用此方法的触发器。applyDiscount

添加 Apex 触发器

Apex 触发器是在从数据库插入、更新或删除特定类型的记录之前或之后执行的一段代码。每个触发器都使用一组上下文变量运行,这些变量提供对导致触发器触发的记录的访问。

  1. 在命令面板中,运行 SFDX: Create Apex Trigger 并创建一个名为 的新类。MyBooksTrigger
  2. 将默认模板更新为以下触发器定义:
trigger MyBooksTrigger on Book__c (before insert) {

   Book__c[] books = Trigger.new;

   MyBooks.applyDiscount(books);
}

我们现在有了更新所有插入的书籍价格所需的代码。接下来,让我们添加一个测试类并添加一个单元测试。单元测试是编写代码的重要组成部分,并且是必需的。除了确保代码的质量外,单元测试还使您能够满足部署或打包 Apex 的代码覆盖率要求。要为 Salesforce AppExchange 部署 Apex 或打包 Apex,单元测试必须覆盖至少 75% 的 Apex 代码,并且这些测试必须通过。

编写单元测试

现在添加一个具有一个测试方法的测试类。然后运行测试并验证代码覆盖率。测试方法练习并验证触发器和类中的代码。此外,它还使您能够达到触发器和类的 100% 代码覆盖率。 在我们的示例中,创建一个测试类,该类插入一个新的 book 对象,该对象会触发我们之前编写的 Apex 触发器。 要创建测试类,请执行以下操作:

  1. 在命令面板中,运行 SFDX:Create Apex Class 并创建一个名为 .MyBooksTestClass
  2. 将以下代码粘贴到文件中:MyBooksTestClass.cls
@isTest 
private class MyBooksTestClass {
    static testMethod void validateMyBooks() {
       Book__c b = new Book__c(Name='Behind the Cloud', Price__c=100);
       // Insert book
       insert b;    
       // Retrieve the new book
       Book b2 = [SELECT Price__c FROM Book__c WHERE Id =:b.Id];
      //Confirm that the price has been updated correctly
       System.assertEquals(90, b2.Price__c);
      }
}

注意:此测试类是使用注释定义的。我们建议以这种方式定义的类仅包含测试方法以及支持这些测试方法所需的任何方法。创建用于测试的单独类的一个优点是,使用 定义的类不计入组织 6 MB 的 Apex 代码限制。还可以将批注添加到单个方法中。有关更多信息,请参见 isTest 注释和执行调控器和限制。@isTest@isTest@isTest

  1. 若要运行编写的测试,必须将代码部署到组织。在文件中单击鼠标右键,然后运行 SFDX: Deploy This Source to Org 以部署代码。
  2. 单击文件中的“运行所有测试”以测试代码。MyBooksTestClass

Apex 语言服务器

内容

  • 与 Apex 语言服务器集成
  • Apex 语言服务器状态
  • 重置 Apex 索引
  • 另见

Apex 语言服务器是一种与 IDE 无关的方法,用于工具访问代码编辑功能,例如代码完成、转到定义、查找所有用法和重构。Apex 语言服务器是 Salesforce 扩展包的一部分。它为 Salesforce Extensions for VS Code 提供了一种强大的方法来实现其他 IDE 也可以访问的 Apex 分析器。

Apex 语言服务器是语言服务器协议 3.0 规范的实现。语言服务器协议允许工具(在本例中为 VS Code)与语言智能提供程序(服务器)进行通信。我们使用此通用规范构建了 Apex 语言服务器,使我们的工具合作伙伴能够提高其工具的智能性。

有关更多信息,请观看我们的 Dreamforce ’17 演示视频,通过语言服务器为所有 IDE 构建强大的工具。

与 Apex 语言服务器集成

如果您是希望与 Apex 语言服务器集成的开发人员,请使用 apex-jorje-lsp.jar 文件。

有关初始化 Apex 语言服务器并与之通信的示例,请参阅 languageServer.ts 文件。

Apex 语言服务器状态

将鼠标悬停在状态栏中可查看 Apex 语言服务器的当前状态。若要始终查看状态,请固定状态消息。Apex 语言服务器状态现在在状态栏中始终可见,直到取消固定。{}

重置 Apex 索引

若要清除 Apex 语言服务器的索引,请删除该目录并重新启动 VS Code。PROJECT_DIR/.sfdx/tools/<Salesforce Release>

另见

  • 语言服务器协议规范
  • 语言服务器协议 – Eclipse Newsletter 2017 年 5 月
  • VS Code 的语言服务器协议实现
  • Langserver.org – 有关其他语言服务器和客户端的信息,例如 Atom、Sublime、Vim 等

编写 Apex 代码的工具

内容

  • 代码补全
  • 代码片段
  • 自定义元数据模板
  • SObjects 的 Intellisense
  • 转到定义
  • 查找所有参考资料
  • 大纲视图
  • 语法错误
  • 快速修复
  • 匿名顶点

使用适用于 VS Code 的 Apex 扩展访问代码编辑功能,例如代码完成、转到定义、查看 Apex 类和触发器的大纲、重构以及查找代码中的语法错误。

代码补全

当您在 Apex 类或触发器中工作时,Apex 扩展会提供上下文相关的建议。键入时,自动完成将列出方法或变量等成员。自动完成列表还显示建议的文档。使用以下密钥:

  • Ctrl+空格键查看代码完成建议
  • 用于在建议之间导航的箭头键
  • 输入键以从建议中进行选择

如果要更改建议的预选方式,请参阅 IntelliSense – 建议选择。

代码片段

代码片段可用于基架类和接口定义,以及各种语句(如循环和条件语句等)。在 Apex 类或触发器中工作时,请从命令面板运行以查看可用代码片段。您还可以将这些代码片段作为代码完成建议进行查看。Insert Snippet

以下存储库中提供了用于 Salesforce 开发的开箱即用代码段:

  • Apex 代码片段
  • 用于 LWC 开发的 HTML 代码片段
  • 用于 LWC 开发的 JavaScript 代码片段

示例自定义代码段

片段的真正力量在于能够自定义片段供自己使用。按照以下步骤创建自定义 Apex 代码段,以便快速编写简单的 SOQL 查询:

  1. 从命令面板运行“代码段:配置用户代码段”命令。
  2. 选择打开文件。apex.json
  3. 将以下代码片段代码添加到文件中:"SOQL" : { "prefix": "soql", "body": [ "[SELECT ${1:field1, field2} FROM ${2:SobjectName} WHERE ${3:clause}];" ], "description": "Apex SOQL query" }
  4. 保存文件。
  5. 在 Apex 类文件中使用此代码段,方法是键入“soql”并选择将此代码段添加到代码中。
  6. 代码片段将添加到您的 Apex 文件中。[SELECT field1, field2 FROM SobjectName WHERE clause];

有关代码段的详细信息,请参阅 Visual Studio Code 中的代码段。

自定义元数据模板

除了 VS Code 中提供的通用代码片段功能外,还可以使用自定义模板为 Apex 类或触发器创建新的元数据。有关如何设置自定义模板的信息,请参阅自定义代码模板。下面是将模板用于 Apex 类的示例:

  1. 使用自定义代码编辑文件:DefaultApexClass.cls
//Copyright (c) <year><copyright holder>

public with sharing class <%= apiName %> {
      public <%= apiName %>(String prop) {
   this.prop = prop;
      }
  @AuraEnabled
    public static List<SObject> getRecords(){
      try {
          return [Select Id from Sobject];
      } catch (Exception e){
          throw new AuraHandledException(e.getMessage());
      }
    }
}
  1. 从命令面板运行 SFDX: Create Apex Class 命令。
  2. 输入文件名。ApexClass
  3. 接受默认目录位置。

确认该文件包含您的自定义代码。ApexClass.cls

SObjects 的 Intellisense

若要确保 Intellisense 功能正确提示完成建议,必须刷新 SObject 定义。从命令面板运行 SFDX: Refresh SObject Definitions 命令。

您现在可以预览、查看或转到以下定义:

  • 用户定义的 Apex
    • 类(来自扩展类的定义)
    • 构造 函数
    • 接口(来自实现类的定义)
    • 方法
    • 性能
    • 变量(局部变量和类变量)
  • 标准对象
    • 字段(标准字段和自定义字段)
    • 对象定义
  • 自定义对象
    • 领域
    • 对象定义

刷新 SObject 定义时,扩展使用默认组织生成 Apex 类。这些类表示当前用户有权访问的标准对象和自定义对象。我们建议您不要编辑这些具有代表性的 Apex 类,因为这些类是只读的。如果修改了这些建议,可能会影响自动完成建议。此外,刷新 SObject 定义时,更改也会丢失。

每当刷新 SObject 定义时,都会删除并重新生成具有代表性的 Apex 类。您可以通过更新对象和文件来修改 SObjects;或者通过在默认组织中以声明方式进行更改。修改 SObjects 后,请确保同步本地项目和默认组织。.object-meta.xml.field-meta.xml

首次启动 Salesforce CLI 集成扩展(它是 Salesforce 扩展包的一部分)并启用该设置时,如果您的项目不包含任何 Apex 类,则会自动执行 SFDX: Refresh SObject Definitions 命令。添加或编辑标准对象或自定义对象或其字段后,请确保运行此命令。salesforcedx-vscode-apex.enable-sobject-refresh-on-startup

转到定义

Apex 扩展为用户定义的 Apex 提供转到定义支持,例如类和方法、标准对象和自定义对象。

  • 要预览定义,请按住 Ctrl(Windows 或 Linux)或 Cmd (macOS),然后将鼠标悬停在要查看其定义的项目上。
  • 要查看定义,请右键单击该项目并选择“速览定义”,或按 。Alt+F12
  • 若要跳转到定义的位置,请右键单击该项目,然后选择“转到定义”,或按 。F12

查找所有参考资料

您可以找到对用户定义的 Apex 的所有引用,例如类、类变量、枚举、接口、方法和属性。要查找参考文献,请右键单击该项目并选择“转到参考文献”或按 ;或者右键单击该项目,然后选择“查找所有引用”。参考结果将显示在编辑器窗口的左窗格中。Shift+F12

大纲视图

Apex 大纲视图显示在编辑器中打开的 Apex 类或触发器的结构。

  • 要查看文件中的符号列表,请按 (Windows 或 Linux) 或 Cmd+Shift+O (macOS)。Ctrl+Shift+O
  • 要转到其中一个符号,请从列表中选择它。

侧栏中的“资源管理器”还提供“大纲”视图,以帮助您处理项目。

语法错误

任何语法错误(如缺少分号或括号)都会在编辑器中用红色波浪线标记。“问题”面板还列出了语法错误。若要转到包含语法错误的源文件,请双击该错误。

快速修复

当您引用未在源代码中声明的方法时,请使用“快速修复”小组件自动声明该方法。

可以通过以下方式调用声明缺失的方法快速修复:

  • 单击未声明的方法的名称时,编辑器窗口的左侧会出现一个灯泡。单击灯泡,然后单击“yourClass”中的“创建方法”yourMethod“以进行快速修复。
  • 将鼠标悬停在方法名称上,然后在弹出窗口中单击“快速修复”。然后,单击“yourClass”中的“创建方法”yourMethod“以进行快速修复。

注意:“快速修复”小组件的键盘快捷键是 。在 macOS 以及 Windows 和 Linux 中。Cmd+Ctrl+

匿名顶点

在项目中保留 Apex 代码以执行某些任务是很常见的。默认情况下,新项目具有包含示例文件的文件夹顶点。我们建议您使用此文件夹创建使用文件扩展名的 Anonymous Apex 文件。scripts/hello.apex.apex

可以通过两种方式在 Visual Studio 代码中执行 Anonymous Apex:You can execute Anonymous Apex in Visual Studio code in two ways:

  1. 选择任何 Apex 代码并运行命令 SFDX: Execute Anonymous Apex with Currently Selected Text
  2. 运行命令 SFDX: Execute Anonymous Apex with Editor Contents 以执行文件的整个上下文。

在这两种情况下,执行的代码的结果都会打印到输出窗格中。

在项目中保留 Apex 代码以执行某些任务是很常见的。默认情况下,新项目具有一个包含示例文件的文件夹。建议使用此文件夹创建具有文件扩展名的 Anonymous Apex 文件。scripts/apexhello.apex.apex

Apex 测试

内容

  • 探索您的 Apex 测试
  • 从文件内运行 Apex 测试

Apex 扩展允许您运行 Apex 测试来验证代码的功能。

探索您的 Apex 测试

侧栏中的“测试”视图提供了多种功能,例如 LWC 测试和 Apex 测试。若要访问“测试”视图,请单击 VS Code 编辑器左侧“活动栏”中的烧杯图标 ()。如果未看到此图标,请确保项目的根目录中包含文件。如果“测试”视图为空,请检查 Java 设置是否配置正确。sfdx-project.json

使用 Apex 测试功能可以运行一个测试方法、一个类中的测试方法或所有 Apex 测试。

运行测试

  • 为单个方法运行测试:将鼠标悬停在测试方法的名称上,然后单击播放图标(将鼠标悬停文本:运行单个测试)。
  • 为类中的所有方法运行测试:将鼠标悬停在测试类的名称上,然后单击播放图标(悬停文本:运行测试)。
  • 运行所有测试:将鼠标悬停在 Apex 测试视图上,然后单击播放图标 ()。

运行 Apex 测试后,“命令面板”中提供了“SFDX:重新运行上次调用的 Apex 测试类”和“SFDX:重新运行上次调用的 Apex 测试方法”命令。

查看测试结果

  • 通过测试时,类和方法旁边的蓝色图标将变为绿色图标。
  • 对于失败的测试,图标将变为红色。

若要查看测试运行的详细信息,请将鼠标悬停在侧边栏中测试类的名称上。 测试结果将显示在“输出”面板中。

转到测试类定义

若要跳转到测试类、已通过的测试方法或尚未运行的方法的定义,请单击其名称。如果单击失败的测试方法的名称,则会跳转到发生失败的行。

清晰的测试结果

要清除测试结果,请单击 Apex Tests 视图顶部的刷新图标(悬停文本:刷新测试)。

刷新 Apex 测试视图

如果自上次填充“测试”视图以来添加了方法或类,请单击“Apex 测试”视图顶部的刷新图标以获取更新的列表。

从文件内运行 Apex 测试

您可以从编辑器窗口中打开的类文件运行 Apex 测试。单击 Apex 测试方法定义上方的运行测试”或 Apex 测试类定义上方的“运行所有测试”。您可以在“输出”面板中查看测试结果,输出的“失败”部分列出了失败测试的堆栈跟踪。若要导航到导致失败的代码行,请按 Ctrl(Windows 或 Linux)或 Cmd (macOS),然后单击该堆栈跟踪。

突出显示 Apex 测试代码覆盖率

每次运行一个或多个测试时,您都可以检索 Apex 类和 Apex 触发器的代码覆盖率结果。为此,请编辑工作区设置并检查并运行 Apex 测试。现在,您可以在“输出”面板中查看代码覆盖率,该面板显示了每个 Apex 类和 Apex 触发器的覆盖率百分比,以及测试运行结果未涵盖的行。retrieve-test-code-coverage

要查看测试的代码覆盖率,请单击侧栏底部组织别名旁边的三条形图标 (),然后打开正在测试的 Apex 类或 Apex 触发器。单击三条形图标可在启用和禁用代码覆盖率突出显示之间切换。

Apex 重构

内容

  • 重构:重命名
  • 重构:提取常量
  • 重构:提取局部变量

重构:重命名

您可以重命名源中定义的任何有效 Apex 符号:方法、局部变量、字段、属性、构造函数或类型(类、触发器或枚举)。要执行重命名,请右键单击要重命名的符号,然后选择重命名符号

在应用重命名之前,将执行新符号名称的验证。如果验证失败,则会显示一条错误消息,说明无法应用重命名重构的原因。如果新名称不是有效的 Apex 标识符,或者有时新名称与现有标识符名称冲突,则验证将失败。(如果允许这些情况,则可能会导致编译器错误或运行时行为更改。

GIF showing a renaming error

如果新名称与现有标识符名称冲突,我们会尝试在存在冲突的上下文中完全限定对现有名称的引用。

GIF showing a renaming conflict

重构:提取常量

您可以将文本提取到常量中。文本包括:String、Integer、Long、Double、Decimal 和 Boolean。

  1. 在编辑器中,选择要提取的表达式。
  2. 单击装订线中的灯泡,然后选择“提取常量”。
  3. 新常量将声明为从中调用重构的包含类中的字段。
  4. 现在,所选表达式应替换为新字段的名称。

重构:提取局部变量

您可以将表达式提取到局部变量中。

  1. 在编辑器中,选择要提取的表达式。
  2. 单击装订线中的灯泡,然后选择“提取变量”。
  3. 新的局部变量将在调用重构的声明上方的行中声明。
  4. 现在,所选表达式应替换为新局部变量的名称。

调试 Apex

Salesforce 扩展包为每个开发人员提供了丰富的调试选项,无论您处于低代码到专业代码连续体的哪个位置。使用此信息确定哪个 Apex 调试器适合您:

  • Replay Debugger:免费且易于使用。
  • 交互式调试器:传统的许可调试器,可用于实时查看和暂停事件。
  • ISV 调试器:用于直接从许可证管理组织 (LMO) 在客户组织中调试托管包代码。

其他资源

  • 调试日志
  • 使用 Apex Replay Debugger 查找并修复 Bug
  • Apex 类和 Apex 触发器的调试日志过滤

Apex 重播调试器

内容

  • 概述
  • 设置断点和检查点
  • 易于调试
  • 重播调试器设置
  • 重播调试日志
  • 考虑
  • 资源

概述

Apex Replay Debugger 可以与所有组织中的所有非托管代码一起使用。它适用于 Apex 类、触发器、匿名 Apex 和日志文件。这是一个易于使用的调试器,适合大多数调试用例。这是进入调试过程的良好门户 – 根据需要扩展到其他调试器。

设置断点和检查点

在生成用于重播调试的调试日志之前,请设置断点和检查点。断点可以动态设置,不需要部署。检查点是组织中所有对象在某个时间点的快照。每次设置检查点时都必须重新部署检查点。

  1. 要设置行断点,请打开一个 或 文件,然后单击行号左侧的列。.cls.trigger
  2. 有关行断点提供的详细信息,请添加检查点。您最多可以设置五个检查点,以便在代码行运行时获取堆转储。所有局部变量、静态变量和触发器上下文变量在检查点都有更好的信息。触发器上下文变量在日志中不存在,仅在检查点位置可用。
    在 Visual Studio Code 中,检查点是一种断点。检查点的功能类似于从日志重播调试时的断点。在启动 Apex Replay Debugger 会话之前设置并上传检查点。
    1. 在 Apex 类或触发器中最多五行上设置检查点。
    2. 单击要设置检查点的代码行。
    3. 打开命令面板(在 Windows 或 Linux 上按 Ctrl+Shift+P,在 macOS 上按 Cmd+Shift+P)。
    4. 运行 SFDX: Toggle Checkpoint
      • 或者,在行号左侧的装订线中单击鼠标右键,选择“添加条件断点”|”表达式,并将表达式设置为 。Checkpoint
      • 或者,若要将现有断点转换为检查点,请右键单击该断点,然后选择“编辑断点”|”表达式。将表达式设置为 。Checkpoint
    5. 要将检查点上传到组织以收集堆转储信息,请打开命令面板,然后运行 SFDX:在组织中更新检查点

易于调试

快速调试您的 Apex 开发工作,而无需显式设置跟踪标志:

  1. 打开设置了检查点或断点的 Apex 测试类或匿名 Apex 类。
  2. 运行 SFDX:从命令面板启动带有当前文件的 Apex Replay Debugger(或通过右键单击打开的文件来选择命令)。您可以在 Apex 测试文件、匿名 Apex 文件或 Apex 日志文件上调用此命令。

该命令更新组织中的检查点,设置(并在完成后删除)跟踪标志,并生成新的调试日志。对于匿名 Apex 文件,将在窗口中打开一个新的日志文件。

重播调试器设置

设置 Apex Replay Debugger 以调试组织中更复杂的问题,例如可排队的 Apex 或 Apex 触发器问题:

  1. 打开命令面板,然后运行 SFDX:更新组织中的检查点,将检查点上传到组织以收集堆转储信息。注意:如果您修改 Apex 代码或切换检查点,请再次运行此命令以保持同步。
  2. 运行 SFDX:打开 Replay Debugger 的 Apex 调试日志
  3. 在您的组织中,重现您正在调试的问题。
  4. 获取组织中的调试日志列表,运行 SFDX:获取 Apex 调试日志
  5. 单击要重播的日志。日志将下载并在 VS Code 中打开。
  6. 运行 SFDX:使用当前文件启动 Apex Replay Debugger

单步执行所有记录的事件后,调试会话将结束。如果要在日志开头重新开始,请运行 SFDX:使用最后一个日志文件启动 Apex 重播调试器。如果您设置了不同的检查点,请再次上传它们并重复这些步骤。

重播调试日志

重播调试日志并检查变量的值。

  1. 若要切换到 VS Code 的“调试”视图,请单击窗口左边缘的 bug 图标。
  2. 若要重播在调试日志中记录的代码执行,直到命中断点,请单击编辑器顶部的“调试操作”窗格中的绿色播放图标。
  3. 打开日志文件。
  4. 单步执行代码,并在“调试”视图的“变量”部分中检查变量的状态。有关详细信息,请参阅 Visual Studio Code 文档中的调试。
    当您在调试会话期间单步执行代码时,Apex Replay Debugger 会在您设置检查点的行上提供有关堆转储中变量的详细信息。 单步执行所有记录的事件后,调试会话将结束。如果要在日志开头重新开始,请运行 SFDX:使用最后一个日志文件启动 Apex 重播调试器

考虑

使用 Apex Replay Debugger 时,请牢记这些注意事项和已知问题。

  • 只能在组织中使用此调试器。ISV 客户调试在 Apex Replay Debugger 中不可用。若要调试客户的组织,请使用 ISV 客户调试器
  • 一次只能重播一个调试日志。此限制可能会使异步 Apex 难以调试,这会生成多个调试日志。
  • 请务必在上传检查点后立即启动调试会话,因为检查点将在 30 分钟后过期。
  • 请务必在启动会话后立即调试代码,因为堆转储在生成后大约一天过期。
  • 您无法重播由计划的 Apex 生成的调试日志。
  • 长字符串变量值在断点处被截断。在检查点,heap-dump-augmented 变量具有完整的字符串。
  • 在断点处查看标准对象或自定义对象时,只能向下钻取到对象的直接子变量(一级深度)。在检查点,堆转储增强变量可以完全向下钻取到子标准对象,而不仅仅是直接子对象。
  • 无法展开集合(列表、集或映射),因为其成员以字符串形式显示。
  • 修改集合不会更新“调试”视图的“VARIABLES”部分中的集合变量。
  • 不能设置方法或条件断点。
  • 不能在“调试”视图的“监视”部分中计算或监视变量或表达式。
  • 调试时,右键单击“调试”视图的“变量”部分中的变量,然后选择“复制值”即可正常工作。但是,“复制为表达式”和“添加到监视”无法按预期工作。
    • 复制为表达式函数,如复制值:它复制变量的值,而不是复制完整的变量名称。
    • “添加到监视”会将变量的值复制到 WATCH 部分,但由于我们不计算此部分中的变量,因此您只能看到 。<VariableValue>:<VariableValue>

资源

使用 Apex Replay 调试器简化调试工作流程

Apex 交互式调试器

内容

  • 设置 Apex 调试器
  • 调试代码
  • 设置异常断点
  • 将用户和请求类型列入允许名单
  • 考虑

Apex Interactive Debugger(也称为 Apex Debugger)是一种传统的调试器,允许客户使用 VS Code 作为客户端,在沙盒和临时组织中实时调试其 Apex 代码。您可以使用它来:

  • 在 Apex 类和触发器中设置断点。
  • 查看变量,包括 sObject 类型、集合和 Apex System 类型。
  • 查看调用堆栈,包括由 Apex 数据操作语言 (DML) 激活的触发器、方法到方法调用和变量。
  • 与已安装的托管包中的全局类、异常和触发器进行交互。(当您检查具有对您不可见的托管类型的对象时,变量检查窗格中仅显示全局变量。
  • 完成标准调试操作,包括单步执行、单步执行和单步执行,以及运行到断点。
  • 将结果输出到调试控制台。

要调试订阅者的沙盒组织,请使用 ISV Customer Debugger,它是 Apex Interactive Debugger 扩展的一部分。

设置 Apex 调试器

首次在 VS Code 中使用 Apex Debugger 时,请完成以下设置步骤。

注意:您只能将提供给许可证管理组织的默认许可证与 ISV 客户调试器一起使用,以调试订阅者组织。如果您没有 Apex Debugger 许可证,请使用 Replay Debugger。

  1. 将该功能添加到您计划调试的所有类型的临时组织定义文件中:DebugApex
    "features": "DebugApex"
  2. 在 VS Code 中,运行 SFDX:创建默认临时组织
  3. 选择包含该功能的临时组织定义文件。DebugApex
  4. 临时组织准备就绪后,将 Apex Debugger 的权限分配给组织的管理员用户。
    1. 在 VS Code 中,运行 SFDX: Open Default Org
    2. 在浏览器中,从“设置”中输入“快速查找”框,然后选择“权限集”。Permission Sets
    3. 单击“新建”。
    4. 为权限集指定一个您可以记住的名称,例如 .Debug Apex
    5. 在“选择将使用此权限集的用户类型”部分中,从“用户许可证”下拉列表中选择“无”。选择“无”允许您将权限集分配给多种类型的用户。
    6. 保存更改。
    7. 单击“系统权限”。
    8. 单击编辑
    9. 启用 Debug Apex。Debug Apex 所需的其他权限会自动添加。
    10. 保存更改。
    11. 单击“管理分配”。
    12. 单击“添加分配”。
    13. 选择要向其分配权限集的用户,然后单击“分配”。
    14. 单击完成
  5. 可选:在 VS Code 中,运行 SFDX:从默认临时组织拉取源。然后,将新权限集添加到源代码管理存储库。如果您的 Salesforce DX 项目中有权限集的副本,则可以通过运行 将权限分配给临时组织用户。sfdx force:user:permset:assign -n Your_Perm_Set_Name
  6. 在 VS Code 中,为 Apex Debugger 创建启动配置。
    1. 若要打开“调试”视图,请在 VS Code 活动栏中单击 bug 图标(悬停文本:调试)。
    2. 若要创建文件,请单击齿轮图标(悬停文本:Configure 或 Fix launch.json),然后选择 Apex Debugger。(如果您已经创建了此文件,请单击齿轮图标将打开该文件。launch.json
    3. 在阵列中,添加配置。它应包含的最少信息:"configurations""Launch Apex Debugger""configurations": [ { "name": "Launch Apex Debugger", "type": "apex", "request": "launch", "sfdxProject": "${workspaceRoot}" } ]
    4. 保存您的文件。每个项目只需要一个文件,即使您使用多个临时组织也是如此。此文件位于项目的目录中。launch.jsonlaunch.json.vscode

:::注意 Visual Studio Marketplace 中提供了一个名为 Salesforce Apex Debug 的非官方调试器扩展。它与我们的官方扩展名相冲突。请确保在使用我们的扩展程序时禁用该扩展程序。 :::

调试代码

要设置行断点,请打开一个 或 文件,然后单击行号左侧的列。活动断点为红色。非活动断点为灰色。您可以在“调试”视图的“断点”面板中查看断点列表。.cls.trigger

若要启动调试会话,请从“调试”视图顶部的配置下拉菜单中选择“启动 Apex 调试器”。然后,单击绿色播放图标(悬停文本:开始调试)。

在调试会话进行过程中,运行带有断点的代码行的任何同步活动都会导致执行在断点处停止。在执行暂停时,您可以检查调用堆栈并查看变量的当前值。还可以使用调试会话进行时显示在编辑器顶部的“调试操作”窗格单步执行代码,并观察这些值的更改。一次最多可以调试两个线程。有关详细信息,请参阅 Visual Studio Code 文档中的调试。

设置异常断点

要使 Apex Debugger 在调试会话期间引发异常时停止执行,请在异常上设置断点。当命中断点时,调试器会在导致异常的代码行上暂停。“调试”视图中的“调用堆栈”面板显示异常的名称。

若要设置异常断点,请按 Ctrl+Shift+P(Windows 或 Linux)或 Cmd+Shift+P (macOS) 打开命令面板,然后选择“SFDX:配置 Apex 调试例外”。可用异常列表包括 System 命名空间中的异常以及项目中扩展 .从列表中选择一个例外,然后选择“始终中断”。Exception

若要查看异常断点,请运行 SFDX:配置 Apex 调试异常。列表顶部显示具有活动断点的异常类,标记为 。若要删除异常断点,请从列表中选择一个例外,然后选择“永不中断”。Always break

关闭 VS Code 时,将删除所有异常断点。(但是,您的行断点将保留。

将用户和请求类型列入允许名单

若要筛选已调试的请求,请编辑文件以设置允许的用户列表。(该文件位于项目的目录中。如果不使用允许的用户列表,则组织中的所有事件都会在调试会话期间触发调试。将允许列表用户或请求类型设置为仅关注与要调试的问题相关的事件。launch.jsonlaunch.json.vscode

将筛选器添加到配置中:"Launch Apex Debugger"

"configurations": [
  {
    "name": "Launch Apex Debugger",
    "type": "apex",
    "request": "launch",
    "sfdxProject": "${workspaceRoot}",
    "userIdFilter": [],
    "requestTypeFilter": [],
    "entryPointFilter": ""
  }
]

若要自动完成 的潜在请求类型值,请按 Ctrl+空格键。"requestTypeFilter"

要按入口点进行筛选,请输入正则表达式作为 的值。例如,要允许 Visualforce 页面发出的请求,请输入 。"entryPointFilter"MyPage".*/apex/MyPage.apexp"

考虑

使用 Apex Debugger 时,请牢记这些限制和已知问题。

一般注意事项

  • 如果在调试会话进行时编辑 Apex 类,则在保存更改后,断点可能与调试输出不匹配。
  • 在停止会话之前关闭 VS Code 时,调试会话是孤立的。如果您有孤立会话,则无法启动新会话。若要停止活动会话,请在 VS Code 中运行 SFDX:停止 Apex 调试器会话。要管理 Dev Hub 的 Apex Debugger 会话,请转到设置中的 Apex Debugger。
  • 评估功能不可用。
  • 不允许热插拔。这些操作会终止调试会话:
    • 安装或卸载软件包
    • 保存导致组织元数据重新编译的更改
  • 在调试会话期间,无法保存对以下项的更改:
    • 顶点类或触发器
    • Visualforce 页面或组件
    • 闪电资源
    • 权限或首选项
    • 自定义字段或自定义对象

入口点的注意事项

不支持以下入口点:

  • 异步执行的代码,包括异步测试提示:介于一对 和 方法之间的代码可以同步运行。若要调试异步功能,请在测试中使用这些方法。startTeststopTest
  • 批处理、可排队和计划顶点
  • 入站电子邮件
  • 带有注解的代码@future

断点的注意事项

  • 不能设置条件断点。
  • 在 or 方法上设置的断点必须位于方法的主体内。getset
  • 不能在 Execute Anonymous 块中设置断点,也不能单步执行 Execute Anonymous 块。但是,当您使用 Execute Anonymous 命中断点时,我们会在堆栈中显示您的 Execute Anonymous 帧。要查看 Execute Anonymous 代码的变量,请单击堆栈中的此行。

变量的注意事项

  • 您无法监视变量。
  • 不支持动态 Visualforce 和 Lightning 组件中的变量检查。
  • 您无法钻取到 Apex 库对象的实例变量。若要查看这些对象的内容,请使用它们的方法。toString
  • 在循环中声明的变量在循环外可见。
  • 钻取到变量以查看其子项的值。例如,如果运行查询,则结果将嵌套如下。[SELECT Id, ContactId, Contact.accountId, Contact.Account.ownerId FROM Case]Case --> Contact -----> contactId -----> Account --------> accountId --------> ownerId
  • 当您对 EntityDefinition 表中的变量执行 SOQL 查询时,即使您没有显式显示该变量,结果也会包括 。durableIdSELECT

另见

Apex 交互式调试器

ISV 客户调试器

内容

  • 配置 ISV 客户调试器
  • 调试订阅者的组织
  • 续订调试会话
  • 保护订阅者的知识产权
  • ISV 客户调试器注意事项

Salesforce ISV(独立软件供应商)是在 Salesforce Platform 上创建可在 Salesforce AppExchange 上使用的托管软件包的开发人员。包订阅者无权访问托管代码,这可能会使调试具有挑战性。ISV 调试器允许 ISV 在沙盒组织中重现订阅者环境中的问题,以便于调试。借助 ISV 调试器,ISV 可以与订阅者合作,调试特定于订阅者组织的问题。

配置 ISV 客户调试器

ISV Customer Debugger 是 Apex Interactive Debugger () 扩展的一部分,因此除了 Salesforce 扩展包及其必备组件外,您无需安装任何其他内容。您只能调试沙盒组织。salesforcedx-vscode-apex-debugger

  1. 登录到您的许可证管理组织 (LMO),并使用配置文件或权限集在设置中为用户启用“查看和调试托管 APEX”权限。
  2. 通过许可证管理组织 (LMO) 登录订阅者的沙盒。如果您不熟悉此过程,请参阅 ISVforce 指南。有关如何获取订阅者组织的登录访问权限的信息,请参阅向客户请求登录访问权限。有关如何通过订阅者支持控制台登录的信息,请参阅登录订阅者组织。
  3. 在订阅者的组织中,从“设置”中,在“快速查找”框中输入“Apex Debugger”,然后单击“Apex Debugger”。
  4. 单击“启动合作伙伴调试会话”。
  5. 在“使用 VS Code 的 Salesforce 扩展”部分中,若要复制 URL,请单击“复制到剪贴板”。forceide://
  6. 在 VS Code 中,按 Ctrl+Shift+P(Windows 或 Linux)或 Cmd+Shift+P (macOS) 打开命令面板,然后运行 SFDX:创建和设置用于 ISV 调试的项目
  7. 收到指示后,将 URL 粘贴到提示符中,然后按 Enter。forceide://
  8. 收到指示时,接受默认项目名称或输入调试项目的名称,然后按 Enter。
  9. 选择存储项目的位置,然后单击“创建项目”。
  10. 等待项目生成过程完成。VS Code 检索组织中其他包的打包元数据、订阅者的元数据和框架类,将它们转换为源格式,并创建 Salesforce DX 项目。VS Code 还为项目创建启动配置(文件)。此过程可能需要很长时间,尤其是对于包含大量元数据的组织,因此请随时让它保持运行状态,稍后再回来查看。可以在 VS Code 底部的输出面板中监视进度。要显示输出面板,请选择“查看>输出”,然后从“输出”选项卡一角的下拉菜单中选择“Salesforce CLI”。
    项目准备就绪后,VS Code 会在新窗口中打开它。launch.json
  11. 在新窗口中,从“资源管理器”视图中,打开要在其中设置断点的 Apex 类或触发器。
  12. 要设置断点,请单击行号左侧的装订线。
  13. 切换到“调试”视图。
  14. 要启动 Apex Debugger,请单击启动配置下拉菜单旁边的播放图标。

调试订阅者的组织

除了一个值得注意的例外,调试订阅者组织的工作方式与调试其他组织的工作方式相同。例外情况:您无法中断组织中其他用户触发的 Apex 事件。只有“登录身份”用户才能触发 Apex 断点命中事件。

有关 Apex Debugger 的信息,请参阅本自述文件的其余部分。有关在 VS Code 中进行调试的一般信息,请参阅 Visual Studio Code 文档中的调试。

续订调试会话

如果您的会话已过期,请使用启动原始会话时所遵循的所有相同步骤从安装程序启动新会话。

保护订阅者的知识产权

订阅者所在组织的代码是订阅者的知识产权。建议不要在完成调试后保留它。在安装过程中,从存储项目的位置删除整个项目。切勿将订阅者的元数据存储在版本控制系统中。稍后启动新的调试会话时,VS Code 会再次为你下载元数据。

ISV 客户调试器注意事项

有关 Apex Debugger 的一般限制和已知问题,请参阅 Apex Interactive Debugger 一文中的注意事项。使用 ISV 客户调试器时,请牢记这些其他注意事项。

  • 您只能调试沙盒组织。
  • 一次只能调试一个客户。但是,如果您购买了 Apex Debugger 许可证,则可以一次调试多个客户。Apex Debugger 许可证还允许您在沙盒和临时组织中进行调试。
  • 单击“返回到订阅者概述”时,调试会话将终止。调试时保持登录到订阅者的组织,只有在完成调试后才返回到 LMO。

Apex 任务

内容

  • 使用 Anonymous Apex 批量更新帐户评级
  • 资源

此存储库包含示例 Apex 任务,您可以使用 Salesforce 扩展在 Code Builder 或 VS Code 中完成这些任务。我们不断添加到此列表中,因此请确保您经常访问此主题。

使用 Anonymous Apex 批量更新帐户评级

假设您的帐户设置为 由于不利的商业条件。您现在想要对这些帐户进行批量更新,并将其评级更改为 .您希望将此更新限制为收入超过一定金额的中型帐户。RatingColdWarm

此 Anonymous Apex 代码更新年收入大于员工人数或员工人数超过员工人数的账户的评级:$10,000,0001000

  1. 在文件夹中,使用文件扩展名创建一个 Anonymous Apex 文件。 将此代码粘贴到文件中:scripts/apex.apex List<Account> acctList =[SELECT Name, Rating FROM Account WHERE AnnualRevenue > 500000 AND NumberOfEmployees > 100]; for (Account acc: acctList){ if (acc.Rating == 'Cold') { acc.Rating = 'Warm'; update acc; } System.debug(acc.Name + acc.Rating); }
  2. 单击 Execute Anonymous Apex 以执行您的代码。

列出帐户及其更新的评级。DEBUG CONSOLE

资源

Salesforce开发环境

Visual Studio Code 是一个功能强大的源代码编辑器,它与 Salesforce 扩展包一起为您提供了用于 Salesforce 开发的全面基础结构。

建议通过访问 Visual Studio Code 文档来详细了解 Visual Studio Code 中的可用功能。然后回到这里,了解特定于 Salesforce 开发的功能。您会看到,组织浏览器等功能,以及通过命令面板轻松访问命令,使 Salesforce 开发变得轻而易举!

更改或打开默认组织

Salesforce Extensions for VS Code 针对您设置为开发默认组织的组织运行命令。在软件包开发模型中,您的默认组织通常是临时组织。在组织开发模型中,它通常是沙盒、Developer Edition (DE) 组织或 Trailhead Playground。

若要设置或更改要针对其开发的组织,请在 VS Code 页脚中单击组织的名称或插件图标 ()。然后,选择其他组织,或选择 SFDX: Set a Default Org (SFDX: 设置默认组织) 以授权新组织。或者,打开命令面板并运行“SFDX:授权组织”或“SFDX:创建默认临时组织”。

要打开默认组织以便测试更改或使用声明性工具,请单击页脚中的浏览器图标 ()。或者,打开命令面板并运行 SFDX: Open Default Org

要注销默认组织,请运行 SDFX:从默认组织注销

命令面板

命令面板提供对许多命令的访问,以便进行 Salesforce 开发。

要从 Salesforce Extensions for VS Code 运行命令,请按 Ctrl+Shift+P(Windows 或 Linux)或 ⇧⌘P (macOS),然后在命令面板中键入 SFDX 以查看与 Salesforce 开发相关的命令。

当命令完成运行(由于成功、失败或取消)时,窗口顶部会显示一条通知。

若要查看运行的命令的输出,请选择“查看>输出”,然后从下拉菜单中选择“Salesforce CLI”。或者,单击完成通知中的显示

要清除 SFDX 命令之间的输出内容,请在 Salesforce 核心配置>选择“用户设置”>“设置”,然后选中“清除输出选项卡”。

项目浏览器

Salesforce 开发的核心是 Salesforce DX 项目。项目结构包含默认包目录 force-app

your-app
├── README.md
├── sfdx-project.json
├── .sfdx
├── .vscode
│   ├── extensions.json
│   └── settings.json
├── force-app
|   └── main
|       └── default
|           ├── aura
|           ├── classes
|           └── objects
└── manifest
    └── package.xml

请参阅 Salesforce DX 项目结构和源格式,了解项目中的文件夹。

您将在项目中看到一些为您预填充的标准文件包括:

  • .gitignore:可以更轻松地开始使用 Git 进行版本控制。
  • .prettierrc 和 .prettierignore:更轻松地开始使用 Prettier 格式化 Aura 组件。
  • .vscode/extensions.json 和 .vscode/launch.json:配置重播调试器,使其更易于发现和使用。
  • .vscode/settings.json:默认情况下,此文件有一个设置,用于“保存时推送”或“部署”,该设置设置为 false。您可以更改此值或添加其他设置。

组织浏览器

内容

  • 概述
  • 列出和刷新元数据
  • 检索组织元数据

组织浏览器通过显示组织元数据类型及其相应的组件,使检索元数据源变得容易。通过单击 VS Code 活动栏中的云图标来访问组织浏览器。 使用组织浏览器可以:

  • 浏览您的组织元数据。
  • 查看默认组织中可用的元数据类型及其对应的组件。
  • 检索元数据源,而不使用清单文件。

概述

  1. 打开组织浏览器
  2. 刷新组织中可用的元数据类型
  3. 默认组织
  4. 元数据类型
  5. 元数据组件
  6. 刷新元数据类型的组件
  7. 检索元数据组件的源
  8. 检索元数据类型的所有组件的源
  9. 检索元数据组件的源代码并在 VS Code 中打开它

若要打开组织浏览器,请单击 VS Code 窗口 (1) 的“活动栏”中的云图标。

当您打开组织浏览器时,默认组织的所有元数据都保存在目录下的本地项目中,以最大程度地减少对组织的调用次数。.sfdx

列出和刷新元数据

组织浏览器会列出默认组织中的所有元数据类型 (4)。要查看组件 (5),请展开元数据类型。当您使用“报表”、“仪表板”、“文档”和“EmailTemplates”等文件夹扩展元数据类型时,将显示所有可用文件夹。您可以通过展开文件夹来查看文件夹中的组件。展开元数据类型以查看字段及其类型信息。将显示以下字段类型的附加信息:Custom Object

  • 字符串:string(length)
  • TextAreas:TextArea(长度)
  • 电子邮件:电子邮件(长度)
  • 查找:查找(引用)

使用“组织浏览器”中的图标或“SFDX:刷新类型”和“SFDX:刷新组件”命令,在组织级别刷新元数据、元数据类型、元数据类型中的文件夹或文件夹中的组件

  • (2) 刷新组织中可用的元数据类型。
  • (6) 刷新相应元数据类型的组件。
  • (10) 刷新以仅更新元数据类型中的文件夹。
  • (11) 刷新文件夹中的组件。

检索组织元数据

您可以检索单个元数据组件,也可以检索同一类型的所有组件。单击以下位置旁边的检索图标:

  • 组件名称 (7),用于将组件检索到本地项目
  • 元数据类型 (8) 检索该类型的所有组件

您可以通过单击元数据类型旁边的检索图标来检索文件夹元数据类型的所有文件夹,例如报表、仪表板、文档和电子邮件模板。检索文件夹时,仅检索有关该文件夹的信息并将其添加到文件中。要检索文件夹中的组件,请通过展开文件夹来查看文件夹中的组件,然后通过单击检索图标来检索单个组件。<folder>-meta.xml

目前,源代码将检索到 sfdx-project.json 文件中定义的默认包目录中。

您还可以通过单击元数据类型旁边的检索按钮从默认组织中检索多个组件。如果检索组件覆盖了它,系统会提示您选择如何继续。

当您检索元数据类型的组件时,组织浏览器会自动刷新所选类型的组件列表,然后检索它们。此操作可确保扩展准确检查本地工作区中是否有现有组件。

注意:由于元数据 API 调用的异步性质,同时部署和检索可能会导致争用条件。为防止检索意外组件,请注意在部署操作进行时使用组织浏览器。

自定义代码模板

内容

  • 概述
  • 设置默认模板位置
  • 设置模板位置示例
  • 在 GitHub 上使用自定义模板
  • 使用本地自定义模板
  • 在 GitHub 中对远程模板进行更新
  • 对本地模板进行更新

概述

在 VS Code 中创建元数据对象(如 Apex 类)时,使用自定义模板将自己的代码模板快速添加到源文件。模板是包含自定义代码的文件。您可以使用自定义模板来 –

  • 将默认版权信息添加到项目中的新文件。
  • 向 Aura 或 LWC 添加默认代码以启用新的 Apex 类,依此类推。

注意: 此 git repo 子目录包含元数据组件的官方 Salesforce 模板集合。只有对此目录中列出的文件所做的更新才会显示在 VS Code 的源文件中。您可以克隆此子目录,也可以将其复制到本地。您必须保持相同的文件夹结构。只需使用代码更新相关模板文件,并删除不想覆盖的文件即可。

设置默认模板位置

您可以将模板文件存储在本地目录或 GitHub 项目中。设置为您的自定义模板位置:customOrgMetadataTemplates

  1. 从 VS Code 中的终端运行命令。sfdx config:set customOrgMetadataTemplates=<GitHub repo or local template directory>
  2. 运行以确认配置设置已更新。sfdx config:list

注意:文件夹中的配置文件将更新为格式为 的新条目。sfdx-config.json<project-folder>/.sfdx"customOrgMetadataTemplates": "<GitHub repo or local template directory>"

有关配置设置的更多信息,请参阅 CLI 运行时配置值。

设置模板位置示例

  • sfdx config:set customOrgMetadataTemplates=https://github.com/vscodeuser/salesforcedx-templates/tree/main/src/templates/将配置值设置为用户 GitHub 存储库上的目录。customOrgMetadataTemplatesvscodeuser
  • sfdx config:set customOrgMetadataTemplates=/Users/vscodeuser/CustomTemplateProject/MyCustomTemplates将配置值设置为本地计算机上的目录。customOrgMetadataTemplatesMyCustomTemplates

在 GitHub 上使用自定义模板

  1. 克隆此 git repo 子目录。
  2. 在克隆的存储库中,删除除包含要使用的模板的文件夹之外的所有文件夹。
  3. 对存储库中的自定义模板进行更新。
  4. 检查是否指向此存储库。customOrgMetadataTemplates

使用本地自定义模板

Salesforce 扩展要求您的模板遵循与此存储库完全相同的文件夹结构和命名法。使用 CLI 为元数据对象指定模板时,没有此类限制。

  1. 在 VS Code 项目目录中创建一个文件夹来保存自定义模板。将文件夹命名为直观的名称,例如“MyCustomTemplates”。
  2. 仔细检查此 git 存储库中的文件夹和文件名,并创建包含要自定义的文件的同名子文件夹。例如,创建一个名为 并添加一个名为 的文件,以自定义默认的闪电控制器 JavaScript 文件,并创建一个名为 并添加一个名为的文件的子文件夹,以向 Apex 类添加自定义代码。lightningappDefaultLightningController.jsapexclassDefaultApexClass.cls
  3. 对自定义模板文件进行更新。
  4. 检查是否指向您的自定义模板目录。customOrgMetadataTemplates

在 GitHub 中对远程模板进行更新

首次访问模板存储库时,VS Code 会在本地(在 macOS/Linux 或 Windows 上)下载模板文件。若要使用更新的模板,请清除本地缓存文件以再次下载模板文件。~/.sfdx/custom-templates%USERPROFILE%\.sfdx\custom-templates

对本地模板进行更新

如果模板位置位于计算机上,则对模板所做的任何更改都可以在保存后立即使用。如果未立即看到更改,请刷新 VS Code 窗口以清除 VS Code 缓存,然后查看反映的更改。

更漂亮的代码格式化程序

内容

  • 先决条件
  • 安装

更漂亮的代码格式化程序支持 Aura 和 Lightning Web 组件 (LWC) 以及 JSON、Markdown、HTML 和 JavaScript 等标准文件格式。如果您安装了 Dang Mai 创作的 Prettier Apex 插件,Prettier 也可以支持 Apex。

先决条件

此插件在您的环境中需要 NodeJS 和 npm。有关设置的详细信息,请参阅下载和安装 Node.js 和 npm

安装

要安装 Prettier Apex 插件,请执行以下操作:

  1. 导航到项目的顶层
  2. 检查您的项目是否包含该文件。如果没有,请运行:并接受所有默认选项。package.jsonnpm init
  3. 跑:npm install --save-dev --save-exact prettier prettier-plugin-apex

您必须在项目的根目录中创建一个配置文件。如果您想了解更多关于 Prettier 格式化选项的信息,请阅读其他配置选项。.prettierrc

{
    "plugins": ["prettier-plugin-apex"],
    "trailingComma": "none",
    "overrides": [
        {
            "files": "**/lwc/**/*.html",
            "options": { "parser": "lwc" }
        },
        {
            "files": "*.{cmp,page,component}",
            "options": { "parser": "html" }
        }
    ]
}

注意: Aura 需要此设置。"trailingComma": "none"

创建本地配置文件后,安装 VS Code 的 Prettier 扩展。如果要确保在保存所有文件时都格式化,请在“用户和工作区设置”中启用该设置。您可以将 Prettier 与预提交工具一起使用,以便在提交文件之前重新格式化文件。有关更多信息,请参阅设置 Git 挂钩。editor.formatOnSave

更漂亮的 Apex 插件运行速度比大多数其他格式化程序慢。由于保存是一项关键操作,因此您可以决定是否要等到插件完成格式化后再保存文件。了解 VS Code 如何处理缓慢的保存操作。

开发模式

概述

适用于 VS Code 的 Salesforce 扩展支持组织开发和包开发模型,以授权、创建和切换项目中的组织。概括地说,这两种开发模型都遵循相同的 ALM 流程。但这些模型的不同之处在于它们允许您管理对组织的更改。控制变更是软件开发中的一项重要工作,如果您了解自己的选择,则可以选择最适合您情况的开发模型。

选择适合您的模型取决于以下几点:

  • 更改的复杂性。
  • 参与开发的团队规模及其技能水平。
  • 您将处理的元数据。

开发模型的选择决定了从开发到部署的路径。每种开发模式都有其优点、缺点和局限性。在选择用于特定部署的选项时,请权衡您的目标、团队的技能和 Salesforce 中的限制。您可以对不同的项目使用不同的方法,甚至可以在单个项目上混合使用方法。

适用于 VS Code 的 Salesforce 扩展支持组织开发和包开发模型,用于在项目中授权、创建和切换组织:

  • 组织开发模型:允许您使用没有源代码跟踪的组织,例如非源代码跟踪的沙盒、Developer Edition (DE) 组织、Trailhead Playground,甚至是生产组织,以直接检索和部署代码。
  • 开发模型:允许您创建独立的应用程序或库,这些应用程序或库作为单个包部署到您的组织。这些软件包通常是针对源代码跟踪的组织(如临时组织和沙盒)开发的。此开发模型使用组织源跟踪、源代码管理以及持续集成和部署。

Salesforce Extensions for VS Code 针对您设置为开发默认组织的组织运行命令。

Salesforce 组织开发模型

组织开发模型

在 Visual Studio Code 中,使用组织开发模型处理没有源跟踪的组织,例如沙盒、Developer Edition (DE) 组织或 Trailhead Playgrounds。使用此开发模型时,您必须手动跟踪更改,并将更改集部署到沙盒,然后部署到生产组织。请参阅 Org Development Model Trailhead 模块。

要开始使用此模型进行开发,请执行以下操作:

  • 创建项目。
  • 使用组织选取器授权要针对其开发的组织。
  • 使用 Manifest 或 Org Browser 从默认组织中检索源。
  • 将源部署到默认组织。

Salesforce 软件包开发模型

内容

  • 软件包开发模型
  • 创建项目

软件包开发模型

使用包开发模型针对具有源跟踪的组织(如临时组织)进行开发。此模型跟踪您在本地工作站和默认开发组织中所做的更改。使用打包的元数据集在组织之间移动更改。请参阅包开发模型 Trailhead 模块。

创建项目

要开始使用此模型进行开发,请执行以下操作:

  1. 打开 VS Code 编辑器,然后从命令面板中运行 SFDX: Create Project。 如果要处理现有项目,请选择“文件”>“打开”,然后导航到项目目录。在 VS Code 中打开现有项目之前,请确保项目具有文件,并且元数据采用源格式。sfdx-project.json
    • 有关项目结构的信息,请参阅《Salesforce DX 开发人员指南》中的项目设置。
    • 仅当元数据采用源格式时,您才能使用源跟踪的组织。请参阅源格式 (./en/user-guide/source-format)。
  2. 在代码编辑器的状态栏中,单击“组织选取器”以打开命令面板。
  3. 运行 SFDX:授权组织。如果您没有 Dev Hub,请参阅 Salesforce DX 设置指南中的在您的组织中启用 Dev Hub。
  4. 单击 Org Picker 并运行 SFDX: Create a Default Scratch Org,以创建临时组织并将其设置为用于开发的默认组织。
  5. 选择临时组织配置,输入别名,然后输入临时组织过期的持续时间。组织选取器现在显示为临时组织提供的别名。您可以单击状态栏中的浏览器图标 () 以打开您正在处理的默认组织。 要更改您正在开发的默认组织,请单击组织选取器并选择其他组织。或者,打开命令面板并运行“SFDX:授权组织”或“SFDX:创建默认临时组织”。

推拉源

使用包开发模型时,可以轻松使本地项目和默认开发组织保持同步。由于您使用打包的元数据集将更改部署到其他组织,因此无需手动跟踪更改。 VS Code 可感知你在临时组织中工作,并且仅提供推送和拉取命令,而不提供用于检索和部署源代码的命令。

推送源

要将源推送到新的临时组织或所做的更改,请运行 SFDX:将源推送到默认临时组织

如果希望项目中的更改覆盖临时组织中的更改,请运行 SFDX:将源推送到默认临时组织并覆盖冲突

拉取源

在浏览器中进行更改后,运行 SFDX: Pull Source from Default Scratch Org 以更新您的项目。

如果希望临时组织中的更改覆盖项目中的更改,请运行 SFDX:从默认临时组织中提取源并覆盖冲突

查看更改

在将本地更改推送到临时组织或将远程更改拉取到本地项目之前,可以在“输出”面板中看到这些更改。为此,请从命令面板运行 SFDX: View Changes in Default Scratch Org

面向开发人员的 Einstein

内容

  • 概述
  • 当前能力
  • Salesforce 值得信赖的生成式 AI
  • CodeGen 模型

概述

使用 Einstein for Developers 使用自然语言指令快速生成代码建议,以提高开发人员的工作效率。Einstein for Developers 是一款 AI 驱动的开发人员工具,可作为易于安装的 Visual Studio Code 扩展使用来自 Salesforce 的安全自定义 AI 模型 CodeGen 构建。该扩展在 VS Code 和 Open VSX 市场中提供。

Einstein for Developers 利用从匿名 Code Pattern 中学到的专业知识,在整个 Salesforce 开发过程中为您提供帮助。我们的 AI 驱动的开发人员工具套件可提高工作效率,并为复杂的编码任务提供有用的帮助。我们通过代码生成和推荐的静态分析和安全扫描工具套件来实施开发最佳实践。以样板代码生成为基础,AI 辅助工具还使新开发人员更容易加入 Salesforce Platform。

重要提示:此功能是一项测试版服务。客户可以自行决定是否尝试此类测试版服务。对测试版服务的任何使用均受协议和条款中提供的适用测试版服务条款的约束。

当前能力

此版本的 Einstein for Developers 侧重于从自然语言提示生成样板 Apex 代码。此功能与 IntelliSense 一起使用,使 Visual Studio Code 中的 Apex 开发工具更加丰富。假定您熟悉 Visual Studio Code。

使用此版本中的扩展程序,从侧边栏中的自然语言指令生成样板代码,以便您可以并排使用编辑器和工具,而不会中断您的工作流程。您还可以在现有 Apex 类、触发器或匿名 Apex 文件中获取代码建议。使用 VS Code 命令面板输入描述要生成的内容的提示,然后在编辑器中生成代码建议。

注意:此工具使用生成式 AI,可能会产生不准确或有害的响应。人工智能生成的输出通常是不确定的。在使用生成的输出之前,请检查其准确性和安全性。您负责将 Einstein 的成果应用于您的组织。

Salesforce 值得信赖的生成式 AI

Einstein 解决方案的设计、开发和交付符合我们关于可信生成式 AI 的五项原则。

准确性:我们在模型中优先考虑准确性、精确度和召回率,并尽可能为模型输出提供解释和来源。我们建议在与最终用户共享之前人工检查模型输出。

安全:我们致力于使用行业领先的技术来减轻模型中的偏差、毒性和有害输出。我们通过在数据周围添加护栏来保护数据中个人身份信息 (PII) 的隐私。

诚实:我们确保我们在模型中使用的数据尊重数据来源,并且我们已同意使用这些数据。

授权:只要有可能,我们就会设计模型,将人工参与作为工作流程的一部分。

可持续性:我们努力构建大小合适的模型,优先考虑准确性并减少我们的碳足迹。

如需了解更多信息,请访问 Salesforce AI Research:可信 AI。

CodeGen 模型

重要提示:Einstein for Developers 使用基于我们的开源 CodeGen 模型的自定义 LLM。这个为 Einstein for Developers 提供支持的模型是 Salesforce 的专有财产。

代码Gen2.5

不断壮大的 Salesforce CodeGen 模型家族的一个新成员表明,如果训练得当,一个小模型可以实现令人惊讶的好性能。CodeGen2.5

模型版本的关键方面包括:CodeGen2.5

  • 它以最先进的 7B 参数发布。HumanEval
  • 在只有 7B 参数的情况下,其性能与具有 15B 以上参数的代码生成模型 (, , ) 相当。CodeGen1-16BCodeGen2-16BStarCoder-15B
  • 它具有强大的填充采样功能,也就是说,模型可以“读取”当前光标位置左侧和右侧的文本。
  • 它针对快速采样进行了优化,并注意服务完成。它还针对本地部署到个人计算机进行了优化。Flash
  • CodeGen2.5在 中获得了许可。Apache 2.0

请参阅博客文章 CodeGen2.5:小而强大。

面向开发人员的 Einstein 设置

内容

  • 设置概述
  • 为开发人员启用 Einstein
  • 安装 Einstein for Developers 扩展
  • 连接到组织
  • 显示 Einstein 反馈控制台视图

设置概述

具有适当权限的 Salesforce 管理员或用户可以在受支持的 Salesforce 组织中启用 Einstein for Developers。然后,有权访问组织的开发人员可以:

  1. 在 VS Code 中安装扩展。
  2. 连接到启用了 Einstein for Developers 的组织。
  3. 使用扩展从自然语言指令生成 Apex 代码。

所需版本

适用于:开发人员、企业、合作伙伴开发人员、性能版和无限版。

不适用于:Group、Professional 和 Essentials 版本

不适用于:欧盟运营区。欧盟运营区是一项特殊的付费产品/服务,可提供更高级别的数据驻留承诺。根据标准产品条款和条件,Einstein for Developers 在欧盟不属于欧盟 OZ 的组织中得到支持。

所需的用户权限

要配置 Einstein for Developers(测试版):自定义应用程序并修改所有数据

已启用增强型域

您的 Einstein for Developers 组织必须启用增强型域。有关详细信息,请参阅启用增强型域。

为开发人员启用 Einstein

当您在受支持的 Salesforce 组织中启用 Einstein for Developers 时,该组织中的所有用户都可以访问该功能。

  1. 在“设置”的“快速查找”框中,输入 ,然后选择“Einstein for Developers”。Einstein for Developers

提示:如果您在 Developer Edition 组织中的“设置”下没有看到“Einstein for Developers”选项,则该组织可能是在引入 Einstein for Developers 之前创建的,因此它没有正确的权限。创建另一个 Developer Edition 组织,然后重试此步骤。

  1. 打开 Einstein for Developers。

重要提示:我们建议您仔细阅读许可协议并查看所有条款和条件。然后接受启用 Einstein for Developers。

Einstein for Developers 在组织中被激活。

将用户添加到组织

管理员可以根据需要向组织添加其他用户:

  1. 在“设置”的“快速查找”框中,输入 ,然后选择“用户”。Users
  2. 单击“新建用户”或“添加多个用户”。
  3. 根据用户的角色选择适当的许可证类型和配置文件。
  4. 选择“生成密码并通过电子邮件通知用户”。
  5. 点击保存。 此过程会生成一封电子邮件,邀请新用户加入组织。

Visual Studio Code 版本

VS Code 每个月都会发布一个新版本,其中包含新功能和重要的 bug 修复。必须使用 VS Code 版本 1.76 或更高版本才能运行 Einstein for Developers 扩展。您可以从“帮助”>“在 Linux 和 Windows 上检查更新”或“代码>在 macOS 上检查更新”中手动检查更新

安装 Einstein for Developers 扩展

安装面向开发人员的 Einstein:

  • 如果在桌面上使用 VS Code,请从 Visual Studio Code 市场安装 Einstein for Developers。
  • 如果您使用的是 Code Builder,请单击 Code Builder 活动栏中的“扩展”图标,搜索“Einstein for Developers”,然后单击“安装”。

注意:若要在本地使用 Einstein for Developers,必须在 VS Code 桌面应用程序中安装 Salesforce 扩展包。有关详细信息,请参阅安装 Salesforce 扩展。

连接到组织

Einstein for Developers 工具在 Salesforce 组织的上下文中,在 Salesforce DX 项目中运行。要使用此工具,请执行以下操作:

  1. 转到菜单中的“文件”>“打开文件夹”,然后在 VS Code 中打开现有的 Salesforce DX 项目,或创建一个项目。
  2. 运行 SFDX: Authorize an Org 命令以连接到启用了 Einstein for Developers 的 Salesforce 沙盒组织或临时组织。选择默认选项以连接到您的组织。

活动栏和状态栏中的 Einstein 徽标确认已安装扩展。打开命令面板并运行以打开边栏。View: Show Einstein Developer Sidebar

在临时组织中将 Einstein 用于开发人员

Einstein for Developers 仅在可以编写 Apex 的 scratch 组织版本中可用:

  • 开发者版
  • 企业版

要在临时组织中使用 Einstein for Developers:

  1. 在 Dev Hub 中为开发人员启用 Einstein。
  2. 使用该命令登录到 Dev Hub。SFDX: Authorize a Dev Hub
  3. 通过打开 scratch org 功能激活 Einstein for Developers:EinsteinGPTForDevelopers

编辑 DX 项目中的文件,将“”功能添加到现有功能列表中并保存更改。例如:config/project-scratch-def.jsonEinsteinGPTForDevelopers

   {
   "orgName": "Acme Company",
   "edition": "Developer",
   "features":["Communities", "ServiceCloud", "EinsteinGPTForDevelopers"]
   }

使用引用您之前更新的临时组织定义的命令创建临时组织。SFDX: Create a Default Scratch Org...

显示 Einstein 反馈控制台视图

从命令面板运行 Einstein: Show Prompt History 以打开反馈控制台。打开后,您可以查看提示和关联响应的运行历史记录。对每个响应使用 👍 、 👎 和注释,以便向我们提供有关所生成代码质量的反馈。在此测试期间,您的反馈是帮助我们提高 AI 模型质量和整体产品的关键。

Apex 代码生成

内容

  • 生成 Apex 代码
  • 使用命令面板生成 Apex 代码

生成 Apex 代码

使用 Einstein for Developers 侧边栏编写问题或指令,描述您希望接收 Apex 代码建议的任务,然后按 Ask。复制您收到的代码建议并将其粘贴到 Apex 文件中以用作“入门”代码。

使用命令面板生成 Apex 代码

您可以从 VS Code 编辑器的 Apex 文件内部快速访问 Einstein for Developers。

  1. 打开现有的 Apex () 文件,或通过运行 SFDX: Create Apex Class 命令从命令面板创建一个文件。.cls
  2. 将光标放在文件中要放置生成的代码的行上。
  3. 在命令面板中,运行 Einstein: Generate Code
  4. 对于查询,请输入要生成的代码的描述。例如,“”Write a method that takes an account as a parameter and returns all contacts associated with that account.
  5. 查看 Einstein 生成的代码,然后单击“接受”、“重试”或“清除”。

使用我们的示例提示来了解如何充分利用生成式 AI 工具。

提示:要通过热键访问“Einstein:生成代码”命令,请按 Cmd+r (macOS) 或 Ctrl+r(Windows 或 Linux)。您可以自定义这些快捷方式。请参阅键盘快捷键编辑器。

您可以自定义这些快捷方式。请参阅键盘快捷键编辑器。

示例提示和响应

内容

  • 生成的代码质量
  • 提示写作技巧
  • 示例提示和响应
  • 编辑提示并重新生成输出

生成的代码质量

与所有基于 LLM 的产品一样,Einstein for Developers 背后的技术仍然是新的。生成的输出通常需要针对您的单个项目进行编辑。有些响应不是最佳的。我们很乐意通过 IDE 中的 History & Feedback Panel 听取您对生成的输出的反馈。您的反馈对于在测试计划期间持续训练我们的大型语言模型 (LLM) 至关重要。

我们强烈建议您在看到不太理想的代码示例时告知我们,以便我们可以继续改进生成的响应。我们建议使用 Apex PMD(已包含在 Salesforce 扩展包中)和 Salesforce Code Analyzer 等工具,以确保生成的代码的质量。

提示写作技巧

快速编写是高质量代码生成的关键。以下是一些改进提示编写的提示,以及一系列示例提示,可帮助您开始生成式 AI 代码辅助之旅。

原始提示改进的提示
编写对联系人列表进行排序的 Apex 代码。编写 Apex 代码,按姓氏的字母顺序对联系人列表进行排序。
编写一个将两个数字相加的方法。编写一个将两个数字相加并返回结果的方法。
编写一个返回对象字段的 Apex 方法。编写一个 Apex 方法,该方法接受 SObject 并返回其字段列表。

示例提示和响应

提示:编写一个 Apex 方法,该方法接受 sobject 列表和字段名称,并返回一组非 null 字段值。

响应:

public Set<String> getFieldValues(List<sObject> records, String fieldName) {
        Set<String> fieldValues = new Set<String>();

        for (sObject record : records) {
            try {
                Object fieldValue = record.get(fieldName);
                if (fieldValue != null) {
                    fieldValues.add((String) fieldValue);
                }
            } catch (Exception e) {
                system.debug('Error: ' + e.getMessage());
            }
        }
        return fieldValues;
    }


提示:创建一个 @invocable 方法,用于序列化 sObject 的输入列表并返回 JSON。

响应:

@InvocableMethod(label='Create Account' description='Creates a new account with the specified name, number and symbol.' category='Account')
    public static List<String> createAccounts(List<Account> accounts) {
        List<String> response = new List<String>();

        for (Account account : accounts) {
            String jsonAccount = JSON.serialize(account);
            response.add(jsonAccount);
        }

        return response;
    }

提示:编写一个 Apex 方法,该方法接受产品名称作为输入,并检索按产品名称筛选的 orderitems。

响应

public List<OrderItem> getOrderItemsByProductName(String productName) {
List<OrderItem> orderItems = [SELECT Description FROM OrderItem WHERE ProductCode = :productName LIMIT 50];
return orderItems;
}

提示:编写 Apex 触发器以添加与帐户关联的联系人数。在 SOQL 查询中,通过添加 WITH USER_MODE来确保其安全。

trigger AccountTrigger on Account (after update) {
    List<Account> accountsWithContacts = [
        SELECT Id, (SELECT Id FROM Contacts)
        FROM Account
        WHERE Id IN :Trigger.newMap.keySet()
        WITH USER_MODE
    ];
    
    for (Account account : accountsWithContacts) {
        Integer numberOfContacts = account.Contacts.size();
        
        // Update the Account's "Number_of_Contacts__c" field
        account.Number_of_Contacts__c = numberOfContacts;
    }
    
    update accountsWithContacts;
}

编辑提示并重新生成输出

精心设计的提示是获得 Einstein 良好响应的关键。我们鼓励您修改提示,直到您获得可帮助您完成手头任务的 Apex 代码。使用命令面板中的命令时,请使用“重试”和“接受”选项。在边栏中,编辑提示,然后单击“询问”。Einstein: Generate Code

例如,提示“编写代码以提供更新用户列表的 FirstName 的功能”会生成此响应。

public with sharing class AccountService {
  public Account createAccount( String accountName, String accountNumber, String tickerSymbol ) {
    Account newAcct = new Account(
      Name = accountName,
      AccountNumber = accountNumber,
      TickerSymbol = accountNumber
    );
    return newAcct;
  }
// Function to update the FirstName for a list of users
public static List<User> updateFirstName(List<User> users, String newFirstName) {
        for (User u : users) {
            if (String.isNotBlank(u.FirstName)) {
                u.FirstName = newFirstName;
            }
        }
        return users;
 }

此响应很好,但您可以通过创建方法编辑提示以生成可重用的代码。

单击“重试”并编辑提示以获得更具体的输出。将提示更新为“编写代码以提供将用户列表的 FirstName 更新为方法的功能”。这是新的回应。

public with sharing class AccountService {
  public Account createAccount( String accountName, String accountNumber, String tickerSymbol ) {
    Account newAcct = new Account(
      Name = accountName,
      AccountNumber = accountNumber,
      TickerSymbol = accountNumber
    );
    return newAcct;
  }
}

 //This is a method that allows updating the FirstName for a list of users
    public static void updateFirstName(List<User> users) {
        for (User usr : users) {
            if (usr.FirstName != null) {
                usr.FirstName = 'New First Name';
            }
        }
    }

如果您喜欢此输出,请单击“接受”。若要更新提示并重新生成新输出,请单击“重试”。

故障 排除

生成式 AI 使用大型语言模型 (LLM) 来生成输出。由于 LLM 是由其他组织训练的,因此输出并不总是您期望的,并且生成的代码也不完美。如果输出不符合您的预期,您可以通过重新开始生成新的输出。不会保存上一次尝试生成的输出,新输出将替换它。

我们鼓励您使用 👍 和 👎 按钮提供有关输出的反馈。您还可以评论为什么输出没有帮助。拇指响应和其他反馈仅与 Salesforce 共享,并用于反馈。若要跟踪所有已知问题和可能的解决方法,请使用此存储库中的“问题”选项卡。

Einstein for Developers 反馈和支持

内容

  • 反馈
  • 支持

反馈

在命令面板中,运行 Einstein: Show Prompt History 以打开反馈控制台。对每个提示使用 👍 和 👎注释来提供反馈。若要提出问题、请求功能和发布反馈,请使用“讨论”选项卡。

如果需要支持,请在 GitHub 存储库中提交问题。我们的团队会对所有传入的问题进行分类,并尽快回复您。

支持

注意:您需要一个 github 帐户才能创建问题。如果您没有 GitHub 帐户,可以轻松(且免费)注册一个帐户。

如果您想提供一般反馈、请求产品增强功能、开始与其他 Einstein for Developers 用户或产品团队进行讨论,以及分享最佳实践,请使用 Einstein for Developers Trailblazer Group。

Einstein for Developers 常见问题解答

什么是面向开发人员的 Einstein?

Einstein for Developers 是一种 AI 辅助工具,可作为易于安装的 VS Code 扩展使用来自 Salesforce 的安全自定义 AI 模型 Einstein 构建。

Einstein for Developers 接受过哪些数据训练?

Einstein for Developers 使用我们值得信赖的生成式 AI CodeGen 来协助您完成 Salesforce 开发。CodeGen 使用从匿名 Code Pattern 中学到的专业知识。

在哪里可以了解有关 Einstein for Developers 隐私和数据保护的更多信息?

请参阅来自 Salesforce 的可信 AI。

我的代码是否会在我的开发环境之外共享?

哈哈Salesforce 将您的代码视为主服务协议 (MSA) 下的机密信息,不会将其透露给其他 Salesforce 客户或 Salesforce 以外的任何人。您的一些代码和实体架构可用于改进 Einstein for Developers 和训练 CodeGen。由于机器学习的性质,Einstein for Developers 可以生成类似于用于训练模型的代码的输出。

我仍然有一些安全问题,如果我的代码包含专有信息怎么办?

在使用任何代码标记或构建模型之前,研究团队会从代码中清除所有个人身份信息 (PII) 和机密信息。这些信息包括姓名、公司名称、电话号码、地址和硬编码的 API 令牌。使用客户管理的加密密钥对数据进行静态加密。请参阅客户管理的加密密钥 (CMEK)。我们还确保只有 Salesforce 员工才能处理您的代码,而不是承包商。

Einstein 开发人员词汇表

本词汇表定义了贯穿 Einstein 文档的生成式 AI 术语。

生成式预训练转换器 (GPT):由 OpenAI 开发的一系列语言模型,通常在大量文本数据语料库上进行训练,因此它们可以生成类似人类的文本。

接地:用于将特定于域的知识和客户信息注入提示的过程。 人在环 (HITL):一种需要人机交互的模型。

意图:用户与 AI 助手交互的目标。

大型语言模型(LLM):一种语言模型,由神经网络组成,该神经网络具有在大量文本上训练的许多参数。

提示:要完成的任务的自然语言描述。LLM 的输入。

及时管理:用于生成、管理、打包和共享提示的工具套件,包括提示模板和提示模板存储。

提示模板:带有占位符/标记的字符串,可以将其替换为自定义值以生成最终提示。该模板包括与该提示关联的超参数,以及您选择的型号/供应商(如果未使用默认值)。

提示链接:选择正确的提示工程的方法,即将复杂的任务分解为几个中间步骤,然后将其重新组合在一起,希望 AI 产生更具体、更定制、从而更好的结果。若要获得最佳提示,请使用“重试”选项重新生成代码。

语义检索:大型语言模型使用客户 CRM 数据中存在的所有知识的方案。每个CRM用户都可以访问个性化的生成式AI。

遥测和数据收集

Einstein for Developers 目前处于测试阶段。在测试期间,您的反馈、提示和响应数据将用于模型训练。假定您授予 Salesforce 永久的、不可撤销的、非排他性的、全球性的、免版税的许可,以使用提交的代码。有关更多信息,请参阅我们的使用条款。

由于机器学习的本质,Einstein for Developer 可以生成类似于用于训练模型的代码的输出。您和 Salesforce 都不拥有为除他们自己之外的各方生成的输出。

Einstein for Developers 扩展(测试版)的附加使用条款

Einstein for Developers 扩展是使用 Salesforce 的全球 CodeGen 大型语言模型构建的 beta 扩展。Einstein for Developers 扩展直接在标准 Salesforce IDE 工具中提供生成式 AI 功能,包括但不限于以下用例:

  • 从自然语言生成代码 – 能够用通俗易懂的英语描述代码逻辑或目标,并使用 AI 生成一段代码;和
  • 代码自动完成 – 智能内联代码建议。

使用 Einstein for Developers 扩展程序须遵守以下附加条款:

  1. “提交的代码”定义为 (a) 提交给 Einstein for Developers 扩展的提示,以及 (b) 项目中用于为模型提供其他上下文的关联代码。
  2. 提交的代码和提供给 Salesforce 的任何反馈不应包含“个人数据”,即与已识别或可识别的自然人相关的任何信息。
  3. Salesforce 将使用提交的代码和反馈来开发和训练 CodeGen 模型,并且您授予 Salesforce 永久的、不可撤销的、非排他性的、全球性的、免版税的许可,以将提交的代码和反馈用于此类目的,并同意用于处理和存储提交代码和反馈的基础设施将部分由 Amazon Web Services 提供。 Inc.在美国。
  4. 您将保留代码的所有权,Salesforce 将保留 Einstein for Developers 扩展和 CodeGen 模型的唯一所有权。
  5. Einstein for Developers 扩展可能会生成类似于用于训练模型的代码的输出。为避免疑义,您和 Salesforce 均不拥有为非他们自己方生成的输出。
  6. 提交的代码不会与 Salesforce 以外的任何方共享。
  7. 无担保。EINSTEIN FOR DEVELOPERS 扩展按“原样”提供,不包括任何明示、暗示、法定或其他形式的保证。在适用法律允许的最大范围内,SALESFORCE 不承担任何默示保证,包括但不限于对适销性和特定用途适用性或不侵权的任何默示保证。Einstein for Developers 扩展和/或生成的代码可能包含错误或错误,使用它们的风险由您自行承担。您承认,Salesforce 可随时自行决定终止 Einstein for Developers 扩展,并且可能永远不会将其正式发布。
  8. 无损害赔偿。在任何情况下,SALESFORCE 均不对任何损害承担任何责任,包括但不限于直接、间接、特殊、偶然、惩罚性或后果性损害,或基于利润、数据或使用损失的损害,无论其原因如何,无论是合同、侵权行为还是根据任何其他责任理论,即使已被告知此类损害的可能性。

最后更新日期:2023 年 8 月

代码生成器概述

概述

Salesforce Code Builder 是一个基于 Web 的集成开发环境,具有 Web 浏览器中 Visual Studio Code、Salesforce Extensions for VS Code 和 Salesforce CLI 的所有功能和灵活性。Code Builder 为所有开发人员提供现代开发人员体验,无论其专业水平如何。Code Builder 使管理员和开发人员都可以轻松地在云中工作,而无需担心下载软件、设置或机器规格。使用 Code Builder,您可以在任何地方工作。为开发环境添加书签以返回到该环境,或从其他计算机访问该链接。与桌面 IDE 不同,Code Builder 无需您明确执行此操作即可为您保存工作。

Code Builder 是可以快速启动的开发环境,可针对您的 Salesforce 组织和指定项目进行自定义。通过 Code Builder,访问您喜欢的 Salesforce 语言和框架,例如 Apex、SOQL、Visualforce、Aura 和 Lightning Web Components。访问丰富的开发人员工具,例如用于 Apex 的调试器、linting 等。 您可以在任何受支持的 Salesforce 组织版本中将 Code Builder 作为托管包安装。

其他资源

错误和反馈

如果在使用 Code Builder 时遇到任何问题,或者想要提供其他类型的反馈(例如初始印象或功能请求),请在 GitHub 存储库中提交问题。我们想了解哪些功能和增强功能对您很重要。

有什么不同

内容

  • 代码生成器中的不同之处
  • 已知差距和问题

代码生成器中的不同之处

Code Builder 释放了 Salesforce Extensions for VS Code 的强大功能,并提供与桌面版本相同的丰富功能。无论您是在桌面上使用 VS Code 还是从浏览器使用 Code Builder,您访问的 Salesforce 扩展都是相同的。虽然无论如何访问扩展,它们通常都以相同的方式运行,但有一些细微差别需要注意:

  • 由于代码生成器实例在云中运行,因此从中授权组织遵循与桌面版本不同的(设备)流程。有关步骤,请参阅连接到其他组织。
  • Code Builder 作为托管包安装,它附带了您需要的一切:VS Code、Salesforce 扩展和 Salesforce CLI。无需在本地计算机上进行安装。
  • 与桌面版 VS Code 不同,无法从 Code Builder 访问 Microsoft Marketplace。相反,您可以将 Open VSX 市场中提供的扩展添加到您的 Code Builder 环境中。这意味着您可能会看到可用扩展的差异。
  • Code Builder 中的第三方授权顺序不同。
  • 我们在 Code Builder 中为您提供最新的 Salesforce 扩展。您无需执行任何操作。

已知差距和问题

请参阅已知差距和问题,了解我们注意到的问题列表。

如果你发现任何未列入我们列表的问题,或者想要提供其他类型的反馈,例如初始印象或功能请求,请在 GitHub 存储库中提交问题。我们想了解哪些功能和增强功能对您很重要。

设置代码生成器

内容

  • 启用和安装 Code Builder
  • 确认代码生成器包安装
  • 将团队成员添加为代码生成器组织中的用户
  • 分配权限
  • 升级到最新的 Code Builder 版本
  • 另见

启用 Code Builder 以提供在受支持的 Salesforce 版本中安装 Code Builder 托管包所需的权限。

所需版本

适用于:Lightning Experience in Enterprise、Performance、Professional 和 Unlimited Editions。

不适用于:欧盟运营区。欧盟运营区是一项特殊的付费产品/服务,可提供更高级别的数据驻留承诺。根据标准产品条款和条件,不属于欧盟 OZ 的欧盟组织支持 Code Builder。

启用和安装 Code Builder

若要在 Professional Edition 组织中安装 Code Builder,该组织必须具有 API 访问权限。如果尝试在没有 API 访问权限的情况下在专业版组织中安装 Code Builder,则会发生安装错误。请联系您的客户经理申请 API 附加组件。

注意:在 Government Cloud Plus 中启用 Code Builder 组织可以在授权边界之外发送数据。有关更多详细信息,请联系您的 Salesforce 客户经理。

  1. 在“设置”中,在“快速查找”框中输入“代码生成器”,然后选择“代码生成器”。
  2. 启用 Code Builder,然后查看并接受许可协议,该协议允许您安装包。您可以随时禁用该首选项。如果已安装 Code Builder,则禁用该首选项会阻止对 Code Builder 应用程序的访问。
  3. 单击“安装包”。 安装程序启动后,系统将引导你完成安装过程,以安装最新版本的代码生成器托管包。您可以返回到此安装页面以重新安装或升级软件包。
  4. 选择“为所有用户安装”,然后单击“安装”。
  5. 批准第三方访问,然后单击继续

代码生成器仪表板现已在应用程序启动器中可用。请务必将适当的代码生成器权限集分配给团队成员。

确认代码生成器包安装

安装完成后,您会收到一封确认电子邮件。您可以在“已安装的软件包设置”页上确认安装。

在“设置”中,输入“快速查找”框,然后选择“已安装的包”。您会看到代码生成器的条目,如下所示。如果您收到应用安装时间较长的消息,则在单击“完成”后,系统会自动将您重定向到此页面。Installed Packages

将团队成员添加为代码生成器组织中的用户

Code Builder 使用 Identity 或免费有限访问许可证。

添加任何尚未成为 Code Builder 组织中用户的团队成员:

  1. 登录到 Code Builder 组织。
  2. 在“设置”中,输入“快速查找”框,然后选择“用户”。Users
  3. 单击“新建用户”或“添加多个用户”。
  4. 根据用户的角色选择适当的许可证类型和配置文件。
  5. 选中“生成密码并通过电子邮件通知用户”复选框。
  6. 点击保存

注意:此过程会生成一封电子邮件,邀请新用户加入组织。但是,在完成 Code Builder 的设置之前,他们在组织中没有太多事情要做。我们建议您让您的团队知道您正在设置 Code Builder,并等到他们收到您的来信后再登录。

分配权限

作为管理员,分配用户权限:

  1. 在“设置”中,输入“快速查找”框,然后选择“权限集组”。Permission Set Groups
  2. 单击 CodeBuilderGroup
  3. 单击“管理分配”
  4. 单击“添加分配”。
  5. 选中要分配权限集组的用户名称旁边的复选框,然后单击下一步
  6. 单击分配

您的用户现在可以转到应用程序启动器并启动 Code Builder

升级到最新的 Code Builder 版本

在大多数情况下,您无需执行任何操作即可升级到最新版本的代码生成器。当我们发布新的软件包版本时,我们会自动更新您的组织。

但是,有时推送升级不起作用。如果您没有最新版本,我们建议您通过“代码生成器安装”页手动安装包。如果不存在较新的版本,程序包安装程序会通知你已拥有最新版本。

代码生成器入门

内容

  • 概述
  • 创建代码生成器环境
  • 连接到 Salesforce 组织
  • 让我们快速浏览一下
  • 了解您的组织 – 使用组织浏览器
  • 使用 SOQL Builder 生成并运行您的第一个查询
  • 创建、检索和部署自定义字段
  • 创建和部署新的 Lightning Web 组件
  • 了解更多

概述

完成此快速入门以熟悉 Code Builder 界面,并在 Code Builder 环境中执行一些简单的任务。在开始之前,请参阅代码生成器概述,了解详细信息和重要注意事项。

别忘了保存你的工作

在云中工作有其优势。但是,与在将文件保存到本地计算机的桌面上工作不同,您必须将更改部署到组织或将其提交到源代码管理,以将工作永久保存在某个位置。当您返回时,保存在 Code Builder 环境中的工作将在那里,但 Code Builder 不适合永久长期存储。我们建议您在关闭“代码生成器”选项卡之前保存您的工作。

注意:如果您的代码生成器环境处于非活动状态超过 60 天,我们可能会将其删除。

创建代码生成器环境

  1. 在应用程序启动器中,找到并打开 Code Builder Dashboard

注意:如果未看到“代码生成器仪表板”选项,请与管理员联系,以确保为你分配了正确的许可证和权限集。

  1. 单击启动”以启动 Code Builder 环境。首次启动时,将为您创建一个新环境。我们还创建了一个空的 Salesforce DX 项目来帮助您入门。请注意,创建和加载新环境需要几分钟时间。当您看到“欢迎使用 Salesforce Code Builder”时,您就知道一切准备就绪。

提示:创建 Code Builder 环境后,请随时从仪表板启动它,或将其添加为书签以便快速访问。

注意:每次启动 Code Builder 环境时,都会覆盖 和 文件。我们建议您不要编辑这些文件,因为您的更改将丢失。创建新的 和 文件来存储 Dotfile 自定义项。.bashrc.profile.bash_logout.bashrc.local.profile.local.bash_logout.local

连接到 Salesforce 组织

接下来,将组织连接到代码生成器环境。在开发过程中,您将在不同的阶段使用不同类型的组织。例如,在开发阶段使用开发人员沙盒或 Developer Edition 组织,并迁移到其他沙盒类型进行集成、测试和暂存是很常见的。最终,您需要将更改部署到生产组织。您可以将 Code Builder 连接到这些组织中的任何一个,以部署或检索元数据。

要在首次启动 Code Builder 时连接到组织,请执行以下操作:

  1. 在 Code Builder 环境中,单击“连接组织”以连接到要在其中工作的 Salesforce 组织。
  2. 输入登录 URL 或选择要登录的组织。
  3. 输入组织的别名,例如 dev_pro_sandbox 或 my_playground。
  4. 代码显示在文本框中。单击“连接”。
  5. 使用相关的用户名和密码登录。单击“允许”。
  6. 点击继续。现在,您已连接到一个组织,其名称显示在“代码生成器”选项卡底部的状态栏中。

您可以通过单击当前组织的名称来更改您连接到的组织,以调出命令面板并再次运行 SFDX:授权组织

注意:在您授权组织后,我们会负责将来的授权,因此您不必持续登录。只需单击组织的名称,然后从列表中选择组织即可。

让我们快速浏览一下

现在,你已进入 Code Builder 的开发人员环境。Code Builder 具有丰富的 IDE,它允许您通过扩展的 Salesforce 扩展包访问酷炫的 Salesforce 特定开发工具。让我们快速浏览一下,了解这片土地的布局。您的屏幕如下所示:

Code Builder 用户界面分为五个主要区域。

活动栏:位于左侧,包含用于在不同视图之间切换的标志性按钮。在我们的示例中,“资源管理器”视图处于活动状态。

侧边栏:包含不同的视图,以帮助您处理项目。例如,您可以在我们的示例中看到 Explorer 视图。它列出了项目中 DX 项目结构中的文件。

编辑器:编辑文件的主要区域。您可以并排、垂直和水平打开任意数量的编辑器。

面板:显示输出或调试信息、错误和警告或集成终端。您可以选择要显示的输出。

状态栏:显示有关打开的项目和您正在编辑的文件的信息。状态栏显示您连接到的组织。

了解您的组织 – 使用组织浏览器

仔细查看活动栏,并注意到一个云图标。此图标表示组织浏览器。它是 Salesforce 扩展包的一部分。它可以帮助您浏览和检索组织中的元数据,而无需使用清单文件。使用组织浏览器将元数据源检索到本地项目中。

详细信息:您可以在 Salesforce Extension Pack 文档中找到有关组织浏览器的更多信息。

单击 Org Browser,然后向下滚动到 Custom Objects。您看到的第一个对象是 Account。您可以查看 Account 对象的元数据(并做一些更酷的事情,但我们稍后会谈到这些内容)。

使用 SOQL Builder 生成并运行您的第一个查询

Code Builder 预装了构建和运行 SOQL 查询所需的一切。 让我们在 Account 对象上构建并运行一个简单的 SOQL 查询:

  1. 按 Ctrl+Shift+P (⇧⌘P) 查看命令面板。
  2. 在搜索框中键入“SOQL”,然后选择“SFDX:在 SOQL Builder 中创建查询”。
  3. 选择以下选项:a.a. “发件人”字段中的“帐户对象”。b. 字段中的 BillingState 和 NumberofEmployees。c.c. 按“运行查询”,在组织上运行此简单的 SOQL 查询。

如果关闭无标题文件,系统会提示您保存更改。

  1. 使用“.soql”扩展名保存对文件的更改。
  2. 让我们重新运行保存的查询 – 右键单击该文件并选择“打开方式…”,然后选择“SOQL Builder”。 该文件将在 SOQL Builder 中打开,您可以根据需要重新运行或编辑查询。

有关生成复杂查询的详细信息,请参阅 Salesforce Extensions for Visual Studio Code 文档中的 SOQL 生成器。

创建、检索和部署自定义字段

让我们向组织中的对象添加一个自定义字段,并将其元数据提取到我们的 Code Builder 项目中。

首先,让我们添加一个自定义字段 –

  1. “设置”中,转到“对象管理器”,然后选择“帐户”。
  2. 单击“字段和关系”。
  3. 单击“新建”。
  4. 对于数据类型,选择“日期”,然后单击“下一步”。
  5. 填写以下内容:
    • 字段标签:创建于
    • 字段名称:createdon
    • 描述:帐户创建日期
  6. 单击“下一步”,直到保存该字段。

现在让我们检索这个新字段的元数据 –

  1. 返回到 Code Builder 并打开 Org Browser。
  2. 向下滚动到“自定义对象”,然后导航到“帐户”。
  3. 单击 Account 组件旁边的检索图标以运行 SFDX: Retrieve Source from Org
  4. 在活动栏中,单击资源管理器并导航到 。force-app/main/default/object/Account

瞧,在文件夹中,一个名为包含新自定义字段的元数据的文件!fieldscreatedon_c.field-meta.xml

元数据在这里供您参考:

<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
   <fullName>createdon__c</fullName>
   <description>Date of Account Creation</description>
   <externalId>false</externalId>
   <label>Created On</label>
   <required>false</required>
   <trackFeedHistory>false</trackFeedHistory>
   <type>Date</type>
</CustomField>

现在,我们将对此字段进行简单的编辑,只需单击一下即可将更改部署回我们的组织。

  1. 编辑并更改标记值,以指示此自定义字段为必填字段。createdon_c.field-meta.xml<required>true
  2. 右键单击该文件夹,然后单击 SFDX: Deploy Source to Orgobjects/Account
  3. 成功运行命令后,返回到您的组织并检查“创建时间”自定义字段的详细信息,并确认它现在是必填字段。

创建和部署新的 Lightning Web 组件

对于部署的另一个练习,让我们学习如何在代码生成器项目中快速创建一个简单的 Lightning Web 组件。然后,我们将使用单个命令将此组件部署到我们的组织。来吧:

让我们创建一个 Lightning Web 组件 –

  1. 按 Ctrl+Shift+P (⇧⌘P) 运行 SFDX: Create Lightning Web Component 以创建新的 Lightning Web 组件。
  2. 给组件起个名字,比如 .newCBComponent
  3. 按 Enter 键接受默认文件位置 ()。force-app/main/default/lwc
  4. 按 Enter 键

在文件夹中创建三个新文件。force-app/main/default/lwc/newCBComponent

更新文件 –

在 中,复制并粘贴以下代码:newCBComponent.html

<template>
    <p>Hello, {greeting}!</p>
    <lightning-input label="Name" value={greeting} onchange={handleChange}></lightning-input>
</template>

在 中,复制并粘贴以下代码:newCBComponent.js

import { LightningElement } from 'lwc';

export default class NewCBComponent extends LightningElement {
   greeting = 'Great going learning Code Builder!';
   changeHandler(event) {
       this.greeting = event.target.value;
   }
}

在 中,复制并粘贴以下代码:newCBComponent.js-meta.xml


<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
   <apiVersion>54.0</apiVersion>
   <isExposed>true</isExposed>
   <targets>
   <target>lightning__AppPage</target>
   <target>lightning__RecordPage</target>
   <target>lightning__HomePage</target>
 </targets>
</LightningComponentBundle>

保存所有文件。

让我们将这个新组件部署到我们的组织 –

右键单击该文件夹,然后单击 SFDX: Deploy Source to Orgforce-app/main/default/lwc/newCBComponent

输出窗口显示以下消息:


=== Deployed Source
STATE    FULL NAME       TYPE                      PROJECT PATH
───────  ──────────────  ────────────────────────  ────────────────────────────────────────────────────────────────────
Created  newCBComponent  LightningComponentBundle  force-app/main/default/lwc/newCBComponent/newCBComponent.html
Created  newCBComponent  LightningComponentBundle  force-app/main/default/lwc/newCBComponent/newCBComponent.js
Created  newCBComponent  LightningComponentBundle  force-app/main/default/lwc/newCBComponent/newCBComponent.js-meta.xml

10:22:27.340 ended SFDX: Deploy Source to Org

  1. 选择 SFDX: Open Default Org 以登录您的组织。
  2. 导航到 Setup:Lightning Components,以确认您的组织中现在有一个名为的新 Lightning Web 组件可用。newCBComponent

恭喜您成功创建并部署了新的 Lightning Web 组件。

了解更多

您可以花点时间使用这些资源来详细了解您可以在 Code Builder 中执行的操作:

  • Visual Studio Code 用户界面,了解 Visual Studio Code 用户界面。
  • Salesforce 扩展,了解适用于 VS Code 的 Salesforce 扩展的所有强大功能。

删除代码生成器

卸载代码生成器

如有必要,可以卸载 Code Builder。如果计划重新安装代码生成器,请不要删除代码生成器身份验证提供程序。但是,如果删除了身份验证提供程序,则可以通过在“安装程序”中重新启用“代码生成器”首选项来重新创建它们。

重要提示:卸载 Code Builder 还会删除所有关联数据,包括但不限于项目和活动历史记录。

删除权限集分配

在卸载代码生成器包之前,请删除权限集分配,然后删除代码生成器权限集。

首先,从所有代码生成器用户中删除代码生成器权限集组分配。

  • CodeBuilderGroup(代码生成器组)

接下来,删除代码生成器权限集。

在“设置”中,输入“快速查找”框,然后选择“权限集”。 删除权限集。Permission SetsCode Builder Package

卸载代码生成器包

删除权限集和权限集分配后,可以卸载代码生成器包,这将删除应用程序及其所有关联的数据和对象。

在卸载软件包之前:

  • 删除代码生成器权限集分配。
  • 删除代码生成器权限集。
  1. 在“设置”中,输入“快速查找”框,然后选择“已安装的包”。Installed Packages
  2. 单击“卸载”,然后滚动到页面底部以选择是否保存和导出包数据的副本。
  3. 选择“是,我想卸载此包并永久删除所有关联的组件”。
  4. 单击“卸载”。

禁用代码生成器首选项

安装 Code Builder 时,Salesforce 管理员首先启用了 Code Builder。若要确保无法安装或使用代码生成器,可以禁用代码生成器首选项。

在“设置”中,输入“快速查找”框,然后选择“代码生成器”。 禁用启用代码生成器。 你无法再安装或升级 Code Builder 应用,并且用户在尝试使用时会看到尚未为你的组织启用 Code Builder。Code Builder

使用代码生成器的有用提示

内容

  • 从 Open VSX 注册表安装扩展
  • 重置代码生成器环境

从 Open VSX 注册表安装扩展

通过在 Code Builder 环境中安装其他扩展,最大限度地提高 Code Builder 中的工作效率。Open VSX 是一个 Eclipse 开源项目,是 Visual Studio Marketplace 的替代品。此处提供的扩展可以安装在代码生成器中。可以从 VS Code 中浏览和安装这些扩展。通过单击活动栏中的“扩展”图标或“视图:扩展”命令 (⇧⌘X) 来打开“扩展”视图。

重置代码生成器环境

重置代码生成器环境,以开始使用全新环境进行构建。重置会删除代码生成器环境中存储的所有内容和所有数据,以便您有一个干净的空间可供使用。要重置 Code Builder 环境,请单击启动按钮旁边的下拉列表,然后选择重置环境

适用于 VS Code 的 Salesforce 扩展

适用于 Visual Studio Code 的 Salesforce 扩展是一组开源扩展,附带了用于在 Salesforce 平台上进行开发的丰富工具。下载并安装这些扩展程序,开始在 Salesforce 平台上进行开发。

开源

安装 Salesforce 扩展

内容

  • 概述
  • Visual Studio 代码
  • Salesforce 扩展包
  • Salesforce 命令行界面
  • Java Platform, Standard Edition 开发工具包

概述

在开始之前,请在计算机上安装所需的软件。

Visual Studio 代码

在运行 macOS、Windows 或 Linux 的任何计算机上安装 Visual Studio Code。VS Code 的系统要求相当小,因此它应该在大多数计算机上运行良好。

若要安装 Visual Studio Code,请访问 https://code.visualstudio.com,然后单击绿色的大“下载”按钮。下载完成后,打开安装程序并按照步骤完成安装。

Salesforce 扩展包

想在当地发展吗?已经在使用 VS Code?安装 Salesforce Extensions 和 Salesforce CLI,以便在 Salesforce 平台上快速、高效地进行开发。

使用链接安装 VS Code 和 Salesforce 扩展包。
下载 Visual Studio Code安装 Salesforce 扩展

Salesforce 命令行界面

Salesforce CLI 用于对 Salesforce 组织执行命令,并在本地计算机上处理源文件。适用于 VS Code 的 Salesforce 扩展在后台使用 Salesforce CLI,因此即使您不想直接使用 CLI,也需要将其安装在您的计算机上。

有关安装 Salesforce CLI 的信息,请参阅《Salesforce DX 设置指南》。

Java Platform, Standard Edition 开发工具包

适用于 VS Code 的 Salesforce 扩展中的某些功能依赖于 Java Platform, Standard Edition 开发工具包 (JDK)。您需要安装 JDK 版本 11 或 17 或更高版本。有关详细信息,请参见 Java 设置。

其他推荐的扩展

内容

  • Salesforce代码分析器(测试版)
  • 顶点PMD
  • Apex 日志分析器
  • 漂亮
  • ESLint 的
  • XML格式
  • 社区扩展
  • 适用于 Java 的调试器

我们推荐的扩展

除了 Salesforce 提供的扩展包外,以下扩展对 Salesforce 开发人员也很有用。我们还将扩展包与扩展扩展包中一些最常用的社区扩展打包在一起。

Salesforce代码分析器(测试版)

使用 Salesforce Code Analyzer 扩展来识别和修复代码中的问题。请参阅 Salesforce 代码分析器文档。

安装代码分析器

顶点PMD

允许您直接在 VS Code 中对 Apex 和 Visualforce 文件运行 Apex 静态分析。

安装 Apex PMD

Apex 日志分析器

Salesforce 调试日志分析器,旨在使性能分析更加轻松快捷。它对于快速了解代码的执行方式也很有用。

安装 Apex Log Analyzer

漂亮

在任何编程语言中,保持代码的一致性和良好的格式都很重要。Prettier 支持对 Salesforce 开发人员使用的许多文件进行格式设置,例如 JavaScript 和 CSS 文件。

安装 Prettier

Prettier 还通过Apex Prettier 插件.

ESLint 的

分析您的 JavaScript 代码以查找问题并帮助您修复它们。作为 LWC 扩展的一部分,Salesforce 提供了特定的 ESLint 规则,您也可以添加自己的规则。这些预配置的规则可帮助您编写高质量的代码。

安装 ESLint

XML格式

默认情况下,VS Code 不附带丰富的 XML 工具。此扩展由 Red Hat 构建,为 VS Code 项目中的 XML 文档(如 or 文件)提供语言支持。-meta.xmlpackage.xml

安装 XML 工具

社区扩展

社区开发了多个扩展,以帮助提高 Salesforce 开发的工作效率。若要查找这些扩展,请搜索 Visual Studio Code Marketplace 或浏览标记为 Salesforce 的所有扩展。

适用于 Java 的调试器

基于 Java 调试服务器的 Java 调试器,扩展了 Red Hat 对 Java 的语言支持。它允许您在 VSCode 中调试 Java 代码。安装此扩展以调用和调试 Java 函数。

设置

内容

  • 工作区设置
  • 扩展设置
  • 停止 CLI 成功消息

工作区设置

若要编辑工作区设置,请在“设置”>选择“文件”>“首选项”(Windows 或 Linux)或“设置”>“>代码首选项”(macOS)。有关配置设置的信息,请参阅 Visual Studio Code 文档中的用户和工作区设置。

扩展设置

我们使用扩展设置来提供对 Beta 版功能和其他自定义设置的访问。

停止 CLI 成功消息

要阻止 Salesforce CLI 成功消息显示为弹出信息消息,请单击成功消息中的仅在状态栏中显示。此按钮将覆盖默认设置中的值。它将“工作区设置”值更改为 。将此值设置为使成功消息显示在状态栏中(在 VS Code 的页脚中),而不是作为信息消息显示。如果您最终确定自己喜欢这些信息消息,请将值更改回 。salesforcedx-vscode-core.show-cli-success-msgfalsefalsetrue

若要查看此扩展包的其他设置,请在设置中搜索 。salesforcedx-vscode

技巧和窍门

按开发任务组织 VS Code 扩展

注意:由于 Code Builder 是基于 Web 的,因此,如果 Code Builder 是您选择的开发环境,则这些提示无关紧要。

按开发任务组织 VS Code 扩展有助于避免扩展提供对当前任务无用的功能。仅包含所需的扩展有助于最大程度地减少 VS Code 启动时间,并确保快捷键不会相互干扰。下面介绍如何将 VS Code 设置为仅使用扩展程序启动,以便与 Salesforce 配合使用。

  1. 将别名添加到 shell 的启动脚本中。code-sfdx
    • 窗户
      1. 安装 VS Code 时,请作为提示的一部分进行安装。有关详细信息,请参阅 Visual Studio Code 文档中的 Windows 上的 Visual Studio Code。code
      2. 打开 Git Bash。(Git Bash 作为 Salesforce CLI 的一部分安装。
      3. 检查是否有文件。如果没有,请运行以下命令创建它:.bashrc
        touch .bashrc
      4. 将此行添加到您的文件中。.bashrc
        alias code-sfdx='code --extensions-dir ~/.sfdx-code'
    • macOS 或 Linux
      1. 打开 VS Code。
      2. 若要打开命令面板,请按 Cmd+Shift+P (macOS) 或 Ctrl+Shift+P (Linux)。
      3. 运行命令 Shell 命令:在 PATH 中安装“code”命令 This command lets you invoke `code` directly from your favorite terminal.
      4. 在你喜欢的终端中,打开 shell 的启动脚本。如果您使用的是 Bash,则启动脚本通常是您的 or 文件。如果您使用的是 Z Shell,则它通常是您的文件。如果没有具有这些名称的文件,请在主目录中创建一个名为的文件(例如,在 中)。.bashrc.bash_profile.zshrc.bashrcMacintosh HD/users/yourName
      5. 将此行添加到 shell 的启动脚本中。
        alias code-sfdx='code --extensions-dir ~/.sfdx-code'
  2. 打开新的终端窗口或从当前终端运行以下命令之一。
    source .bashrc
    source .bash_profile
    source .zshrc
  3. 在终端中,运行以启动仅包含扩展的 VS Code 实例。code-sfdx注意:第一次启动时,它没有扩展,因为它是一个全新的实例 VS Code。code-sfdx
  4. 选择“查看>扩展”。
  5. 安装 Salesforce 扩展包扩展(以及用于 Salesforce 开发的任何其他扩展)。
  6. 下次处理 Salesforce DX 项目时,可以使用以下命令启动 VS Code,所有扩展都将在那里。code-sfdx

您可以根据需要拥有任意数量的别名,并根据需要使用任意数量的目录来帮助组织扩展。extensions-dir