本篇参考:

https://help.salesforce.com/s/articleView?id=release-notes.rn_apex_5level_SOQLqueries.htm&release=250&type=5

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零基础学习(一百三十八)零碎知识点小总结(十)的更多相关文章

  1. salesforce 零基础学习(三十八)Translate 的使用(国际化处理)

    本篇参考:http://resources.docs.salesforce.com/200/17/en-us/sfdc/pdf/salesforce_workbench_cheatsheet.pdf ...

  2. salesforce 零基础学习(三十九) soql函数以及常量

    在salesforce中,我们做SOQL查询时,往往需要用到计算式,比如求和,求平均值,或者过滤数据时,往往需要通过时间日期过滤,SOQL已经封装了很多的函数,可以更加方便我们的sql查询而不需要自己 ...

  3. salesforce 零基础学习(三十六)通过Process Builder以及Apex代码实现锁定记录( Lock Record)

    上一篇内容是通过Process Builder和Approval Processes实现锁定记录的功能,有的时候,往往锁定一条记录需要很多的限制条件,如果通过Approval Processes的条件 ...

  4. salesforce 零基础学习(三十五) 通过Process Builder和Approval Processes锁定记录(Lock Record)

    有的时候我们可能有这样的需求,当某个字段为特定的值情况下,便锁定此条记录,仅允许Profile为System Admin的用户修改或者解锁,其他的用户只能查看此条记录,不能修改此条记录,这种情况下我们 ...

  5. salesforce 零基础学习(三十)工具篇:Debug Log小工具

    开发中查看log日志是必不可少的,salesforce自带的效果显示效果不佳,大概显示效果如下所示: chrome商城提供了apex debug log良好的插件,使debug log信息更好显示.假 ...

  6. salesforce 零基础学习(三十四)动态的Custom Label

    custom label在项目中经常用到,常用在apex class或者VF里面用来显示help text或者error message.有的时候我们需要用到的信息是动态变化的,那样就需要动态来显示信 ...

  7. salesforce 零基础学习(三十二)通过Streams和DOM方式读写XML

    有的时候我们需要对XML进行读写操作,常用的XML操作主要有Streams和DOM方式. 一.Streams方式 Streams常用到的类主要有两个XmlStreamReader 以及XmlStrea ...

  8. salesforce 零基础学习(三十七) DML及Database方法简单描述

    在apex中通过soql查询可以使用两种方式,使用DML语句或者使用Database的方法. 使用DML语句和使用Database类的方法对于我们来说用的都很多,并且都很常见.对于数据库常见的操作:增 ...

  9. salesforce 零基础学习(三十三)通过REST方式访问外部数据以及JAVA通过rest方式访问salesforce

    本篇参考Trail教程: https://developer.salesforce.com/trailhead/force_com_dev_intermediate/apex_integration_ ...

  10. salesforce 零基础学习(三十一)关于LookUp字段点击Save时的Validation

    今天在群里大概遇到了这样一个问题,明明这个User存在,但是save的时候提示信息说Value不存在,大概的意思如下图所示,目前认为这种问题常见的可能情况有两种. 一.此字段设置Validation ...

随机推荐

  1. 携手HMS Core统一扫码服务, 兴业证券优理宝App提升用户扫码体验

    兴业证券优理宝App联合华为HMS Core,集成HMS Core统一扫码服务,在提升扫码成功率的同时,还支持C端用户用手机端APP扫描手表端二维码,实现行情在手机与手表间跨终端流转,行情信息,抬腕可 ...

  2. HMS Core Insights第九期直播预告——手语服务,助力沟通无障碍

    [导读] 你知道吗?全球有超5%的人群正在遭受听力损失的折磨.这些听障群体由于沟通不便,在日常生活中面对着很多的困难与挑战,建立沟通无障碍环境的需求十分迫切.随着科技的发展,越来越多的人们享受到技术进 ...

  3. Qt 5.12.10 国际化

    网上有资料但是不全,所以这里记录一份比较全的 1.创建项目 2.编辑 demo.cpp 这里写button用来做国际化示例,运行软件后是这个样子 #include "demo.h" ...

  4. selenium报错:Message: stale element reference: element is not attached to the page document

    在使用selenium时,报了一个错误 报错的原因: 所引用的元素已过时,不再依附于当前页面.通常情况下,这是因为页面进行了刷新或跳转 解决方法: 重新定位元素 代码示例: # 旧代码(报错) lis ...

  5. 见鬼了!我家的 WiFi 只有下雨天才能正常使用...

    这是作者大学时期在家里遇到的一个非常奇怪的网络问题,作者的父亲是一名经验丰富的网络工程师,他们家里使用了一个复杂的网络设置,通过 Wi-Fi 桥接的方式,将父亲公司的高速商业网络连接到家中.但是有一天 ...

  6. 打CS2的时候提示 error:unrec stream cmd 2090 82a

    打CS2的时候提示 error:unrec stream cmd 2090 82a 打着打着就卡住,然后提示error:unrec stream cmd 2090 82a 找了一圈,进bios把内存条 ...

  7. 关于Kubernetes规划的灵魂n问

    Kubernetes已经成为企业新一代云IT架构的重要基础设施,但是在企业部署和运维Kubernetes集群的过程中,依然充满了复杂性和困扰.阿里云容器服务自从2015年上线后,一路伴随客户和社区的成 ...

  8. MaxCompute同步数据的网络配置

    MaxCompute可以通过数据集成加载不同数据源(例如:MySQL数据库等)数据,同样也可以通过数据集成把MaxCompute的数据导出到各种业务数据库.数据集成功能已经集成到DataWorks作为 ...

  9. [FAQ] gormV2 Too many connections

    gormV2 中不再有v1的 db.Close() 方法. 取而代之的 close 方式是如下: sqlDB, err := DB.DB() sqlDB.Close() https://github. ...

  10. 2018-2-13-win10-uwp-无法附加到CoreCLR

    title author date CreateTime categories win10 uwp 无法附加到CoreCLR lindexi 2018-2-13 17:23:3 +0800 2018- ...