miércoles, 8 de septiembre de 2010

Característica para desplegar formularios de InfoPath con Visual Studio 2010

En este artículo os voy a mostrar cómo desplegar un formulario creado con InfoPath mediante una característica de SharePoint 2010 utilizando para ello las funcionalidades de Visual Studio 2010. Para empezar a trabajar necesitaremos, primero, diseñar un formulario. Para ello abrimos InfoPath Designer 2010 y seleccionamos la plantilla de formulario vacío.

image

Una vez creado, añadimos algún texto y algún campo para que empiece a tener cara y ojos. De momento no lo complicaremos mucho más. Lo dejamos, de momento, parecido a lo siguiente:

image

Si necesitamos que nuestro formulario se pueda mostrar en un explorador, necesitamos determinar su nivel de seguridad. Para ello vamos a las opciones avanzadas del formulario.

image

En el apartado de seguridad y confianza desactivamos la opción de detectar automáticament el nivel de seguridad y seleccionamos confianza total.

image

Una vez hecho esto ya estamos preparados para publicar el formulario.

image

Para poder utilizar nuestro formulario desde una característica tenemos que publicarlo a una ubicación de red o recurso compartido.

image

En la primera pantalla del asistente tenemos que especificar la ruta donde queremos guardar el fichero (necesitaremos este dato más adelante) y el nombre que le queremos dar a nuestro formuario.

image 

En la última pantalla nos tenemos que asegurar de no indicar ningún valor al dato que nos solicita, ya que no queremos que la url del portal quede guardada dentro del formulario.

image

A countinuación abrimos Visual Studio 2010 y creamos un nuevo proyecto de tipo Proyecto Vacío de SharePoint que encontraremos en el apartado SharePoint 2010 del selector de plantillas. Cuando Visual Studio nos pregunte la dirección de un sitio sobre el cual depurar nuestro código, indicamos la ruta de algún sitio nuestro de SharePoint que permita el uso de Forms Services y seleccionamos la opción de desplegar la solución de tipo granja, ya que vamos a crear ficheros bajo la carpeta 14.

Una vez creado el proyecto, añadimos un nuevo elemento de tipo Modulo y le indicamos como nombre TemplateModule. El explorador de soluciones quedará similar al de la siguiente figura:

image

Visual Studio ha creado para nosotros una estructura básica para desplegar elementos en un portal de SharePoint. Los pasos a seguir a partir de ahora son los siguientes:

  1. Eliminamos el fichero Sample.txt que se ha creado por defecto dentro de nuestro módulo.
  2. Arrastrámos a esa misma ubicación el fichero .xsn que hemos publicado anteriormente (lo encontraremos en la ruta que hemos indicado en el asistente de publicación).
  3. Vamos a las propiedades del fichero .xsn y cambiamos la ubicación de despliegue, que debe pasar de ser {SharePointRoot}\Template\Features\{FeatureName}\TemplateModule\ a {SharePointRoot}\Template\Features\{FeatureName}\. Para ello bastará con que borremos el valor de la propiedad Path. Hacemos lo mismo con el fichero Elements.xml. Sin entrar demasiado en detalles acerca del por qué de esta acción, comentar que es necesario que los ficheros .xsn estén en la carpeta raiz de la característica para que todo funcione correctamente.
  4. Vamos a las propiedades del módulo y accedemos a las propiedades de la característica. Tenemos que añadir las siguientes propiedades:
    1. OriginalFileName: MiPrimerFormulario.xsn
    2. FeatureName: MiPrimerFormulario_Feature1
  5. Hacemos doble click en la característica Feature1 que se ha creado automáticamente al crear nuestro módulo para acceder a sus propiedades, y hacemos los siguientes cambios:
    1. Scope: Site
    2. Receiver Assembly: Microsoft.Office.InfoPath.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c
    3. Receiver Class: Microsoft.Office.InfoPath.Server.Administration.XsnFeatureReceiver
  6. Editamos el archivo Elements.xml de nuestro módulo para que sea como el del listado siguiente:
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Module Name="TemplatesModule" Url="FormServerTemplates" RootWebOnly="TRUE">
    <File Url="MiPrimerFormulario.xsn" Name="MiPrimerFormulario.xsn" Type="GhostableInLibrary" />
  </Module>
</Elements>

Con esto hemos terminado nuestra solución. Para comprobar que está funcionando correctamente, la desplegamos en nuestro sitio de SharePoint y accedemos primero a la Administración Central de SharePoint, al apartado de gestión de plantillas de formulario (/_admin/ManageFormTemplates.aspx). Como veremos, el formulario que acabamos de crear se encuentra en la lista.

image

Finalmente, accedemos a la gestión de plantillas de formulario de nuestro sitio (/FormServerTemplates/Forms/All%20Forms.aspx) y observamos que, al igual que antes, el formulario se encuentra en la lista de formularios disponibles en la colección de sitios.

image

Como última prueba, pulsando sobre el enlace debería abrir en el navegador nuestro navegador el formulario que creamos al principio del artículo.

Ahora disponemos de un paquete de solución de SharePoint (WSP) para desplegar automáticante nuestro formulario en cualquier servidor de SharePoint que permita el uso de Forms Services.

1 comentarios:

Anónimo dijo...

Superútil David!

Felicidades!

Ramon Torras