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)

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