Apex開發指南--apex執行順序

apex組件執行順序

學習目的
1,salesforce裏面apex組件的執行順序

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

在服務器上,Salesforce按以下順序執行:
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的邏輯,如發送電子郵件。

注:這片文章的成果是一位圈內大佬的研究所得,在此只是記錄,用於以後溫故。

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