Сегодня столкнулся с интересной фигней в SF. Пишу очередную интеграцию и кое-что меня просто ввело в затуп. Есть поле [b]Number(18,0)[/b] Я маплю его у себя в базе н Integer. Запускаю выгрузку данных и у меня падает с ошибкой - не могу сохранить [b]0,5[/b] как Integer. WTF? Иду в SF, по ID открываю запись в стандартной вьющке - в моем поле показывается значение [b]1[/b] !!!! WTF? Иду в Developer Console, пишу SOQL для это записи и у меня показывает значение в поле [b]0,5[/b] КАК ЭТО ПОНИМАТЬ?
Number(18,0) - это целочисленное значение. а 0.5 - это уже Number(17,1). Разве не так? засадить 0.5 в Number(18,0)поле как-то получилось, но при выводе стандартным UI все равно оно округлилось до целого числа
[quote="Den Brown"]Number(18,0) - это целочисленное значение. а 0.5 - это уже Number(17,1) - Decimal, Float. Разве не так? засадить 0.5 в Number(18,0)поле как-то получилось, но при выводе стандартным UI все равно оно округлилось до целого числа[/quote]
это скорей всего один из тех случаев когда это не bug а feature. объяснение: https://help.salesforce.com/s/articleView?id=000336833&type=1
[quote="Dmitry Shnyrev"]Сегодня столкнулся с интересной фигней в SF. Пишу очередную интеграцию и кое-что меня просто ввело в затуп. Есть поле [b]Number(18,0)[/b] Я маплю его у себя в базе н Integer. Запускаю выгрузку данных и у меня падает с ошибкой - не могу сохранить [b]0,5[/b] как Integer. WTF? Иду в SF, по ID открываю запись в стандартной вьющке - в моем поле показывается значение [b]1[/b] !!!! WTF? Иду в Developer Console, пишу SOQL для это записи и у меня показывает значение в поле [b]0,5[/b] КАК ЭТО ПОНИМАТЬ? [/quote] У сф в бд никогда не хранится Integer, ровно как и никогда не хранится то количество цифер после запятой, которые указаны на филде
[quote="Eric"]это скорей всего один из тех случаев когда это не bug а feature.[/quote] Ну у меня тогда просто мозг сломался. А как бизнес логика? Как в код будет чувствовать себя в этом случае? Что там насчитается? Я просто давно не кодирую в Apex, и нет возможности быстро накидать тестовый стенд. Как это поле смапится на Integer? Будет эксепшен или оно просто округлится в 1 и будет считаться как Integer?
Просто ближе к примеру - это поле Quantity и есть куча локиги по Prices Calculation где оно используется. По бизнес логике Quantity не может быть меньше 1. И что же блин у них там считается? Короче я в шоке. Мне то пофиг, я сейчас просто буду округлять после экспорта перед вставкой у себя в базу. НО БЛИН что это за бред!? В базе имеем одно, а по факту на UI видим другое. Хотя в SF это не единственный прикол. Можно не удивляться. :smiley: