salesforce零基础学习(一百三十八)零碎知识点小总结(十)
本篇参考:
https://developer.salesforce.com/tools/vscode/en/einstein/einstein-overview
https://developer.salesforce.com/tools/vscode/en/user-guide/prettier
一. Apex中支持最多5层 Parent-to-Child Relationship SOQL Queries
以前我们在apex中进行字表查询时,最多只能查询一层,比如当前的这个查询,Account只能查询到Contact,无法再查询到Asset。

随着最新的release,官方支持apex中最多5层的父子关系查询,以上的内容在最新的release以后,就可以正常运行了。需要注意的是,apex version官方建议 61及以上。
注:根查询也算1层,即Account以外的字表查询最多可以4层。
二. Einstein for Developers扩展组件
我们开发通常使用官方推荐的VS Code IDE,目前salesforce官方推出了 Einstein for Developers扩展,通过此扩展组件,可以做一些方便的代码处理,你自己的代码保存时,官方也可以给一些基于上下文的简单的推荐。这个组件目前适用于Developer, Enterprise, Partner Developer, Performance and Unlimited Editions.

使用Einstein组件以前需要先启用 Enhanced Domain,可以参考这个文档进行开启配置。https://help.salesforce.com/s/articleView?id=sf.domain_name_enhanced_enable.htm&type=5
下面举个例子,我们想要在Opportunity Closed Won以后,更新Account的字段信息,将时间戳设置为当前时间。以下是Salesforce的输出结果,虽然不是特别的完美,但是大部分的我们可以复制粘贴使用,极大的节省了我们的时间。

三. Prettier扩展组件
我们很少是自己独立开发所有的功能,通常需要团队合作。每个人的代码习惯不同,后续的代码可能会变得乱。官方推荐Prettier组件,这样所有的内部成员使用同一套Prettier配置文件,可以保证所有的人格式化文档以后,项目代码保持统一,可读性以及统一性会更方便管理。可以通过以下步骤来设置Prettier。
1. VS Code 安装Node.js 以及npm
可以根据这个文档进行安装https://docs.npmjs.com/downloading-and-installing-node-js-and-npm
2. 初始化 package.json
如果项目创建时带了manifest,则自带 package.json,如果不存在,则在terminal处运行 npm init 即可。

3. 安装apex format plugin
Prettier自带的format是不支持apex的,所以我们需要安装一个支持apex format的插件。terminal处运行npm install --save-dev --save-exact prettier prettier-plugin-apex 即可。

4. 配置 .prettierrc 文件
在项目根目录,创建一个名称为 .prettierrc的文件,并且将下述的内容复制粘贴到这个文件中。这个是官方给的一个sample,内容可以根据自己的项目需要进行调整。其他的可用的标签比如 printerWidth, tabWidth等配置项可以参考这个文档:https://prettier.io/docs/en/options.html
{
"plugins": ["prettier-plugin-apex"],
"trailingComma": "none",
"overrides": [
{
"files": "**/lwc/**/*.html",
"options": { "parser": "lwc" }
},
{
"files": "*.{cmp,page,component}",
"options": { "parser": "html" }
}
]
}

5. 安装 Prettier - Code formatter 插件
扩展处搜索 Prettier安装此插件并且启用即可。

使用方式: 在你需要的apex或者其他资源处,右键选择 Format Document即可。

总结:篇中简单介绍了几个项目中以及学习中用到的零碎知识点,需要注意的是,第一个功能是在preview状态,production或者dev edition有可能还没有启用,所以在完全release以后再去进行尝试或者去sandbox中尝试。

