# architect 決策指南 (decision-guides) - Full Documentation # Data 360 互通性 企業通常會將資料儲存在 Salesforce 和其他外部資料湖中 (例如,_Snowflake_、_Google BigQuery_、_Databricks_、_Redshift_ 或物件儲存空間,例如 _Amazon S3_)。在多個系統之間隔離資料會對想要充分運用其資料價值的公司造成挑戰,以強化 AI 驅動的體驗。Salesforce _Data 360_ 是每個 Agentforce AI 工作人員在正確時間存取正確內容的基礎情報層。 努力將多個資料湖之間的資料整合在一起的結構設計師會面臨關於如何最佳整合該資料的重要結構決策。_Data 360_ 提供資料整合的多個選項,每個選項都有不同的優點與缺點。 ## 指南概觀 本指南提供一個架構來評估哪些模式最適合整合資料時的延遲、成本、可擴展性、管治和複雜性需求,協助您選擇何時使用資料提取、零複製資料聯合或混合式方法。此指南也會協助您在不同方法之間進行選取,這些方法皆滿足不同的需求。 將外部資料湖首頁與 _Data 360_ 整合需要仔細考量資料新鮮度、管治和管道效率之間的權衡。例如,使用「零複製」資料聯合即時查詢可將資料的最新度最大化,但隨著更多資料在網路上移動,可能會降低銷售管道效率。針對大多數的實作,在多重雲端湖家生態系統中結合取用與聯合是最佳的路徑。此混合式方法可確保可調整、受管理、可互通的結構,支援低延遲的作業工作負載 (例如,即時個人化和詐騙偵測) 和分析工作負載 (例如,法規報告和歷程記錄趨勢分析)。本指南可協助您決定如何使用適當的策略來瀏覽這些權衡。 ## 重要道具 - **Data Capture** 會將資料複製到 Salesforce _Data 360,_ 並建立受管理的標準資料模型。這是您需要進行下列動作時的理想選擇: - **建立全方位的 Customer 360**,可讓您將不同的來源統一並轉換為一個信任的設定檔。 - **符合嚴格的法規合規性。**這可讓您建立可稽核的集中複本,以便密切控制資料存取與歷程。 - **Zero Copy Federation** 會即時查詢外部來源,而不會重複,以啟用即時個人化、即時顯示面板和快速來源上線。此方法提供兩個主要選項,但有必須平衡的權衡: - **即時查詢:**請將其用於位於外部資料平台中的互動式分析和即時資料顯示面板 (例如,_Snowflake_、_BigQuery_、_Redshift_ 或 _Databricks_)。這有助於透過將查詢處理推送至來源系統,並僅傳回必要的結果,以避免慢速且高成本的資料重複。此方法針對不常見或臨時的查詢最佳化,其中重新整理十分重要。適用於低 _每秒查詢 (QPS)_ 的工作負載 (查詢成本在高 QPS 時可能大幅高)。 - **快取 (加速查詢):**將此用於不常變更的頻繁資料查詢。加速查詢會維持以可設定的間隔時間 (15 分鐘到 7 天) 更新的本機快取,進而減少重複的來源點擊。此方法會平衡顯示面板效能與成本、區隔和 BI 工作負載,其中略有延遲的結果是可接受的。這不適用於次要決策。 - **檔案聯合:**針對雲端資料湖中的資料 (例如,_S3_ 或 _ADLS_) 進行大規模批次處理和 AI 模型訓練。此方法可透過直接以開放式表格格式查詢檔案,以避免慢速且高成本的採取,進而解鎖大量 ETL 資料集和資料科學工作量。 - **混合式模型**結合了針對 _統一設定檔_採取的注意事項,同時也結合了關聯性,其支援 Omni-Channel 參與、Agentforce 驅動的動作和 AI/ML 訓練。 ### 重要考量事項 - **使用混合結構。**經常需要混合資料取用與聯合。 - 針對標準資料模型和核心控管,在重要資料上使用「_資料取用_」。 - 針對所有其他資料聯合使用「_零複製」,_以保持最新狀態,並將建立和維護資料取用管道的作業負擔降到最低。 - **資料取用頻率很重要**根據業務價值、延遲需求和營運複雜度選擇頻率。 - 將 _即時_用於具有時效性的工作流程 (例如個人化、即時顯示面板和 Agentforce 動作)。 - 針對中度緊急的流程 (例如行銷活動和作業報告) 使用 _近乎即時_。 - 針對歷程記錄或低速資料集使用批次。 - **將聯合模式與延遲和效能比對。**選擇最符合您存取模式與更新性、效能與成本需求的選項。 - 將「_即時查詢」_用於在低延遲十分重要的作業顯示面板和即時個人化。 - 當查詢頻繁且略有延遲的結果可接受時,請使用 _快取 (加速查詢)_,這有助於平衡效能與成本。 - 將 _檔案聯合_用於大規模、輸送量繁多的分析或批次工作負載,這是歷史或較不敏感時間的資料集的理想選擇。 - **將管治與資料落地需求保持一致。** - 當集中化治理十分重要時,請使用 _耗用_。 - 當去中心化治理可接受時,請使用_聯邦_,同時在外部來源強制執行嚴格的監管。 - 針對來源層級原則使用「_零複製」(_例如,_列層級安全性 (RLS)_ 和資料遮蔽)。 - **為高價值工作流程排定採取優先順序。**選擇性地套用至重要流程 (例如身分解析、監管報告和作業啟用)。 - **成本與複雜性驅動決策。**即時採取可能高成本且複雜。這就是為什麼結構設計師必須將上線、儲存和轉換資料的成本對照直接透過 _零複製_查詢資料的成本進行加權。 選擇正確的整合模式 (包括_資料取用_、_零複製_或_混合式_方法) 會直接影響多重雲端平台的延遲、管治、營運效率和成本。此決策會決定如何可靠且大規模地提供即時洞察、AI 驅動的啟用和個人化參與。 ## 產品比較 此表格比較 Salesforce _Data 360_ 中的「_資料取用_」和「_零複製_」模式,專注於功能、權衡和優點,以及企業使用個案和成果。使用此作為設計混合式多雲端資料平台的參考,以平衡效能、成本和合規性。
| 模式類型 | 模式/工具 | 福利 | 考量事項 | 成果 |
|---|---|---|---|---|
| 資料取用 |
即時:
|
|
|
Agentforce:
|
串流:
|
|
|
Agentforce:
|
|
批次:
|
|
|
Agentforce:
|
|
| 零複製 |
即時查詢:
|
|
|
Agentforce:
|
加速查詢 (快取):
|
|
|
Agentforce:
|
|
檔案聯合:
|
|
|
Agentforce:
|
#### 資料取用方法
根據您使用哪個連接器來取用資料,可能會有不同的 _資料取用_方法。某些連接器提供各式各樣的方法,而其他連接器僅在批次或串流模式中運作。如需 _Data 360_ 連接器和可用方法的完整清單,請查看 [Data 360: 整合和連接器](https://help.salesforce.com/s/articleView?id=data.c360_a_sources_targets.htm&type=5)。
- **即時:**
- 使用「_變更資料匯取」(CDC)_ 提供子秒匯取
- 適用於具有時效性的工作流程 (例如詐騙偵測、個人化和作業顯示面板)
- 功能在 _Data 360_ 內推送轉換和彙總,這有助於減少下游 I/O 並最佳化運算用量
- 支援使用增量 CDC 將資料混亂降到最低
- **串流:**
- 每 1–3 分鐘提供每 1–3 分鐘以小量增量為單位。
- 平衡更新與成本
- 適用於行銷活動協調流程、近乎即時的參與和作業報告
- 支援使用微批次控制 I/O 峰值
- 彙總來源的資料 (如果可以的話) 以減少傳輸量並最佳化儲存空間
- **批次 (已排程載入):**
- 提供大型資料集的定期取用 (例如每小時、每日和每週)
- 為歷程記錄資料集、法規報告和合規性使用個案提供成本效益與可靠性
- 確保計算地區設定位於與來源儲存空間相同的區域,以提升效能並最佳化成本
#### 結構設計師手冊
- **資料取用個案:**
- **產生 Customer 360 統一設定檔。**建立客戶身分與屬性的單一事實來源。
- **維護法規合規性資料集。**強制管理敏感資料、歷程和稽核能力。
- **集中行銷活動協調流程。**確保行銷、銷售和服務皆從一致且信任的資料集中作業。
- **設計作法:**
- 針對歷程記錄或低延遲容忍需求 (例如,歸檔報告或定期快照) 容納批次取用。
- 使用 CDC 或串流 API 來維持作業與個人化工作流程的最新狀態,以確保近乎即時更新。
- 透過套用增量負載來最佳化成本和效率來控制儲存和運算成長 (而不是重新載入整個資料集)。
- 透過運算本地性和增量處理來讓取用管道保持一致,以減少網路 I/O。
- 在 _Data 360_ 內套用轉換,以避免不必要地移動原始資料。
- **成本考量事項:**
- 針對高價值且具時間敏感性的工作流程 (例如個人化、作業顯示面板或 Agentforce 驅動的動作),**即時接收**的運算與管道成本最高。
- **串流吸收**具有中度的運算和儲存成本,適用於可能容忍輕微延遲的頻繁更新 (例如行銷活動協調流程或營運報告)。
- **批次入院**的計算成本和可預測的儲存空間較低,適用於歷程記錄資料集或低頻率更新。使用特定連接器可免費從 Salesforce 組織中取用批次資料。
- **重新整理模式** 可讓您選取「_增量重新整理」_模式,進而減少整體耗用和計算成本。在 Salesforce,我們建議盡可能使用「_增量重新整理」,_以最佳化所有採取類型的效率。
- **成本**也會受到來源到 _Data 360_ 的 I/O 量影響。最佳化批次大小、分割和區域對齊方式可降低傳輸成本並改善效能。
- **行業案例:**
- **財務:**_瞭解客戶 (KYC)_、_反洗錢 (AML)_ 和詐騙偵測 (若可稽核性與合規性為不可協商) 所需的資料集。
- **醫療照護:**針對病患身分解析和 HIPAA 規範的記錄,請針對這些記錄使用採取,以啟用安全且統一的檢視。
- **零售:**將 _銷售點 (POS)_、電子商務和忠誠度計畫資料合併至統一設定檔,以進行區隔和個人化。
- **電信:**使用標準、受管理的訂閱者資料支援流失預防和使用量分析。
#### 資料取用方法決策條件
| 功能 | 即時快取 | 串流捕取 | 批次提取 |
| :----------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **延遲與新鮮度** | 使用支援的「_變更資料摘取」(CDC)_,可透過「取用 API」來進行次秒延遲。提供連續串流管道。適用於低延遲作業使用個案。 | 可透過原生連接器每 1–3 分鐘進行一次微批次採取。支援增量更新。預期略有延遲。 | 預期資料延遲。允許排程大量載入。提供定期取用 (每小時、每日和每週)。不適用於具有時效性的作業。 |
| **主要使用個案** | 適用於低延遲作業和個人化使用個案的理想選擇。用於具有時效性的工作流程。支援以事件為導向的工作流程。用於即時詐騙警示和作業警示。 | 適用於中度緊急的程序。用於行銷活動協調流程、近乎即時的參與和作業報告。用於及時的行銷活動觸發。 | 針對大量資料集具有成本效益。可靠以進行歷程記錄分析。用於歷程記錄彙總或監管報告工作流程。適用於歷程記錄或低速資料集。 |
| **結構複雜性和 I/O** | 包含高成本與複雜結構。需要低延遲來源系統。I/O 密集。大量來源會造成飽和的銷售管道。 | 具有比即時更簡單的結構。I/O 為中。適用於可預測的重複更新模式。批次大小會影響記憶體與計算。 | 實作簡單。載入期間的 I/O 密集。網路輸送量可能會成為大型批次的瓶頸。 |
| **成本考量事項** | 包含最高的計算和管道成本。僅適用於高價值且具有時效性的工作流程。 | 包含仲裁運算和儲存成本。提供平衡成本與新鮮性的方法。適用於可承受輕微延遲的頻繁更新。 | 可降低計算成本和可預測的儲存空間。建議用於歷程記錄資料集或低頻率更新。透過 Salesforce 內部銷售管道可免費使用。 |
| **設計作法** | 使用增量 CDC 將資料混亂降到最低。篩選並使用選擇性欄位來減少超額。 | 使用微批次控制 I/O 峰值。請考慮使用視窗彙總來減少處理量。 | 用於歸檔報告或定期快照。確定計算地區設定與來源儲存空間所在的區域相同,以進行成本最佳化。 |
### 零複製資料聯合
#### 零複製使用個案
使用「_零複製」_來即時查詢外部系統,而無須資料重複,以啟用對大型或暫時資料集的靈活性、新鮮性和可調整存取權。適用於即時顯示面板、探索分析、AI/ML 模型訓練,以及直接透過 Salesforce _Data 360_ 進行即時客戶參與。
#### 零複製方法
使用「_零複製」時_,結構設計師必須在三個可用的資料聯合方法之間選擇,每個方法都會在更新性、效能和成本之間提供自己的權衡。
- **即時查詢**
- 直接針對外部系統 (例如,_Snowflake_、_Google BigQuery_、_Redshift_、_Databricks_ 等) 執行查詢,而不會重複資料。
- 最小化網路上的資料移動,並減少 Salesforce _Data 360_ 計算的 I/O,這在可向下推送述詞和彙總時為最佳。
- 適用於即時洞察和低延遲作業顯示面板。
- 取決於外部系統效能。
- **快取 (加速查詢)**
- 暫時將同盟資料的快取複本儲存在 Salesforce _Data 360 中_。
- 透過可設定的持續時間 (分鐘到天) 來減少經常存取資料集的重複查詢成本和延遲。
- 資料不會永久複製或完全管理,因此系統會透過來源的排程重新整理來管理重新整理。
- _增量重新整理_僅支援更新插入。刪除的記錄不會從快取中移除。
- 定期執行完整重新整理,以確保快取與來源保持同步。
- **備註:**_Snowflake_ 連接器支援「_卸載」_功能,其使用 Snowflake 初始的暫存分類來增強加速率。此為預設啟用狀態,但可透過編輯連線來停用。
- **檔案聯合**
- 提供物件存放區中大規模資料集的直接唯讀存取權 (例如,_S3_ 和具有 _Iceberg_ 的 _GCS_)。
- 適用於 AI/ML 工作負載、歷程記錄分析和 petabyte 規模報告,無須移動資料。
- 查詢效能取決於物件格式、分割和網路 I/O。如果未最佳化大型掃描,則可能會產生大量 I/O。
#### 結構設計師手冊
- **使用個案**
- 隨著客戶行為變更,**即時個人化和自訂工作流程**會提供動態優惠、建議和 Next Best 動作。
- **即時顯示面板和作業分析**會直接從外部倉庫支援業務關鍵顯示面板和 KPI。
- **具有大型外部資料集的 AI/ML 模型訓練**可利用來自資料湖和倉庫的 petabyte 規模資料,而無須透過檔案聯合移動。
- **行業案例**
- **零售/媒體:**透過聯合點閱串流或內容互動資料來啟用個人化建議和即時客戶參與。
- **財務:**透過查詢外部倉庫,而不重複敏感資料,以近乎即時執行詐騙偵測和風險評分。
- **技術/企業:**當資料集位於多個系統中時,支援跨雲端報告、IT 服務顯示面板和作業分析。
- **設計作法**
- **即時查詢**
- 當新鮮度十分重要時,用於高 QPS、低延遲的查詢。
- 將述詞和彙總推送至外部系統,以減少網路上的資料混亂。
- 避免進行不必要掃描大量資料的查詢。
- 請考慮改為裁切分割和篩選。
- **檔案聯合**
- 在物件存放區中存取 petabyte 級資料集,而無須取用。
- 將物件儲存空間與 Salesforce 計算保持在相同的雲端區域中,以將延遲和匯出成本降到最低。
- 使用分割的資料欄格式 (Parquet/ORC) 和推送式篩選條件來減少 I/O 和網路傳輸。
- 利用查詢和述詞推送功能來篩選和彙總來源的資料,進而減少資料移動。
- 除非完全必要,否則請避免跨區域資料存取,因為這會增加 I/O、延遲和成本。
- **快取 (加速查詢)**
- 快取經常存取的資料集以平衡成本與效能。
- 設定重新整理間隔以平衡更新與查詢成本。
- **合規性:**透過利用 _列層級安全性 (RLS)_ 並直接在聯邦系統內遮蔽原則,強制執行來源的管治。
- 以下是統一 RLS 和跨平台遮蔽的一些最佳作法:
- **使用集中化企業識別碼。**將 Salesforce _Data 360_ 中的使用者與實體對應至與外部系統中身分對應的唯一集中企業識別碼。
- **符合安全性原則。**確保聯合系統中的 RLS 和遮蔽原則會根據對應的身分套用。這可在查詢外部資料時保留合規性。
- **標準化身分結構描述。**在所有資料來源之間維護一致的身分屬性 (電子郵件、使用者識別碼、客戶識別碼等),以避免不相符和存取權違規。
- **成本考量事項**
- **即時查詢:**在每查詢付款模型中,會產生外部湖家計算的成本,這可能會造成高 QPS 的峰值。這適用於值大於成本變異性的關鍵性使用個案。
- **加速查詢 (快取):**此方法透過減少對來源系統的點擊來降低查詢成本 (相較於 _即時查詢),_不過,這會增加填入和重新整理快取的批次資料取用成本。這適用於頻繁存取的資料集。
- **檔案聯合:**這是「物件商店」中資料的最便宜儲存選項,但查詢成本取決於檔案大小、分割和裁切。這適用於 Petabyte 級的歷程記錄或大量資料。
#### 零複製方法決策條件
| 決策點 | 即時查詢 | 快取 (加速查詢) | 檔案聯合 |
| :----------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **資料來源位置** | 外部資料湖首頁 (例如,_Snowflake_、_Google BigQuery_、_Redshift_ 和 _Databricks_) | 外部資料湖首頁 (例如,_Snowflake_、_Google BigQuery_、_Redshift_ 和 _Databricks_) | 物件存放區或雲端資料湖 (例如,_S3_、_ADLS_ 和 _GCS_),通常使用如 _Iceberg_ 等開放式表格式。 |
| **用途/使用個案** | 適用於互動式分析與即時顯示面板。適用於即時個人化和動態工作流程。 | 適用於查詢頻繁,但可接受略過時的結果時。適用於 BI 顯示面板與區段。 | 適用於大規模批次處理和 AI/ML 模型訓練。適用於歷程記錄分析和 petabyte 級報告。 |
| **新鮮度/延遲性** | 提供最新的方式 直接即時執行查詢。透過有效的述詞推送功能表,針對低延遲查詢最佳化來源系統時,支援次要決策。 | 當略過時的結果可接受時使用。更新程度取決於快取間隔,可設定為 15 分鐘到 7 天。 | 適用於批次繁重、輸送量密集型工作。不適用於即時顯示面板。 |
| **存取模式** | 適用於不常見或臨時的查詢,其中清新性十分重要且查詢量較少。成本在高 QPS 時大幅高,因此在查詢頻率高時評估快取 (加速查詢) 很重要。 | 適用於高頻率讀取情況。改善頻繁存取模式的效能。 | 提供 r *ead-only* 存取權。適用於不需要採取的 petabyte 級資料集。 |
| **效能驅動因素** | 高度依賴外部來源系統效能。適用於可將述詞和彙總向下推送至來源時。 | 與重複的即時查詢相比,減少延遲。效能取決於快取管理與間隔。 | 效能取決於物件格式、分割和外部系統輸送量。使用分割的資料欄格式 (Parquet/ORC)。 |
| **成本影響** | 這是每個查詢的付款模式,因此系統會在外部湖家計算上收取成本。對於不常見的查詢而言,這符合成本效益,但費用可能會因高 QPS 量而高峰。 | 成本低於重複的即時查詢。這會減少重複查詢外部來源的需求,但會增加快取儲存空間和重新整理額外負擔。 | 這是最便宜的儲存空間選項。針對相同區域的相同雲端 AWS 設定 (例如,在 US-East-1 的 _S3_ 與同時在 US-East-1 的 _Data Cloud_ 租戶),系統不會為存取的資料列耗用信用額。跨區域或跨雲端組態 (例如,_Azure_、_GCS_ 或不同的 _AWS_ 區域) 會為存取的資料列產生信用額度耗用。查詢成本也取決於檔案大小、分割和述詞下拉式最佳化。 |
| **重要考量事項** | 避免未經篩選的查詢不必要地掃描大量資料。 | 此方法需要快取管理。不適用於次要決策。 | 查詢效能主要依賴透過分割和述詞推送功能表進行最佳化。 |
### 混合式方法
混合式結構可讓結構設計師將重要資料集固定在 _Data 360 中_,以進行集中管理,同時運用聯合查詢以獲得最新狀態、減少重複,並可擴充存取大型外部資料集。此方法會平衡 I/O、計算地區設定、成本和合規性需求。
#### 混合式使用個案
使用混合式方法來結合資料取用和零複製,以提供即時且可採取動作的洞察,以達到平衡的管治、新鮮性和營運效率。針對需要可追蹤性、RLS 和遮蔽的高價值、受監管的資料集,並針對最新性和效能為關鍵的暫時或大量資料集使用同盟。
#### 結構設計師手冊
- **使用個案**
- **Omni-Channel 參與:**將歷程記錄客戶資料與即時行為混合在一起,以提供一致且感知內容的體驗。
- **AI/ML 銷售管道:**針對精密設計的標準資料集訓練模型,同時使用來自外部來源的原始或即時訊號來增強模型。
- **混合合規性和靈活性需求:**針對敏感資料套用嚴格的監管,並針對營運靈活性套用聯合。
- **行業案例**
- **零售:**針對身分解析和設定檔統一使用 _摘要_,針對即時優惠和個人化使用 _同盟_。
- **醫療照護:**透過使用 IoT 裝置串流和感應器資料的即時內容使用_同盟,以_透過 _摘要_來維護金級病患記錄。
- **金融服務:**使用 _聯邦_ 來進行外部詐騙偵測和風險監視查詢,將受監管的監管資料匯入合規性管理湖。
- **設計作法**
- ** 含採取的節點管理:**將高價值或受監管的資料匯入標準模型,以確保 Trust 與合規性。
- **使用聯合提升新鮮度:**允許外部湖家提供即時或大規模的資料存取,而不會重複。
- **平衡成本與績效:**設定工作量以判斷何時使用 _摘要_與_聯邦_,以將不必要的儲存和查詢成本降到最低。
- **套用階層管理:**在利用聯邦系統安全性控制 (例如,RLS 和遮蔽) 時,強制執行已收取資料的集中管理。
- **備註:**設計混合式銷售管道時,務必確保歷程記錄資料集及將彙總或篩選條件推送至聯合來源的漸進式採取,以最佳化 I/O 和運算用量。
- **成本考量事項**
- 將合規性或重要資料與必要時的 _同盟_ 結合,以加權總成本與效能。__
- 當混合_取用_和_聯邦_時,請考量 I/O 和運算散佈。若要降低針對來源系統重複查詢的計算成本,請針對高讀取率且經常存取的聯合資料集使用快取 (加速查詢)。
- 使用此規則來引導採取與聯合決策:當資料頻繁存取但變更不頻繁時,_加速查詢_通常更具成本效益。不過,當資料經常變更時 (相對於存取頻率),更適當的是「_即時查詢」_或「_取用_」。以下是一些成本範例:
- **加速成交:**從 1 百萬筆記錄建立並每天更新為 ~10,000 次的顯示面板,每天會檢視 20 次。_加速_成本等於大約 ~600 credits/month,相較於 _Live Queries_ 的 ~4,200 credits/month。
- **即時查詢成交:**使用每 30 分鐘變更一次資料,每天發佈 20 次的區段。_即時查詢_的成本約為 ~4,200 credits/month,相較於此重新整理頻率的_加速_成本約為 ~28,800 credits/month。
## 使用個案決策指南
讓我們進一步瞭解一些常見的原型,說明如何套用此邏輯。
- **「單一事實來源」架構類型:集中與控管**
- **案例:**您需要為整個全球企業建立符合、統一的 _Customer 360_ 設定檔。資料來自十幾個不同的系統,必須遵循嚴格的 _GDPR_ 和 _CCPA_ 法規,並且會作為所有行銷和服務互動的事實來源。
- **建議模式:****Data Capture.**此處的優先順序為監管、 Trust 和控制。在「_Data 360_」中將資料提取是建立可完全稽核且與來源系統隔離的標準設定檔的唯一方法。
- **「即時洞察」架構類型:不移動分析**
- **案例:**您的資料科學小組需要對 _Snowflake_ 中大量且不斷更新的交易表執行探索查詢。同時,您的管理小組想要由相同資料提供的即時 _BI_ 顯示面板。每天移動 petabyte 的資料速度緩慢且高成本。
- **建議模式:****零複製聯邦.**此處的優先順序是速度、靈活性和大規模成本效益。_「零複製」_ 可讓您利用現有資料倉庫的強大功能進行即時查詢,而不會造成資料重複的負擔和延遲。
- **「混合智慧」架構類型:管理核心、聯合邊緣**
- **案例:**您想要使用來自資料湖的即時行為訊號 (例如,點擊網站) 來增強受管理且已採取的客戶設定檔。您需要核心設定檔的穩定性,但需要即時資料的立即性才能提供即時個人化功能。
- **建議模式:****混合式方法。**使用「_Data Capture_」為您的客戶資料建立穩定的受管理核心。使用「_零複製」_ 聯合浮動的即時「邊緣」資料,然後在查詢時間將其聯結在一起,以取得完整且即時的檢視。
## 前進路徑
企業資料策略不再專注於選擇單一整合模式,而是關於在可互通資料生態系統內架構受控制的彈性。正確的方法會將每個來源系統對應至最適合其更新性、管治、成本和存取需求的模式:
- 將關鍵任務且受監管的資料集匯入 Salesforce _Data Cloud_,以達成合規性、身分解析和作業工作流程。
- 透過「_零複製」_聯合資料,以進行即時、探索性和 AI 驅動的分析,而不需要重複儲存空間。
- 當查詢頻率高且資料變更頻率低時,套用 _快取 (加速查詢)_ 可減少來源系統負載和信用額度耗用
_Hyperforce_ 上的 Salesforce _Data 360_ 提供多區域彈性與延展性。其含有 _Iceberg_ 表格的開放式湖頭,可與如 _Snowflake_、_Databricks_ 和 _S3 Iceberg 等平台進行計算分隔和互通,這_ 是真正可互通的多雲資料生態系統的支柱。
隨著資料生態系統的演變,我們必須持續平衡新鮮度、成本、效能和合規性,以維持結構靈活性。這就是為什麼透過使用聯合存取權統一已採取的受管理資料來進一步驗證您的平台十分重要。這可在雲端、區域和業務網域之間啟用即時情報、AI 啟用和企業規模個人化。
請記住,一體適用的解決方案不適合大多數企業。最佳策略會將正確的模式對應至正確的業務驅動因素。
## 關於作者
**Yugandhar Bora** 是 Salesforce 的軟體工程結構設計師,專門在「資料和情報應用程式」平台內進行資料結構。他負責領導專注於資料管理和統一資料模型的_企業結構審查委員會 (EARB)_ 計畫,同時為自動平台佈建解決方案做出貢獻。
**Jan Fernando** 是 Salesforce _首席結構設計師辦公室 (OCA)_ 的首席結構設計師,他於 2012 年加入 Salesforce。他從入門生態系統中獲得豐富的經驗。在加入 OCA 之前,他曾在 _平台_ 組織工作十多年,在該組織領導了數項關鍵技術轉型。
# Data 360 佈建
Salesforce Data 360 是以 [Hyperforce](https://www.salesforce.com/platform/public-cloud-infrastructure/) 為基礎建立的資料平台,可將 Salesforce 和外部資料整合為每個客戶或帳戶的清晰、完整且值得信賴的全方位檢視。
由於合併和收購、區域營運、功能性分隔或歷史原因,企業經常經營多個 Salesforce 組織。結構設計師可針對 Data 360 進行數項決策,這些都會影響管理、合規性、成本、延遲,以及組織調整 AI 和跨組織平台功能的能力。
## 指南概觀
本指南提供使用 Data 360 進行佈建決策的架構。這些決策包括:
- 選取單一首頁組織與多組織組態
- 佈建多個獨立 Data 360 例項
- 使用 Data Cloud One 在單一例項下統一組織
- 在使用 Data 360 組織之間資料共用的獨立 Data 360 例項之間協同合作
Data 360 會在收到 Data 360 授權的任何生產組織上自動佈建。Data Cloud One 是 Salesforce 的多組織連線結構,允許單一首頁組織主控 Data 360 例項,而其他 Salesforce 組織連線為伴侶組織。選擇哪個組織擁有 Data 360 授權,進而成為 Data 360 首頁組織,是具有長期後果的關鍵結構性決定。
您佈建 Salesforce Data 360 的方式是基礎結構決策。它決定企業如何統一客戶資料、強制執行管治,並啟用關鍵平台功能,尤其是整個組織中的 AI、Agentforce 和分析。將組織叢集固定至單一 Data 360 可提供統一的資料模型、集中管理,並啟用企業範圍 AI 整備。伴隨組織可以存取共用中繼資料與功能,就如同資料在本機一樣。相反地,當法規、規範或自治需求阻止集中化時,多個獨立 Data 360 例項是適當的。Data 360 組織之間的資料共用可在這些例項之間啟用選用的零複製協同合作。
此決策會影響控制資料管理的人員、資料所在位置、平台功能的啟用方式,以及未來整合和 AI 計畫的順利調整。即使對於目前沒有 Data 360 的組織而言,透過開發策略來在未來新增 Data 360 存取權來為其架構進行未來的測試也十分重要。Sales、Service、Marketing、Commerce、Industry 和 Agentforce 的 Salesforce 功能逐漸以 Data 360 為基礎。想要使用這些平台功能的組織必須佈建自己的 Data 360 或連線至共用的 Data 360 作為伴侶組織。
此指南可協助結構設計師設計佈建策略,以平衡簡單性、企業範圍的一致性、合規性和延展性,確保組織可以自信地利用 Data 360 for Customer 360、AI 和跨平台創新。使用此指南判斷哪些組織需要 Data 360,以及是否使用 Data Cloud One 或 Data 360 組織之間的資料共用。此策略為以 Data 360 為中心的未來建立堅實的基礎。
## 範疇中的產品
![]() |
Salesforce Data 360 是 Salesforce 的即時超大規模資料平台,可將來自任何來源 (CRM、網頁、行動或外部資料湖) 的資料協調並統一至可運作的單一客戶設定檔。作為 Customer 360 平台的重要元件,其可強化銷售、服務和行銷的 AI、分析和個人化體驗。 |
| 考量事項 | 重要原因 | 範例案例 |
|---|---|---|
| 資料落地與合規性 | 決定儲存與處理資料的位置。法規規則可能需要特定的區域或多個例項。 | 全球銀行在位於法蘭克福的 Salesforce 組織上佈建 Data 360 租戶,以遵循 GDPR。他們為其美國分部的維珍尼亞組織佈建另一個租戶。 |
| 監管與安全性 | 識別 Data 360 的管理員和擁有者,包括原則管理和委派策略。 | 具有強大中央 IT 的跨國公司建立由傑出中心管理的專屬總部組織。 |
| 自治與集中 | 不同的主管可能想要資料的個別擁有權。自主性優先於多個 Data 360 組織。集中化偏好 Data Cloud One。 | 具有獨立子公司的控股公司可讓每個 BU 執行自己的 Data 360。 |
| 延遲與效能 | 影響查詢速度與體驗,特別是跨區域連線至 Data 360 租戶的伴隨組織。 | 倫敦的銷售小組查詢來自美國 Data 360 租戶的資料可能會看到較高的延遲。 |
| 整合複雜性 | 更多 Data 360 租戶 = 更多管道、API 和中介軟體。合併可簡化整合。 | 經銷商透過合併至 Data Cloud One 組態,避免建立 10 個 ETL 管道。 |
| 零複製資料來源區域 | 某些連接器的跨區域存取需求可能會限制 Data 360 組織的區域或位置。 | 一家公司在 AWS eu-west-1 區域中有 Snowflake 例項。他們可以使用「零複製」將資料聯結至其區域中的 Data 360,但無法使用「零複製」聯結至美國區域中的 Data 360。 |
| 私人連線跨區域相容性 | 「私人連線」支援有時取決於資料來源是否位於與 Data 360 租戶相同的區域。 | 一家公司在 aws-east-1 區域中有 Snowflake 例項,他們想要透過零複製將其連線至 Data 360。只有在 Data 360 首頁組織位於相同區域時,他們才能建立「私人連線」網路連線。 |
| 成本與授權 | 每個 Data 360 租戶都會增加成本。合併至較少的例項可最佳化支出。 | 醫療照護提供者透過採用 Data Cloud One 而非多個獨立 Data 360 例項來減少授權成本。 |
| 未來延展性 | 今天佈建的選擇為成長奠定基礎。 | SaaS 公司從單一 Data 360 例項開始,但計畫在購買 Salesforce 組織的子公司時擴展至 Data Cloud One。 |
| 企業範圍 AI 整備 | AI 功能和 Agentforce 在每個組織中都需要連線的 Data 360 租戶。佈建決策會影響 AI 模型在整個企業中訓練和啟用的方式。 | 一家金融服務公司在 Data Cloud One 中統一資料,讓其 Einstein AI 模型能夠存取企業範圍的客戶資料。 |
**選項 A:在現有組織中佈建 Data 360**
**最適用於:**具有單一 Salesforce 組織的客戶,或已擁有大多數業務流程執行所在主要集中組織的多組織客戶。
- **優點:**
- 最簡單的路徑:Data 360 會佈建您 CRM 資料所在的位置。
- 立即存取本機「銷售」、「服務」和「行銷」資料。
- 不需要額外的整合。
- 管理的授權與環境愈少。
- 加速提早採用、試用版和生產使用個案。
- **選項:**
- 可以繼承現有組織的監管或技術債務。
- 如果沒有單一「主要組織」,則選取一個「主要組織」會建立擁有權討論。
- 與組織位置繫結的績效;可能與企業範圍的落地需求不相符。
- 如果多個業務單位使用不同的組織,如果未與 Data Cloud One 配對,則本機佈建可能會導致分割。
**範例:**
具有一個 Salesforce 組織的 SaaS 公司會在該組織中佈建 Data 360,以統一客戶訂閱與支援資料。
**選項 B:在新的專用組織中佈建 Data 360**
**最適用於:**具有多個 Salesforce 組織且無法符合單一主要組織的客戶,或具有強大「傑出中心」(CoE) 模式的企業。
- **優點:**
- 管理的清除圖表,沒有繼承的組織複雜性。
- 集中控制多個行業。
- 根據合規性需求彈性選擇區域。
- 作為中立的「共用服務」組織,不與一個業務單位繫結。
- 針對未來 Data Cloud One 結構進行設定 (具有多個伴侶組織的主要組織)。
- **選項:**
- 客戶必須授權新的 Salesforce 組織來佈建 Data 360。
- 透過 Data Cloud One 伴隨連線將組織連線至 Data 360 所需的其他整合。
- 可新增管理負擔 (使用者管理、安全性、身分)。
- 與現有生產組織中的佈建相比,時間轉換值的速度較慢。
**範例:**
一個跨國金融服務公司建立一個專屬的首頁組織來佈建 Data 360。所有業務單位組織 (零售、財富、商業銀行業務) 都會透過 Data Cloud One 連線為伴侶組織。
**決策條件**
| 考量事項 | 現有組織作為首頁組織 (偏好預設值) | 將新組織作為首頁組織 (替代) |
|---|---|---|
| 簡化 | 建立於現有使用者和資料結構以加速設定。 Data 360 預設會與主要組織整合。 |
需要授權與設定新的 Salesforce 組織,以及管理新的額外管理負擔 |
| 時間轉價值 | 立即使用本機 CRM 資料 | 需要慢速的延展和整合。 |
| 監管 | 繼承現有組織的基本管理模式—現有使用者和權限集 (如果組織已為中心,則可以接受)。 | 清除監管狀況。適用於 COE 導向的模型。 |
| 合規性 | 與現有組織區域繫結的住所 | 選取與現有組織無關區域的彈性 |
| 績效 | 本機 CRM 查詢的最佳效能 | 取決於伴侶組織的連線能力,無論是與其他組織的相同區域或跨區域 |
| 未來延展性 | 與 Data Cloud One 配對時運作良好。如果選擇錯誤的組織,稍後更難進行排班 | 使用 Data Cloud One 輕鬆調整規模。為了保持中立性而設計。 |
| 成本 | 增量成本降低 | 來自其他環境的高額負擔 |
**Data Cloud One 的運作方式**
- **Data Capture and Unification (主要組織)**
- 系統只會從主要組織進行所有資料取用組態 (Salesforce CRM、外部來源、串流、批次)。
- 繫結至主要組織的 Data 360 租戶可執行身分解析、調和、建模和統一至信任的客戶設定檔。
- Data 360 管理、管治原則、標記和遮蔽會從主要組織集中套用。
- **資料空間結構**
- 從主要組織中,資料會組織成資料空間,這些空間會作為資料、中繼資料和程序的邏輯容器。
- 企業可以為品牌、區域或業務線路建立資料空間。
- 資料空間共用:從主要組織中,特定資料空間會選擇性與伴隨組織共用。這可確保只有相關資料 (以及相關聯的中繼資料) 會流至正確的組織。
- **中繼資料共用**
伴隨組織會從主要組織接收中繼資料定義,包括資料模型物件 (DMO)、統一設定檔結構描述、已計算洞察、區段[等](https://help.salesforce.com/s/articleView?id=data.c360_a_companion_org_data_cloud_features.htm&type=5)。這些項目原生顯示在伴隨組織內,就如同是本機資產,但會連結至主要組織。
- **首頁組織與伴侶組織的功能**
首頁與伴隨組織的功能存取權不同。伴隨組織無法採取或統一資料,且依賴主要組織來採取、建模和統一。伴侶組織可以存取 Data 360 資料,以增強 Data 360 技術提供的平台功能,並可在共用的信任資料上建立本機洞察、區段和流程。在未來願景中,他們也可以存取啟用功能。
| 能力 | 住家組織 | 伴侶組織 |
|---|---|---|
| 「連線」 「設定連接器」、「建立資料串流」、「取用或聯合資料」權限 | ✅ | ❌ |
| 協調和統一建立並執行資料轉換和身分解析 | ✅ | ❌ |
| 使用資料空間與權限管理安全資料 | ✅ | ✅ |
| 建立區段、洞察和建立 Einstein Studio 模型 | ✅ | ✅ |
| 「啟用隨處」啟用、資料動作 | ✅ | ✅ |
| 平台功能:提示詞產生器、流程、報告、增強 [等] (https://help.salesforce.com/s/articleView?id=data.c360_a_companion_org_data_cloud_features.htm&type=5) | ✅ | ✅ |
| Data 360 技術支援的功能:Prospecting Center、Sales 和 Service Cloud 功能、Agentforce 等 | ✅ | ✅ |
| 考量事項 | 多個獨立 Data 360 組織 | 一個共用 Data 360 (Data Cloud One) |
|---|---|---|
| 自治 | 每個組織或業務單位的高自主性 | 集中管理,每個組織的自主權降低 |
| 合規性 | 當需要嚴格分隔時很實用 (例如,地區法律) | 當落地允許集中化時運作最佳 |
| 成本 | 授權與管理成本愈高 | 更具成本效益;多個組織的一個授權 |
| 監管 | 分割;各組織的原則不同 | 組織之間的集中化一致原則 |
| 資料孤立 | 每個組織都有自己的檢視 無 Enterprise 360 | 統一資料集,無重複 |
| AI/Analytics | 限制為每個組織的資料 | 更準確的企業範圍模型 |
| 複雜性 | 更多可管理的例項、更多整合 | 更簡單的結構,更少移動組件 |
| 績效 | 最適用於組織內使用個案 | 具有伴隨組織存取權的延遲可能增加 |
| 因素 | 優點 | 缺點 |
|---|---|---|
| 資料落地 | 支援區域分隔,同時啟用協同合作。 | 不會移除管理多個 Data 360 組織的需求。 |
| 資料重複 | 複製零;無重複物件。 | 需要刻意選取要包含在每個資料共用的物件。 |
| 監管 | 共用是明確且有意的 (物件級)。 | 沒有標記或原則流程;目標組織必須重新套用監管。 |
| 複雜性 | 啟用不集中化的選用協同合作。 | 需要管理多個 Data 360 組織和資料共用。 |
| **AI/Analytics** | 可進行區域 AI/分析;洞察可在組織之間共用。 | 除非有意共用資料,否則不會有企業範圍 AI。 |
| **平台功能** | 每個組織的 Data 360 技術支援的功能會獨立執行。 | 沒有自動共用。若未仔細設計,則會有重複的風險。 |
| 成本 | 可能會減少 ETL 銷售管道的需求。 | 仍會產生多個 Data 360 組織的成本。耗用資料查詢和資料共用的信用額。 |
| 考量事項 | Data Cloud One (偏好用於多組織) | Data 360 組織之間的資料共用 |
|---|---|---|
| 單一事實來源 | 是,所有組織皆共用資料模型。 | 否—每個 Data 360 都有自己的資料模型。 |
| 合規性 | 僅在落地允許集中化時才適用。 | 當住所法禁止集中化時為必要。 |
| 監管 | 集中化,一致。 | 聯合;有意共用物件層級。 |
| 複雜性 | 移動組件愈少,愈簡單。 | 更複雜—需要組態資料共用和多個「資料」組織。 |
| AI/Analytics | 企業範圍 AI 模型。 | 區域 AI。選擇性共用洞察。 |
| 平台功能 | 「共用 Data 360」表示所有功能在首頁 + 伴侶之間一致運作。 | 功能會在每個 Data 360 中獨立執行;共用必須明確。 |
| Salesforce Lightning Platform 是一個全方位、 AI 驅動的平台,可將員工、獨立 AI 工作人員、公司資料和應用程式整合到一個可靠的系統中,以提升生產力與客戶體驗。透過連接 Customer 360 應用程式、Data Cloud 和 Slack 來進行端對端自動化,以便建立「真正的企業」。 |
| 方法 | 描述 | 所需技能 | 授權與限制 |
|---|---|---|---|
| 可排序的 Apex | 用於涉及長時間執行資料庫作業或外部 Web 服務呼叫的流程。Apex 提供工作識別碼、支援非原始類型和工作鏈等功能。 | 專業程式碼 | 授權數量會增加限制。 |
| 批次 Apex | 透過分割記錄集並將其處理成可管理區塊,建立複雜且長時間執行流程,其中涉及數百萬筆記錄。 | 專業程式碼 | 授權數量會增加限制。 |
| 已排程 Apex | 在由 Cron 運算式定義的排程時間執行 Apex。雖然透過 Cron 運算式排程 Apex 的動作是非同步的程序,但基本程式碼會在工作開始時同步執行。 | 專業程式碼 | 授權數量會增加限制。 |
| Apex 繼續呼叫 | 從在同步交易內容中執行的 Apex 方法執行呼叫。 | 專業程式碼 | 否 |
| 非同步路徑 (記錄觸發流程) | 執行您要在自己的時間執行的作業。請避免在您更新非觸發流程記錄相關記錄值時發生的混合 DML 錯誤。 | 低程式碼 | 授權的數量與類型可增加限制。 |
| 排程路徑 (認可流程後) | 在觸發事件後動態排程的時間執行,例如建立、更新或刪除記錄時。 | 低程式碼 | 授權的數量與類型可增加限制。 |
| 已排程流程 | 在特定時間和重複的頻率 (每日、每週或一次) 在背景中執行流程,以對記錄批次執行動作。 | 低程式碼 | 授權的數量與類型可增加限制。 |
| 平台事件觸發 | 寬鬆將 Salesforce 與外部系統配對,並在 Salesforce Platform 內非同步元件之間通訊。 | 低程式碼 + 專業程式碼 | 大量平台事件使用個案需要附加元件授權 |
| 變更資料取取 | 認可資料庫交易後,以非同步方式來捕捉和處理變更事件。 | 專業程式碼 | 需要附加元件授權,才能將比例大於基準配置。 |
| 大量 API | 以非同步方式插入、更新、更新插入、查詢或刪除許多記錄,之後再處理結果。 | 專業程式碼 | 有一些限制。 |
| Lightning 動作 | 允許 Lightning 頁面與伺服器互動,而無須強制使用者完全重新整理頁面。 | 低程式碼 | 否 |
| 所需技能 | 此指南中概述的部分工具需要程式碼,而其他工具則可以宣告的方式進行設定。當您考量您的選項時,請思考小組成員擁有的技能集。請記住,即使開發人員可用於您的初始實作 (例如透過實作合作夥伴),您可能需要在未來修改您的解決方案。如果您的維護小組缺少開發人員,低程式碼選項可能更適合。 |
| 強制執行的平台限制類型 | 決定套用至執行的 限制類型。當您設計解決方案時,請仔細思考交易量和頻率會如何計入每日所選方法的管理員限制。計算每天會發生的執行次數。請確保計算的值在與您所選工具相關聯的限制之內。 |
| 延遲 | 決定處理結果在平台中可用的速度。針對某些方法,變更將近乎立即,而對於其他方法,變更可能為分鐘或小時。 |
| 使用個案 | 描述 | 第一個選項方法 | 理由 |
|---|---|---|---|
| 高效能批次處理 | 必須有效率地處理數千筆或數百萬筆記錄的自動化 | 批次 Apex | 批次 Apex 提供豐富的 API,可用於與平台的介面以及原始速度。 |
| 資料清除工作 | 定期執行或隨選執行,可清除資料的工作。範例包括消除重複、地址驗證或資料合併。 | 批次 Apex | 批次 Apex 提供豐富的 API,可用於與平台的介面以及原始速度。 |
| 夜間累計工作 | 在工作日結束時計算累計資料的工作。 | 批次 Apex | 批次 Apex 提供豐富的 API,可用於與平台的介面以及原始速度。 |
| 記錄觸發邏輯 | 執行邏輯以回應記錄更新。 | 變化 | 請參閱我們的伴侶決策指南,記錄觸發事件自動化。其中包含非同步使用個案的決策樹狀結構,包括可排列的 Apex、批次 Apex、已排程的流程、非同步路徑流程和變更資料擷取。 |
| 透過物件圖表串聯更新 | 允許使用者的儲存動作快速完成,將串聯更新延後至其他物件以非同步執行。 | 可排序的 Apex | Apex 具有強大的鏈結功能,可讓邏輯將更新鏈結分為一系列非同步交易。 |
| 記錄特定排程處理 | 在未來,記錄特定的動態日期 (例如結束日期前 3 天) 自動化。 | 含已排程路徑的 流程 | 已排程路徑為流程提供獨特的優勢,因為當記錄的資料變更時,平台會自動處理這些路徑的排程、取消和重新排程。 |
| 並列叫用多個慢速外部服務 | 在同步執行期間,會並列叫用多個外部服務,以最佳化整體執行時間。 | Apex 繼續呼叫 | 允許多個慢速執行的呼叫並行執行,可將完成工作整體時間最小化。 |
| 從外部系統移轉記錄的資料 | 從外部系統將大量記錄移至 Salesforce Platform。一次性或定期排程的流程。 | 大量 API | 這是資料移轉最有效率且易於限制的方法。 |
| 在外部系統上執行其他邏輯 | 通知平台上事件的外部系統,然後允許該系統非同步處理事件的觸發式模式。 | 平台事件或 變更資料 | 發布子模型最適用於此處,並允許外部系統在準備好時處理事件。如需此模式的詳細資料,請參閱「事件驅動結構」。 |
| Salesforce Platform 是一個全方位、 AI 驅動的平台,可將員工、自主 AI 工作人員、公司資料和應用程式整合到一個可靠的系統中,以增強生產力與客戶體驗。透過連接 Customer 360 應用程式、Data Cloud 和 Slack 來進行端對端自動化,以便建立「真正的企業」。 | |
![]() |
MuleSoft 是 Salesforce 領先的整合平台,可讓組織在內部部署和雲端環境之間連線應用程式、資料和裝置。MuleSoft 是一個平台,可讓 IT 平台在系統之間解除鎖定資料、開發可調整整合和自動化架構,並快速建立不同的連線體驗。 |
| 決策點 | 指引 |
|---|---|
| 近乎即時的通知 | 以事件為導向的結構模式 (例如發佈/訂閱、對應和串流) 可能在多個應用程式需要近乎即時地通知狀態變更或記錄更新的情況下運作良好。 |
| 平行處理 | 如發佈/訂閱等模式可能在大量資料或高度複雜訊息需要在多個系統之間分配處理負載的情況下運作良好。 |
| 大量讀取 | 「傳送的訊息」和「排隊」模式通常用於組織遇到高峰的情況,且產生的訊息量可能超過訂閱者立即處理訊息的能力。 |
| 大量寫入 | 在許多情況下,「串流」與「排入排入」模式可以順利運作,其中組織在產生的訊息數量上漲。 |
| 將相同資料傳送至不同的系統 | 雖然發佈/訂閱通常是需要將相同資料傳送至多個系統的組織相當常見的解決方案,但此處涵蓋的大多數模式都可處理此問題。請務必仔細檢閱這些項目以找出最合適的項目。 |
| 頻繁導入新系統或裝置 | 發佈/訂閱、串流和排入類型模式通常適用於整體橫向傾向為流動的情境,且會定期新增新的系統和裝置。在此情節下,新系統或裝置只需要成為 Event Bus 的訂閱者,或關聯到某個指南,才能開始接收訊息,而不需要自訂點對點整合。 |
| IoT 裝置 | 由於 IoT 裝置通常會提供頻繁的更新,且在某些情況下也會產生一系列訊息,因此當將其整合至 IT 環境時,「串流」與「排隊」模式通常會運作良好。 |
| 離線行動裝置與系統 | 行動裝置需要在具有低品質或不存在網際網路存取權的區域中工作,或在傳送訊息時可能為離線的系統,這些裝置將受益於「排隊」模式,其能夠在重新上線後連線至其排隊,並再取回任何相關訊息。 |
| 決策點 | 要詢問的指引/問題 |
|---|---|
| 業務需求 | [使用事件驅動結構時](#使用事件驅動結構的時機) 區段中所述的任何功能是否有真正的業務需求? |
| 技術需求 | 您設計的整合是否符合不同的模式,例如資料虛擬化、批次或要求/回覆?換句話說,您是否正在嘗試將正方形指標置於圓洞中? |
| 需要人類等待回應的流程 | 任何涉及人類從目標系統等待回應的整合不適合以事件為導向的結構,因為其專為非同步執行而設計,且無法保證回應時間。在實作技術解決方案之前,請先考量此類流程是否對您的組織最佳。如需詳細資訊,請參閱 [Well-Architected - Operational Excellence](/docs/architect/zh-tw/well-architected/guide/operational-excellence.html)。 |
| 經常變更來源資料 | 如果來源系統中的資料變更不常見,因此有足夠的定期更新,您可能可以使用 [批次模式] (https://developer.salesforce.com/docs/atlas.en-us.integration_patterns_and_practices.meta/integration_patterns_and_practices/integ_pat_batch_data_sync.htm) 來簡化結構,而非以事件為導向的模式。 |
| 實作需求 | 大多數解決方案中涉及的系統是否支援以事件為導向的結構?將以事件為導向的結構與不支援它們的系統 (例如升級、自訂或中介軟體) 搭配使用時,需要什麼?符合這些需求需要付出多少精力? |
| 訊息結構穩定性 | 您的訊息結構需要變更的頻率為何?哪些系統會受到此類變更的影響,以及補救流程會是什麼? |
| 組織管理 | 您是否具備了監管結構,以確保所有利害關係人都瞭解並能夠考量訊息結構、觸發和其他結構和流程相關決策的變更? |
| 必要技能集 | 您的工作人員是否擁有事件驅動結構的經驗,他們會知道如何支援它們嗎? |
| 模式 | 近乎即時 | 唯一訊息複製 | 保固交付 | 減少訊息大小 | 轉換資料 |
|---|---|---|---|---|---|
| 發佈 / 訂閱 | ✓ | ✓ | ✓ | ||
| 透鏡圖 | ✓ | ✓ | ✓ | ||
| 傳送的訊息 | ✓ | ✓ | ✓ | ✓ | |
| 串流 | ✓ | ✓ | ✓ | ||
| 排隊 | ✓ | ✓ | ✓ |
| 工具 | 描述 | 必要技能 | |
|---|---|---|---|
| MuleSoft | Anypoint 平台 | 使用 API 圖層來啟用資料整合的平台。 | 專業程式碼 |
| Salesforce Pub/Sub 連接器 | 適用於 Pub/Sub API 的連接器,此連接器提供發佈和訂閱平台事件、即時事件監視事件和變更資料擷取事件的單一介面。 | 專業程式碼 | |
| MuleSoft Anypoint JMS 連接器 | 針對實作 Java 訊息服務 (JMS) 規格的任何訊息服務,此連接器可將訊息傳送與接收至任何訊息服務的列和主題。 | 專業程式碼 | |
| MuleSoft Anypoint Apache Kafka 連接器 | 可在 Apache Kafka 與企業應用程式和服務之間移動資料的連接器。 | 專業程式碼 | |
| MuleSoft Anypoint Solace 連接器 | 使用 JCSMP Java SDK 的原生 API 整合,適用於 Solace PubSub+ 事件經紀人的連接器 | 專業程式碼 | |
| MuleSoft Anypoint MQ 連接器 | 可讓客戶在其應用程式之間執行進階非同步傳訊的多租戶雲端傳訊服務。 | 專業程式碼 | |
| MuleSoft Anypoint MQTT 連接器 | 符合通訊協定 v3.x 的 MQTT (Message Queuing Telemetry Transport) MuleSoft 擴充功能。 | 專業程式碼 | |
| MuleSoft Anypoint AMQP 連接器 | 此連接器可讓您的應用程式使用 AMQP 0.9.1 相容的經紀人來發佈和取用訊息。 | 專業程式碼 | |
| MuleSoft Anypoint 事件驅動 (非同步) API | 產業無效的語言,透過將以事件為導向的 API 分隔成事件、管道和運輸層級來支援發佈。 | 專業程式碼 | |
| MuleSoft Anypoint MQ | 可讓客戶在應用程式之間執行進階非同步傳訊的多租戶雲端傳訊服務。 | 專業程式碼 | |
| MuleSoft Anypoint 資料串流 | 可在 MuleSoft Anypoint 中發佈和訂閱串流資料的架構。 | 專業程式碼 | |
| Salesforce Platform | Heroku 上的 Apache Kafka | 提供 Apache Kafka 作為服務的 Heroku 附加元件,並將完整的平台整合至 Heroku 平台。 | 專業程式碼 |
| 變更資料取取 | 變更事件記錄會將變更發佈至 Salesforce 記錄。變更包括建立新記錄、更新現有記錄、刪除記錄,以及取消刪除記錄。 | 低程式碼對 Pro-code | |
| 輸出訊息 | 更新 Salesforce 中的欄位值時,傳送 XML 訊息至外部端點的動作。 | 低程式碼 | |
| 平台事件 | 包含自訂事件資料的安全且可調整訊息。 | 低程式碼對 Pro-code | |
| Pub/Sub API | 可啟用平台事件訂閱、變更 資料擷取 事件和/或即時事件監視事件的 API。 | 專業程式碼 | |
| 事件轉送 | 啟用要從 Salesforce 傳送至 Amazon EventBridge 的平台事件和變更資料擷取事件。請注意,事件轉送只會連線至 AWS Eventbridge。 | 低程式碼 | |
#### 與發佈/訂閱模式相關的工具
| 事件流程與行為 | 裝載考量事項 | ||||||
|---|---|---|---|---|---|---|---|
| 可用的工具 | 必要技能 | 發佈透過 | 訂閱透過 | 重複執行期間 | 裝載結構 | 裝載限制 | |
| MuleSoft | Anypoint 平台 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 |
| Salesforce Pub/Sub 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint JMS 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint Apache Kafka 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint Solace 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint MQ 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint MQTT 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint AMQP 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint 事件驅動 (非同步) API | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint MQ | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| Salesforce Platform | Heroku 上的 Apache Kafka | 專業程式碼 | API,Heroku Postgres 中的記錄變更 | 無 | 1-6 週 | 已定義使用者 | 已定義使用者 |
| 變更資料取取 | 低程式碼對 Pro-code | 記錄變更 | Apex、API、Lightning Web 元件 (LWC) | 3 天 | 預先定義 | 1 MB | |
| 輸出訊息* | 低程式碼 | 流程與工作流程規則 | 無 | 24 小時 | 已定義使用者 | 每則訊息 100 個通知 | |
| 平台事件 | 低程式碼對 Pro-code | API、Apex、流程 | Apex、API、Flow、LWC | 3 天 | 已定義使用者 | 1 MB | |
| Pub/Sub API | 專業程式碼 | Pub/Sub API 或 API、Apex、流程 | Pub/Sub API | 3 天 | 已定義使用者 | 1 MB | |
| 事件轉送** | 低程式碼 | 平台事件、變更資料擷取 | API | 3 天 | 已定義使用者 | 1 MB | |
| *Salesforce 會在目前的功能中繼續支援輸出訊息,但不打算進一步投資此技術。**事件轉送僅連線至 AWS Eventbridge | |||||||
#### 與顯示模式相關的工具
| 事件流程與行為 | 裝載考量事項 | ||||||
|---|---|---|---|---|---|---|---|
| 可用的工具 | 必要技能 | 發佈透過 | 訂閱透過 | 重複執行期間 | 裝載結構 | 裝載限制 | |
| MuleSoft | MuleSoft Anypoint JMS 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 |
| Salesforce Pub/Sub 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint Apache Kafka 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint Solace 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint MQ 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint MQTT 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint AMQP 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint MQ | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| Salesforce Platform | Heroku 上的 Apache Kafka | 專業程式碼 | API,Heroku Postgres 中的記錄變更 | 無 | 1-6 週 | 已定義使用者 | 已定義使用者 |
| 變更資料取取 | 低程式碼對 Pro-code | 記錄變更 | Apex、API、Lightning Web 元件 (LWC) | 3 天 | 預先定義 | 1 MB | |
| 平台事件 | 低程式碼對 Pro-code | API、Apex、流程 | Apex、API、Flow、LWC | 3 天 | 已定義使用者 | 1 MB | |
| Pub/Sub API | 專業程式碼 | Pub/Sub API 或 Apex、API、流程 | Pub/Sub API | 3 天 | 已定義使用者 | 1 MB | |
| 事件轉送* | 低程式碼 | 平台事件、變更資料擷取 | API | 3 天 | 已定義使用者 | 1 MB | |
| *事件轉送只會將資料傳送至 AWS Eventbridge | |||||||
#### 與傳送訊息模式相關的工具
| 事件流程與行為 | 裝載考量事項 | ||||||
|---|---|---|---|---|---|---|---|
| 可用的工具 | 必要技能 | 發佈透過 | 訂閱透過 | 重複執行期間 | 裝載結構 | 裝載限制 | |
| MuleSoft | MuleSoft Anypoint Apache Kafka 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 |
| Salesforce Pub/Sub 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| Salesforce Platform | Heroku 上的 Apache Kafka | 專業程式碼 | API,Heroku Postgres 中的記錄變更 | 無 | 1-6 週 | 已定義使用者 | 已定義使用者 |
| 變更資料取取 | 低程式碼對 Pro-code | 記錄變更 | Apex、API、Lightning Web 元件 (LWC) | 3 天 | 預先定義 | 1 MB | |
| 平台事件 | 低程式碼對 Pro-code | API、Apex、流程 | Apex、API、Flow、LWC | 3 天 | 已定義使用者 | 1 MB | |
| Pub/Sub API | 專業程式碼 | Pub/Sub API 或 API,Apex 流程 | Pub/Sub API | 3 天 | 已定義使用者 | 1 MB | |
| 事件轉送* | 低程式碼 | 平台事件、變更資料擷取 | API | 3 天 | 已定義使用者 | 1 MB | |
| *事件轉送只會將資料傳送至 AWS Eventbridge | |||||||
#### 與串流模式相關的工具
| 事件流程與行為 | 裝載考量事項 | ||||||
|---|---|---|---|---|---|---|---|
| 可用的工具 | 必要技能 | 發佈透過 | 訂閱透過 | 重複執行期間 | 裝載結構 | 裝載限制 | |
| MuleSoft | MuleSoft Anypoint 資料串流 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 |
| Salesforce Pub/Sub 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint Apache Kafka 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| Salesforce Platform | Heroku 上的 Apache Kafka | 專業程式碼 | API,Heroku Postgres 中的記錄變更 | 無 | 1-6 週 | 已定義使用者 | 已定義使用者 |
| Pub/Sub API | 專業程式碼 | Pub/Sub API 或 API,Apex 流程 | Pub/Sub API | 3 天 | 已定義使用者 | 1 MB | |
#### 與排入模式相關的工具
| 事件流程與行為 | 裝載考量事項 | ||||||
|---|---|---|---|---|---|---|---|
| 可用的工具 | 必要技能 | 發佈透過 | 訂閱透過 | 重複執行期間 | 裝載結構 | 裝載限制 | |
| MuleSoft | MuleSoft Anypoint MQ | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 |
| Salesforce Pub/Sub 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint Apache Kafka 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint MQ 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint MQTT 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| MuleSoft Anypoint AMQP 連接器 | 專業程式碼 | API | API | 已設定 | 已定義使用者 | 無 | |
| Salesforce Platform | Heroku 上的 Apache Kafka | 專業程式碼 | API,Heroku Postgres 中的記錄變更 | 無 | 1-6 週 | 已定義使用者 | 已定義使用者 |
| 變更資料取取 | 低程式碼對 Pro-code | 記錄變更 | Apex、API、Lightning Web 元件 (LWC) | 3 天 | 預先定義 | 1 MB | |
| 平台事件 | 低程式碼對 Pro-code | API、Apex、流程 | Apex、API、Flow、LWC | 3 天 | 已定義使用者 | 1 MB | |
| Pub/Sub API | 專業程式碼 | Pub/Sub API 或 API、Apex、流程 | Pub/Sub API | 3 天 | 已定義使用者 | 1 MB | |
| 事件轉送* | 低程式碼 | 平台事件、變更資料擷取 | API | 3 天 | 已定義使用者 | 1 MB | |
| *事件轉送只會將資料傳送至 AWS Eventbridge | |||||||
| 動態表單 | 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 元件共存的自訂使用者介面,進而透過產業標準和詳細的元件生態系統來增加開發。 |
| 組態 | 其他授權需求 | |
|---|---|---|
| 動態表單 | 低程式碼 | 無 |
| 畫面流程 | 低程式碼 | 無 |
| Omnistudio | 低程式碼 + 專業代碼 | 產業封裝 |
| 畫面流程加上 Lightning Web 元件 | 低程式碼 + 專業代碼 | 無 |
| Lightning Web 元件 | 專業代碼 | 無 |
| 決策點 | 指引 |
|---|---|
| 執行階段使用個案種類 | |
| 表單範圍與瀏覽 | 判斷表單上的所有欄位是否會邏輯地符合單一畫面,或使用者是否需要能夠在多個畫面之間瀏覽。 |
| 位置 | 識別您要內嵌表單的位置,可從 Salesforce 應用程式內到行動應用程式及外部網站。 |
| 控制項 | 識別當使用者與您的表單互動時,必須在背景執行的動作或邏輯,包括資料轉換和與外部系統的整合。 |
| 驗證 | 判斷您是否有任何超出 Salesforce 所提供標準系統級驗證的其他輸入驗證需求。 |
| 互動設計 | 識別應在表單中觸發動態回應的互動類型或條件。 |
| 樣式 | 決定所需樣式與 CSS 需求所需的精密層級。 |
| 版面配置 | 識別表單的版面配置需求 (例如,所需的欄數、索引標籤和折疊式) 以及顯示重複資料區塊的能力。 |
| 翻譯 | 決定您的表單是否必須針對其他語言當地語系化。 |
| 非功能考量事項 | |
| 安全性 | 決定您的表單在執行特定作業前是否應檢查使用者的存取權、您是否要控制可存取表單的人員,以及您是否要控制可內嵌表單的位置。 |
| 物件影響 | 決定您的表單要針對單一物件還是針對多個物件執行。 |
| UI 測試自動化 | 判斷您的 DevOps 程序是否需要您的表單才能接受自動單元測試或自動端對端測試。 |
| 度量 | 識別您要如何追蹤表單的使用狀況,包括頁面檢視、花費在表單上的時間量、完成率和成功率。 |
| 封裝與部署 | 決定您要如何在建立表單後散佈或部署表單。 |
| 單一畫面 | 多螢幕表單 | 進度指標 | 在步驟/畫面之間跳轉瀏覽 | |
|---|---|---|---|---|
| 動態表單 | 可用 | 不提供 | 可用 | 不提供 |
| 畫面流程 | 可用 | 可用 | 可用 | 不提供 |
| Omnistudio | 可用 | 可用 | 可用 | 可用 |
| 畫面流程 + LWC | 可用 | 可用 | 可用 | 可用 |
| LWC | 可用 | 不是理想 | 不是理想 | 不是理想 |
| 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 流程,其在較舊的自訂離線引擎上執行,且不支援許多最新的「流程」功能。 | |||||||||||||
| 記錄與動作 | 階層資料管理 | 在一個交易內作業 | 跨多個交易作業 | 整合 | 模組設計與重複使用 | 封裝 | |
|---|---|---|---|---|---|---|---|
| 動態表單 | 不提供 | 不提供 | 不提供 | 不提供 | 不提供 | 不提供 | 可用 |
| 畫面流程 | 可用 | 不提供 | 可用 | 可用 | 可用 | 可用 | 可用 |
| Omnistudio | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 | 不提供 |
| 畫面流程 + LWC | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 |
| LWC | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 |
| 遵循系統層級驗證 | 此表單特有的自訂欄位級驗證 | 自訂欄位級驗證 | |
|---|---|---|---|
| 動態表單 | 可用 | 不提供 | 不提供 |
| 畫面流程 | 可用 | 不提供 | 不提供 |
| Omnistudio | 可用 | 可用 | 可用 |
| 畫面流程 + LWC | 可用 | 可用 | 可用 |
| LWC | 可用 | 可用 | 可用 |
| 執行螢幕外資料作業 | 條件值與計算 | 條件化可視性 | 條件式必要性 | 條件式格式化 | 條件式唯讀狀態 | 條件式停用狀態 | |
|---|---|---|---|---|---|---|---|
| 動態表單 | 不提供 | 不提供 | 可用 | 不提供 | 可用 | 不提供 | 不提供 |
| 畫面流程 | 可用 | 適用* | 可用 | 可用 | 不提供 | 可用 | 可用 |
| Omnistudio | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 |
| 畫面流程 + LWC | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 |
| LWC | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 |
| *限於使用資源選擇器而非靜態核取方塊的元件 | |||||||
| 標準事件處理 (模糊、焦點) | 自訂事件處理 | |
|---|---|---|
| 動態表單 | 不提供 | 不提供 |
| 畫面流程 | 不提供 | 不提供 |
| Omnistudio | 不提供 | 適用* |
| 畫面流程 + LWC | 可用 | 可用 |
| LWC | 可用 | 可用 |
| *Omnistudio 標準執行階段不支援 Pub/Sub,但支援 Windows postMessage | ||
| 直接設定樣式 | 組織和體驗產生器主題 | 像素完美樣式 | |
|---|---|---|---|
| 動態表單 | 不提供 | 可用 | 不提供 |
| 畫面流程 | 不提供 | 可用 | 適用** |
| Omnistudio | 適用* | 不提供 | 可用 |
| 畫面流程 + LWC | 不提供 | 可用 | 可用 |
| LWC | 不提供 | 可用 | 可用 |
| *僅限 FlexCard ** 可以為畫面元件設定某些樣式屬性,但無法為 CSS 覆寫。 | |||
| 2 欄 | 4 欄 | 4 欄以上 | 重複資料區塊 | 索引標籤容器 | 可折疊式容器 | |
|---|---|---|---|---|---|---|
| 動態表單 | 可用 | 不提供 | 不提供 | 不提供 | 可用 | 可用 |
| 畫面流程 | 可用 | 可用 | 不提供 | 可用 | 不提供 | 可用 |
| Omnistudio | 可用 | 可用 | 可用 | 可用 | 適用* | 可用 |
| 畫面流程 + LWC | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 |
| LWC | 可用 | 可用 | 可用 | 可用 | 可用 | 可用 |
| *若將資料內嵌在 Omniscript 中的 FlexCard 中,則可使用索引標籤 | ||||||
| 在產生器中輸入的標籤 | 程式碼中的標籤 | |
|---|---|---|
| 動態表單 | 適用* | 不提供 |
| 畫面流程 | 可用 | 可用 |
| Omnistudio | 可用 | 可用 |
| 畫面流程 + LWC | 可用 | 可用 |
| LWC | 不適用 | 可用 |
| *僅欄位區段標題 | ||
| 提升使用者權限 | 控制擁有存取權的人員 | 限制允許的位置 | |
|---|---|---|---|
| 動態表單 | 不提供 | 可用 | 不提供 |
| 畫面流程 | 可用 | 可用 | 不提供 |
| Omnistudio | 不提供 | 可用 | 不提供** |
| 畫面流程 + LWC | 可用 | 可用 | 不提供 |
| LWC | 適用* | 可用 | 可用 |
| *需要 Apex **雖然 Omniscript 無法具有指定的目標位置集,但 FlexCard 可以。 | |||
| 單元測試 | 端對端自動化 | |
|---|---|---|
| 動態表單 | 不提供 | 適用* |
| 畫面流程 | 不提供 | 適用* |
| Omnistudio | 適用* | 適用* |
| 畫面流程 + LWC | 適用* | 適用* |
| LWC | 可用 | 可用 |
| *需要程式碼 | ||
| 頁面檢視 | 表單所花費的時間 | 追蹤表單完成 | 追蹤成功率 | |
|---|---|---|---|---|
| 動態表單 | 適用** | 不提供 | 不提供 | 不提供 |
| 畫面流程 | 可用 | 適用* | 可用 | 可用 |
| Omnistudio | 可用 | 適用* | 可用 | 可用 |
| 畫面流程 + LWC | 可用 | 適用* | 可用 | 可用 |
| LWC | 適用** | 適用* | 可用 | 可用 |
| *可在啟用封裝型 Omnistudio 執行階段時使用** 可透過追蹤父系 Lightning 頁面用量 | ||||
| 第一代受管理封裝 (1GP) | 第二代受管理封裝 (2GP) | 解除鎖定的封裝 | 變更集 | DevOps Center | |
|---|---|---|---|---|---|
| 動態表單 | 可用 | 可用 | 可用 | 可用 | 可用 |
| 畫面流程 | 可用 | 可用 | 可用 | 可用 | 可用 |
| Omnistudio | 不提供 | 不提供 | 不提供 | 不提供* | 不提供* |
| 畫面流程 + LWC | 可用 | 可用 | 可用 | 可用 | 可用 |
| LWC | 可用 | 可用 | 可用 | 可用 | 可用 |
| *使用 IDX 工作台將 Omnistudio 解決方案部署至其他組織。 | |||||
| 動態表單 | - 使用動態表單細分記錄詳細資料 - 取得 Lightning 應用程式產生器的說明 |
| 畫面流程 | - 使用畫面流程與使用者互動 - 透過流程自動化工作 |
| Omnistudio | - Omnistudio - Omniscript - IDX 工作台桌面應用程式 - Newport 設計系統 - 使用 Newport Design System 自訂 Omniscript 和 FlexCard |
| LWC | - Lightning Web 元件 - Lightning Aura 元件開發人員指南 - 適用於 Aura 開發人員的 Lightning Web 元件 |
| Agentforce | 傳統自動化 | 整合 |
|---|---|---|
| 考量區域 | 常見問題 |
|---|---|
| 現有工具與橫向 | 是否有現有的 ESB 或 ETL 解決方案?相關資料是否具有法規或規範需求?您嘗試整合的系統位於何處 (雲端或內部部署中)? |
| 資料流程 (時間點、預期的使用者體驗、方向性) | 資料是否需要同步、非同步移動,還是可批次/排程?資料複寫是否必要?哪個系統應該是事實來源?什麼是資料來源?什麼是目標目的地?使用者互動是否必要?使用者是否需要查看整合的結果?例外狀況處理 (重試、通知、失敗) 的需求為何?系統應如何緊密連接? |
| 實作 | 非 Salesforce 系統的工作層級為何?哪些小組負責提供整合?他們偏好使用哪些工具? |
| 永續性 | 哪些小組預期會維護整合?他們目前擁有哪些技能?他們未來需要哪些技能?一段時間內的總擁有成本為何?使用低度或專業程式碼工具測試、除錯、疑難排解的能力有多重要? |
| 資料量 | 整合中涉及多少資料?您是否要使用 大型資料量 (LDV)?大量變更的發生頻率為何?singleton 更新的影響為何?它們會發生多少次? |
| 限制 | 資料是否需要進行複雜轉換?資料是否必須從多個來源系統合併?每位使用者整合的發生頻率為何?使用者總數為何?您是否已預先計畫大量資料載入 (範例:新例項的初始資料載入)? |
| 從 Salesforce 至外部系統 | 從外部系統到 Salesforce | 執行 | 需要其他授權 | |
|---|---|---|---|---|
| Apex 動作 | 可用 | 可用 | 伺服器端 | 否 |
| 變更資料取取 | 可用 | 不提供 | 伺服器端 | 否* |
| 自訂 Apex (REST 和 SOAP Web 服務) | 可用 | 可用 | 伺服器端 | 否 |
| 外部服務 | 可用 | 不提供 | 伺服器端 | 否 |
| Heroku Connect | 可用 | 可用 | 伺服器端 | 是 |
| Data 360 | 可用 | 可用 | 伺服器端 | 是 |
| MuleSoft Anypoint | 可用 | 可用 | 伺服器端 | 是 |
| 原生 Salesforce API | 不提供 | 可用 | 伺服器端 | 否 |
| Omniscript | 可用 | 可用 | 用戶端*** | 是 |
| OmniStudio 整合程序 | 可用 | 可用 | 伺服器端 | 是 |
| 輸出傳訊 | 不是理想 | 不提供 | 伺服器端 | 否 |
| 平台事件 | 可用 | 可用 | 伺服器端 | 否** |
| Salesforce Connect/外部物件 | 可用 | 可用 | 伺服器端 | 是 |
| 指引 | 授權 | 時間 | 體積與規模 | 交付與維護 | 隱私權與安全性 | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| 使用時機 | 額外授權 | 同步 (要求/回覆) 或非同步 (觸發/忘記) | 多物件支援 | LDV/大量 | 測試與部署** | 除錯 | 內建錯誤處理/重試行為 | 可與靜態加密的資料搭配使用 | 驗證通訊協定 | |
| 變更資料取取 | 當您需要將在 Salesforce 中進行的記錄層級變更發佈至外部系統,且不需要自訂裝載時。 | 必要 | 非同步 | 否 | 否 | 是 | 使用 Pro-Code 工具 | 是 | 是 | OAuth |
| 外部服務 | 當您使用流程協調流程時,會使用 OpenAPI 規格描述 Apex、Einstein 機器人或 OmniStudio 和外部系統 API。 | 不需要 | 同步化 | 是 | 否 | 是 | 使用 Pro-Code 工具 | 否 | 無 | 已命名認證 |
| Heroku Connect | 當您想要透過雙向同步擴充資料,以在 Heroku 上啟用行動應用程式和其他應用程式,且您想要將資料也複製到 Salesforce 時。 | 必要 | 非同步 | 是 | 是 | 否 | 使用 Pro Code 工具 | 是 | 是,透過 Shield Connect | OAuth |
| OmniStudio 整合程序 | 當您需要在沒有使用者互動的情況下轉換資料,並透過在伺服器處理而非瀏覽器改善效能時。 | 必要 | 兩者 | 是 | 是 | 是 | 宣告式支援 | 是 | 是 | 已命名認證 |
| Salesforce Connect/外部物件 | 當您想要資料顯示在 Salesforce UI 中,但想要資料儲存在外部系統中時。資料不會複製到 Salesforce。 | 必要 | 同步化 | 否 | 是* | 是 | 具有 Pro-Code 工具和陳述性追蹤器 | 否 | 無 | 已命名認證 |
| *超過 4.01 版的 Odata 轉接器受限於呼叫限制。如需詳細資料,請參閱 OData 呼叫率限制考量事項。** 測試與部署是指在較低環境中建立並透過 中繼資料 API、封裝或變更集部署至生產的能力。 | ||||||||||
| 指引 | 授權 | 時間 | 體積與規模 | 交付與維護 | 隱私權與安全性 | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| 使用時機 | 額外授權 | 同步 (要求/回覆) 或非同步 (觸發/忘記) | 多物件支援 | LDV/大量 | 測試與部署** | 除錯 | 內建錯誤處理/重試行為 | 可與靜態加密的資料搭配使用 | 驗證通訊協定 | |
| Apex 動作 | 當您想要透過 Salesforce 流程將呼叫自動化至其他系統時。開發人員可以撰寫流程可叫用的 Apex 類別,或者您可以從 AppExchange 下載預先建立的解決方案。 | 不需要 | 兩者 | 是 | 否 | 是 | 使用 Pro-Code 工具 | 否 | 是 | 多 |
| 事件轉送 | 當您需要從 Salesforce 將平台事件和變更資料擷取事件傳送至 Amazon EventBridge 時。事件轉送僅連線至 AWS Eventbridge | 否 | 非同步 | 是 | 否 | 是 | 是 | 是 | 是 | 具有 TLS 的 HTTP/1.1 |
| 輸出傳訊 | 當您需要透過 HTTP(S) 將 SOAP 訊息傳送至指定的端點,並在由工作流程規則觸發時保證收到。 | 不需要 | 非同步 | 否 | 否 | 是 | 宣告式支援 | 是 | 是 | 雙向 TLS |
| 平台事件 | 當您需要自定義的結構化裝載,以在 Salesforce 或外部系統中進行近乎即時的變更時。 | 不需要* | 非同步 | 是 | 否 | 是 | 使用 Pro-Code 工具 | 是 | 是 | OAuth |
| Salesforce Connect/外部物件 (含自訂 Apex 轉接器) | 當您想要資料顯示在 Salesforce UI 中,但想要資料儲存在無法使用如 Odata 或 GraphQL 等標準通訊協定的外部系統中時。 | 必要 | 兩者 | 是 | 是 | 是 | 使用 Pro-Code 工具 | 否 | 無 | 多 |
| Data 360 | 當您想要在一個資料存放區中協調不同來源的資料,或想要將資料複製到其他 Salesforce 組織或其他外部系統時。 | 必要 | 兩者 | 是 | 是 | 是 | 是 | 是 | 是 | 多 |
| 指引 | 授權 | 時間 | 體積與規模 | 交付與維護 | 隱私權與安全性 | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| 使用時機 | 額外授權 | 同步 (要求/回覆) 或非同步 (觸發/忘記) | 多物件支援 | LDV/大量 | 測試與部署** | 除錯 | 內建錯誤處理/重試行為 | 可與靜態加密的資料搭配使用 | 驗證通訊協定 | |
| 自訂 Apex | 當您需要的功能比低程式碼工具所提供的功能多。 | 不需要 | 兩者 | 是 | 是 | 是 | 使用 Pro-Code 工具 | 否 | 是* | 多 |
| 外部服務 | 使用 OpenAPI 規格說明從程式碼與外部系統 API 整合。 | 不需要 | 同步化 | 是 | 否 | 是 | 使用 Pro-Code 工具 | 否 | 無 | 多 |
| MuleSoft Anypoint | 當您需要單一企業級統一解決方案來建立、協調和管理整合時;當您需要取代舊版點對點結構時;或當您需要 API 管理支援時。 | 必要 | 兩者 | 是 | 是 | 是 | 使用 Pro-Code 工具 | 否 | 是* | 多 |
| 指引 | 授權 | 時間 | 體積與規模 | 交付與維護 | 隱私權與安全性 | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| 使用時機 | 其他授權 | 同步 (要求/回覆) 或非同步 (觸發/忘記) | 多物件支援 | LDV/Bulk | 測試與部署* | 除錯 | 內建錯誤處理/重複處理行為 | 可與靜態加密的資料搭配使用 | 驗證通訊協定 | |
| Heroku Connect | 當您想要透過雙向同步擴充資料,以在 Heroku 上啟用行動應用程式和其他應用程式,且您想要將資料也複製到 Salesforce 時。 | 必要 | 非同步 | 是 | 是 | 否 | 使用 Pro-Code 工具 | 是 | 是,透過 Shield Connect | OAuth |
| OmniStudio 整合程序 | 當您需要在沒有使用者互動的情況下,從第三方來源匯入和轉換資料時。 | 必要 | 兩者 | 是 | 是 | 是 | 宣告式支援 | 否 | 是 | 已命名認證 |
| Salesforce Connect/外部物件 | 當您想要資料顯示在 Salesforce UI 中,但想要資料儲存在可使用標準通訊協定 (例如 Odata 或 GraphQL) 的外部系統中時。 | 必要 | 同步化 | 是 | 是 | 是 | 使用 Pro-Code 工具 | 否 | 無 | 多 |
| 指引 | 授權 | 時間 | 體積與規模 | 交付與維護 | 隱私權與安全性 | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| 使用時機 | 其他授權 | 同步 (要求/回覆) 或非同步 (觸發/忘記) | 多物件支援 | LDV/Bulk | 測試與部署** | 除錯 | 內建錯誤處理/重複處理行為 | 可與靜態加密的資料搭配使用 | 驗證通訊協定 | |
| 平台事件 | 當您需要自定義的結構化裝載,以在 Salesforce 或外部系統中進行近乎即時的變更時。 | 不需要* | 非同步 | 是 | 否 | 是 | 使用 Pro-Code 工具 | 是 | 是 | OAuth |
| Salesforce Connect/外部物件 (含自訂 Apex 轉接器) | 當您需要資料顯示在 Salesforce UI 中,但想要資料儲存在無法使用 Odata 2.0/4.0 通訊協定的外部系統中時。 | 必要 | 兩者 | 是 | 是 | 是 | 使用 Pro-Code 工具 | 否 | 無 | 多 |
| Data 360 | 當您想要在一個資料存放區中協調不同來源的資料,或想要將資料從其他 Salesforce 組織或複製到其他外部系統時。Data 360 也支援某些平台的虛擬化。 | 必要 | 兩者 | 是 | 是 | 是 | 否 | 是 | 是 | 多 |
| 指引 | 授權 | 時間 | 體積與規模 | 交付與維護 | 隱私權與安全性 | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| 使用時機 | 其他授權 | 同步 (要求/回覆) 或非同步 (觸發/忘記) | 多物件支援 | LDV/Bulk | 測試與部署**** | 除錯 | 內建錯誤處理/重複處理行為 | 可與靜態加密的資料搭配使用 | 驗證通訊協定 | |
| 自訂 Apex REST 與 SOAP Web 服務 | 當您需要比原生 API 端點提供更多的功能時,例如跨物件處理或其他複雜邏輯。 | 不需要 | 兩者 | 是 | 是 | 是 | 使用 Pro-Code 工具 | 否 | 是*** | 多 |
| MuleSoft Anypoint | 當您需要單一企業級統一解決方案來建立、協調和管理整合時;當您需要取代舊版點對點結構時;或當您需要 API 管理支援時。 | 必要 | 兩者 | 是 | 是 | 是 | 使用 Pro-Code 工具 | 否 | 是*** | 多 |
| 原生 Salesforce API | 當您需要更多控制或擁有專業程式碼技能集,以透過 REST API、SOAP API、大量 API 或 GraphQL API 或 gRPC 建立整合時。 | 不需要* | 兩者 | 是***** | 是 | 是 | 使用 Pro-Code 工具 | 是** | 是*** | 多 |
| 指引 | 成本 | 時間 | 體積與規模 | 交付與維護 | 隱私權與安全性 | 要實作的工具 | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 使用時機 | 額外授權 | 同步 (要求/回覆) 或非同步 (觸發/忘記) | 多物件支援 | LDV/大量 | 測試與部署* | 除錯 | 內建錯誤處理/重試行為 | 可與靜態加密的資料搭配使用 | 驗證通訊協定 | 低程式碼 → 專業代碼 | |
| Heroku Connect | 當您想要透過跨 Salesforce 組織的雙向同步擴充資料,同時啟用從 Heroku 上執行的行動應用程式和其他應用程式存取資料時 | 必要 | 非同步 | 是 | 是 | 否 | 使用 Pro-Code 工具 | 是 | 是,透過 Shield Connect | OAuth | 低程式碼 |
| MuleSoft Anypoint | 當您需要單一企業級統一解決方案來建立、協調和管理整合時;當您需要取代舊版點對點結構時;或當您需要 API 管理支援時 | 必要 | 兩者 | 是 | 是 | 是 | 使用 Pro-Code 工具 | 否 | 是** | 多 | 專業代碼 |
| 原生 Salesforce API | 當 Salesforce 或 Heroku Connect 不是選項或您需要更複雜的處理時 | 不需要 | 兩者 | 否 | 是 | 是 | 使用 Pro-Code 工具 | 否 | 是** | 多 | 專業代碼 |
| 變更資料取取 | 當您需要將在 Salesforce 中進行的記錄層級變更發佈至外部系統,且不需要自訂裝載時。 | 必要 | 非同步 | 否 | 否 | 是 | 使用 Pro-Code 工具 | 是 | 是 | OAuth | |
| Salesforce Connect 與跨組織轉接器 | 當您想要一個組織中的使用者檢視或編輯不同組織的記錄時,無須複製資料 | 必要 | 非同步 | 是 | 是 | 是 | 使用 Pro-Code 工具 | 無 | 無 | 多 | 低程式碼 |
| Data 360 | 當您想讓一個組織中的使用者檢視或編輯不同組織中具有 Data 360 中所複製資料的記錄時。 | 必要 | 兩者 | 是 | 是 | 是 | 使用 Pro-Code 工具 | 是 | 是 | 多 | 混合式 |
| 流程 | Salesforce 流程是一種功能強大的點選自動化工具,可讓使用者使用 Flow Builder 以視覺化方式建立複雜的業務流程、畫面和邏輯,而無須撰寫程式碼。它會自動化資料更新、傳送電子郵件和引導使用者等工作,透過如「畫面流程」(使用者互動) 和「觸發的流程」(記錄/排程事件) 等類型提供彈性。 |
| Apex | Salesforce Apex 是 Salesforce 平台的專屬物件導向程式語言,類似於 Java,用於建立自訂業務邏輯、自動化流程,並將核心 CRM 功能延伸至陳述性工具之外。 |
隨著 Salesforce 應用程式的範圍和複雜度增加,請認可單一主要進入點—記錄觸發流程或 Apex 觸發。避免在單一 Salesforce 物件上跨多個機制進行自動化分割,因為這會導致維護能力不佳和管治分割。
### 密度選取矩陣
使用此矩陣可決定 Salesforce 物件的必要結構標準。
- **記錄觸發流程**是低自動化密度的偏好解決方案。其提供的功能與無障礙平衡,非常適合直接且彼此獨立的自動化。
- **混合模式 (含可叫用 Apex 的記錄觸發流程)** 是高複雜度的中密度自動化可維護強大選擇。此模式可讓小組在陳述性流程中維護排序的作法,同時將繁重運算作業委派至 Apex,以平衡無障礙與效能。
- **Apex 觸發程序**提供可支援高密度自動化的穩固結構基礎所需的建構組塊。Apex 的效能、細微控制,以及物件導向的抽象與多型,更適合管理這些案例的複雜性和規模。
| 密度層級 | 自動化數量 | 資料量 (批次大小) | 相依性流程 | 結構標準 |
|---|---|---|---|---|
| 低 | < 15 自動化 |
標準 使用者驅動的 UI 互動或小型 API 載入 (1–200 筆記錄) |
不定 獨立邏輯。相同物件或相關物件上的 0–1 下游 DML 作業。 |
記錄觸發流程 |
| 中型 | 15–30 自動化 |
中度 標準批次處理 (具有需要謹慎大量處理的邏輯) |
已配對 「父系/子系」會更新 2–4 個下游 DML 作業。遞迴風險 |
混合模式 流程 + 可叫用 Apex |
| 高 | > 30 自動化 |
高 大量載入 API 的資料量 (2,000 – 10,000+ 筆記錄) |
複雜與遞迴 深度相依性圖表 (5+ 下游 DML 作業)。三角遞迴迴圈的風險 |
Apex 觸發中繼資料架構 |
| 能力 | 記錄觸發流程 | Apex 觸發 |
|---|---|---|
| 傳送與維護速度 | 建議 Flow Builder 的視覺使用者介面可讓管理員和其他陳述性產生器比撰寫、測試和部署 Apex 程式碼更快建立和修改自動化。此介面可讓更廣泛的小組成員提供業務價值,並減少對專門開發人員資源的依賴。 |
需要專業知識 Apex 需要適當技能的軟體開發人員來實作、測試和維護程式碼。 |
| 模組性 | 可用 記錄觸發流程預設為模組化。小組會針對特定需求建立離散流程,並使用「流程觸發探索器」將其組合進行編程,而不是使用單一邏輯。此模組化功能可啟用隔離修改與簡單擴充,大幅降低長期擁有成本。 |
可用 Apex 依設計分為功能模組。每個 Apex 類別都可實作單一功能模組。 |
| 可視性和管治 | 建議 「流程」的視覺性質提供直覺式的業務邏輯表示。「流程觸發探索器」提供物件上所有流程的合併檢視,讓結構設計師和管理員無須閱讀程式碼即可輕鬆瞭解、管理和疑難排解。 |
需要專業知識 使用中繼資料架構組織觸發是有益的,但 Apex 需要嚴謹的開發小組,才能讓程式碼保持井然有序且可維護。 |
| 高效能大量資料處理 | 不建議 處理複雜邏輯或大量資料時,達到管理員限制的風險增加。 |
建議 Apex 程式碼執行方式更接近平台的核心服務,並為開發人員提供查詢最佳化、資料處理和演算法效率的進階控制權。這會造成更佳的效能與規模,特別是在涉及大量資料的複雜案例中。 |
| 強大的邏輯與資料結構 | 可用 流程轉換元素可協助處理一些複雜的處理工作。然而,Flow 缺少原生「對應」與「設定」資料結構,使複雜的資料處理變得繁琐且計算效率不佳。 |
建議 Apex 提供對「對應」、「集」和程式設計迴圈的完整存取權,以高效率、大量安全地操作資料。作為功能完整的程式語言,Apex 也提供複雜邏輯建構、資料結構和設計模式的存取權,可協助以可維持且有效的方式解決複雜的業務問題。Apex 包含進階功能的豐富標準文件庫 (例如 BusinessHours、Crypto),目前無法在陳述性工具中使用。 |
| 交易控制 | 不可用 流程不提供部分交易認可或回復的 `Database.savepoint`、`Database.rollback` 或部分成功 DML 作業存取權。 |
可用 Apex 提供交易完整性和複雜錯誤復原情況的完整細微控制。 |
| 電子郵件散佈 | 建議 從記錄觸發流程傳送預先設定的電子郵件警示很簡單且可調整。自訂電子郵件警示可在執行階段建立與散佈。自訂電子郵件受限於 每日電子郵件傳送限制。 |
可用 Apex 可以產生和傳送自訂電子郵件訊息。所有從 Apex 傳送的電子郵件皆受限於 每日電子郵件傳送限制。 |
| 套用平台保護 | 建議 流程包含內建的保護,例如自動批次和自動重試。這些防護措施會增加對值的速度,並防止其他需要複雜手動編碼的效能陷阱。 |
需要手動實作 如大量處理等保護措施必須明確編碼 (例如管理集合並避免迴圈內的 SOQL)。自動重試並非觸發的原生功能,且需要複雜的自訂邏輯實作。 |
| 非同步處理 | 可用 流程為需要在非同步路徑中進行個別交易的自動化提供簡單機制。這些自動化會受限於每日限制。 |
可用 Apex 可透過「變更資料擷取」和由分離的觸發訂閱者處理的可排列事件來啟用完整控制。 |
| 排程處理 | 建議 流程的已排程路徑提供獨特且強大的排程功能 (例如,「結束日期前 3 天觸發」)。如果記錄的資料變更,此功能包括自動取消和重新排程。這些自動化會受限於每日限制。 |
不可用 Apex 觸發無法原生排程具有自動取消的時間記錄特定事件。雖然已排程 Apex 存在,但這是一個基本不同的機制,會在特定時間執行,且不會在作為觸發一部分的個別記錄處理期間進行排程。 |
| 排序和作法 | 可用 「流程觸發探索器」可讓管理員定義相同物件上多個流程的相對執行指示。 |
可用 觸發架構提供對自動化確切順序的細微控制。 |
| 相同記錄欄位更新 | 可用 (儲存前) 「記錄觸發流程」是最有效的陳述性選項,用於在初始 DML 認可之前更新觸發記錄。 |
可用 (儲存前) Apex 提供最高的效能產品,而且額外成本最低。 |
| 跨物件 CRUD | 可用 (儲存後) 流程適用於簡單、低複雜、跨物件 DML 作業。 |
可用 (儲存後) Apex 為跨物件 DML 作業提供超級的還原、錯誤處理和效能控制權。 |
| 減少重複的昂貴運算 | 可用 流程在透過自動大量處理來去除冗餘的查詢和 DML 陳述式方面表現出色。不過,狀態無法在不同的流程觸發之間或在一個交易內同一個流程的多個叫用之間快取或共用。在極端效能情況下,此限制可能會變得重要。 |
建議 Apex 提供用於刪除重複昂貴作業的機制。開發人員可以利用使用靜態內容與變數的交易快取,以及使用「平台快取」的平台層級快取來儲存及重複使用資料。這些技術對於減少交易管理員限制 (例如 SOQL 查詢) 的耗用,並確保高效能與延展性十分重要。 |
| 自訂錯誤處理 | 可用 CustomError 元素可以封鎖儲存作業,並向使用者顯示訊息。 |
建議addError() 方法提供彈性的欄位級和條件式錯誤傳訊。 |
| 使用個案 | 描述 | 最適合 | 理由 |
|---|---|---|---|
| 高效能批次處理 | 必須有效率地處理數千筆記錄的任何自動化 | Apex | Apex 提供豐富的 API,可用於與平台的介面和原始速度。 |
| 複雜資料處理 | 需要進階資料操作的案例 | Apex | Apex 提供「流程」中原生無法使用的資料結構,例如「對應」與「集」,這些結構對於撰寫效能高且安全的程式碼而言至關重要。 |
| 交易控制 | 控制如儲存點、結轉和部分認可等機制 | Apex | Apex 提供如 Database.savepoint 和 Database.rollback 等機制的存取權,並能夠處理部分成功的 DML 作業。 |
| 精密的自訂驗證 | 記錄中多個欄位的資料驗證 | Apex | 雖然「流程」可以防止使用「CustomError」元素儲存,但並非所有流程類型皆可使用,包含子流程。Apex addError() 方法提供多個欄位特定錯誤訊息,可在觸發處理期間隨時新增至記錄。 |
| 簡單程序內的中度複雜邏輯 | 由標準功能庫簡化,中度複雜度的邏輯與資料操作,作為不複雜流程的一部分發生 | 流程 + Apex | 「記錄觸發流程」會作為協調流程層,而高複雜度的作業會壓縮在「可叫用 Apex」內。 |
| 簡單到中度複雜的邏輯 | 低至中度複雜度的資料操作,其中會觸發主要與相關資料物件的更新 | 流程 | 流程通常是執行選項,因為其以陳述性模型為基礎,可供管理員和開發人員存取。 |
| 通知與輸出訊息 | 傳送輸出電子郵件與訊息 | 流程 | 流程可讓在記錄變更時傳送電子郵件警示和輸出訊息輕鬆且高度調整。 |
| 排程處理 | 未來動態日期自動化 (例如結束日期前 3 天) | 流程 | 已排程路徑為流程提供獨特的優勢,因為當記錄的資料變更時,平台會自動處理這些路徑的排程、取消和重新排程。 |
### 已排程工作替代項目
如流程圖所示,當您面對大量的 DML 作業,但無法使用「變更 資料擷取」(可能是因為物件限制),最佳結構選擇通常是完全避免觸發叫用程序。
請考慮改用排程的流程。這可以是「排程的流程」或「排程的 Apex」。必要步驟包括:
1. 在同步觸發中執行簡單且低成本的更新。例如,將 `Status__c` 欄位設定為「待處理」,或插入低成本相關記錄 (例如 Chatter 貼文),以表示該記錄需要處理。
2. 建立排程工作,無論是排程流程還是排程 Apex,其會定期執行,例如每 15 分鐘或每小時執行一次。
3. 為所有處於待處理狀態的記錄排程工作查詢、在受控制的大量內容中執行複雜邏輯,然後將記錄更新為已處理。
此模式完全將大量處理與使用者的同步儲存分離,不受觸發批次的一個工作每個交易限制的約束,並為非即時需求提供高度可調整且可管理的解決方案。
如果已排程工作的延遲不適用於業務需求,且您仍然受限於使用 CDC 或觸發的可排列,則表示結構不相符。此時必須考量不同的機制。重新評估核心應用程式設計可能會導致某些結論,例如:
- 購買附加元件以移除 CDC 物件限制。
- 從根本上挑戰業務需求,以確定近乎即時處理是否為「必須」或已排程工作的延遲是否為平台穩定性的可接受權衡。
## 非功能考量事項
除了決策點之外,您還需要考量如複雜性和標準等非功能性考量事項。
### 複雜性
實作的複雜程度是解決方案的總擁有成本的一部分,以及其適應不斷變化的業務需求的能力。如果未遵循最佳作法,則複雜性可能會影響任何實作。在此文件的「_相關最佳作法_」區段中,有降低解決方案複雜程度的建議,包括以下模式:
- 混合模式:流程中複雜邏輯的可叫用 Apex
- 使用 Apex 觸發的中繼資料架構
- 多個流程與多個流程
### 流程與標準
文件與自動化本身一樣重要。它不僅確保可維護,而且對 AI 和以工作人員為基礎的工具至關重要。文件可協助您瞭解和管理業務流程。
**在流程中**
- 為所有元素和變數建立一致的命名慣例。
- 使用流程的「描述」欄位說明其整體目的、觸發條件和預期成果。
- 在每個個別元素上使用「描述」欄位 (例如,`Get Records`、`Action`、`Transform`)。此作法是傳達意圖的最佳方法。這對於可叫用動作和子流程而言特別重要,其中描述是說明動作執行之複雜邏輯的主要位置。
**In Apex**
- 清楚地為程式碼加上註解,以說明邏輯背後的_原因_,而不只是說明_什麼_。
- 如果使用中繼資料驅動的架構,請確保您的中繼資料記錄包含並填入人類可讀的「描述」欄位,以說明每個處理常式類別的執行方式和執行時間。
DevOps 與來源控制是成熟開發生命週期的一部分。一律使用來源控制工具,例如 Git for Salesforce 專案。Apex 類別與 Salesforce 流程都是定義您業務邏輯的中繼資料,且必須經過版本化與管理。
在記錄觸發自動化的管理內容中,現代 DevOps 管道提供重要的優點。
- **自動化品質檢查:**如 [Salesforce Code Analyzer](https://developer.salesforce.com/docs/platform/salesforce-code-analyzer/overview) 等工具可設定為在您的管道中自動執行。靜態分析可以在兩個自動化工具升級前偵測到有問題的模式,並標記在「流程」迴圈內效率不佳的 `Get Records` 元素或迴圈內的 Apex 中的 `SOQL` 查詢等問題,這是效能降低的常見原因。
- **迴歸防止:**隨著自動化密度的增加,變更一個流程或 Apex 類別可能會對相同物件的其他自動化產生非預期的後果。強大的 DevOps 測試策略會根據任何建議的變更執行自動化 Apex 測試,這是確保新流程版本不會中斷現有 Apex 邏輯 (反之亦然) 的最可靠方法。
- **協同合作與可視性:**來源控制是「唯一的事實來源」。它可讓管理員和開發人員並列處理相同物件的自動化。它也提供寶貴的稽核追蹤:當生產流程中斷時,您可以立即查看變更自動化_的人員_、變更自動化_時機_,以及認可訊息—變更自動化_的原因_。
針對具有混合管理員與開發人員的小組,[DevOps Center](https://help.salesforce.com/s/articleView?id=platform.devops_center_overview.htm&type=5) 提供統一介面,協助進行所有這些步驟的編程,讓小組中的每個人皆可存取可調整的來源控制開發流程。
此統一的文件與 DevOps 學科可確保貴組織的長期運作狀況與可維護性,這對您跟隨的每位結構設計師和管理員都有益。
## 相關最佳作法
計畫實作之前,最好使用上述決策指南。其目標是協助您為使用個案選擇最佳產品。選取產品後,瞭解實作的現有最佳作法十分重要。
### 利用混合模式:流程中複雜邏輯的可叫用 Apex
_每個物件一個工具_原則對於管理高密度自動化而言至關重要,但請勿將其解譯為純陳述式或純程式設計堆疊之間的二進位選擇。更有效且可維護的結構模式利用「混合式」模型:將「記錄觸發流程」放置為協調流程層,同時在「可叫用 Apex」內壓縮高複雜度的作業。
#### 協調流程層級:流程
「記錄觸發流程」可作為業務流程的協調流程層。它擁有輸入條件和執行內容 (_什麼_和_何時_)。透過在此層內保留決策邏輯和路由,結構的流程拓範可透過「流程觸發探索器」保持透明且可管理,進而防止重要業務邏輯在程式碼中隱藏。
#### 複雜元件:可叫用 Apex
複雜元件的一個常見範例為針對「個案」記錄實作「服務層級契約」(SLA) 計算。由於 BusinessHours 物件及其相關邏輯 (對於不含非工作時間與假日的準確計算而言至關重要) 無法在流程中原生存取,因此會使用專屬的 Apex 類別。此類別通常稱為 `ServiceLevelAgreementCalculator` 等名稱,其設計方式是使用單一靜態方法 (以 `@InvocableMethod` 註釋),以計算經過的營業時間、判斷 SLA 是「在目標內」還是「已到達」,並傳回結構化輸出。此方法會壓縮 Apex 中複雜且高效能的邏輯,同時允許流程順暢地執行並整合至記錄觸發流程的陳述性協調流程層。
定義 Apex `ServiceLevelAgreementCalculator` 類別後,即可在記錄觸發流程中使用:
此模式示範嚴格分隔關注。陳述性層用於管理交易生命週期和協調流程,而程式碼用於高複雜度執行。透過將程式碼視為功能公用程式而非基礎,我們能夠平衡效能與維護性。
#### 混合模式的主要收益
**模組性**:決策會從整個程序使用 Apex 或流程的單數性遠離。而是會將複雜邏輯壓縮為離散、大量安全且可獨立測試的單元。這些單位會作為陳述性層耗用的可重複使用元件運作,確保自動化會調整規模,而不會使結構設計變得複雜。
**可重複使用**:性邏輯會與觸發事件分離。設計良好的程式碼單位 (例如 `InvocableMethod`) 會寫入一次,但會利用多個進入點:記錄觸發的流程、畫面流程或外部整合。此程式碼重複使用可免除冗餘開發。
**永續性**:流程流程邏輯在陳述性流程中保持可見且可管理。此集中化會大幅減少除錯負擔,並確保系統的執行指示是決定性且透明的。
#### 混合模式的限制與權衡
雖然使用流程中可叫用 Apex 的混合式模型功能強大,但並非一體適用的方法。結構設計師必須先瞭解特定限制和權衡,才能認可混合式解決方案。
- **無儲存前支援**:這是最嚴重的限制。「可叫用動作」僅適用於儲存後內容 (動作和相關記錄的流程)。無法在高效能儲存前內容 (快速欄位更新的流程) 中使用。因此,此模式無法用於委派相同記錄欄位更新。在儲存前流程或在內容前 Apex 觸發中,使用原生「流程」元素執行高效能工作。
- **無刪除後支援:**「記錄觸發流程」目前不支援取消刪除後內容。如果 Salesforce 物件具有從資源回收筒還原記錄時執行自動化的業務需求,則 Apex 觸發是唯一的解決方案。
- **在大量案例中的效能負擔:**從流程執行階段轉換至 Apex 執行階段並非零成本作業。雖然通常快速,但從「流程」的執行階段放入「可叫用動作」的動作在運算上並非如同完全留在 Apex 觸發內的原生執行一樣快速。針對大多數的中密度自動化,此微重設為可提高無障礙性的可忽略且值得權衡。不過,針對極端高效能、大量案例,純粹 Apex 僅限架構將具有原始運算速度優勢。
### 舊版自動化的策略
雖然自動化密度摘要提供更新的綠色欄位結構最終指引,但企業 Salesforce 環境的實際狀況通常更為細微。在成熟的組織中,通常會找到記錄觸發的流程和在相同的 Salesforce 物件上作業的 Apex 觸發。此情況與之前所說的混合模式不同:在此,流程與 Apex 觸發並非已配對或設計為共同運作。
此共存通常是由於平台功能不斷發展或舊版技術債務所導致。雖然這是可接受的作業狀態,但結構設計師必須將其視為已計算的權衡,而非結束狀態。
區隔的協調流程會造成嚴重的管治與維護負擔,導致開發、測試和事件處理活動遭到中斷且繁琐。這會導致解決時間 (TTR) 和作業複雜度增加。
- 針對新的 Salesforce 物件,請遵循自動化密度原則作為主要指引。
- 針對具有混合式足跡和雙 Apex 觸發和記錄觸發流程進入點的現有 Salesforce 物件,請評估密度,然後將架構器重新產生至可維護的混合式狀態。
- 針對低密度,重構器 Apex 會觸發記錄觸發流程,並指定執行順序,將其帶往單一自動化進入點。
- 針對中度密度,重構器複雜的大型流程會以正確的執行順序流入流程子集。僅在絕對必要時 (例如支援取消刪除內容後) 導入 Apex 觸發。
- 針對高密度,建議實作 Apex 觸發。
### 使用 Apex 觸發的中繼資料架構
隨著組織在 Salesforce 平台上的業務流程成熟,記錄觸發自動化的數量和複雜度不可避免地增加。基礎最佳作法是維護每個 Salesforce 物件 _一個 Apex 觸發_。此規則十分重要,因為平台不保證針對相同事件在相同物件上執行多個觸發的執行順序。此限制可能會導致非決定性行為、種族條件和難以除錯的問題。
不過,遵循 _單一觸發_原則會導致結構性挑戰:如何以可維護且可調整的方式管理和協調從該單一進入點叫用的所有業務邏輯。
#### 傳統觸發處理常式的限制
此結構的第一個進化是 Classic 觸發處理常式模式。在此方法中,單一 Apex 觸發會將其所有的邏輯委派給對應的處理常式類別 (例如,`OpportunityTriggerHandler`)。此方法會將邏輯與觸發檔案分開,並為開發人員提供對處理常式類別方法中執行順序的決定性控制 (例如,`afterInsert()`)。
雖然是改善方式,但此模式通常會導致單一處理常式類別。隨著時間的推移,隨著業務需求增加,類別會變得較大、難以管理,且難以獨立測試。所有個別程序的執行順序會在單一方法中硬式編碼,使類別容易發生合併衝突,進而在大型企業環境中大幅增加監管和維護負擔。
#### 解決方案:中繼資料驅動的觸發架構
為了解決模組化與協調的核心問題,結構設計師會改用「**中繼資料驅動觸發架構**」。這是一個重要的結構突破,將自動化邏輯本身與執行_方式_和執行_時間_的組態分開。
此架構以三個主要優點為基礎:
- **分割:**系統會將核心業務邏輯細分為小型原子 Apex 類別 (例如,`RecalculateAccountValues` 類別或 `NotifySalesLeads` 類別),每個類別都遵循「_單一責任原則_」。此模組性可讓邏輯在隔離中更容易測試、除錯和瞭解。
- **順序和作法:**執行指示不再以 Apex 硬式編碼。而是由組態記錄以宣告的方式定義,通常儲存在自訂中繼資料類型中 (例如,`TriggerAction__mdt`)。這可讓管理員透過修改中繼資料記錄來重新排序、新增或移除自動化動作,這不需要部署或程式碼變更。
- **略過功能:**架構提供標準化且細微的略過功能。每個自動化動作都可以透過其中繼資料記錄設定為全域關閉,或透過參照自訂權限來針對特定管理使用者略過。
物件的單一 Apex 觸發程序則只會作為動態分派員使用。它不包含業務邏輯,而是會例項化中央的 `MetadataTriggerHandler` 類別。此處理常式會查詢自訂中繼資料記錄,以動態決定執行順序,並以指定的順序叫用正確的原子 Apex 類別。自動化在單一、透明且可管理的層級之下統一。
### 減去交易中昂貴的重複作業
在強大的架構中使用 Apex 的重要優點是能夠管理交易狀態,並透過去除冗餘工作來最佳化效能。隨著邏輯的累積,儲存訂單中的不同自動化通常會獨立執行相同昂貴的作業,進而耗用寶貴的管理員限制並增加 DML 作業時間。
架構的結構是透過兩個主要策略來解決此問題:
- **共用狀態管理:**在單一 Apex 交易的範圍內,會利用靜態內容和變數來快取資料。這可確保昂貴的作業 (例如組態設定的 `SOQL` 查詢) 僅執行一次,即使在不同記錄或觸發階段中多次叫用自動化邏輯。交易限制的耗用量大幅減少。
- **平台快取利用率:**若要超越簡單的交易內快取,請使用平台快取來避免查詢特定資料的整個資料庫。此受管理的記憶體內快取非常適合用於在整個交易過程中 (例如,設定檔、角色、營業時間) 檢索非原始資料、經常閱讀的資料。使用 `Cache.CacheBuilder` 介面,系統會先檢查快取,且僅在資料缺少時執行資料庫查詢,以最大化效能與延展性。
### 使用儲存前更新相同記錄
當自動化只需要變更啟動交易之記錄的欄位值時,請一律使用儲存前更新。這適用於流程中的快速欄位更新 (儲存前執行) 和 Apex 觸發中的內容前邏輯 (插入前、更新前)。
無論使用的工具為何,此模式都能執行,因為其會避免第二次 DML 作業和遞迴儲存週期。在記錄認可至資料庫 _之前_,系統會在記憶體中對記錄進行變更,並儲存為原始交易的一部分。系統會去除第二個儲存的額外負擔,否則會重新執行整個儲存訂單並再次觸發所有自動化。
### 防止不受控制遞迴
未受控制遞迴是更新後觸發的常見陷阱,其中觸發邏輯會執行 DML 更新,進而導致再次觸發相同的觸發。這會建立一個無限迴圈,最終會以管理員限制例外來結束。雖然過去曾經用於防止此類遞迴的靜態布林值標記或已處理記錄識別碼的集合,但更精確且強大的模式是透過比較記錄本身新版本與舊版本之間的欄位值,來入口邏輯。
只有在特定感興趣的欄位實際已變更時,才執行邏輯。這可防止觸發程序在重要資料保持不變的相同交易中,對後續 DML 作業執行其邏輯。
#### 控制記錄觸發流程中的遞迴
在記錄觸發流程中,透過設定流程僅在記錄更新以符合條件需求時執行,以防止未受控制遞迴:
如果您選擇在流程中使用項目條件公式,您可以透過比較 `$Record` 全域變數 (代表新值) 與 `$RecordPrior` 全域變數 (代表儲存前的原始值) 來防止流失遞迴。例如,若要確保流程僅在「機會」上的「金額」欄位已變更時執行,請在項目條件中使用以下項目:
```
$Record.Amount != $Record__Prior.Amount
```
#### 在 Apex 中控制遞迴
將新版本記錄 (`Trigger.new`) 的欄位值與舊版本記錄 (`Trigger.oldMap`) 的欄位值進行比較,以瞭解是否已發生您要尋找的特定變更。此方法可確保自動化是無效的,且只在需要時執行,進而提高系統效率並避免災難性遞迴迴迴圈。
### 略過自動化
結構良好的 Salesforce 組織需要一致且可靠的機制來略過自動化。這不是選用的功能,而是維護資料完整性和啟用管理工作的核心作業需求。
略過架構對於某些情況至關重要:
- 載入大量資料時,針對每個記錄觸發觸發程序會大幅減慢流程、造成限制例外,並建立錯誤的相關記錄和通知。略過可讓資料精簡且有效地插入。
- 整合使用者可能需要從記錄的外部系統同步化資料。當變更源自其他系統時,通常針對使用者起始的變更 (例如傳送電子郵件、建立工作) 觸發的自動化可能不理想或冗餘。
- 管理員或支援人員可能需要對記錄執行修正更新。略過機制可讓他們進行這些變更,而無須觸發標準業務自動化,這可能會造成非預期的後果。
**自訂權限**:實作略過邏輯的現代化、可調整標準為自訂權限。這些方法優於舊方法,原因如下:
- **彈性:**自訂權限可透過權限集指派給使用者。此作法與現代的 Salesforce 安全性和存取模型保持一致,允許細微且彈性的指派。可以將略過授與特定使用者,甚至可以暫時授與特定到期日/時間。
- **維護性:**使用自訂權限可避免將設定檔或使用者硬式編碼至自動化邏輯。如果使用者的角色變更,或新設定檔需要略過存取權,則變更為簡單的「權限集」指派,而非需要部署的程式碼或流程修改。
- **延展性:**自訂權限提供可調整的架構,可管理跨複雜使用者群組的例外狀況。這些權限集可以透過權限集、權限集群組或設定檔指派給使用者。其與權限集或設定檔的關聯也可在來源中繼資料中表示。
**實作模式**:將一致的略過模式套用至組織中所有記錄觸發的自動化。
**略過記錄觸發流程**:略過流程的最有效率方法,就是避免流程完全執行。透過將條件新增至流程的項目條件來達成此目標。
- 在記錄觸發流程的「開始」元素中,將「條件需求」設定為「公式評估為 True」。
- 在公式產生器中,使用 `$Permission` 全域變數來納入自訂權限的檢查。將檢查與您現有的項目條件結合。
- 公式模式:
```
( ) && NOT($Permission.Bypass_This_Flow)
```
- 此模式可確保只有在使用者 _未_ 獲指派指定的自訂權限時,流程才會執行。此檢查會在建立流程訪問之前執行,使其成為最具效能的方法。
**略過 Apex 觸發架構**:在 Apex 中,將略過邏輯直接整合至中繼資料驅動的觸發架構,進而允許細微控制。
- `TriggerAction__mdt` 自訂中繼資料類型應包含文字欄位,例如 `BypassPermission__c`。
- 在 `MetadataTriggerHandler` 類別中,程式碼應先讀取此欄位的值,再動態執行動作。
- 如果已填入欄位,則處理常式會使用 `FeatureManagement.checkPermission()` 方法判斷目前執行使用者是否具有指定的自訂權限。
- 如果 `checkPermission()` 傳回 true,則處理常式會略過該特定動作並繼續進行序列中的下一個動作。
- 此模式功能強大,因為它同時允許全域略過 (如果所有 `TriggerAction__mdt` 記錄都參照相同的權限) 和細微的各個動作略過 (如果不同的記錄參照不同的權限,或者有些記錄完全沒有略過權限)。
### 多個流程與多個流程
這是一種反模式,可將物件的所有自動化合併到單一的大型大型流程中。將合併為一個流程與分割為多個適當條件流程的邏輯,不會對效能造成重大影響。最顯著的績效提升來自於:
- 針對相同記錄欄位更新使用儲存前流程。
- 撰寫精確的輸入條件,以確保不會對其特定使用個案造成影響的變更排除執行流程。
[流程觸發探索器](https://trailhead.salesforce.com/content/learn/modules/record-triggered-flows/meet-flow-trigger-explorer)可讓您將訂單值指派給物件上的每個流程,以保證依序執行訂單。
## 資源
| Apex | 流程 | 作業 |
|---|---|---|