Crear tareas por codigo – SharePoint 2010

 

Partimos del hecho que tenemos una lista de tareas [OperacionesMensuales] que necesitamos poblar en automático desde un proceso externo o simplemente porque son recurrentes y queremos automatizar su carga para no repetir el proceso mes a mes.

Seria una lista como esta:

clip_image002

En este escenario vamos a suponer que la lista de tareas llega desde un archivo texto como este:

clip_image003

Donde cada valor esta separado por el carácter pipe ‘|’.

Ejemplo: tarea1|descripcion1|SAYAKA\norberto.planchart|01-10-2012

Para cumplir con esta meta vamos a crear un proyecto de consola y le agregamos una referencia a Microsoft.SharePoint. En las propiedades del proyecto nos aseguramos que el framework usado sea el 3.5

clip_image004

Y que la plataforma destino sea x64

clip_image005

Con eso tendremos configurado el proyecto.

¡Ahora vamos con el código!

Lo dejo comentado para facilitar la explicación, aunque si estas en esto notaras que es auto-explicativo😉 Lo único que considero digno de aclarar es que como es de esperar el usuario que usemos en web.AllUsers debe estar registrado para ese sitio.

Nota: Para este ejemplo esta en código la ruta del sitio, la ruta del archivo de tareas y el nombre de la lista lo que claro esta debería ser recibido por parámetro o leído desde algún repositorio externo.

using System;
using System.Text;
using Microsoft.SharePoint;
using System.IO;

namespace CreateTask
{
    class Program
    {
        static void Main(string[] args)
        {
            string _rutaSitio = "http://sayaka:19317/";
            using (SPSite site = new SPSite(_rutaSitio))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    string _rutaArchivo = "C:\\ProcesosMensuales\\ListaTareasMensuales_10.txt";
                    using (StreamReader reader = new StreamReader(_rutaArchivo))
                    {
                        string _nombreLista = "OperacionesMensuales";
                        SPList listOctubre = web.Lists[_nombreLista];
                        string _lineaTarea;
                        while ((_lineaTarea = reader.ReadLine()) != null)
                        {
                            SPListItem item = listOctubre.Items.Add();
                            item["Title"] = _lineaTarea.Split('|')[0];
                            item["Description"] = _lineaTarea.Split('|')[1];
                            item["Assigned To"] = web.AllUsers[_lineaTarea.Split('|')[2]];
                            item["Due Date"] = _lineaTarea.Split('|')[3];
                            //y asi con todas las demas propiedades requeridas...
                            item.Update();
                            listOctubre.Update();
                            Console.WriteLine("Agregada: " + _lineaTarea.Split('|')[0]);
                            System.Threading.Thread.Sleep(1000);//damos 1 segundo para no saturar🙂
                        }
                        Console.WriteLine("Operacion realizada con exito!!!");
                        Console.ReadLine();
                    }
                }
            }
        }
    }
}

clip_image007

Al ejecutarlo deberíamos obtener algo como:

clip_image009

Y al revisar nuestra lista de tareas deberíamos tener cargadas todas nuestras tareas.

clip_image011

Aqui les dejo el proyecto: http://dl.dropbox.com/u/26490398/c/nplanchart.wordpress.com_CreateTask.zip

Una respuesta a “Crear tareas por codigo – SharePoint 2010

  1. Pingback: Agenda de la Comunidad « MSExpertos

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s