прикольно, те происходит пересчет формулы на записи прямо в коде, до того как ее апдатировать (чего вообще может и не случится)
а если это новая запись в коде, еще или никогда не созданная? а если сделать специальный объект с самыми часто используемыми в коде вычислениями и использовать его как utility class для вычислений? он лучше только тем что апдейт самих формул можно делать не трогая кода
я как раз искал решение для этого изменил формулу в Case object, но из за того что данные не поменялись, Data Cloud не видит изменений и не переносит это в Data Cloud objects (DC Stream, DMO).
когда это только в самом Salesforce, то select FormulaField__c запускает формулу. в моём случае Data Cloud берет case records только которые изменились(SystemModStamp changed), так чтоб получить данные которые изменились, обычно надо запустить какой нибудь mass update.
recalculateFormulas() возможно делает это попроще - short apex code in anonymous window.
Насколько я понял recalculateFormulas не делает ничего с самими записями в базе данных. Этот метод просто пересчитывает значение Formula полей на лету. Тем самым SystemModStamp не обновляется. Это и имел в виду Den - оно тебе не поможет в случае с Data Cloud.
Эта штука полезна когда у темя formula_field__с = field_1__с + field_2__с. Ты изменил в коде field_1 или field_2 и хочешь видеть новый formula_field__с без сохранения записи в базу с последующим запросом.
раз пошел разговор про Data Cloud то есть такой сценарий:
из разных источников (интернет, эксел, другие системы) нужно собрать единую информацию по сервис провайдерам (организации). эти данные нужно очистить от дубликатов, привести к единому виду, плюс они не имеют единого ID чтоб можно было бы их сопоставить, то есть нужно использовать то телефон, то имя, то емейл.
и Data Cloud кажется подходящим вариантом для этой работенки. Но дело в том, что в конечном итоге эти провайдеры должны стать Эккаунт записями - со всем вытекающий функционалом вроде контакты, которые можно конвертировать к коммунити юзеров.
поэтому вопрос - стоит ли связываться с Data Cloud?