Procedimiento para crear un nuevo tipo de actividad

Última modificación: martes, 30 de marzo de 2010

Hace referencia a: SharePoint Server 2010

Microsoft SharePoint Server 2010 permite ampliar la página Mi suministro de noticias en el host de Mi sitio creando nuevos tipos de actividad que puede usar para crear e insertar eventos en suministros de noticias de usuarios. El siguiente método de ejemplo muestra cómo crear un nuevo objeto ActivityType y asociarlo a un objeto ActivityTemplate y, después, asociarlo (a través de ese ActivityTemplate) al archivo de recursos que define cómo se muestra el evento en los suministros de noticias. Vea Ejemplo de código: aplicación de consola de eventos de actividad de multidifusión y Ejemplo de código: envío de un vínculo al evento de actividad de los compañeros para obtener ejemplos de código que muestren cómo realizar las tareas incluidas en este artículo. En este tema se supone que ha creado e implementado un archivo de recursos (.resx) en el directorio Archivos de programa\Archivos comunes\Microsoft Shared\Web Server Extensions\14\Resources y que ha agregado las siguientes referencias al proyecto de Microsoft Visual Studio 2010:

  • Microsoft.SharePoint

  • Microsoft.Office.Server

  • Microsoft.Office.Server.UserProfiles

  • System.Web

Creación de un nuevo tipo de actividad

Cada objeto ActivityType contiene una propiedad ActivityTemplates. Esta propiedad contiene una colección de objetos ActivityTemplate. La clase ActivityTemplate contiene propiedades que la conectan con plantillas para mostrar (definidas en los archivos de recursos) que debe crear e implementar en cualquier aplicación personalizada que cree para crear y recopilar eventos de actividades en una fuente de actividades. Para obtener instrucciones acerca de cómo crear un archivo de recursos, consulte el tema sobre la creación de archivos de recursos. Debido a que crea un ActivityType específico sólo una vez, la solución debe asegurar que no se creen duplicados. El método de ejemplo siguiente muestra cómo crear un objeto ActivityType nuevo y definir su presentación.

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

Vea también

Referencia

Microsoft.Office.Server.ActivityFeed

Conceptos

Procedimiento para obtener eventos para usuarios

Procedimiento para crear e insertar eventos en el suministro de noticias de un usuario

Otros recursos

Microsoft SharePoint Server 2010: aplicación de consola de fuentes de actividades

Creación de archivos de recursos