salesforce開發(fā)中,我們會(huì)對(duì)object進(jìn)行很多的操作,比如對(duì)object設(shè)置字段的必填性唯一性等,設(shè)置validation rule實(shí)現(xiàn)一下相關(guān)的字段的邏輯校驗(yàn),設(shè)置workflow實(shí)現(xiàn)某個(gè)字段的更改或者發(fā)送郵件等,設(shè)置trigger實(shí)現(xiàn)before和after的數(shù)據(jù)相關(guān)邏輯處理,設(shè)置sharing setting實(shí)現(xiàn)數(shù)據(jù)share,設(shè)置master detail的rollup summary字段等。當(dāng)這些操作鋪天蓋地的上來時(shí),你還搞得清楚當(dāng)新增/修改一條記錄以后到底怎么運(yùn)行的嗎?有了下面的圖以后(從國外博客盜的圖,忘記了鏈接,不好意思),相信可以以后對(duì)于這些操作的處理順序變得游刃有余。
1.當(dāng)數(shù)據(jù)進(jìn)行新增/修改操作時(shí),從DB中獲取原始數(shù)據(jù);
2.從request中加載新數(shù)據(jù)的value;
3.如果請(qǐng)求來自標(biāo)準(zhǔn)的UI,UI上面可以自動(dòng)check相關(guān)的pagelayout上的必填性校驗(yàn)等,相關(guān)字段必填性配置可以放在page layout做限制;
4.如果請(qǐng)求來自自定義的VF頁面或者apex進(jìn)行匿名塊操作,則先忽略相關(guān)pagelayout上的必填性校驗(yàn),執(zhí)行before trigger內(nèi)容;
5.運(yùn)行系統(tǒng)的校驗(yàn),比如字段級(jí)別的必填性,validation rule;
6.當(dāng)通過validation rule以后,執(zhí)行save操作,此時(shí)數(shù)據(jù)保存到DB,不過事務(wù)上還沒有commit,在after trigger及以后如果此obj有addError類似操作,會(huì)導(dǎo)致數(shù)據(jù)的rollback,簡單demo:
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26