[英]Display data from multiple objects in a Salesforce VF page in one pageblocktable
[英]Capture only the error message from validation rule and display in VF page?
我已經設置了一些驗證規則,並且使用此對象有一個VFpage。 我能夠捕獲驗證異常並將其顯示在VF頁面上。 問題是它顯示消息為
" Upsert Failed : First exception on row 0: first error;
FIELD_CUSTOM_VALIDATION_EXCEPTION Quantity cannot be empty
有沒有一種方法可以在驗證規則“數量不能為空”中捕獲錯誤消息?
謝謝
不幸的是,Ralph的帖子並非100%正確(請參閱Prady的評論,它不適用於頁面頂部的驗證錯誤),因此我寫了這個答案來澄清。
<apex:pageMessages/>
標記添加到您的頁面 try{ update account; //or anything else } catch(System.DmlException e) { ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, e.getDmlMessage(0))); }
這將打印該語句引起的第一個DML錯誤,這通常是您想要的。 您也可以嘗試e.getMessage(),但這將顯示其他用戶不友好的信息(例如, Update failed. First exception on row 0 with id 001L000000QgmomIAB; first error: FIELD_CUSTOM_VALIDATION_EXCEPTION
等)。 e.getDmlMessage
的優點是,當錯誤是由驗證規則引起時,它僅打印驗證規則。
Visualforce可以為您做到這一點
<apex:pageMessages/>
標記添加到您的頁面。 (這是顯示任何錯誤消息(如果存在)的容器) try {} catch(DMLException e) {}
包圍DML調用(當您捕獲異常時,您將不會重定向到錯誤頁面,但是Salesforce將為驗證失敗自動創建“ PageMessage”。 如果使用此:
ApexPages.addMessages(e);
取而代之的是,用戶將同時接收所有驗證消息,而不必一次又一次地處理每個驗證消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.