建立表單
在 Agentforce 360 Platform 上建立表單的選項有多種,可跨越從低程式碼到專業程式碼方法的連續。在連續的其中一端,Lightning 應用程式產生器中的「動態表單」和 Flow Builder 中的畫面流程可用於低程式碼解決方案。在另一端,Lightning Web 元件 (LWC) 架構用於專業程式碼解決方案。在連續中,可使用 LWC 擴充的畫面流程和使用 Omnistudio 建立的面向客戶表單,以數種方式混合工具。
本指南提供關於建立 UI 解決方案表單的決策架構與指引。具體而言,它會使用數十個執行階段和非功能決策點,以適當地為指定的使用個案選取最佳技術。
-
**當您建立 Lightning 頁面的建立/編輯/檢視版面配置時,請使用「動態表單」。**繼續下一步,我們建議在 _Lightning 應用程式產生器_中使用「動態表單」來設定記錄詳細資料頁面。
-
**如果您需要為一個物件建立、建立或編輯表單,請使用 Lightning 頁面 和 動態表單。**這是在 Agentforce 360 Platform 上建立表單的最簡單方法。它也提供其他功能 (例如,欄位可視性控制)。
-
**如果您要建立多頁表單或精靈,且沒有嚴格的 UX 或品牌需求,請使用「畫面流程」。**畫面流程提供線性瀏覽架構,可協調多個表單。您可以使用 LWC 建構您自己的架構來在表單之間瀏覽,但我們建議讓「流程」執行工作,讓您可以專注於表單本身,而非專注於表單狀態。
-
**如果您需要額外的邏輯或動作來支援表單,請使用「畫面流程」、「Omnistudio」或 LWC。**每個工具都提供不同的方式來增強您的解決方案,方法是允許解決方案在建立或編輯單一記錄以外展開。在此例中,這個詞彙可能會_更_指進階邏輯 (例如分支或迭代),或指與外部系統整合、傳送電子郵件或將通知推送至使用者行動應用程式等動作。
-
**如果您有複雜的 UX 需求,或如果您需要動態管理超過 UI 的可視性,請使用 LWC 或 Omniscript。**針對可透過使用主題與以資料欄為基礎的版面配置來達成的需求,您可以直接在低程式碼產生器中建立表單。不過,精確控制表單樣式需要 LWC 的彈性。如果您是 Industries 客戶,且您需要像素完美的品牌標識,或您擁有複雜階層資料,請使用 Omnistudio,這可讓您建立可處理複雜業務邏輯和資料轉換的消費者級表單。
-
**如果您需要部署測試自動化,請使用 LWC。**您可以針對任何 LWC 撰寫單元測試,無論您內嵌的位置為何。這可讓您建立更強大的測試策略,其中可能包含使用多個記錄的大量測試,以及負數測試。
-
**您不受「或」決策的約束。**您可以結合多個選項來針對您的使用個案找到最佳解決方案 (例如,如果您需要 Flow 的內建瀏覽系統以及 LWC 提供的完整樣式彈性,您可以將其一起使用)。
下列工具常用於實作和擴充表單體驗。
| 動態表單 | Salesforce Lightning 應用程式產生器中的「動態表單」 會將單一的「記錄詳細資料」元件拆分為個別的可設定的欄位和區段。此功能可讓管理員建立彈性的高效能頁面,方法是將欄位放置在任何位置,並使用可視性規則根據使用者設定檔、裝置或資料顯示或隱藏元件,這有助於減少頁面混亂。 |
|---|---|
| 畫面流程 | Salesforce 畫面流程是 Flow Builder 中的互動式自動化工具,需要使用者輸入才能完成自訂的逐步業務流程。不同於自動背景流程,「畫面流程」提供類似精靈的使用者介面,無須撰寫程式碼即可收集資料、顯示資訊,或透過 Lightning 頁面、按鈕或自訂應用程式執行動作。 |
| Omnistudio | Salesforce Omnistudio 是低程式碼的工具套件,其設計目的為快速建立引導式、產業特有的數位體驗和複雜的業務流程。它可讓開發人員使用拖放元件 (例如 FlexCard 和 Omniscript) 建立像素完美的使用者介面 (例如引導式工作流程和動態顯示面板)。透過 Omnistudio,您可以宣告的方式建立 LWC。 |
| Lightning Web 元件 | Salesforce Lightning Web 元件是輕量型、自訂 HTML 元素,使用 HTML、CSS 和現代 JavaScript 建立,並設計為在瀏覽器中原生執行,以獲得卓越的 Salesforce UI 效能。它們可讓開發人員建立與 Aura 元件共存的自訂使用者介面,進而透過產業標準和詳細的元件生態系統來增加開發。 |
此表格概述可透過 Salesforce 建立表單的工具,以及其必要技能和授權考量事項。
**備註:**我們將深入瞭解每個工具支援的特定功能、如何在按一下型工具和程式碼型工具之間選擇,以及在稍後區段中何時結合這些工具。
| 組態 | 其他授權需求 | |
|---|---|---|
| 動態表單 | 低程式碼 | 無 |
| 畫面流程 | 低程式碼 | 無 |
| Omnistudio | 低程式碼 + 專業代碼 | 產業封裝 |
| 畫面流程加上 Lightning Web 元件 | 低程式碼 + 專業代碼 | 無 |
| Lightning Web 元件 | 專業代碼 | 無 |
當您選擇產品和工具時,有一些決策點需要記住。此表格概述各種決策點,並提供概況指引。
| 決策點 | 指引 |
|---|---|
| 執行階段使用個案種類 | |
| 表單範圍與瀏覽 | 判斷表單上的所有欄位是否會邏輯地符合單一畫面,或使用者是否需要能夠在多個畫面之間瀏覽。 |
| 位置 | 識別您要內嵌表單的位置,可從 Salesforce 應用程式內到行動應用程式及外部網站。 |
| 控制項 | 識別當使用者與您的表單互動時,必須在背景執行的動作或邏輯,包括資料轉換和與外部系統的整合。 |
| 驗證 | 判斷您是否有任何超出 Salesforce 所提供標準系統級驗證的其他輸入驗證需求。 |
| 互動設計 | 識別應在表單中觸發動態回應的互動類型或條件。 |
| 樣式 | 決定所需樣式與 CSS 需求所需的精密層級。 |
| 版面配置 | 識別表單的版面配置需求 (例如,所需的欄數、索引標籤和折疊式) 以及顯示重複資料區塊的能力。 |
| 翻譯 | 決定您的表單是否必須針對其他語言當地語系化。 |
| 非功能考量事項 | |
| 安全性 | 決定您的表單在執行特定作業前是否應檢查使用者的存取權、您是否要控制可存取表單的人員,以及您是否要控制可內嵌表單的位置。 |
| 物件影響 | 決定您的表單要針對單一物件還是針對多個物件執行。 |
| UI 測試自動化 | 判斷您的 DevOps 程序是否需要您的表單才能接受自動單元測試或自動端對端測試。 |
| 度量 | 識別您要如何追蹤表單的使用狀況,包括頁面檢視、花費在表單上的時間量、完成率和成功率。 |
| 封裝與部署 | 決定您要如何在建立表單後散佈或部署表單。 |
**備註:**在後續的決策比較表格中,有一些值與任何工具功能配對相關聯:
-
**可用:**工具/功能適用於基本考量事項。
-
**不可用:**沒有計畫在未來十二個月內新增支援。
-
**非理想:**此工具/功能可能適用,但並非最佳工具。
-
**不適用:**此工具不適用於特定使用個案。
使用這些情況來根據範圍、UX 和作業需求比較工具選擇。
如果您可以從單一畫面表單取得所有使用者輸入,請從「動態表單」開始。請記住,記錄頁面中的「動態表單」可以使用「路徑」功能來支援階段式業務流程。
-
您是否需要單一畫面,或使用者需要在多個畫面之間瀏覽才能完成工作?
-
您是否要讓您的使用者在填寫表單時看見其在流程中的進度視覺化描述?您的使用者是否需要以特定順序填寫每個畫面上的資訊,或者他們是否可以視需要在畫面之間來回移動?
如果您需要的功能比「動態表單」所提供的更多,則在「流程」、「Omnistudio」和 LWC 之間選擇取決於一些額外的問題:
-
在表單底部顯示瀏覽列是否可以?如果「畫面流程」與 Omniscript 瀏覽體驗提供不想要的 UX,請傾向 LWC。
-
表單後面必須發生什麼事?如果您需要管理員可設定的行為,請使用「流程」。針對複雜的多物件關係,請使用 Omniscript 或 LWC。
| 單一畫面 | 多螢幕表單 | 進度指標 | 在步驟/畫面之間跳轉瀏覽 | |
|---|---|---|---|---|
| 動態表單 | 可用 | 不提供 | 可用 | 不提供 |
| 畫面流程 | 可用 | 可用 | 可用 | 不提供 |
| Omnistudio | 可用 | 可用 | 可用 | 可用 |
| 畫面流程 + LWC | 可用 | 可用 | 可用 | 可用 |
| LWC | 可用 | 不是理想 | 不是理想 | 不是理想 |
如果您選擇「流程」或「Omnistudio」,您可能還需要建立 LWC 以達成正確的 UX。如果您已建立 LWC 以正確設定表單的樣式,請考慮是否需要在「流程」中內嵌該元件。
精靈樣式瀏覽
另一方面,如果您的解決方案看起來像精靈,使用者可在多個畫面之間瀏覽,請考量「流程」或「Omnistudio」。「流程」與 Omnistudio 具備內建瀏覽模型,因此您無須建立和維護串連的 LWC。瀏覽為線性,具有正向動作、反向動作,以及用來儲存表單的機制以供稍後使用。如果表單符合您的目的,您也可以使用非線性瀏覽來建立表單。
Omnistudio 透過提供標準瀏覽中的進度指標來呈現表單內的步驟,提供重要的瀏覽優勢。步驟檢視會自動顯示使用者在多步驟表單上的位置。不同於「流程」,其可讓使用者在整個表單中按一下各種步驟,在畫面之間跳轉。
無論您要建立單螢幕或多螢幕表單,請務必確保表單簡化,讓使用者能夠輕鬆瀏覽表單。
如果您將表單內嵌在標準 Lightning 記錄頁面中,我們比較的任何工具都會運作;不過,動態表單目前僅適用於桌上型電腦。如果您想要提供讓使用者從其他位置存取表單的體驗,您可能需要考慮其他選項。
-
使用者是否需要透過桌上型電腦、行動裝置或兩者存取表單?
-
使用者是否應能夠透過公用程式列從應用程式中的任何位置存取表單?
-
您是否要啟用快速動作,讓使用者填寫表單而不必離開目前所在的頁面?
-
您的表單是否必須在外部網站上可供使用?
| Lightning 記錄頁面 | Lightning 首頁或應用程式頁面 | Aura Experience Cloud 網站 | LWR Experience 雲端網站 | 內嵌 Snap | 公用程式列 | 物件特定動作 | 全域動作 | Salesforce 行動應用程式* | Field Service Mobile | Mobile SDK | 外部網站與應用程式 | 自訂 LWC | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 動態表單 | 可用 | 不提供 | 不提供 | 不提供 | 不提供 | 不提供 | 不提供 | 不提供 | 可用 | 不提供 | 不提供 | 不提供 | 不提供 |
| 畫面流程 | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 | 不提供 | 可用 | 適用** | 不提供 | 不提供 | 可用 |
| Omnistudio | 可用 | 可用 | 可用 | 不提供 | 不提供 | 可用 | 不提供 | 不提供 | 可用 | 不提供 | 不提供 | 可用 | 可用 |
| 畫面流程 + LWC | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 | 不提供 | 可用 | 不提供 | 不提供 | 不是理想 | 可用 |
| LWC | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 | 不提供 | 不提供 | 可用 | 不提供 | 不提供 | 可用 | 可用 |
| *Salesforce 行動應用程式支援流程和 LWC,但不支援內嵌「流程」和 LWC 的所有方式 (例如,行動裝置支援物件特定動作,但公用程式列項目不支援)。 **Salesforce Field Service 行動應用程式包含 資料擷取,此為在「流程」引擎上建立的離線優先表單解決方案,並具有專屬的離線執行階段,支援最新的「流程」功能。此應用程式也包含舊版 Field Service Mobile 流程,其在較舊的自訂離線引擎上執行,且不支援許多最新的「流程」功能。 | |||||||||||||
由於需要記錄內容,因此只有 Lightning 記錄頁面支援「動態表單」功能。不過,Experience Cloud 頁面不支援「動態表單」。
您可以建立需要記錄內容的「流程」,或在全域運作的「流程」。換句話說,您可以在各種位置內嵌「流程」。針對記錄內容流程,位置可能包含:Lightning 記錄頁面、Experience Cloud 記錄頁面、物件特定動作或「動作與建議」部署。針對全域流程,位置可包含:公用程式列、其他 Lightning 或體驗產生器頁面、Snap或外部應用程式。目前不支援將「流程」作為全域動作,但您可以將「_流程」_包含在 Aura 元件中作為因應措施。
Omnistudio 可讓您建立可編輯的 FlexCard 和 Omniscript,您可以將這些 FlexCard 和 Omniscript 放置在您可以放置「流程」的_幾乎_任何位置,但當這些 FlexCard 和 Omniscript 可編輯時,便無法進行封裝。
LWC 提供高層級的可重複使用性,用於建立可透過 Salesforce、社群和開放原始碼專案的中繼資料與目標相關聯的元件。您也可以使用 Lightning Out 2.0 將 LWC 元件內嵌在您自己的網站中。

