簡體   English   中英

僅從驗證規則中捕獲錯誤消息並顯示在VF頁面中?

[英]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的評論,它不適用於頁面頂部的驗證錯誤),因此我寫了這個答案來澄清。

  1. <apex:pageMessages/>標記添加到您的頁面
  2. 將您的DML語句包含在try catch中,如下所示:
 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可以為您做到這一點

  1. <apex:pageMessages/>標記添加到您的頁面。 (這是顯示任何錯誤消息(如果存在)的容器)
  2. 使用try {} catch(DMLException e) {}包圍DML調用(當您捕獲異常時,您將不會重定向到錯誤頁面,但是Salesforce將為驗證失敗自動創建“ PageMes​​sage”。

如果使用此:

ApexPages.addMessages(e);

取而代之的是,用戶將同時接收所有驗證消息,而不必一次又一次地處理每個驗證消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM