本篇參考:
https://help.salesforce.com/s/articleView?id=sf.flow_ref_elements_custom_error.htm&type=5
我們針對這些次salesforce的release note可以看出來,salesforce針對Flow不斷地發力,支援了越來越多的功能並且替代了Process Builder以及Workflow,本次release同樣有很大的驚喜,支援了類似Validation Rule的功能,即Custom Error。
一. Custom Error簡單介紹
我們透過下方的gif可以進行更好的理解: 下方的gif在flow中建立了兩個custom error,分別校驗House表的State / Zip需要一個必填以及 當Price滿足指定金額以後要求上傳圖片。我們可以看一下下方執行的效果。
這裡對Custom Error功能進行一些考慮。
1. Custom Error只支援 Record-Based Trigger,其他型別的Flow不支援。
2. 和傳統的Validation Rule不同的是,一個Custom Error可以顯示在多個欄位上,只需要在Custom Error功能中點選 Add Error Message按鈕即可,這種設計很方便,因為如果使用Validation Rule實現情況下需要建立多個VR才可以搞定。
3. 和Validation Rule相同的是,同一個欄位當前只能顯示一個錯誤資訊,當然,每個欄位都可以有一個error資訊。
4. 不支援compound 欄位。
5. 功能相當於apex中的addError。
二. 使用Validation Rule還是使用Flow Custom Error?
既然Custom Error功能和Validation Rule如此相似,我們是否就可以理解成Flow Custom Error可以替換掉Validation Rule或者說什麼場景下用哪個呢?以下是我的個人見解,不一定完全正確,可以相互討論。
我的答案是Flow Custom Error是不會取代Validation Rule的,因為實際專案中需要考慮以下幾點。
1. 當前表的業務複雜度以及後續的可擴充套件性。我們知道Flow在salesforce中執行的順序是早於before trigger的,參考參考連結中的 order of execution,如果當前表的功能和業務邏輯較為複雜,一個欄位在trigger中做了一些初期話處理,我們可以在validation rule對此欄位進行邏輯校驗會更準確,如果提前到before trigger,可能會引發一些不必要的問題。
2. Flow可以設定執行順序,如果當前表的Flow特別多,有一些用於欄位初期化設定,有一些用於校驗, 設定的order順序也可能影響結果。
當然並不是說Flow的Custom Error不好,以下功能可以考慮 Flow Custom Error。
1. 當前的表業務功能較少,後續功能也很少會用到apex trigger做一下邏輯操作(這個是前提,因為我們需要了解)
2. 校驗針對多個欄位同樣的校驗邏輯和錯誤資訊,使用flow會省事一些。
3. 你是一個管理員,你不會寫apex程式碼,但是當前的校驗邏輯較為複雜,validation rule無法實現,你可以考慮使用Flow Custom Error來實現。
總結:本篇簡單介紹了一下Custom Error的使用,感興趣的小夥伴可以檢視上方參考連結中的官方文件描述。demo中有一個比較怪的地方,就是我用了一個flow來實現了兩個錯誤場景的判斷,設定Decision以後Path只能同一個場景執行一個,所以儘管資料兩個validation都觸發了,但是每次只能顯示一個報錯,實際場景中可能需要拆分成兩個Flow。另外此功能目前sandbox 可以使用,需要10月正式release以後,production以及dev edition才可以使用。篇中有錯誤地方歡迎指出,有不懂歡迎留言。