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 ...
随机推荐
- 从模型到部署,教你如何用Python构建机器学习API服务
本文分享自华为云社区<Python构建机器学习API服务从模型到部署的完整指南>,作者: 柠檬味拥抱. 在当今数据驱动的世界中,机器学习模型在解决各种问题中扮演着重要角色.然而,将这些模型 ...
- java集合源码详解
一 Collection接口 1.List 1.1ArrayList 特点 1.底层实现基于动态数组,数组特点根据下表查找元素速度所以查找速度较快.继承自接口 Collection ->Lis ...
- k8s之持久卷NFS
一.简介 NFS网络存储卷,Kubernetes原生支持NFS作为Kubernetes的持久存储卷之一.NFS可以实现Pod的跨界点的数据持久性. 首先需要创建一个nfs 服务器,作为存储服务器: 将 ...
- 面试连环炮系列(二十️五):RocketMQ怎么保证消息不丢失
RocketMQ怎么保证消息不丢失? A. 从Producer的视角来看:如果消息未能正确的存储在MQ中,或者消费者未能正确的消费到这条消息,都是消息丢失. B. 从Broker的视角来看:如果消息已 ...
- 重新整理数据结构与算法(c#)——算法套路迪杰斯特拉算法[三十一]
前言 迪杰斯特拉算法 是求最短路径方法的其中一种,这个有什么作用呢? 有一张图: 假设求G点到其他各点的最小路径. 是这样来的. 比如找到了和G点相连接所有点,ABED.这时候确定GA是一定是最短的, ...
- PTA前三次题目集总结
以下内容是我对PTA三次习题作业最后一题的思路,源码以及总结 学到的java知识大多都来自写题目集 这些题目对我对java的认知与学习起到了不小的帮助 答题判题程序-1 题目内容 设计实现答题程序,模 ...
- 力扣1050(MySQL)-合作过至少三次的演员和导演(简单)
题目: ActorDirector 表: 写一条SQL查询语句获取合作过至少三次的演员和导演的 id 对 (actor_id, director_id) 示例: 建表语句: 1 create tab ...
- 力扣197(MySQL)-上升的温度(简单)
题目: 表: Weather 编写一个 SQL 查询,来查找与之前(昨天的)日期相比温度更高的所有日期的 id . 返回结果 不要求顺序 . 查询结果格式如下例. 解题思路: 方法一:使用窗口函数la ...
- 力扣500(java&python)-键盘行(简单)
题目: 给你一个字符串数组 words ,只返回可以使用在 美式键盘 同一行的字母打印出来的单词.键盘如下图所示. 美式键盘 中: 第一行由字符 "qwertyuiop" 组成.第 ...
- 深度解析|基于 eBPF 的 Kubernetes 一站式可观测性系统
简介:阿里云 Kubernetes 可观测性是一套针对 Kubernetes 集群开发的一站式可观测性产品.基于 Kubernetes 集群下的指标.应用链路.日志和事件,阿里云 Kubernete ...