Esta es la cuestión que recientemente se nos ha planteado en el CIIN a la hora de poder integrar SharePoint como fuente de información en otro sistema de manera qué este pudiese conocer, a partir de una consulta inicial, qué cambios se habían producido en el sitio en cuanto a nuevas listas creadas, nuevos elementos de sitio creados, etc. En este primer post introduciré algunas de las posibilidades que tenemos disponibles al respecto:
Enfoque PULL
O lo que es lo mismo, es la aplicación de forma proactiva la que va a consultar la información que ha cambiado en los sitios de SharePoint que se estén siguiendo. Las posibilidades que tenemos para conocer estos cambios son las siguientes:
-
Modelo de objetos en cliente (sólo para SharePoint 2010) para obtener la colección de cambios que se hayan producido usando para ello el método GetChanges() qué está disponible en los siguientes objetos:
-
Servicios web (SharePoint 2007 y SharePoint 2010), y en concreto los servicios web lists.asmx y SiteData.asmx, que disponen de varios métodos para conocer esta colección de cambios:
-
SiteData.asmx:
-
SharePoint 2007:
-
SharePoint 2010:
-
Servicio web lists.asmx
-
SharePoint 2007:
-
SharePoint 2010:
-
Modelo de objetos en servidor (SharePoint 2007 y SharePoint 2010) que de forma análoga al modelo de objetos en cliente permite conocer la colección de cambios a través del método GetChanges() con varias sobrecargas en este caso:
-
SharePoint 2007:
-
SharePoint 2010:
Aparte de estas opciones, y sobre la misma base, tenemos otras alternativas como:
-
Las auditorías de SharePoint que nos permiten monitorizar lo que está sucediendo sobre elementos de lista, listas, sitios, etc. Lo interesante de las auditorias es qué se pueden atacar de forma programática como se ve en este post en lo que a la activación de las mismas se refiere (es con PowerShell, pero
la idea es la misma). En el caso de auditorías, contamos con clases interesantes en el modelo de objetos como:

-
Otras referencias:
- Configuración de las auditorías: