![](/img/trans.png)
[英]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.