此文字已使用 Salesforce 的自動翻譯系統進行翻譯。參閱我們的 調查以提供此內容的回饋意見,並告訴我們您接下來想要查看的內容。
自動 - 資料完整性
深入瞭解 Well-Architected Easy → Automated → Data Integrity → Data Handling
| 要在哪裡尋找? 產品區域 | 位置 | 優良的外觀為何? 模式 |
|---|---|
| Data 360 | 資料字典 | ✅ 存在所有資料來源和資料湖物件的欄位級資料和優先順序邏輯 |
| Data 360 | 組織 | ✅ 複合索引鍵可在資料集中沒有唯一的單一欄位時,用於建構唯一的主要索引鍵。 |
| Data 360 | 組織 | ✅ 使用 CRM 連接器的資料串流可利用每兩週完整重新整理。當使用 CRM 連接器進行增量負載時,系統會每兩週起始一次完整重新整理。儘管這可能會增加資料取用,但會保護中繼資料 (例如公式欄位) 的資料完整性,這些資料不會觸發 DML 交易,因此不會包含在增量負載中 |
| Data 360 | 組織 | ✅「個人識別碼」用於將 Data 360 資料對應至其他系統,使用「個人識別碼」將 Data 360 中的個人對應至其他系統。例如,Marketing Cloud 參與訂閱者金鑰應對應至 Data 360 中的「個人識別碼」 |
| Data 360 | 組織 | ✅ 完全合格金鑰用於精確解譯資料 組織中所有包含金鑰值的 DLO 都有金鑰限定詞欄位,且已啟用完全合格金鑰 (FQK),以確保避免多個資料串流協調為單一資料模型物件 (DMO) 時可能發生的衝突 |
| Data 360 | 組織 | ✅ 完全標準化比對方法可在比對規則中使用時。完全標準化比對會轉換來源資料,以解決常見比對問題,例如結尾空格、格式不一致和特殊字元。在可用的欄位上運用此方法,而非使用模糊比對,除非您已設定多個規則集進行測試並確認合併率不符合業務需求 |
| Einstein | 文件 | ✅ 資料實用性已記錄為 AI 專案設計的一部分 您的公司資料實用性的定義已記錄並操作化,以改善 AI 回應 |
| 平台 | Apex | ✅ Future Apex 僅供呼叫或系統物件 DML 使用 |
| 平台 | Apex | ✅ 非同步 Apex 叫用會使用在交易之間可排入至「鏈結」複雜的 DML |
| 平台 | Apex | ✅ 批次 Apex 專為大量資料使用。批次 Apex 最適合處理大量資料。非同步 Apex 的限制高於同步 Apex,因此可以完成更多工作。盡可能避免使用非常小的批次大小,以避免「流程控制」(流程溢出)、額外開支和耗盡每日非同步 Apex 限制的後果 |
| 平台 | Apex | ✅ 所有同步 DML 陳述式或資料庫類別方法都會在觸發執行內容之前執行 |
| 平台 | Apex | ✅ 大量 API 僅在必須處理大量資料時使用 大量 API 會在必須處理大量資料時使用。利用原生 SOAP 和 REST API 來處理較少的資料量 |
| 平台 | 資料字典 | ✅ 存在資料湖物件到資料模型物件的欄位對應 |
| 平台 | 流程 | ✅ 在使用者環境中啟動的所有流程會將所有系統環境交易摘要到子流程 (會一直放在「暫停」元素之後),以建立新的交易 |
| 平台 | 流程 | ✅ 所有記錄觸發流程都填入觸發順序值 |
| 平台 | 流程 | ✅ 涉及外部系統呼叫或長時間執行程序的流程會使用非同步路徑 |
| 平台 | 流程 | ✅ 使用協調器建立相關資料作業的複雜序列 (而非在單一流程內叫用多個子流程) |
| 平台 | 組織 | ✅ 身分解析協調規則遵循資料字典中的優先順序邏輯 |
深入瞭解「良好的結構」 「簡單」 → 「自動化」 → 「資料完整性」 → 錯誤處理」
| 要在哪裡尋找? 產品區域 | 位置 | 優良的外觀為何? 模式 |
|---|---|
| Einstein | 組織 | ✅ 提示指定預期的輸出「包含 LLM 的直接指示」,以僅產生預期的內容類型。 |
| 平台 | Apex | ✅ 自訂例外用於建立進階錯誤傳訊和邏輯 |
| 平台 | Apex | ✅ 程式碼會將所有 DML、SOQL、呼叫和其他重要程序步驟包含在 try-catch 區塊中 |
| 平台 | Apex | ✅ 資料庫類別方法只能用於所有資料作業 (而非 DML) |
| 平台 | Apex | ✅ 在非同步與大量環境中,會使用「資料庫」類別方法而非 DML |
| 平台 | Aura | ✅ JavaScript 會以 try-catch 區塊括住所有資料作業和重要程序步驟 |
| 平台 | Aura | ✅ 在 try-catch 區塊內,會在 throw 陳述式中使用原生 JavaScript Error (不使用 $A.error()) |
| 平台 | Aura | ✅ 所有可復原錯誤邏輯都會顯示在 catch 陳述式中,並提供清楚的使用者訊息 |
| 平台 | 流程 | ✅ 具有資料作業、呼叫和其他重要處理邏輯的流程具有所有關鍵動作的錯誤路徑 |
| 平台 | 流程 | ✅ 畫面流程一律使用錯誤連結向使用者顯示錯誤 |
| 平台 | 流程 | ✅ 系統會為畫面上顯示的錯誤設定自訂錯誤訊息 |
| 平台 | Lightning Web 元件 (LWC) | ✅ JavaScript 會以 if ()/else if () 區塊括住所有資料作業和重要程序步驟 |
| 平台 | Lightning Web 元件 (LWC) | ✅ 所有 @wire 函數都使用 API 提供的 data 和 error 內容 |
| 平台 | Lightning Web 元件 (LWC) | ✅ 所有 if (error)/else if (error) 陳述式都包含處理錯誤的邏輯,並提供資訊豐富的訊息 |
深入瞭解 Well-Architected Easy → Automated → Data Integrity → Data Handling
| 要在哪裡尋找? 產品區域 | 位置 | 要避免什麼? Anti-Pattern |
|---|---|
| Data 360 | 組織 | ⚡️ 具有支援正規化比對方法的欄位使用模糊比對 會將模糊比對套用至提供完全標準化比對方法的欄位 |
| Data 360 | 組織 | ⚡️ 統一個人識別碼會被假設為固定的統一個人識別碼會作為主要識別碼或全域識別碼,供其他組織使用 |
| Data 360 | 組織 | ⚡️ 事件日期對應至可變動的 DateTime 值事件日期對應至可變動的 DateTime 欄位,例如 LastUpdated 或 LastExtracted |
| Data 360 | 組織 | ⚡️ 主要索引鍵會對應至非唯一的欄位 如果資料集中不存在任何欄位,則選擇任何欄位作為資料串流的主要索引鍵,而不先驗證所選欄位是否為唯一 |
| Data 360 | 組織 | ⚡️ 批次載入資料,然後嘗試即時啟用資料。例如,常見但有缺陷的方法可能涉及從 Amazon S3 分類每小時載入資料,然後透過資料動作啟用資料 |
| 平台 | Apex | ⚡️ DML 陳述式會定期顯示在觸發內容後要叫用的程式碼中 |
| 平台 | Apex | ⚡️ 批次 Apex 工作範圍大小非常小 使用非常小的批次大小 (例如範圍大小 = 1) |
| 平台 | Apex | ⚡️ 批次 Apex 用於外部呼叫 使用批次 Apex 將大量 Salesforce 資料推送至外部系統 |
| 平台 | Apex | ⚡️ 使用「立即發佈平台事件」臨時發佈 (即時) 事件,而非使用「認可後發佈」(非即時),無論發佈訂單需求或記錄鎖定風險為何。 |
| 平台 | Apex | ⚡️ 非同步 Apex 功能會以任意方式使用 Future 方法,且 Queueable Apex 會以不一致的方式或以互換方式使用 |
| 平台 | Apex | ⚡️ 非同步 Apex 功能是以任意方式使用的;開發人員不知道何時使用 future vs. queueable Apex,何時將 DML 交付批次工作 |
| 平台 | Apex | ⚡️ 極少使用非同步 Apex |
| 平台 | Apex | ⚡️ 非同步 Apex 功能被任意使用 資料庫作業沒有明確且一致的邏輯,可在需要時將執行傳送至批次 Apex |
| 平台 | 資料字典 | ⚡️ 不包含資料湖物件到資料模型物件的欄位對應 |
| 平台 | 資料字典 | ⚡️ 不包含資料來源和資料湖物件的欄位級資料和優先順序邏輯 |
| 平台 | 流程 | ⚡️ 使用從畫面元件輸出的集合執行 DML 當該集合是來自畫面元件的輸出時,在建立、更新或刪除元素上利用「使用記錄或記錄集合中的識別碼和所有欄位值」設定 |
| 平台 | 流程 | ⚡️ 記錄觸發流程完全不使用觸發順序屬性,或不一致使用觸發順序值 |
| 平台 | 流程 | ⚡️ 非同步路徑不會一直或完全使用 |
| 平台 | 流程 | ⚡️ 大型單一流程會嘗試協調相關資料作業的複雜序列 (含或不含子流程) |
| 平台 | 組織 | ⚡️ 身分解析協調規則不遵循資料字典中的優先順序邏輯 |
深入瞭解「良好的結構」 「簡單」 → 「自動化」 → 「資料完整性」 → 錯誤處理」
| 要在哪裡尋找? 產品區域 | 位置 | 要避免什麼? Anti-Pattern |
|---|---|
| 平台 | Apex | ⚡️ DML、SOQL、呼叫或其他重要程序步驟不會一直封裝在試用點閱區塊中 |
| 平台 | Apex | ⚡️ 未使用資料庫類別方法 |
| 平台 | Apex | ⚡️ 資料作業僅使用 DML 進行 |
| 平台 | Apex | ⚡️ System.debug 陳述式會顯示在生產程式碼中 (且不會加上註解) |
| 平台 | Aura | ⚡️ JavaScript 不會一致將資料作業和重要程序步驟包含在 try-catch 區塊中 |
| 平台 | Aura | ⚡️ 元件使用 $A.error() |
| 平台 | Aura | ⚡️ 可復原錯誤邏輯不會一直顯示在 catch 陳述式中,且使用者的錯誤訊息不明確 |
| 平台 | 流程 | ⚡️ 流程不會一直或完全使用錯誤路徑 |
| 平台 | 流程 | ⚡️ 不使用自訂錯誤訊息,因此使用者會看到預設的「此流程發生未處理的錯誤」訊息 |
| 平台 | Lightning Web 元件 (LWC) | ⚡️ @wire 函數不使用 API 提供的 data 和 error 內容 (或不一致使用這些內容) |
| 平台 | Lightning Web 元件 (LWC) | ⚡️ 若完全使用,if (error)/else if (error) 陳述式實際上不包含處理錯誤的邏輯,並提供實用的錯誤訊息 |
| 平台 | Lightning Web 元件 (LWC) | ⚡️ JavaScript 不會一律將 if ()/else if () 區塊與資料作業或重要程序步驟搭配使用 |