Gewusst wie: Erstellen eines neuen Aktivitätstyps
Letzte Änderung: Dienstag, 30. März 2010
Gilt für: SharePoint Server 2010
Microsoft SharePoint Server 2010 ermöglicht es Ihnen, die Seite Mein Newsfeed auf dem Host Meine Website zu erweitern, indem Sie neue Aktivitätstypen hinzufügen, auf deren Basis Sie neue Ereignisse erstellen und in Benutzernewsfeeds einfügen können. Anhand der Beispielmethode weiter unten wird gezeigt, wie ein neues ActivityType-Objekt erstellt und mit einem ActivityTemplate-Objekt verknüpft und dann (über dieses ActivityTemplate-Objekt) mit der Ressourcendatei verknüpft wird. Diese Ressourcendatei definiert, wie das Ereignis in Newsfeeds angezeigt wird. Codebeispiele, mit denen das Ausführen der in diesem Thema enthaltenen Aufgaben veranschaulicht wird, finden Sie unter Codebeispiel: Multicasting von Aktivitätsereignissen (Konsolenanwendung) und Codebeispiel: Aktivitätsereignis "Send a Link to Your Colleagues". Im Rahmen dieses Themas wird vorausgesetzt, dass Sie eine Ressourcendatei (RESX) erstellt und im Verzeichnis \Programme\Gemeinsame Dateien\Microsoft Shared\Web Server Extensions\14\Resources bereitgestellt haben und dass Sie dem Microsoft Visual Studio 2010-Projekt die folgenden Verweise hinzugefügt haben:
Microsoft.SharePoint
Microsoft.Office.Server
Microsoft.Office.Server.UserProfiles
System.Web
Erstellen eines neuen Aktivitätstyps
Jedes ActivityType-Objekt enthält eine ActivityTemplates-Eigenschaft. Diese Eigenschaft enthält eine Auflistung aus ActivityTemplate-Objekten. Die ActivityTemplate-Klasse enthält Eigenschaften, die die Klasse mit (in Ressourcendateien definierten) Anzeigevorlagen verknüpfen. Sie müssen diese Anzeigevorlagen mit jeder benutzerdefinierten Anwendung erstellen und bereitstellen, die Sie zum Erstellen und Erfassen von Aktivitätsereignissen in einem Aktivitätsfeed entwerfen. Anweisungen zum Erstellen einer Ressourcendatei finden Sie unter Erstellen von Ressourcendateien. Da Sie ein bestimmtes ActivityType-Objekt nur einmal erstellen, sollte die Lösung sicherstellen, dass keine Duplikate erstellt werden. Anhand der folgenden Beispielmethode wird gezeigt, wie ein neues ActivityType-Objekt erstellt und die zugehörige Anzeige definiert wird.
private void SetupCustomActivity(SPSite site)
{
string resFile = "name of your resource (.resx) file";
//Get an SPServiceContext from the site.
SPServiceContext context = SPServiceContext.GetContext(site);
//Create a UserProfileManager.
UserProfileManager upm = new UserProfileManager(context);
//Get the current user's profile.
UserProfile p = upm.GetUserProfile(true);
//Create an activity manager.
ActivityManager am = new ActivityManager(p, context);
//Make sure that the current user has permission to do this
bool hasrights = am.PrepareToAllowSchemaChanges();
// Create an activity application.
ActivityApplication app = am.ActivityApplications["Name of Activity Application"];
if (app == null)
{
app = am.ActivityApplications.Create("Name of Activity Application");
app.Commit();
}
//Create an ActivityType; check to see whether it already exists.
ActivityType activityType = app.ActivityTypes["Name of Activity Type"];
if (activityType == null)
{
activityType = app.ActivityTypes.Create("Name of Activity Type");
//Associate the ActivityType with the resource file that you have deployed and with the
//localized string name stored in the resource file.
activityType.ActivityTypeNameLocStringResourceFile = resFile;
activityType.ActivityTypeNameLocStringName = "Activity Type Localized String Name";
activityType.IsPublished = true;
activityType.IsConsolidated = true;
activityType.Commit();
}
//Create a single value ActivityTemplate; check to see whether it already exists.
ActivityTemplate urlTemplateSV = activityType.ActivityTemplates[ActivityTemplatesCollection.CreateKey(false)];
if (urlTemplateSV == null)
{
urlTemplateSV = activityType.ActivityTemplates.Create(false);
//Associate the template with the resource file that you have deployed and with the
//localized string name stored in the resource file.
urlTemplateSV.TitleFormatLocStringResourceFile = resFile;
urlTemplateSV.TitleFormatLocStringName = "Activity Template Localized String Name ";
urlTemplateSV.Commit();
}
}
Siehe auch
Referenz
Microsoft.Office.Server.ActivityFeed
Konzepte
Gewusst wie: Abrufen von Ereignissen für Benutzer
Gewusst wie: Erstellen und Einfügen von Ereignissen in Benutzernewsfeeds
Weitere Ressourcen
Microsoft SharePoint Server 2010: Aktivitätsfeeds-Konsolenanwendung