Как назначить «пустое» десятичное поле в Salesforce - PullRequest
4 голосов
/ 13 марта 2012

У меня проблемы с одним из наших пользовательских правил проверки, которое вынуждает меня иметь пустое значение в настраиваемом поле на основе определенных условий.

При редактировании поля вручную через интерфейс я просто стираю содержимое текстового поля, и оно отлично сохраняется.Но с апекс-кодом, как я могу поместить «пустое» значение в поле?Присвоение нулю этому полю, похоже, не работает.Я проверил консоль developper на наличие журналов, и ноль правильно присваивается моему свойству, но обновление по-прежнему выдает исключение с сообщением типа:

FIELD_CUSTOM_VALIDATION_EXCEPTION, CustomField; must be blank: [CustomField__c]

Вот как я назначаю ноль в коде апекса:

customObject.CustomField__c = null;
update customObject;

Присвоение нуля также не работает, так как для правила проверки необходимо, чтобы поле было пустым.Есть ли скрытый трюк, который позволяет мне сделать это через апекс?

РЕДАКТИРОВАТЬ: Вот формула проверки.Если значение равно true, возникает ошибка:

AND( ISPICKVAL(CustomStatusField ,'Custom Value') , !ISBLANK(CustomField__c )))

Таким образом, проверка в основном такова: если CustomStatusField равно 'Custom Value', CustomField__c должно быть пустым.

РЕДАКТИРОВАНИЕ № 2: Я наконец-то решил свою проблему.Приведенный выше код работал, как и ожидалось, но был еще один хитрый триггер, в результате которого поле было обновлено до ненулевого значения, что привело к сбою правила проверки.Боже, я ненавижу широкое использование триггеров для бизнес-логики!

1 Ответ

6 голосов
/ 13 марта 2012

Я только что попробовал это, и установка поля в ноль в коде вершины работает для меня. Возможно ли, что сообщение об ошибке исходит из другого правила проверки? (Кто-то мог вырезать и вставить неправильное сообщение об ошибке при создании правила проверки ...) Или, может быть, рабочий процесс или триггер работает и пытается установить для поля ненулевое значение?

...