salesforce零基礎學習(一百零六)Dynamic Form
- 2021 年 9 月 13 日
- 筆記
- salesforce&apex, salesforce學習
本篇參考://trailblazer.salesforce.com/ideaview?id=08730000000BroxAAC
//help.salesforce.com/s/articleView?id=sf.dynamic_forms_overview.htm&type=5
我們在項目中可能會有類似的需求: 甲方爸爸在看了某個表的數據詳情頁以後說, 這個頁面整體符合需求了,但是我們業務上希望的是,當頁面中的某個狀態為某些值情況下展示某個或者某些section或者展示某些字段,不滿足的情況下,section展示或者相關字段展示也沒有用,因為業務不看。你們實施團隊能不能實現這種的啊?
此時作為開發人員可能只有兩條路:
1. 告訴甲方爸爸,這個是salesforce的標準的 page layout,標準功能實現不了這種需求,要麼就不做這個需求了吧,也不影響使用;
2. 告訴甲方爸爸,啊,這種需求必須能做,只是需要開發,但是我們可以搞定。
作為開發來說,我們肯定是想往1來推,標準的page layout保證了穩定性以及高可配,方便後續的維護,如果遇見很tough的客戶,我們就只能進行了自定製之路。當然,以後如果有類似的需求以後,我們可能就可以通過配置的方式搞定,使用的就是我們今天的主角: Dynamic Form
一. Dynamic Form
我們知道 salesforce 一直致力於 no code / less code的宗旨, 同樣的,針對類似的需求,salesforce推出了 dynamic form去最大化的適配動態表單的需求。
有幾點優勢:
- 和 page layout 進行了分離,在 lightning app build的record page進行配置,section / field 想放在哪裡放哪裡,不像原來只能按照 page layout展示而展示;
- 可以通過 visibility rule 去 設置 field / section的展示與隱藏的邏輯;
有幾點需要注意:
1. dynamic form 目前只支持自定義的 object,標準 object暫時不支持,期待後續的release可以不斷的進行拓展;
2. dynamic form 影響的不只是用戶所看見的詳情頁面,當用戶進行編輯或者新建/克隆等操作時,同樣會遵循 visibility rule。
二. Dynamic Form的使用
1. Dynamic Form只允許在 Lightning App builder中進行使用,當我們找到一個 lightning record page(new/ edit),選擇 record detail組件,右側會展示 Upgrade Now的按鈕
2. 通過下圖就可以看出來 dynamic form的三大核心功能。
3. dynamic form不會改變 page layout
4. dynamic form有三個維度: accordion / section / field。我們按照需求可以進行不同維度的配置,不同的維度可以進行不同的配置,可看圖中描述。
5. field級別除了可以設置顯隱以外,還可以設置UI的行為
6. 這裡我們做一個簡單的demo, is draft為true, goods price隱藏,這裡我們針對 goods price設置 field visibility,點擊 Advanced 按鈕,我們可以看到 設置除了記錄字段級別以外,還可以根據 user / permission維度來控制
7. 我們進行了一個 Field Visibility簡單配置,點擊done即完成了一個配置
結果演示:
1. is draft為false, goodsprice正常展示
2. is draft為true,goodsprice動態的隱藏。
三. 現在項目是否應該用 Dynamic Form
儘管dynamic form很強大,但是我們不是項目中有類似需求就直接上來,如果不對其進行認真的評估,很容易後期出差錯,累死自己和團隊。所以在是否應該使用之前,我們需要先了解幾點:
1. 目前只針對自定義表使用,標準的表不支持,如果客戶對UI要求嚴格,可能達到整體功能不統一;
2. dynamic form擁有很多的 limitation,這些都是在文檔中有介紹的,比如不支持 blank space,一個section一個列最多100個字段等等,我們在使用以前一定需要先了解limitation是否影響到了我們的紅線;
3. dynamic form經歷了去年的beta到今年的正式發佈,還是有很多的known issue,官方也列出來了。在使用以前一定先看一下 known issue是否會影響到我們的使用。
總結:dynamic form作為一個高可配的動態表單,相信後續的升級完善以後,對於管理員來說會越來越得到使用,對於開發來說也是一個很好的功能。針對開發來說,使用以前了解好限制,找好workaround方案。 篇中只是簡單的描述了一下 dynamic form的使用,實際上會更加強大,感興趣的小夥伴可以自己來玩了。篇中有錯誤歡迎指出,有不懂歡迎留言。