Sitecore Profile.Score(строка, число с плавающей запятой), имеющее проблемы с десятичными значениями

Я работаю на sitecore site rev 120706 DMS и основной.

Мы добавляем персонажи на некоторые страницы и получаем необычные результаты с дробными значениями, когда пытаемся добавить их с помощью метода Score (string, float). у нас есть опережающее значение 0,5 из-за того, что на предыдущую страницу добавлены два профиля, один со значением 1, а другой со значением 0. При отправке формы мы хотим добавить один к значению и использовать Profile.Score("привести", 1) который заменяет.5 на 1 вместо 1, чтобы получить 1,5 . Когда значение равно 1, мы успешно получаем 2.

Как мы можем заставить метод Score реагировать согласованно?

1 ответ

Решение

Sitecore, очевидно, имеет проблему в своем коде с использованием int.Parse вместо float.Parse

Я нашел место в коде, где появляется ошибка. Это в методе Sitecore.Analytics.Data.VisitProfile.Parse(). Он использует int.Parse вместо float.Parse при чтении значений профиля из базы данных. Эта проблема была исправлена ​​в Sitecore 6.6.0 Update-4. Пожалуйста, смотрите ссылочный номер 376088 в примечаниях к выпуску. К сожалению, нет простого способа исправить код. Пожалуйста, рассмотрите возможность обновления вашего решения до 6.6.0 Update-4. Тем временем я бы предложил использовать более высокие значения баллов в ваших профилях, чтобы итоговое значение всегда было больше 1. Этот подход работает на моей стороне. Пожалуйста, дайте нам знать, если у вас возникли проблемы с этим.

Чтобы решить эту проблему, нужно просто умножить значения, которые мы использовали, на 10, чтобы избежать int с sitecore, а не с плавающей запятой.

Другие вопросы по тегам