篇中有错误地方欢迎指出,有不懂欢迎留言。
salesforce零基础学习(一百三十八)零碎知识点小总结(十)的更多相关文章
- salesforce 零基础学习(三十八)Translate 的使用(国际化处理)
本篇参考:http://resources.docs.salesforce.com/200/17/en-us/sfdc/pdf/salesforce_workbench_cheatsheet.pdf ...
- salesforce 零基础学习(三十九) soql函数以及常量
在salesforce中,我们做SOQL查询时,往往需要用到计算式,比如求和,求平均值,或者过滤数据时,往往需要通过时间日期过滤,SOQL已经封装了很多的函数,可以更加方便我们的sql查询而不需要自己 ...
- salesforce 零基础学习(三十六)通过Process Builder以及Apex代码实现锁定记录( Lock Record)
上一篇内容是通过Process Builder和Approval Processes实现锁定记录的功能,有的时候,往往锁定一条记录需要很多的限制条件,如果通过Approval Processes的条件 ...
- salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)
有的时候我们可能有这样的需求,当某个字段为特定的值情况下,便锁定此条记录,仅允许Profile为System Admin的用户修改或者解锁,其他的用户只能查看此条记录,不能修改此条记录,这种情况下我们 ...
- salesforce 零基础学习(三十)工具篇:Debug Log小工具
开发中查看log日志是必不可少的,salesforce自带的效果显示效果不佳,大概显示效果如下所示: chrome商城提供了apex debug log良好的插件,使debug log信息更好显示.假 ...
- salesforce 零基础学习(三十四)动态的Custom Label
custom label在项目中经常用到,常用在apex class或者VF里面用来显示help text或者error message.有的时候我们需要用到的信息是动态变化的,那样就需要动态来显示信 ...
- salesforce 零基础学习(三十二)通过Streams和DOM方式读写XML
有的时候我们需要对XML进行读写操作,常用的XML操作主要有Streams和DOM方式. 一.Streams方式 Streams常用到的类主要有两个XmlStreamReader 以及XmlStrea ...
- salesforce 零基础学习(三十七) DML及Database方法简单描述
在apex中通过soql查询可以使用两种方式,使用DML语句或者使用Database的方法. 使用DML语句和使用Database类的方法对于我们来说用的都很多,并且都很常见.对于数据库常见的操作:增 ...
- salesforce 零基础学习(三十三)通过REST方式访问外部数据以及JAVA通过rest方式访问salesforce
本篇参考Trail教程: https://developer.salesforce.com/trailhead/force_com_dev_intermediate/apex_integration_ ...
- salesforce 零基础学习(三十一)关于LookUp字段点击Save时的Validation
今天在群里大概遇到了这样一个问题,明明这个User存在,但是save的时候提示信息说Value不存在,大概的意思如下图所示,目前认为这种问题常见的可能情况有两种. 一.此字段设置Validation ...
随机推荐
- Spring反序列化JNDI分析
漏洞原理 Spring框架的JtaTransactionManager类中重写了readObject方法,这个方法最终会调用到JNDI中的lookup()方法,关键是里面的参数可控,这就导致了攻击者可 ...
- DOM 节点遍历:掌握遍历 XML文档结构和内容的技巧
遍历是指通过或遍历节点树 遍历节点树 通常,您想要循环一个 XML 文档,例如:当您想要提取每个元素的值时. 这被称为"遍历节点树". 下面的示例循环遍历所有 <book&g ...
- 详解Java Chassis 3与Spring Cloud的互操作
本文分享自华为云社区<Java Chassis 3技术解密:与Spring Cloud的互操作>,作者: liubao68. Java Chassis 3一个很重要的设计原则:利用架构的韧 ...
- 第十篇:异步IO、消息队列
一.协程 二.异步IO_Gevent 三.协程异步IO操作 四.事件驱动模型 五.IO多路复用 六.异步IO理论 一.回顾 线程 vs 进程 线程:CPU最小调度单位,内存共享: 线程同时修改同一份数 ...
- Batch Normalization 和 DropOut
Batch-Normalization https://www.cnblogs.com/guoyaohua/p/8724433.html 有几点需要注意: \(x^{(k)}\)指的是t层的输入. 也 ...
- 鸿蒙HarmonyOS实战-ArkUI组件(Canvas)
一.Canvas Canvas组件是一种图形渲染组件,它提供了一个画布(canvas),开发者可以在上面绘制各种图形.文本等.Canvas组件通常用于创建游戏.数据可视化等需要动态绘制图形的应用程序. ...
- vue-cli-service 不是内部或者外部命令
原因一. 新拉取的项目没有执行 npm install,找不到相关的依赖包(也就是说没有node_modules文件夹). 解决方法: 执行下 npm install 即可 原因二. 项目的依赖包损坏 ...
- 【2021.6.26 NOI模拟】Problem B. 简单题 another solution
Problem Description Input 从文件 b.in 中读入数据. 一个正整数 n. Output 输出到文件 b.out 中. 一个整数表示答案. Sample Data Input ...
- [Violation] 'click' handler took 429ms
问题 violation 意思为侵权,违背,违反,也就是说明click函数执行违反了某些规则 原因测试 当click事件中执行的程序耗时过长,超过160ms左右的时候就会显示该信息,测试最低155ms ...
- EventBridge消息路由|高效构建消息路由能力
简介:企业数字化转型过程中,天然会遇到消息路由,异地多活,协议适配,消息备份等场景.本篇主要通过 EventBridge 消息路由的应用场景和应用实验介绍,帮助大家了解如何通过 EventBridg ...