Работа с типом Decimal в библиотеке XrmServiceToolkit

Особенности использования значений типа Decimal при работе с JavaScript-библиотекой XrmServiceToolkit.

Используя JS-библиотеку XrmServiceToolkit, при попытке задать для атрибута типа Decimal значение, в котором дробная часть равна 0 (например 100.00 и т.п.), получаем ошибку Incorrect attribute value type System.Int32.

var be = new XrmServiceToolkit.Soap.BusinessEntity("new_entity", id);
be.attributes['new_sum'] = 100.00; // будет ошибка на этом параметре
be.attributes['new_total_sum'] = 200.50; // обработается корректно
XrmServiceToolkit.Soap.Update(be);

Происходит это потому, что в JS не в состоянии отличить целое число от дробного с нулевой дробной частью.

Для того, что бы библиотека корректно обработала значение типа Decimal с нулевой дробной частью необходимо задать значение таким вот образом:

var sum = 100.00;
be.attributes['new_sum'] = { 'type': 'number', 'value': sum.toFixed(2) };

About the author

Добавить комментарий

Сказать спасибо

Способ платежа:

Подписаться на обновления

Укажите свой e-mail чтобы получать уведомления о новых статьях.

Присоединиться к еще 2 подписчикам