Sitecore 8 (редакция 150121), Analytics (MongoDB), ошибка "Нет строки в позиции 0."
Привет. Моя проблема в Sitecore 8 Analytics - это ОШИБКА "Нет строки в позиции 0.", когда я просматриваю вкладки "ПРОФИЛЬ" и "ОБЗОР" не анонимного пользователя в "ПРОФИЛЕ ОПЫТА".
Эта ошибка существует также в обновлениях Sitecore 8. Что является причиной этой ошибки?
1 ответ
Итак, эта проблема вызвана ошибкой разработчиков Sitecore.
Проанализировав код класса "FindBestPatternMatchAndApplyToProfileInfo" и его методы, я смог найти пустой массив (свойство " Rows " в объекте " dataTable "), взятый из элементов. Это вызывает исключение из диапазона.
Эта проблема может быть исправлена путем реализации вашего собственного класса (копия FindBestPatternMatchAndApplyToProfileInfo) с добавлением выражения "if" для проверки поля "Rows ":
private bool ApplyPatternToOneProfile(ReportProcessorArgs args, DataRow profileRow)
{
bool flag = true;
if (DataRowExtensions.Field<Guid>(profileRow, Sitecore.Cintel.Reporting.Contact.ProfileInfo.Schema.ProfileId.Name) == Guid.Empty)
flag = false;
ViewParameters retrievingBestPattern = CustomProcessorViewPatternProfile.GetParametersForRetrievingBestPattern(args, profileRow);
DataTable dataTable = CustomerIntelligenceManager.ViewProvider.GenerateContactView(retrievingBestPattern).Data.Dataset[retrievingBestPattern.ViewName];
if (dataTable.Rows != null && dataTable.Rows.Count != 0)
{
if (!this.TryFillData<Guid>(profileRow, Sitecore.Cintel.Reporting.Contact.ProfileInfo.Schema.BestMatchedPatternId, dataTable.Rows[0], Sitecore.Cintel.Reporting.Contact.ProfilePatternMatch.Schema.PatternId.Name) || !this.TryFillData<string>(profileRow, Sitecore.Cintel.Reporting.Contact.ProfileInfo.Schema.BestMatchedPatternDisplayName, dataTable.Rows[0], Sitecore.Cintel.Reporting.Contact.ProfilePatternMatch.Schema.PatternDisplayName.Name) || !this.TryFillData<double>(profileRow, Sitecore.Cintel.Reporting.Contact.ProfileInfo.Schema.BestMatchedPatternGravityShare, dataTable.Rows[0], Sitecore.Cintel.Reporting.Contact.ProfilePatternMatch.Schema.PatternGravityShare.Name))
flag = false;
}
else
{
flag = false;
}
return flag;
}
ОБНОВИТЬ:
В качестве альтернативы вы можете решить эту проблему, добавив хотя бы одну шаблонную карточку в Панель управления маркетингом Sitecore для соответствия профилю. ( https://developers.coveo.com/display/public/SC201503/Understanding+Profiles+and+Pattern+Cards;jsessionid=D03AC5B4F9F4B4E588538BC977BE2F6D)