LWC 元件也可以透過 Lightning-Flow 元件啟動「流程」。
Omnistudio 優於透過 OmniOut 功能向外部網站公開內容。透過 OmniStudio 和 OmniOut,您可以將 OmniScript 表單和 FlexCard 元件編譯為標準元件,然後在第三方網站或應用程式中將其在平台外執行。
目前,Mobile SDK 範本中未正式支援本指南涵蓋的任何形式技術。如果 Mobile SDK 對您的使用個案至關重要,我們建議在行動應用程式中原生建立表單或建立 Visualforce 頁面,同時記住尺寸規格。
如果您需要在表單中使用值來建立或更新記錄,則「動態表單」非常適合。您必須針對該範圍以外的功能利用 Flow、Omnistudio 或 LWC,包括建立決策或迭代層,或使用表單中的輸入產生 Slack 貼文或電子郵件。
-
背景需要執行的動作或邏輯為何?
-
您是否需要使用相關記錄的值?
-
您的表單是否需要在單一交易內或跨多個交易完成其作業?
-
您是否需要與外部系統整合?
-
您對可重複使用性和模組性有何需求?
| 記錄與動作 | 階層資料管理 | 在一個交易內作業 | 跨多個交易作業 | 整合 | 模組設計與重複使用 | 封裝 | |
|---|---|---|---|---|---|---|---|
| 動態表單 | 不提供 | 不提供 | 不提供 | 不提供 | 不提供 | 不提供 | 可用 |
| 畫面流程 | 可用 | 不提供 | 可用 | 可用 | 可用 | 可用 | 可用 |
| Omnistudio | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 | 不提供 |
| 畫面流程 + LWC | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 |
| LWC | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 |
流程提供標準動作以張貼至 Slack、傳送電子郵件和與 Quip 文件互動,而您不需要撰寫任何這些作業的程式碼。LWC 透過與 使用者介面 API 互動的電線轉接器,提供與單一記錄和相關物件的豐富互動。LWC 也可以使用 getListInfoByName 的電線與多個記錄互動。

