2015-08-13 1 views
1

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

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

 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 деятельности, которая layouted как {Publisher} says: {Value} в Ressource файлов, так что я предоставить Value свойство моего ActivityEvent ,

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

Может ли кто-нибудь помочь?

+0

Вы можете получить больше удовольствия от этого, если вы переместите этот вопрос на сайт Sharepoint StackExchange. Это достаточно специфично, что ребята, с которыми вы хотите ответить на этот вопрос, болтаются там. – ghangas

ответ

0

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

Смежные вопросы