2015-08-13 5 views
1

Je dois ajouter des notifications personnalisées au flux d'actualités personnel sur les MySites des utilisateurs. J'ai trouvé plusieurs tutoriels et exemples de code pour SharePoint 2010 sur le net et j'ai essayé de faire la même chose avec SharePoint 2013. Ils sont tous sur la création de ActivityEvents avec le ActivityManager.Événement d'activité SharePoint 2013 dans Newsfeed

Voici le code que j'ai essayé:

 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); 

Le Id 17 dans la fonction CreateActivityEvent est pour le type d'activité StatusMessage, qui est layouted comme {Publisher} says: {Value} dans les fichiers Ressource, donc je fournir la propriété Value de mon ActivityEvent .

Le code s'exécute sans aucune exception et dans la base de données User Profile Service Application_ProfileDB je peux voir les bonnes entrées apparaissent dans la table ActivityEventsConsolidated. Mais l'activité n'est pas visible dans le flux d'activité, ni sur celui du propriétaire, ni sur celui de l'éditeur, même si ces personnes se suivent. J'ai exécuté manuellement le job de flux d'activité dans l'autorité de certification pour mettre à jour le flux d'activité. En outre, j'ai essayé de faire la même chose avec ActivityTypes personnalisé avec propres fichiers de ressources, même résultat: L'entrée dans la table ActivityEventsConsolidated (ou ActivityEventsPublished si Owner = Publisher) apparaissent, mais aucune entrée sur le MySite.

Quelqu'un peut-il aider?

+0

Si vous déplacez cette question vers le site Sharepoint StackExchange, vous obtiendrez peut-être plus d'intérêt. C'est assez spécifique pour que les gars que vous voulez répondre à cette question soient là-bas. – ghangas

Répondre

0

J'ai moi-même trouvé la solution à ce problème. Dans Central Administration, Setup MySites, vous devez activer le paramètre Enable SharePoint 2010 activity migration dans la section Newsfeed afin de prendre en charge les activités héritées SP1010 dans SP2013.