Сегодня столкнулся с интересной фигней в SF. Пишу очередную интеграцию и кое-что меня просто ввело в затуп. Есть поле Number(18,0) Я маплю его у себя в базе н Integer. Запускаю выгрузку данных и у меня падает с ошибкой - не могу сохранить 0,5 как Integer. WTF? Иду в SF, по ID открываю запись в стандартной вьющке - в моем поле показывается значение 1 !!!! WTF? Иду в Developer Console, пишу SOQL для это записи и у меня показывает значение в поле 0,5 КАК ЭТО ПОНИМАТЬ?
Ну у меня тогда просто мозг сломался. А как бизнес логика? Как в код будет чувствовать себя в этом случае? Что там насчитается? Я просто давно не кодирую в Apex, и нет возможности быстро накидать тестовый стенд. Как это поле смапится на Integer? Будет эксепшен или оно просто округлится в 1 и будет считаться как Integer?
Просто ближе к примеру - это поле Quantity и есть куча локиги по Prices Calculation где оно используется. По бизнес логике Quantity не может быть меньше 1. И что же блин у них там считается? Короче я в шоке. Мне то пофиг, я сейчас просто буду округлять после экспорта перед вставкой у себя в базу. НО БЛИН что это за бред!? В базе имеем одно, а по факту на UI видим другое. Хотя в SF это не единственный прикол. Можно не удивляться.