Salesforce之執行順序

    今天,因爲一個Bug 小喵查了一下salesforce的執行流程,下面就分享給大家!

     當我們保存與插入,更新,或更新插入語句的記錄,Salesforce的可以依次執行以下事件。
        注:Salesforce在服務器上執行這些事件之前,瀏覽器運行JavaScript驗證是否有記錄包含任何依賴列表字段。驗證每個依賴列表字段限制了它的可用值。無其他驗證發生在客戶端。

執行順序 :

1.   從數據庫加載原始記錄或初始化一個用於更新插入(upsert)語句的記錄。 
2.   從請求加載新記錄的字段值並覆蓋舊的值。 
       如果請求來自一個標準的UI(user interface)編輯頁面,Salesforce會運行系統驗證去檢查記錄是否符合以下規則: 
          •符合佈局的具體規則 
          •在佈局水平和字段定義級別是否是必須入力的值 
          •有效字段格式 
          •最大字段長度 
        注意:當這個請求來自其他資源的時候(比如來自Apex application 或者 SOAP API 調用的時候.),salesforce並沒有在此步驟中執行系統驗證 
3.   執行所有的before 觸發器。 
4.   再次運行大部分的系統驗證步驟,如驗證所有必填字段沒有一個非空值,並運行所有用戶自定義的驗證規則。 
5.   保存記錄到數據庫中,但不提交事務(commit)。 
6.   執行所有的after 觸發器。 
7.   執行分配規則(assignment rules)。 
8.   執行自動響應規則(auto-response rules)。 
9.   執行工作流程規則。 
10.   如果有工作流將一些字段更新了,再更新該記錄。 
11.   如果記錄在工作流更新字段值得時候被更新了,再一次(僅僅再一次)觸發before update和after updata觸發器,同時還有標準的驗證規則也會被執行(自定義的驗證規則不會被執行)。 
12.   如果有工作流流程觸發器(workflow flow triggers),執行流(flow)。 
13.   執行升級規則。 
14.   如果記錄包含一個捲起的彙總字段,或者是一個跨對象工作流程的一部分,執行計算並更新父記錄捲起彙總字段。父記錄經過保存的程序。

15.   如果父記錄被更新,和祖父母記錄包含一個捲起的彙總字段,或者是一個跨對象工作流程的一部分,執行計算並更新父記錄捲起彙總字段。祖父母記錄經過保存的程序。 
16.   執行基於共享的評價標準。 
17.   要求所有DML操作到數據庫。 
18.   執行post-commit的邏輯,如發送電子郵件。

自 >> 

爲了方便小夥伴們理解,再附上一個口訣 :

  1. 頁面後臺兩不同,
  2. 佈局規則最優先,
  3. 格式長度和必填。
  4. Before Trigger觸發前,
  5. 後臺只將外鍵檢。
  6. 批量插入有例外,
  7. 驗證規則提前驗。
  8. Before之後做驗證,
  9. 自定規則和必填,
  10. 系統規則不二遍。
  11. 驗證之後跑去重,
  12. 存入DB不提交。
  13. After Trigger觸發後,
  14. 分配/回覆/工作流,
  15. 如果字段有更新,
  16. 驗證/去重不再做,
  17. Trigger僅再跑一次。
  18. PB/Flow依次跑,
  19. 數據操作從頭走,
  20. Case規則在隨後。
  21. 父表彙總此時算,
  22. 工作流把父表更,
  23. 共享規則重計算。
  24. 數據DB提交後,
  25. 後續郵件才發送。

 

今天,小喵就 拿來即用 的給大家分享一下了

你 Get 到了嗎?

(^_^)~喵~!!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章