Событие активности SharePoint 2013 в канале новостей

Мне нужно добавить настраиваемые уведомления в личную ленту новостей на личных сайтах людей. Я нашел в сети несколько руководств и примеров кода для SharePoint 2010 и попытался сделать то же самое с SharePoint 2013. Все они посвящены созданию ActivityEvents с помощью ActivityManager.

Вот код, который я пробовал:

        var targetSite = new SPSite("URL to MySite webapp");
        SPServiceContext context = SPServiceContext.GetContext(targetSite);
        var userProfileManager = new UserProfileManager(context);

        var ownerProfile = userProfileManager.GetUserProfile("domain\\user1");
        var publisherProfile = userProfileManager.GetUserProfile("domain\\user2");

        var activityManager = new ActivityManager(ownerProfile, context);

        Entity publisher = new MinimalPerson(publisherProfile).CreateEntity(activityManager);
        Entity owner = new MinimalPerson(ownerProfile).CreateEntity(activityManager);
        ActivityEvent activityEvent = ActivityEvent.CreateActivityEvent(activityManager, 17, owner, publisher);
        activityEvent.Name = "StatusMessage";
        activityEvent.ItemPrivacy = (int)Privacy.Public;
        activityEvent.Owner = owner;
        activityEvent.Publisher = publisher;
        activityEvent.Value = "HELLOOOO";
        activityEvent.Commit();

        ActivityFeedGatherer.BatchWriteActivityEvents(new List<ActivityEvent> { activityEvent }, 0, 1);

Идентификатор 17 в функции CreateActivityEvent относится к типу активности StatusMessage, который в файлах ресурсов расположен как {Publisher} says: {Value}, поэтому я предоставляю свойство Value моего ActivityEvent.

Код выполняется без каких-либо исключений, и в базе данных User Profile Service Application_ProfileDB я вижу, что правильные записи появляются в таблице ActivityEventsConsolidated. Но активности не видно в ленте активности, ни у Владельца, ни у Издателя, хотя эти люди подписаны друг на друга. Я запустил задание ленты активности в ЦС вручную, чтобы обновить ленту активности. Кроме того, я попытался сделать то же самое с пользовательскими ActivityTypes с собственными файлами ресурсов, тот же результат: запись в таблице ActivityEventsConsolidated (или ActivityEventsPublished, если владелец = издатель) появляется, но нет записей на личном сайте.

Кто-нибудь может помочь?


person LInsoDeTeh    schedule 13.08.2015    source источник
comment
Вы можете получить больше внимания к этому вопросу, если переместите этот вопрос на сайт Sharepoint StackExchange. Это достаточно конкретно, чтобы парни, которым вы хотите ответить на этот вопрос, болтались там.   -  person ghangas    schedule 18.08.2015


Ответы (1)


Я сам нашел решение этой проблемы. В Central Administration, Setup MySites необходимо включить параметр Enable SharePoint 2010 activity migration в разделе Newsfeed, чтобы поддерживать устаревшие действия SP1010 в SP2013.

person LInsoDeTeh    schedule 19.08.2015