Здравствуйте!
Столкнулся с такой проблемой. Есть объект с несколькими vadation rules, когда делаю insert етого объекта, получаю FIELD_CUSTOM_VALIDATION_EXCEPTION. Теперь мне интересно, можно ли как-то из Apex кода узнать какой именно validation rule сработал(вытянуть например его название) не трогая Error Message?
Здравствуйте! Столкнулся с такой проблемой. Есть объект с несколькими vadation rules, когда делаю insert етого объекта, получаю FIELD_CUSTOM_VALIDATION_EXCEPTION. Теперь мне интересно, можно ли как-то из Apex кода узнать какой именно validation rule сработал(вытянуть например его название) не трогая Error Message?
Хороший вопрос! Самому интересно.
Хороший вопрос! Самому интересно.
На первый взгляд такой возможности нет.
да и как-то не совсем понятно зачем это.
Цель Validation Rule проверить какое-то условие и вывести сообщение об ошибке. Зачем в коде узнавать что это за validation rule? Если необходимо найти этот validation rule - то он находится очень легко по самому тексту ошибки и по объекта с которым сейчас работаешь.
На первый взгляд такой возможности нет. да и как-то не совсем понятно зачем это. Цель Validation Rule проверить какое-то условие и вывести сообщение об ошибке. Зачем в коде узнавать что это за validation rule? Если необходимо найти этот validation rule - то он находится очень легко по самому тексту ошибки и по объекта с которым сейчас работаешь.
по мне так это лишние,хотя заказчики разные бывают
[quote="Dmitry Shnyrev"]На первый взгляд такой возможности нет. да и как-то не совсем понятно зачем это. Цель Validation Rule проверить какое-то условие и вывести сообщение об ошибке. Зачем в коде узнавать что это за validation rule? Если необходимо найти этот validation rule - то он находится очень легко по самому тексту ошибки и по объекта с которым сейчас работаешь.[/quote] Я думаю это кажется на первый взгляд :) получить метаданные можно, то есть брать по сообщение искать имя это валидацион рул здесь описанно [url]https://github.com/financialforcedev/apex-mdapi[/url] по мне так это лишние,хотя заказчики разные бывают
Приходилось мне делать VF page заменяющую стандартный лайаут. На объект было повешено штук 15 VR. И по ходу работы мне надо было сделать красивый вывод ошибок от этих VR. Пришлось делать копию VR логики в контроллере. Что вообще не есть гуд(
Приходилось мне делать VF page заменяющую стандартный лайаут. На объект было повешено штук 15 VR. И по ходу работы мне надо было сделать красивый вывод ошибок от этих VR. Пришлось делать копию VR логики в контроллере. Что вообще не есть гуд(
Не вижу проблем. Validation Rule инициирует такую же DML ошибку как и другие. Я везде их просто перехватываю если надо красиво показать и показываю. Вот такая конструкция:
try {
insert something;
} catch(Exception e) {
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, ''+e));
return;
}
а на странице:
<apex:pageMessages />
[quote]Приходилось мне делать VF page заменяющую стандартный лайаут. На объект было повешено штук 15 VR. И по ходу работы мне надо было сделать красивый вывод ошибок от этих VR. Пришлось делать копию VR логики в контроллере. Что вообще не есть гуд([/quote] Не вижу проблем. Validation Rule инициирует такую же DML ошибку как и другие. Я везде их просто перехватываю если надо красиво показать и показываю. Вот такая конструкция: [code] try { insert something; } catch(Exception e) { ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, ''+e)); return; } [/code] а на странице: [code] <apex:pageMessages /> [/code]