lunes, 25 de junio de 2012

Background Folder Copy for Sharepoint 2010

He decidido subir a codeplex este proyecto que hice hace muchísimo tiempo, creo que aun puede ser de utilidad a mucha gente, lastima no haberlo hecho antes.

http://foldercopysp2010.codeplex.com

Se trata de un pequeño proyecto de un servicio windows que revisa constantemente una carpeta en busca de ficheros nuevos o modificados, para subirlos a una librería documental en Sharepoint 2010.

Es algo parecido a una sincronización ... pero unidireccional (del Pc a Sharepoint 2010)

He usado el Client Runtime de Sharepoint 2010 para una correcta implementación.


Copia de Forma automática los ficheros depositados en una carpeta windows a una Librería de documentos en Sharepoint 2010.

Se han combinado un servicio windows FileSystemWatcher (se incluye instalador) con las rutinas necesarias para copiar ficheros (binarios) a una Libreria de documentos en sharepoint 2010.

Lo que conseguimos es subir y actualizar ficheros de una manera mas comoda.

Los usos que yo le he dado:

  • Subida de ficheros escaneados de forma automática.
  • Interface con un Ftp al usar la misma carpeta.

En la carpeta donde se instala la dll (con el proyecto de instalación) hay un fichero app.config

<?xml version="1.0"?><configuration><startup><supportedRuntime version="v2.0.50727"/></startup><appSettings><add key="RutaCopiado" value="C:\FolderToSharepointCopier\RutaCopiado"/><add key="RutaSharepoint" value="http://servidor/LibreriaDocumentos/"/> </appSettings></configuration
 
En este fichero se definen las carpetas de origen y destino (por defecto sobreescribe)
Al instalar te pide un usuario de dominio (que tiene que tener permiso en Moss2010) con el que se copian los ficheros.



Espero que os resulte educativo y útil.
Roberto Marcos.

martes, 19 de junio de 2012

Actualizar el InfoPath de edición de ListItems en Sharepoint 2010

Cuando customizamos los formularios de alta y modificacion de un listItem una de las opciones mas cómodas es hacerlo usando Infopath 2010.

Todo es muy bonito al desarrollarlo y ponerlo en un entorno de pruebas, cuando lo ponemos en producción es fácil, hacemos un paquete STP de la lista customizada, desplegamos y listo, tenemos una lista Vacia preparada para comenzar a recoger elementos a traves del Infopath.

Los problemas aparecen cuando tras ponerlo en producción ... pasa el tiempo y claro ahora la lista esta repleta de datos, entonces es cuando las modificaciones se convierten en un "dolor" ya que no podemos borrarla y desplegar de nuevo el STP actualizado.

A simple vista y desde Infopath no se puede modificar la URL de la lista a la que esta modificando los formularios de  View y Edit
Un usuario avispado puede rebuscar un poco en el apartado conexiones de datos, pero sin éxito ya que todo apunta a que por aquí tendría que estar la cosa, pero va a ser que no.

Problema:
Sustituir/Actualizar el formulario de edición de List Items de una lista customizada con Infopath 2010.

Solución:
1º Si hemos creado campos nuevos en Desarrollo los creamos también en producción.
2º Abrimos 2 Sharepoint designer uno contra Desarrollo y otra contra Producción. 
3º Mediante Sharepoint Designer 2010 podemos acceder a la lista en cuestión en ambos entornos.
4º Abrimos la carpeta "Item" en la que podemos ver un fichero llamado template.xsn
5º Con hacer un COPY-PASTE de este fichero desde Desarrollo a Produccion y ya esta todo listo.


Solución Pro:
Creamos un modulo de aprovisionamiento que despliegue (y reemplace) el fichero en cuestión con nuestro paquete WSP
Recuerda marcarlo con GhostableInLibrary para evitar problemas.
image
Si hay que crear campos nuevos... en el feature activate es donde tendríamos que hacerlo.


Nota:
Los infopath tienen una importante limitación cuando los usamos para customizar listas...no pueden usar grupos (o parent child con otras listas) a grandes rasgos solo pueden crear/editar elementos en una sola lista a la vez.

Mis Agradecimientos a Lynton Titus que me ilustró en este tema.
Esperamos que os sea de ayuda.