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?
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