Omnistudio 使用整合程序和「資料對應器」來取得和轉換資料 (外部與 Salesforce 內部)。由於有許多免程式碼函數,因此其在使用各種層級的關係來壓平和擴充資料集方面極為優異。
流程、Omnistudio 和 LWC 皆與 Apex 整合,因此您可以輕鬆地填補您所選擇解決方案中的任何間隙 (例如,如果您需要從 LWC 篩選記錄,您可以使用 Apex 的電線轉接器建立複雜的 SOQL 查詢。如果您因按一下情節而感到困惑,請考慮使用「流程」或「Omnistudio」作為適用於伺服器端需求的 Apex 控制項可行替代方案。
您也應考慮是否要立即認可動作,或將動作延後至表單的特定部分。這特別與您使用多頁表單相關。「流程」可讓您輕鬆地從多個表單 (流程畫面) 結合輸入,並稍後在精靈 (流程) 中使用這些輸入來執行特定作業,這是我們建議設計「流程」的方式。在結尾執行動作 (以防使用者在畫面之間往回跳轉以變更其回答)。
交易和 管理員限制是 Agentforce 360 Platform 的整體。如果您的使用個案相當簡單,則控制特定作業發生的交易並不重要。不過,有一些使用個案會讓您想要將多個作業合併到單一 交易中,而非在多個交易之間執行。
以下是一些範例:
-
**回復:**假設您的表單在背景建立多個記錄。如果第三個記錄的建立失敗,是否應回復前兩個記錄?如果每個動作彼此獨立,您可以將其作為個別交易執行。不過,如果它們彼此相依 (且您希望其中一個失敗也讓其他項目回復),則應將其實作為單一交易。如果您的表單在「流程」中,您可以使用「錯誤」路徑中的「回復」元素來回復交易並確保資料完整性。
-
**對管理員限制的下游影響:**當您的表單建立或更新記錄時,請務必考量該作業的下游影響為何:
-
根據建議的記錄變更,可能會觸發哪些程序、工作流程規則、流程觸發、Apex 觸發或儲存訂單中的其他項目?
-
這些集合變更如何影響在該交易中耗用的管理員限制?
-
如果特定記錄變更可能會導致影響您限制的下游變更,最好考慮在自己的交易中隔離該記錄變更。
-
-
**批次處理:**您可能需要同時批次多個更新 (即使是在 UI 內容中)。假設您的多畫面表單重複處理大量記錄。請等到您收集所有記錄的更新,然後提交一個要求來更新所有記錄,而不是在每個畫面之後認可記錄更新。
當您使用「動態表單」建立或編輯記錄時,您只會執行一個作業,且該作業一律是淨新交易的開始。
當您建立畫面流程時,您可以大幅控制在指定交易中發生的狀況。畫面與本機動作會作為交易之間的邊界。以下是在畫面流程結構中如何管理交易的概況摘要。
-
一般使用者與畫面互動,然後按一下「下一步」。
-
用戶端會將輸入要求張貼至 API。
-
API 接收要求,並開啟交易和資料庫連線。接著,API 會呼叫流程引擎來叫用要求。
-
流程引擎會在流程定義中接管並遵循適當的路徑,直到它到達畫面或本機動作節點為止。接著,引擎會將該節點的相關資訊傳回給 API。
-
API 會建立一個回應物件,其中包含要呈現的下個畫面的詳細資料,並將該物件傳回給用戶端。此時會認可資料庫變更 (依據 儲存訂單執行),且資料庫連線和交易會關閉。
-
用戶端使用 API 回應來呈現使用者互動的下一個畫面。
-
從步驟 1 開始,然後重複此流程。
換句話說,畫面會_破壞_交易。發生此情況時,系統會認可任何待處理動作或 DML、結束先前的交易,並開始新的交易。
請記住,特定設計元素 (您將分組至指定交易的作業) 取決於您。
以下是一些範例:

- 開始時,您會看到在多個畫面收集輸入的流程,然後在一個交易中執行數個動作。
- 下一個流程會在個別的交易中執行每個作業。
- 如果單一作業在一系列資料庫作業中失敗,流程也可以使用「回復記錄」來讓您回復整個交易。
假設您有一個流程建立記錄、更新記錄,然後建立其他記錄 (在下一個流程中說明)。
在此情節下,如果前兩個元素成功,而最後一個元素失敗,則前兩個 DML 作業仍會建立並更新適當的記錄,但第三個元素不會。
透過使用「回復記錄」元素,如果所有三個作業都必須一起進行,您可以確保整個交易已回復 (如最終流程中所示)。
**備註:**如需詳細資料,請查看「交易中的流程」和「交易中的流程大量處理」。
您從 LWC 控制交易的能力取決於 LWC 用來執行其作業的基本服務。如果您使用 Lightning 記錄格式基本元件,則提交表單時,基本作業 (建立或更新記錄) 會在獨立交易中發生。
一般而言,這些規則適用於:
-
每個 UI API 呼叫都會在其自己的交易中隔離。
-
如果您需要在單一交易中執行多個作業,請將輸入傳送至伺服器端技術 (例如,Apex 控制項或流程)。請記住,該技術的一般交易規則仍適用。
Flow、Omnistudio 和 LWC 都支援平台事件 (適用於以 事件為導向的結構) 和 API 整合。除了自訂 Apex 程式碼外,Flow 和 Omnistudio 也有可與 API 整合的陳述性支援機制。
如果您需要連線至 MuleSoft API 或 RPA 機器人,請使用 MuleSoft Services,因為這會產生「外部服務」。

如果 API 有 OpenAPI 結構描述,請建立「外部服務」。

針對所有其他例項,請使用「流程」中的 HTTP 呼叫功能 (由外部服務提供技術支援) 或 Omnistudio 中的 HTTP 動作。

Omnistudio 提供一組豐富的整合功能,可使用整合程序呼叫外部系統,透過資料對應器來轉換資料。
無論您是使用自訂 Apex 程式碼還是外部服務來進行實作,呼叫仍是呼叫。
以下是您需要瞭解的事項。
-
呼叫可能需要大量的時間來處理。
-
當同步執行呼叫時,呼叫會在資料庫交易開啟時執行。
-
如果您有任何待處理的資料庫作業,Salesforce 不允許您將資料庫交易保持開啟。
請記住,主要的限制是在執行 建立、更新或 刪除作業,然後在相同交易中執行 呼叫 時,造成資料狀態不一致的風險。由於上述第三個考量事項存在,因此不允許使用此模式,因為前兩個考量事項存在。
在「流程」中,您可以透過中斷交易來略過此限制。請記住,畫面與本機動作會重新導入瀏覽器內容。當您使用外部呼叫時,您可以使用畫面和本機動作,但建議在可叫用進階設定中啟用「交易控制」。「交易控制」可讓您在進行呼叫前自動結束交易。若要啟用「交易控制」,請在叫用動作的「**進階」**區段中選取「一律開始新交易」。
LWC 可協助簡化呼叫對交易的影響。換句話說,使用 Lightning Data Service (LDS) 執行資料作業,然後使用 Apex 控制項進行外部呼叫。由於 LDS 呼叫在其自己的交易中是隔離的 (與 Apex 呼叫分開),因此可保護您免受產生的資料不一致。
「動態表單」不支援重複使用。每個記錄皆繫結至特定物件的特定 Lightning 記錄頁面;不過,您可以將該 Lightning 記錄頁面指派給多個應用程式、設定檔等。
您可以撰寫可在多個元件之間使用的文件庫、公用程式和元件的方式,您也可以在建立流程時透過利用 子流程的功能來套用類似的設計模式。若要這麼做,請將您的流程儲存在較小的模組化分類中,然後使用 子流程 元素從其他流程呼叫流程。如果您的設計需要流程,您可以建立一個流程,其本身且作為子流程很有用。
Omnistudio 是為了模組化而建立的。「資料對應器」、「Omniscript」、「FlexCard」和「整合程序」皆獨立建立,但也可以互換運作。FlexCard 也可以建立為 LWC 元件,這些元件可內嵌在其他 LWC、Omniscript、記錄頁面和 Experience Cloud 網站中。
畫面流程、Omniscript 和 LWC 皆可建立以重複使用,並內嵌在各種位置中,包括外部網站和 Lightning Out 應用程式。當您設計可組合的解決方案時,您也會獲得適應性和穩定性優點。
用於建立或更新記錄的所有技術都必須遵循系統層級驗證,無論是傳統驗證規則還是內建在 Apex 觸發中的自訂驗證。無論您使用哪種技術來執行記錄變更,每個變更都必須通過儲存順序。這表示除了驗證規則之外,記錄變更也會由數個儲存前或儲存後流程、前後觸發、升級規則、指派規則等處理。
**備註:**如果您尚未執行此操作,請檢閱並將 Apex 執行順序加入書籤。
-
您的表單是否有系統級驗證以外的其他需求?
-
您是否需要在表單內動態設定必要或唯讀欄位?
| 遵循系統層級驗證 | 此表單特有的自訂欄位級驗證 | 自訂欄位級驗證 | |
|---|---|---|---|
| 動態表單 | 可用 | 不提供 | 不提供 |
| 畫面流程 | 可用 | 不提供 | 不提供 |
| Omnistudio | 可用 | 可用 | 可用 |
| 畫面流程 + LWC | 可用 | 可用 | 可用 |
| LWC | 可用 | 可用 | 可用 |
通常,流程畫面或 Omniscript 步驟上的輸入為未繫結,因此表單本身不會原生遵循與特定物件相關聯的系統級驗證。不過,您用來建立或更新記錄的值會以儲存順序處理,這表示這些值會通過物件的系統級驗證。
**備註:**並非所有「畫面流程」元件都支援輸入驗證。
「動態表單」與版面配置類似,可讓您在頁面層級設定 必要 性與 唯讀 狀態。請記住,您無法覆寫系統層級設定。
流程提供自訂表單輸入驗證的彈性。系統會在用戶端層級執行多個檢查 (例如,標記遺失的必要欄位和資料類型檢查,以及輸入驗證規則內的相容公式)。作為安全性的額外層級,也會在伺服器上評估輸入驗證。當使用者按一下「下一步」 時,流程會將輸入再次傳送至伺服器進行驗證。如果傳回任何無效的輸入,會封鎖瀏覽,並顯示適當的錯誤。
伺服器會透過檢查:
-
輸入的 必要性設定,或輸入的值是否與基本資料類型相容。
-
輸入的自訂驗證。您需要提供 _布林值_公式運算式,以及錯誤訊息,以在不符合公式運算式時顯示。
-
基本元件的自訂驗證。如果您要為流程建立自訂 LWC,您必須將自己的驗證程式碼新增至 validate() 方法。
您也可以透過「畫面流程」中的「訊息」 元件提供可存取的使用者警示,但這不會防止使用者瀏覽至其他頁面,或進入引導式流程中的下一個步驟。訊息元件中的「錯誤」狀態最適合用於停用瀏覽時透過錯誤路徑觸發的專用錯誤畫面。
Omnistudio 透過「設定錯誤」 動作搭配「條件檢視」 和「傳訊」 元件,提供強大的錯誤和驗證處理功能。
針對 LWC,大多數基本元件都會執行自己的用戶端驗證 (例如Lightning 遵循系統層級需求,但不遵循頁面層級需求)。針對您的自訂元件,您可以 Build Your Own 驗證機制。
請記住,需要使用者輸入資料的欄位應出現在表單的開頭。提交表單前 (若可能) 驗證用戶端的使用者輸入。
靜態表單已過期。今天,重點移至在_特定_時間、在_特定_位置為_特定_使用者動態更新具有正確內容和值的表單。讓我們進一步瞭解可透過 Salesforce 表單建立工具實現的項目。
-
哪些類型的互動或條件應在您的表單中觸發動態回應?
-
填寫表單時,您是否需要執行螢幕外 (背景) 作業?
-
您是否需要將欄位設定為 可見、 必要、 唯讀 或已 停用,或者您是否需要根據表單輸入變更格式?
| 執行螢幕外資料作業 | 條件值與計算 | 條件化可視性 | 條件式必要性 | 條件式格式化 | 條件式唯讀狀態 | 條件式停用狀態 | |
|---|---|---|---|---|---|---|---|
| 動態表單 | 不提供 | 不提供 | 可用 | 不提供 | 可用 | 不提供 | 不提供 |
| 畫面流程 | 可用 | 適用* | 可用 | 可用 | 不提供 | 可用 | 可用 |
| Omnistudio | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 |
| 畫面流程 + LWC | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 |
| LWC | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 |
| *限於使用資源選擇器而非靜態核取方塊的元件 | |||||||
反應性畫面可啟用「畫面流程」互動性。反應性可讓流程畫面上的個別元件彼此通訊,讓「畫面流程」更強大。
執行螢幕外資料作業
「畫面流程」提供透過「**畫面動作」**在相同畫面上提取資料的陳述性方法。「畫面動作」可讓您在畫面中的任何變更或使用者按一下「動作按鈕」元件時觸發自動啟動流程。您可以將自動啟動的流程結果對應至相同的畫面,因此不需要使用者瀏覽至其他畫面。
LWC 提供完整的電線轉接器陣列,提供 Salesforce 資料的存取權,以動態填入表單元件中的資料,這可讓開發人員透過 Apex 控制項來更新、刪除和建立記錄。

可視性
您可以在所有表單建立工具中動態控制可視性。「動態表單」、「Flow Builder」和 Omnistudio 使用元件可視性功能來解決此問題。您可以根據表單中的其他值,或使用者是否在行動裝置上完成表單,以宣告的方式顯示或隱藏欄位。
-
「動態表單」會根據記錄欄位值、對應欄位和尺寸規格控制可視性。
-
透過「流程」,您可以讓可視性規則以其他畫面輸入為基礎,以及在流程前期填入的其他資源 (例如,其他記錄中的公式或值)。
-
以裝置為基礎的規則:一開始可能並不明顯,但您可以使用公式在使用者在行動裝置上時,顯示或隱藏特定欄位。撰寫可檢查 $User.UIThemeDisplayed 全域變數值的流程公式。如果值為 Theme4t,則使用者正在使用 Salesforce 行動應用程式完成表單。
-
**評估其他資源:**手動變數和公式參照僅會在伺服器上評估。這表示資源在第一次呈現畫面時所擁有的值是資源在瀏覽至另一個畫面之前所擁有的值。瀏覽期間,流程執行階段會向流程引擎 (伺服器) 提交要求,並傳回最新的手動變數和公式值。如果您預期您的可視性規則會在使用者通過單一畫面時更新 (例如,Onblur),您必須確保您僅參照畫面上其他元件的值。
-
-
透過 Omnistudio,您可以設定「條件檢視」 內容,條件式地顯示或隱藏元件。不過,您無法為輸入新增多個「條件式檢視」內容。
條件式輸入狀態
如果您需要動態控制其他任何內容 (例如,欄位為 必要、 停用或 唯讀),則有一些選項。LWC 提供輸入狀態的完整反應性控制。透過「反應性畫面流程」元件,您可以針對支援的標準元件動態控制元件屬性 (例如唯讀、停用和 必要),而 Omnistudio 支援元件特定屬性的完整範圍。如果您的需求指出您需要「流程」,且元件不支援特定屬性狀態,您可以建立可內嵌 LWC 以達到動態輸入狀態。
如果您需要動態控制其他任何內容 (例如,欄位是必要還是為唯讀),請在短期內使用 LWC,因為您可以完全控制。這特別適用於您針對如何處理開啟或點擊的自訂需求。
畫面流程中的反應性 LWC
如果您要建立可在畫面流程上反應或變更其他元件的 LWC,請查看畫面流程的 LWC 最佳作法指南,以確保您的元件與流程執行階段引擎整合,並如預期般運作。
| 標準事件處理 (模糊、焦點) | 自訂事件處理 | |
|---|---|---|
| 動態表單 | 不提供 | 不提供 |
| 畫面流程 | 不提供 | 不提供 |
| Omnistudio | 不提供 | 適用* |
| 畫面流程 + LWC | 可用 | 可用 |
| LWC | 可用 | 可用 |
| *Omnistudio 標準執行階段不支援 Pub/Sub,但支援 Windows postMessage | ||
針對自訂事件,如果您的某些輸入 (或整個表單) 需要與頁面上的其他元素通訊,則 LWC 是您唯一的選項。
-
若要在相同的 DOM 樹狀結構內通訊,請使用 CustomEvent 介面。
-
若要跨 DOM 通訊,請使用 Lightning 傳訊服務。
-
如果您的目標容器不支援 Lightning 傳訊服務,請使用 pub/sub 模組。
-
針對 Omnistudio,請查看 從 Lightning Web 元件與 Omniscript 通訊。
為了提供最佳的使用者體驗,務必確保表單樣式與內嵌表單的其他應用程式或網站一致。這可能表示使用 Salesforce 提供的標準範本,或建立使用設計中每個像素的自訂 CSS,以提供更明確的外觀和操作。
管理員可以針對畫面容器或個別元件設定有限的畫面和元件樣式覆寫集 (例如色彩、框線和按鈕外觀)。這些覆寫會套用至主題與品牌標識之後,這可讓產生器進行目標視覺調整,而不會影響其他應用程式。
樣式覆寫適用於本地化的視覺例外狀況 (例如醒目提示確認畫面或強調特定呼叫動作 (CTA);它們並非完整樣式系統。它們不提供 CSS 層級控制,且並非為了在畫面或流程之間重複使用而設計。
從結構角度來看,樣式應遵循此先決順序:
-
**主題與品牌標識:**Lightning 主題、體驗產生器品牌集或 LWR 網站主題
-
**流程樣式覆寫:**目標畫面或元件調整
-
**自訂元件 (LWC):**當需要像素完美控制或可重複使用的設計模式時
使用主題與設計系統有助於確保樣式在一段時間內保持一致、可調整且易於維護。
-
您所需的樣式和 CSS 有多複雜?
-
您是否需要自訂、像素完美的樣式或標準主題?
| 直接設定樣式 | 組織和體驗產生器主題 | 像素完美樣式 | |
|---|---|---|---|
| 動態表單 | 不提供 | 可用 | 不提供 |
| 畫面流程 | 不提供 | 可用 | 適用** |
| Omnistudio | 適用* | 不提供 | 可用 |
| 畫面流程 + LWC | 不提供 | 可用 | 可用 |
| LWC | 不提供 | 可用 | 可用 |
| *僅限 FlexCard ** 可以為畫面元件設定某些樣式屬性,但無法為 CSS 覆寫。 | |||
FlexCard 是本指南中唯一的產品,可讓您以宣告的方式控制您在工具中建立之 UI 的樣式與版面配置 (例如,邊緣與填補、列印、色彩等)。
「動態表單」與「流程」會遵循陳述性主題功能。如果您需要額外的控制 (超出 Salesforce 主題、體驗產生器品牌集或 LWR Experience Cloud 網站支援之外),請考慮使用程式設計解決方案。
喜歡使用 CSS 的小組有數個選項:
-
流程與 LWC 會繼承 標準設計權杖。
-
Omniscript 和 FlexCard 包含可透過 Newport 自訂的設計系統支援。
-
透過 LWC,您可以撰寫自己的元件,並完全控制其 HTML 和 CSS。
我們建議盡可能使用主題與設計系統,以確保所有內容的外觀與操作一致。
**備註:**您可以在「流程」中內嵌 Lightning 元件。如果您需要像素完美控制表單的外觀與操作,但您也想要使用「流程」的其他優點 (例如瀏覽模型),您可以擁有這兩個世界的最佳功能!相同的原則也適用於 Omniscript 與 FlexCard。
選擇好的版面配置對於設計簡化表單而言至關重要,其可讓資料輸入快速且有效率,並提高資料完整性。
-
如何建構版面配置以最佳化使用者體驗?
-
如何向使用者呈現現有資料,讓使用者更容易在表單中輸入新資料?
| 2 欄 | 4 欄 | 4 欄以上 | 重複資料區塊 | 索引標籤容器 | 可折疊式容器 | |
|---|---|---|---|---|---|---|
| 動態表單 | 可用 | 不提供 | 不提供 | 不提供 | 可用 | 可用 |
| 畫面流程 | 可用 | 可用 | 不提供 | 可用 | 不提供 | 可用 |
| Omnistudio | 可用 | 可用 | 可用 | 可用 | 適用* | 可用 |
| 畫面流程 + LWC | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 |
| LWC | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 |
| *若將資料內嵌在 Omniscript 中的 FlexCard 中,則可使用索引標籤 | ||||||
「動態表單」支援可分成欄位內個別區段的雙欄版面配置。這些區段可放置在元件 (例如索引標籤和可折疊式) 內,以建立有序且易於使用的版面配置。
您也可以使用 區段元件呈現流程。您最多可以在流程畫面上新增四個欄和無限數量的區段。區段元件也會回應螢幕寬度,因此它也適用於較小的螢幕。這可讓您將條件化可視性套用至整個區段,讓您更容易將可視性大量套用至區段內的多個欄位。流程區段也支援欄標題,並提供類似的折疊式體驗,使用者可按一下標籤來摺疊整個區段。
Omniscript 具備各種版面配置選項,用於顯示欄位與資料。您可以建立包含最多 12 欄的資料區段,包括條件式摺疊式折疊式折疊式。
透過 LWC,您可以使用 Lightning] 格式和支援的 Lightning] 欄位來控制版面配置。唯一的版面配置限制來自 HTML 和 CSS。Lightning 記錄格式元件遵循相關聯版面配置中的區段組態 (例如,如果區段在版面配置中為兩欄,則該區段在元件中也是兩欄)。
如果您的表單需要可供不同區域的使用者或使用不同語言的使用者存取,您必須確保用於建立表單的工具符合您的本地化需求。
**備註:**特別針對表單,本地化需求通常涉及將文字元素翻譯成其他語言。
-
您的表單是否要在一個以上的國家或地區使用?
-
表單中的文字是否需要本地化為其他語言?
| 在產生器中輸入的標籤 | 程式碼中的標籤 | |
|---|---|---|
| 動態表單 | 適用* | 不提供 |
| 畫面流程 | 可用 | 可用 |
| Omnistudio | 可用 | 可用 |
| 畫面流程 + LWC | 可用 | 可用 |
| LWC | 不適用 | 可用 |
| *僅欄位區段標題 | ||
如果您本地化自訂欄位,「動態表單」會遵循翻譯的標籤。「動態表單」也會遵循在 Lightning 應用程式產生器中指派給元件標籤和屬性的任何自訂標籤。
流程支援透過翻譯工作台翻譯所有標準和自訂畫面元件的使用者面向標籤。
您可以在下列畫面元件上本地化標籤、說明文字和錯誤訊息:
- 文字
- 長文字區域
- 數字
- 貨幣
- 核取方塊
- 選項按鈕
- 選項清單
- 多重選擇選項清單
- 核取方塊群組密碼
- 日期
- 日期/時間
無內建翻譯支援立即可用的動作 (例如「傳送電子郵件」或「張貼至 Chatter」),但有因應措施。如果您使用 自訂標籤定義翻譯的標籤,則在 Flow Builder 中進行設定時,您可以在動作或元件中參照該自訂標籤。若要這麼做,您需要建立參照自訂標籤的流程公式,然後在流程內的適當位置參照該公式。
Omniscript 使用自訂標籤進行翻譯。如需詳細資訊,請查看 此說明文件,以確保您的 Omniscript 已準備好使用多國語言。
針對 LWC,若某些基本元件在翻譯工作台中設定 (例如 Lightning則會自動繼承相關聯物件欄位、說明文字和驗證訊息的翻譯。
如果您需要在程式碼中導入新的可翻譯標籤,則自訂標籤是最適合的方式。宣告您需要的自訂標籤,然後從 @salesforce/label 範圍模組將其匯入元件。
使用此區段可在實作前評估安全性、品質和營運限制。
安全性是一個複雜的主題,建立表單時,有一些考量事項可能不明顯。在基礎層級,您需要確保表單在正確的內容中執行,且使用者擁有使用其基本資料所需的權限。除此之外,您也可能想要採取額外的措施來清除 Rich Text 欄位中潛在的惡意程式碼或 URL、防止特定使用者存取表單,或限制管理員未來可能內嵌表單的位置類型。
選擇工具之前,請務必徹底記錄您的安全性需求。如需此類型文件的其他指引,請查看 Salesforce Well-Architected 安全性原則範本。
-
表單是否應在執行某些作業前檢查使用者的存取權?
-
您應該消毒使用者輸入嗎?
-
您想要控制可以存取表單的人員嗎?
-
您想要控制表單的內嵌位置嗎?
| 提升使用者權限 | 控制擁有存取權的人員 | 限制允許的位置 | |
|---|---|---|---|
| 動態表單 | 不提供 | 可用 | 不提供 |
| 畫面流程 | 可用 | 可用 | 不提供 |
| Omnistudio | 不提供 | 可用 | 不提供** |
| 畫面流程 + LWC | 可用 | 可用 | 不提供 |
| LWC | 適用* | 可用 | 可用 |
| *需要 Apex **雖然 Omniscript 無法具有指定的目標位置集,但 FlexCard 可以。 | |||
當程式在 使用者環境中執行時,Salesforce 會強制執行一系列的存取檢查,其中包括根據您組織的共用規則驗證欄位級安全性、CRUD 權限和記錄存取權 (例如,只有在使用者能夠更新個案、適當的欄位級安全性,以及對問題記錄的存取權時,使用者才能執行個案更新表單)。
如果您希望使用者能夠在使用您的表單時執行特定作業,但無法透過任何其他表單或互動,會發生什麼事?這就是 系統內容的入口!
系統內容可讓您在工作階段期間提升使用者的權限 (例如,使用者不需要更新「個案」物件的存取權,才能成功完成個案更新表單)。這對於未經驗證的社群特別有用。您可以將表單設定為在系統環境中執行,而不是授與來賓使用者潛在危險的技能。
系統內容只能在絕對必要時使用。當表單在「系統內容」中執行時,每個 CRUD 作業都會略過物件和欄位級安全性和共用元件。此外,「系統內容」不會影響 Salesforce 將誰視為執行動作的 執行動作使用者 (您在「**上次修改者」**欄位中看到的名稱)。針對您的表單執行的每個作業 (例如個案更新),_執行動作使用者_是目前的使用者 (即使表單在不同內容中執行)。
備註:「動態表單」、「Omniscript」與 LWC」一律在使用者環境中執行,無法覆寫此行為。
「畫面流程」依預設會在使用者環境中執行,但您可以將其設定為在系統環境中執行。您可以決定流程是否應授與對所有資料的存取權,或是否應強制執行記錄級存取權。
-
如果您將 Lightning 元件內嵌在在系統環境中執行的流程中,則流程不會覆寫元件的內容。如果您需要略過使用者存取檢查,請使用流程來執行這些作業,並將適當的資料傳送至 Lightning 元件或傳送出來。某些立即可用的元件 (例如「對應」) 無法在系統環境中作業。
-
如果您的流程呼叫 Apex 動作,則會涉及其他細微差別。
-
如果 Apex 類別設定為 _繼承共_用,則無論流程設定的方式為何,它都會在共用的系統環境中執行。
-
如果類別沒有明確的共用宣告,則無論流程設定的方式為何,類別都會在系統環境中執行,而不會共用。
-
如果類別設定為「共用或不共用」,則會覆寫流程的內容。
-
使用 Experience Cloud 網站在系統環境中查詢記錄
如果您在 Experience Cloud 網站上執行「在系統環境中執行流程」(尤其是未經驗證的流程),請僅將特定欄位儲存在「**取得記錄」**元素中。當您使用「流程」並將「**取得記錄」**元素的結果傳遞至「子流程」、「可叫用動作」或 Lightning 元件時,瀏覽器的開發人員工具可能會檢查該物件中的所有欄位。無論您的意圖為何,這都可能會讓 Experience Cloud 使用者可以使用欄位。若要確保只有正確的欄位會在「系統內容」啟用時顯示,請在您的「**取得記錄」**元素中指定這些特定欄位。
**備註:**Omniscript 邏輯會在用戶端執行,這可讓攻擊者修改預期的 Omniscript 執行,並透過瀏覽器的開發人員工具檢視整合程序、資料對應器和 Apex 方法呼叫的回應。當您使用 Omniscript 時,請務必在伺服器端執行業務邏輯 (若可能),並針對透過 @InvocableMethod 註釋公開的任何 Apex 方法實作輸入驗證規則。
消毒輸入物
若要保護您的組織免受惡意執行動作的影響,請使用輸入消毒。假設您在可公開存取的表單上有輸入,可對應至您組織中的「Rich Text」欄位。您可能會想考慮啟用自動化,以刪除可能隱藏惡意 URL 的任何 HTML。
在表單層級實作消毒並不理想,因為您可能有任何數量的來源寫入這些欄位。若要協助解決此問題,請建立「快速欄位更新流程」(儲存前),或使用現有的 Apex 觸發程式去除或修改表單中可能輸入的任何潛在 HTML。
-
允許「流程」在其預設內容中執行 (除非您需要針對特定作業提升目前使用者的存取權)。
-
避免針對來賓使用者在系統環境中執行「流程」。建立具有有限欄位存取權的權限集,並將其指派給 Experience Cloud 來賓使用者的設定檔。
-
在 Experience Cloud 網站上查詢「系統內容執行流程」中的記錄時,請僅將您需要的欄位儲存在「取得記錄」 元素或「可叫用動作」中。
-
如果流程執行各種作業 (所有作業皆不需要增強的存取權),請使用「子流程」來區隔應在「系統內容」內執行的作業。
-
如果您將表單內嵌在外部網頁中,可能需要將其對應至「Rich Text」欄位,以協助避免潛在的網路釣魚攻擊。若要這麼做,請使用 快速欄位更新流程或 Apex 觸發來消毒使用者輸入以移除 HTML。
-
依預設,Omniscript、FlexCard 和 LWC 會在使用者環境中執行。
-
LWC 依預設會在使用者環境中執行。
-
流程會在使用者環境中執行,但您可以使用 Apex 控制項來覆寫流程。
-
在 UI API 內執行的作業會在使用者環境中執行。
-
使用 Apex 控制項執行的作業取決於特定類別。若要在系統模式中執行這些作業,請設定共用或不共用的 Apex 類別。
如果您需要控制可以存取表單的人員,請檢閱內嵌表單的容器 (例如,您可以將 Lightning 頁面指派給特定應用程式、記錄類型或設定檔使用)。如果特定輸入是敏感的,請使用可視性規則來進一步控制向人員顯示的內容。此功能適用於「動態表單」與「畫面流程」。
您可以將「流程」限制為特定設定檔或權限集 (類似於 Apex 類別或 Visualforce 頁面)。依預設,流程不受限制,這表示具有「**執行流程」**使用者權限的任何使用者皆可存取流程。
如果您使用 Omnistudio,您可以設定需要使用者具備從 Omniscript、FlexCard、Classic 卡片或 REST API 管理遠端動作的 Apex 類別明確存取權的 Apex 類別權限檢查程式。
**備註:**Apex 類別權限檢查僅適用於 Apex 類別。也建議為 整合程序和資料對應器設定設定檔層級權限。
-
如果您要向來賓使用者公開「流程」,則您僅應將其絕對需要的「流程」設定檔存取權授與來賓使用者。您可以將「**執行流程」**新增至來賓使用者設定檔,但此作法可能具有風險。
-
使用在「系統內容」中作業的「流程」時,請特別小心。您應將這些「流程」限制為特定使用者集,因為這些流程擁有較少的檢查和平衡,以保護您的資料。
-
確保在來賓使用者社群中執行 Apex 的任何 Omniscript 都會列在 Apex 類別定義中共用。
-
針對來賓使用者設定檔,請僅指派您要允許來賓使用者呼叫的 Apex 類別。遵循此作法有助於避免不小心向來賓使用者公開其他業務邏輯。
針對 LWC,您可以檢查目前使用者的權限指派,確認其是否具有特定標準或自訂權限。您可以直接在 JavaScript 中從 @salesforce/userPermission 和 @salesforce/customPermission 範圍模組匯入 Salesforce 權限。您也可以使用 Apex 檢查權限。
LWC 只有在已新增為有效的 目標 (例如,您可以將元件設定為可在記錄頁面上使用,而無法作為公用程式列項目使用) 之後,才能在指定的位置使用。
啟用「畫面流程」後,該流程便可在支援「畫面流程」的所有位置中使用。Flow Builder 支援具有畫面的多個「流程」類型。最明顯的類型是「畫面流程」,但有一些其他專用類型僅限於特定位置 (例如,Field Service 行動應用程式僅支援「Field Service 行動流程」)。這類似於僅 Experience Cloud 支援的「連絡要求流程」。
無論「流程」類型為何,建立「流程」的人員都無法控制「流程」的內嵌位置。流程適用於支援該特定流程類型的每個位置。
如果您使用 Salesforce Industries,則在 Omniscript 方面會有輕微的警告。您無法為 Omniscript 指定目標,但可以為您要內嵌的 FlexCard 指定目標。
Salesforce 有數種端對端測試自動化工具 (例如,查看 Salesforce UTAM),可讓您模擬使用者如何與表單互動。您可以撰寫任何標準或自訂 UI 的測試,包括 Lightning 頁面和畫面流程。
**備註:**這些測試類型無法驗證正在執行之方法的輸出。當您設定 UI 測試自動化需求時,請記住這一點。
-
您是否需要自動化表單測試?
-
您計畫執行的測試類型為何?
-
測試自動化所需的細微度層級為何?
| 單元測試 | 端對端自動化 | |
|---|---|---|
| 動態表單 | 不提供 | 適用* |
| 畫面流程 | 不提供 | 適用* |
| Omnistudio | 適用* | 適用* |
| 畫面流程 + LWC | 適用* | 適用* |
| LWC | 可用 | 可用 |
| *需要程式碼 | ||
考量 UI 測試自動化需求
單元測試提供與業界標準 CI/CD 系統和工具一致的細微自動化和驗證,測試業務邏輯、JavaScript 控制項和特定元件的輸出。如果您選擇低程式碼方法,您將無法自行撰寫測試;不過 Salesforce 會嚴格測試所有端對端供應項目。
如果元件的方法很複雜,您可以將方法放置在專屬的 JavaScript 檔案中,以個別的方式將方法輸入文字。這可讓您將其匯入至 LWC,然後匯入至 **Jest 測試 (例如,**從 ‘c/utils’; 匯入 { sort })。
您可以使用 ISV 的無程式碼解決方案、建立自訂測試自動化解決方案,或使用開放程式碼測試架構 (例如 Selenium WebDriver 或 WebdriverIO) 來進行端對端自動化。這些解決方案適用於所有的 Salesforce UI 互動 (例如 Lightning 頁面中的「動態表單」、公用程式列中的「畫面流程」或快速動作流程中的 LWC)。
將表單部署至生產環境後,您必須確保表單有效使用。視您的使用個案而定,這可能表示追蹤表單填寫的次數,以及平均使用者在提交其資訊前花費完成表單的時間。在選擇工具前,請務必識別您的可追蹤 KPI。
-
您是否需要追蹤表單用量?
-
哪些 KPI 可以判斷表單是否有效使用?
| 頁面檢視 | 表單所花費的時間 | 追蹤表單完成 | 追蹤成功率 | |
|---|---|---|---|---|
| 動態表單 | 適用** | 不提供 | 不提供 | 不提供 |
| 畫面流程 | 可用 | 適用* | 可用 | 可用 |
| Omnistudio | 可用 | 適用* | 可用 | 可用 |
| 畫面流程 + LWC | 可用 | 適用* | 可用 | 可用 |
| LWC | 適用** | 適用* | 可用 | 可用 |
| *可在啟用封裝型 Omnistudio 執行階段時使用** 可透過追蹤父系 Lightning 頁面用量 | ||||
如果您需要追蹤整體表單使用情況與採用情況,請使用低程式碼工具。「動態表單」與「畫面流程」可透過立即可用的自訂報告進行追蹤。不過,「畫面流程」追蹤報告提供額外的細微性。如果您需要追蹤 LWC 使用狀況,立即可用的可用性取決於您使用 LWC 的位置。如果是在 Lightning 頁面上,則所有可用的 Lightning 頁面用量追蹤元素也會套用至您的 LWC。這也適用於內嵌在「流程」中的 LWC。
「動態表單」並非立即可追蹤,但您可以透過 Lightning 用量物件追蹤父系 Lightning 頁面的用量。若要追蹤標準 Lightning 頁面,請使用「 依頁面度量使用 Lightning 的使用 者」自訂報告。針對自訂 Lightning 頁面,請使用「使用者與 Lightning 使用情況依據 FlexiPage 度量」自訂報告。
流程可協助您追蹤特定表單的採用狀況。使用 範例流程報告:畫面流程可回答下列類型的問題:
-
此表單的完成率為何?目前是否正確採用?
-
使用者需要多久才能完成此表單?
-
使用者花費最多時間完成哪個畫面?
-
使用者瀏覽至上一個畫面的頻率為何?
-
錯誤的發生頻率為何?
如果標準報告不符合您的需求,您可以使用「**畫面流程」**報告來複製報告並進行變更或從頭開始 Build Your Own 報告。
如果您使用封裝型 Omniscript 執行階段,您也可以使用 Omnistudio for Vlocity Tracking Service。此服務會追蹤所有類型的事件 (例如,您可以追蹤在 Omniscript 中完成步驟所需的時間,這有助於識別流程改善方式)。
**備註:**沒有立即可用的選項可追蹤未內嵌在「畫面流程」、「Omniscript」或 Lightning 頁面中的 LWC,但您可以使用 Apex 建立自訂解決方案。
您可能已熟悉使用變更集或 DevOps Center 將解決方案部署至測試環境或生產環境。這些部署選項完全支援「動態表單」、「流程」與 LWC。不過,Omnistudio 需要個別的工具,即 IDX 工作台。
-
您打算如何部署表單?
-
表單是否必須散佈至多個 Salesforce 組織?
| 第一代受管理封裝 (1GP) | 第二代受管理封裝 (2GP) | 解除鎖定的封裝 | 變更集 | DevOps Center | |
|---|---|---|---|---|---|
| 動態表單 | 可用 | 可用 | 可用 | 可用 | 可用 |
| 畫面流程 | 可用 | 可用 | 可用 | 可用 | 可用 |
| Omnistudio | 不提供 | 不提供 | 不提供 | 不提供* | 不提供* |
| 畫面流程 + LWC | 可用 | 可用 | 可用 | 可用 | 可用 |
| LWC | 可用 | 可用 | 可用 | 可用 | 可用 |
| *使用 IDX 工作台將 Omnistudio 解決方案部署至其他組織。 | |||||
如果您是 ISV 或計畫在 AppExchange 上封裝解決方案的合作夥伴,請查看「動態表單」、「流程」和「LWC」。請記住,Omnistudio 不支援封裝。
本指南旨在向您顯示「動態表單」、畫面流程、Omnistudio 和 LWC 提供的功能與自訂層級。
以下是概況概觀。
-
「動態表單」是最不彈性的選項,但發生錯誤的機會較少。
-
「流程」與「Omnistudio」在中間略有下降。其功能比「動態表單」更強大,但並未完全符合 LWC 層級。不過,其護欄比「動態表單」較少,且比自訂程式碼更難破壞。
您可能會發現多個符合您需求的工具。如果是,最終的決定取決於最適合您小組的工具。如需考慮其他層面的詳細資訊,請查看這些「結構設計師決策指南」。
- 比較工具時,請務必評估您小組對於每個工具擁有的專業知識為何?
- 有多少位開發人員熟悉 LWC 或 JavaScript?
- 您的小組中是否有 Flow Builder 專家或有興趣深入瞭解的開發人員?
雖然我們不會進一步說明具體的詳細資料,但以下是關於這些特定工具如何與我們目前涵蓋的評估相關的詳細資訊。
交付委派
請記住,即使您的某些需求需要 LWC,也不需要使用 LWC 建立整個解決方案。決定如何模組化建立解決方案十分重要。若要這麼做,您需要識別哪些組件需要編碼的 LWC,以及哪些組件不需要。不需要 LWC 的零件應使用低程式碼解決方案建立。
當涉及流程和 LWC 時,有各種元件 (例如反應性畫面元件和畫面流程) 可在相同畫面上彼此同步,以為結構設計師、管理員和開發人員解鎖新工具。開發人員現在可以建立可在整個組織中重複使用的具目的模組化元件,這有助於提升小組生產力。這可讓開發人員使用標準和自訂「流程」元件混合來節省時間,以實現形式動態,讓他們有更多時間專注於解決新挑戰。隨著「流程」中導入反應性元件,建立表單時,從未有更適當的時間來混合「流程」與 LWC。
長期擁有權與維護能力
如果您要建立多步驟表單,請從「流程」或「流程與 LWC」的混合開始。如果維護表單的小組為低程式碼小組,請確保解決方案可盡可能針對預期的受眾進行設定和擴充。為了改善穩定性和維護性,將您的解決方案組織為可組合單位很重要,無論您選擇的工具為何。
與「動態表單」、「畫面流程」、「Omnistudio」或 LWC 相關的效能考量事項會以技術所在的架構為基礎。以 LWC 為基礎的技術的效能可能高於以 Aura 為基礎的技術。由於有數個原生在 Web 引擎中實作的核心功能 (而非透過架構抽象在 JavaScript 中),因此 LWC 提供增強的效能優點。
因此,我們如何在 Salesforce 中為表單技術運用這些效能優點?讓我們進一步瞭解。
-
「動態表單」(整合在 Lightning 頁面中繼資料內) 以 LWC 堆疊基礎為基礎,可讓我們實作數個期待已久的功能。「動態表單」可作為額外的效能加成,使用漸進式呈現,以改善具有大量欄位之頁面的載入時間。
-
畫面流程以 LWC 為基礎。現在,大多數個別立即可用的元件已轉換為 LWC,但「**檔案上載」**和「**影像」**元件除外。雖然流程小組已將流程執行階段用戶端轉換為 LWC (及其大多數元件),但客戶仍需要將其 Aura 畫面元件轉換為 LWC。請記住,Salesforce 僅支援「畫面流程」中「反應性元件」 架構內的 LWC 元件。如需詳細資訊,請查看 Lightning Web 元件適用於 Aura 開發人員 Trailhead 模組。如果您計畫為「畫面流程」(或任何其他容器) 建立自訂元件,請選擇 LWC!
-
有數種可用的 Omnistudio 版本。如果您是長期客戶,您可能正在使用 Angular。我們鼓勵所有新客戶使用 LWC 型 Omniscript 和 FlexCard。我們也鼓勵現有客戶移轉至 Angular。
-
LWC 以 LWC 為基礎。
| 動態表單 | - 使用動態表單細分記錄詳細資料 - 取得 Lightning 應用程式產生器的說明 |
| 畫面流程 | - 使用畫面流程與使用者互動 - 透過流程自動化工作 |
| Omnistudio | - Omnistudio - Omniscript - IDX 工作台桌面應用程式 - Newport 設計系統 - 使用 Newport Design System 自訂 Omniscript 和 FlexCard |
| LWC | - Lightning Web 元件 - Lightning Aura 元件開發人員指南 - 適用於 Aura 開發人員的 Lightning Web 元件 |