本篇參考:
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中嘗試。
篇中有錯誤地方歡迎指出,有不懂歡迎留言。