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 组件
从命令面板中,运行 SFDX:创建 Lightning Web 组件,并创建在默认位置调用的组件。contactList
在 Visual Studio Code 中,打开命令面板并运行 SFDX: Open Default Org。 这将在单独的浏览器中打开您的组织。
在应用启动器中,找到并选择销售。
点击设置齿轮,然后选择编辑页面。
将 Lightning Web 组件从“Lightning 组件”列表的“自定义”区域拖动到“页面画布”的顶部。contactList
点击保存。
单击“激活”。
单击 Assign as Org Default(分配为组织默认值)。
点击保存。
再次单击“保存”,然后单击“后退”箭头返回页面。
刷新页面以查看新组件。
测试 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 配置添加到您的标准项目中:
转到活动栏中的“运行和调试”。
从下拉列表中选择“添加配置”。
选择 Debug: LWC Jest Tests。
保存更新后的 .launch.json
从“运行”视图的“配置”下拉列表中选择“调试: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 规则。
public with sharing class MyBooks {
public MyBooks() {
}
public static void applyDiscount(Book__c[] books) {
for (Book__c b : books){
b.Price__c *= 0.9;
}
}
}
现在添加一个具有一个测试方法的测试类。然后运行测试并验证代码覆盖率。测试方法练习并验证触发器和类中的代码。此外,它还使您能够达到触发器和类的 100% 代码覆盖率。 在我们的示例中,创建一个测试类,该类插入一个新的 book 对象,该对象会触发我们之前编写的 Apex 触发器。 要创建测试类,请执行以下操作:
在命令面板中,运行 SFDX:Create Apex Class 并创建一个名为 .MyBooksTestClass
将以下代码粘贴到文件中: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);
}
}
若要运行编写的测试,必须将代码部署到组织。在文件中单击鼠标右键,然后运行 SFDX: Deploy This Source to Org 以部署代码。
单击文件中的“运行所有测试”以测试代码。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 构建强大的工具。
在调试会话进行过程中,运行带有断点的代码行的任何同步活动都会导致执行在断点处停止。在执行暂停时,您可以检查调用堆栈并查看变量的当前值。还可以使用调试会话进行时显示在编辑器顶部的“调试操作”窗格单步执行代码,并观察这些值的更改。一次最多可以调试两个线程。有关详细信息,请参阅 Visual Studio Code 文档中的调试。
Salesforce Extensions for VS Code 针对您设置为开发默认组织的组织运行命令。
Salesforce 组织开发模型
组织开发模型
在 Visual Studio Code 中,使用组织开发模型处理没有源跟踪的组织,例如沙盒、Developer Edition (DE) 组织或 Trailhead Playgrounds。使用此开发模型时,您必须手动跟踪更改,并将更改集部署到沙盒,然后部署到生产组织。请参阅 Org Development Model Trailhead 模块。
使用 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。
具有适当权限的 Salesforce 管理员或用户可以在受支持的 Salesforce 组织中启用 Einstein for Developers。然后,有权访问组织的开发人员可以:
在 VS Code 中安装扩展。
连接到启用了 Einstein for Developers 的组织。
使用扩展从自然语言指令生成 Apex 代码。
所需版本
适用于:开发人员、企业、合作伙伴开发人员、性能版和无限版。
不适用于:Group、Professional 和 Essentials 版本
不适用于:欧盟运营区。欧盟运营区是一项特殊的付费产品/服务,可提供更高级别的数据驻留承诺。根据标准产品条款和条件,Einstein for Developers 在欧盟不属于欧盟 OZ 的组织中得到支持。
所需的用户权限
要配置 Einstein for Developers(测试版):自定义应用程序并修改所有数据
已启用增强型域
您的 Einstein for Developers 组织必须启用增强型域。有关详细信息,请参阅启用增强型域。
为开发人员启用 Einstein
当您在受支持的 Salesforce 组织中启用 Einstein for Developers 时,该组织中的所有用户都可以访问该功能。
在“设置”的“快速查找”框中,输入 ,然后选择“Einstein for Developers”。Einstein for Developers
提示:如果您在 Developer Edition 组织中的“设置”下没有看到“Einstein for Developers”选项,则该组织可能是在引入 Einstein for Developers 之前创建的,因此它没有正确的权限。创建另一个 Developer Edition 组织,然后重试此步骤。
打开 Einstein for Developers。
重要提示:我们建议您仔细阅读许可协议并查看所有条款和条件。然后接受启用 Einstein for Developers。
Einstein for Developers 在组织中被激活。
将用户添加到组织
管理员可以根据需要向组织添加其他用户:
在“设置”的“快速查找”框中,输入 ,然后选择“用户”。Users
单击“新建用户”或“添加多个用户”。
根据用户的角色选择适当的许可证类型和配置文件。
选择“生成密码并通过电子邮件通知用户”。
点击保存。 此过程会生成一封电子邮件,邀请新用户加入组织。
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 项目中运行。要使用此工具,请执行以下操作:
转到菜单中的“文件”>“打开文件夹”,然后在 VS Code 中打开现有的 Salesforce DX 项目,或创建一个项目。
运行 SFDX: Authorize an Org 命令以连接到启用了 Einstein for Developers 的 Salesforce 沙盒组织或临时组织。选择默认选项以连接到您的组织。
活动栏和状态栏中的 Einstein 徽标确认已安装扩展。打开命令面板并运行以打开边栏。View: Show Einstein Developer Sidebar
在临时组织中将 Einstein 用于开发人员
Einstein for Developers 仅在可以编写 Apex 的 scratch 组织版本中可用:
开发者版
企业版
要在临时组织中使用 Einstein for Developers:
在 Dev Hub 中为开发人员启用 Einstein。
使用该命令登录到 Dev Hub。SFDX: Authorize a Dev Hub
通过打开 scratch org 功能激活 Einstein for Developers:EinsteinGPTForDevelopers
与所有基于 LLM 的产品一样,Einstein for Developers 背后的技术仍然是新的。生成的输出通常需要针对您的单个项目进行编辑。有些响应不是最佳的。我们很乐意通过 IDE 中的 History & Feedback Panel 听取您对生成的输出的反馈。您的反馈对于在测试计划期间持续训练我们的大型语言模型 (LLM) 至关重要。
@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;
}
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;
}
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 扩展和 CodeGen 模型的唯一所有权。
Einstein for Developers 扩展可能会生成类似于用于训练模型的代码的输出。为避免疑义,您和 Salesforce 均不拥有为非他们自己方生成的输出。
提交的代码不会与 Salesforce 以外的任何方共享。
无担保。EINSTEIN FOR DEVELOPERS 扩展按“原样”提供,不包括任何明示、暗示、法定或其他形式的保证。在适用法律允许的最大范围内,SALESFORCE 不承担任何默示保证,包括但不限于对适销性和特定用途适用性或不侵权的任何默示保证。Einstein for Developers 扩展和/或生成的代码可能包含错误或错误,使用它们的风险由您自行承担。您承认,Salesforce 可随时自行决定终止 Einstein for Developers 扩展,并且可能永远不会将其正式发布。
Salesforce Code Builder 是一个基于 Web 的集成开发环境,具有 Web 浏览器中 Visual Studio Code、Salesforce Extensions for VS Code 和 Salesforce CLI 的所有功能和灵活性。Code Builder 为所有开发人员提供现代开发人员体验,无论其专业水平如何。Code Builder 使管理员和开发人员都可以轻松地在云中工作,而无需担心下载软件、设置或机器规格。使用 Code Builder,您可以在任何地方工作。为开发环境添加书签以返回到该环境,或从其他计算机访问该链接。与桌面 IDE 不同,Code Builder 无需您明确执行此操作即可为您保存工作。
右键单击该文件夹,然后单击 SFDX: Deploy Source to Org。force-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
选择 SFDX: Open Default Org 以登录您的组织。
导航到 Setup:Lightning Components,以确认您的组织中现在有一个名为的新 Lightning Web 组件可用。newCBComponent
恭喜您成功创建并部署了新的 Lightning Web 组件。
了解更多
您可以花点时间使用这些资源来详细了解您可以在 Code Builder 中执行的操作:
Visual Studio Code 用户界面,了解 Visual Studio Code 用户界面。
Salesforce 扩展,了解适用于 VS Code 的 Salesforce 扩展的所有强大功能。
运行命令 Shell 命令:在 PATH 中安装“code”命令。 This command lets you invoke `code` directly from your favorite terminal.
在你喜欢的终端中,打开 shell 的启动脚本。如果您使用的是 Bash,则启动脚本通常是您的 or 文件。如果您使用的是 Z Shell,则它通常是您的文件。如果没有具有这些名称的文件,请在主目录中创建一个名为的文件(例如,在 中)。.bashrc.bash_profile.zshrc.bashrcMacintosh HD/users/yourName
将此行添加到 shell 的启动脚本中。 alias code-sfdx='code --extensions-dir ~/.sfdx-code'