document25

Upload: oscarmyo

Post on 09-Oct-2015

12 views

Category:

Documents


0 download

TRANSCRIPT

  • 5/20/2018 25

    1/21

    4/24/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=82824

    InfoPath 2010 y Forms Services

    1. Introduccin

    La mayor parte de las aplicaciones de negocio necesitan la informacin que introduce el usuario. Umanera habitual de pedir esta informacin es e l uso de formularios. InfoPath es la herramienta ideala gama Office 2010 para construir formularios electrnicos.

    Al contrario que con la versin anterior, todos los formularios de lista, librera o flujo de trabajoSharePoint 2010, son formularios InfoPath, de ah la importancia de este producto.

    InfoPath tambin est presente en otras herramientas Office 2010. Por ejemplo, permite mostrar "pane les de informacin de documento" (document information panel) en Word.

    El diseo de formularios en InfoPath est basado en tres ejes principales:

    La validacin de datos: permite verificar la informacin introducida por el usuario para evque los datos invlidos se persistan.

    El diseo: InfoPath proporciona numerosos controles que permiten construir formula

    complejos. El concepto de vista permite mejorar la experiencia de usuario, fraccionando formulario en varias "pginas" que se pueden mostrar siguiendo el contexto. InfoPath tambcontiene un concepto de formateo condicional que permite mostrar o no determinados controde su formulario.

    Las conexiones de datos: los datos son el centro de los formularios InfoPath. Todo formulacontiene, al menos, una fuente de datos. Se trata de la fuente de datos principal que contielos datos del formulario en s mismo (el valor de sus campos). Tambin se pueden aadir otfuentes de datos para integrar los que vienen de fuentes externas.

    Volvamos al contexto de SharePoint 2010. InfoPath le va a permitir personalizar los formulaestndares. Estos son los formularios que permiten ver, aadir o modificar elementos de una lista ouna librera. Aadiremos a estos formularios aquellos que permiten interactuar con un flujo de traba j

    La modificacin de estos formularios es muy sencilla y no necesita el uso de cdigo. Un clic en la bade herramientas de SharePoint abre el formulario actual en modo edicin en InfoPath. Otro clicInfoPath publica el nuevo formulario en SharePoint.

  • 5/20/2018 25

    2/21

    4/24/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=82824

    InfoPath tambin le permite desarrollar verdaderas aplicaciones de negocio que utilicen un formulade entrada. Los usuarios rellenan un formulario y lo persisten. Los datos del formulario se guardaen una lista SharePoint. Despus, se podrn ejecutar diferentes operaciones sobre estos datos, copor ejemplo la ejecucin de un flujo de trabajo.

    2. Diferencia entre Forms Services e InfoPath

    La diferencia entre InfoPath y Forms Services no s iempre est clara para muchas personas. Se tratados tecnologas d iferentes.

    InfoPath es un producto de la gama Office, como Excel, Word, PowerPoint, etc. Por tanto, se pueusar sin SharePoint, como cualquier otra he rramienta Office.

    Desde esta nueva versin, el cliente InfoPath se divide en dos aplicaciones:

    InfoPath Designer 2010, para el diseo de plantillas de formularios y la publicacin deplantilla en SharePoint.

    InfoPath Filler 2010, para que los usuarios finales rellenen los formularios.

    Forms Services es un servicio de SharePoint que permite mostrar un formulario InfoPath como u

    pgina web y por tanto, usarlo sin que InfoPath est instalado en el puesto cliente. Sin embargo, hque tener presente que los formularios destinados a Form Services no se benefician de todas funcionalidades de InfoPath, al contrario que un formulario que se utiliza en el cliente InfoPath.

    Forms Services est disponible como funcionalidad Enterprise en SharePoint Server 2010.

    3. Personalizacin de los formularios de lista

    Empiece por el uso ms sencillo de InfoPath en SharePoint 2010: la personalizacin de los formula

    de lista. Cada vez que vea, modifique o cree un nuevo elemento en una lista SharePoint, estar frea un formulario de lista presente en una ventana modal.

    Esta ventana es, en realidad, una pgina que contiene un WebPart y muestra un formulario InfoPath

    Como hemos dicho antes, un simple clic en la barra de herramientas permite abrir el formulario en medicin en InfoPath. La accin en cuestin es t en la pestaa Lista.

  • 5/20/2018 25

    3/21

    4/24/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=82824

    Para este ejemplo, usar una lista sencilla de tipo "Lista personalizada" que, por defecto, slo tiuna columna llamada ttulo.

    Vamos a modificar el comportamiento y el diseo de este formulario aadindole una imagenaceptando que los ttulos contengan, al menos, tres caracteres.

    Empiece por aadir una imagen al formulario. Para esto, inserte la imagen desde la pestaaInsertarInfoPath, como lo hara con cualquier otro programa.

    Esta etapa tena por objetivo demostrar la sencillez de uso de InfoPath. Veamos ahora cmo aa

    una regla de validacin sobre e l campo ttulo del formulario.Haga clic en el campo ttulo para seleccionarlo y en Administrar reglasde la pestaa Propiedadesque abrir la seccin de administracin de las reglas para este campo.

  • 5/20/2018 25

    4/21

    4/24/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=82824

    Aada una regla de tipo validacin desde esta seccin. Esta regla slo validar los ttulos que tengal menos, tres caracteres.

    La funcin string-length devuelve la longitud de un texto, el punto (.) significa que la funcin se aplicsobre el propio campo o dicho de otra manera, sobre el que se aplica la regla.

    A continuacin se muestra a qu se debe parecer su nueva regla:

    Veamos ahora cmo publicar nuestro formulario modificado. Como para el caso de la edicin,publicacin se hace en un solo clic. Use el botn Publicacin rpida.

    Para terminar, pruebe su nuevo formulario en SharePoint.

  • 5/20/2018 25

    5/21

    4/24/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=82824

    4. Creacin de lista SharePoint desde InfoPath

    En el ejemplo anterior hemos visto cmo personalizar los formularios de lista en SharePoint. Hem

    descubierto cmo usar InfoPath y Forms Services para crear listas en SharePoint.Arranque InfoPath Designer 2010 y cree un nuevo formulario de tipo Lista SharePoint.

    El asistente le pide definir el site destino, es decir, el site sobre el que se desplegar e l formulario.

  • 5/20/2018 25

    6/21

    4/24/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=82824

    En la ltima etapa del asistente, tiene que definir la lista destino, dentro del site seleccionado enetapa anterior.

    A este nivel, hay disponibles dos opciones: crear una nueva lista o modificar una lista existente. nuestro caso, aada una nueva lista y llmela Mi aplicacin.

    Se abrir un formulario que slo contiene un campo llamado Ttulo. Esto no es una sorpres

  • 5/20/2018 25

    7/21

    4/24/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=82824

    corresponde al tipo de contenido bsico de SharePoint: Element.

    Cuando publique el formulario en la lista, cada campo del formulario se transformar en columnalista. Por tanto, no tiene que preocuparse de la lista durante su desarrollo, todo se har principalmeen InfoPath.

    Va a aadir algunos campos en su formulario. El objetivo es que la lista contenga una coleccin formaciones. Aada algunos controles:

    Para resumir, ha aadido los siguientes campos:

    Descripcin (zona de texto formateada)

    Formador (zona de texto)

    Nivel (lista de seleccin, campo no nulo que debe contener un valor)

    Cuando se han aadido todos los controles, no olvide renombrar los campos del origen de daprincipal. Esto se puede hacer desde la pestaa Propiedadesde la barra de herramientas, cuandoselecciona el control.

  • 5/20/2018 25

    8/21

    4/24/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=82824

    ste es e l nombre que se utilizar para crear las columnas en la lista SharePoint. Como se ha explicanteriormente, el campo Nivel es una lista de seleccin. Esta lista puede contener tres valorPrincipiante, Avanzado y Experto.

    Abra las propiedades del control y modifique las opciones de la lista.

    Desde esta ventana, haga tambin que el campo sea obligatorio.

    Haga clic en e l botn Publicacin rpidapara crear la nueva lista y publicar el formulario.

    Intente aadir un elemento nuevo a la lista para probar su nuevo formulario.

  • 5/20/2018 25

    9/21

    4/24/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=82824

    Acabamos de ver cmo crear una lista en un site basado en una plantilla de formulario InfoPath.

    5. Las fuentes de datos externas

    Hasta ahora hemos usado una nica fuente de datos en nuestros formularios: la fuente de daprincipal o, dicho de otra manera, los datos del formulario en s mismo.

    Las fuentes de datos externas en InfoPath permiten incorporar datos que no pertenecen al formulaEstos datos pueden venir de diferentes orgenes.

    Servicio Web SOAP

    Servicio Web REST

    Biblioteca o lista SharePoint

    Base de datos (slo Microsoft SQL Server)

    Documento XML

    En nuestro ejemplo, vamos a sustituir el campo Formador (que ahora es una simple zona de texto), una lista de seleccin conectada a una lista en nuestro site SharePoint. Esta lista se llama Formadoy contiene una lista de las personas encargadas de los cursos.

    Abra de nuevo el formulario de su primera lista para sustituir la zona de texto Formador por una lidesplegable unida a su nueva lista.

  • 5/20/2018 25

    10/21

    4/24/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=82824

    El objetivo es sustituir una zona de texto por una lista desplegable. Para esto, no es necesario elimiel control inicial, sino crear un nuevo campo en el formulario. InfoPath permite sustituir un control otro de manera muy sencilla.

    Haga clic con el botn derecho del ratn en el control que va a sustituir y seleccione Modificarcontrol- Zona de lista desplegable.

    Ahora slo falta relacionar la zona desplegable con la lista Formadores de su site. Para esto, mueslas propiedades del control.

    Por defecto, los elementos de la lista se tienen que definir de manera esttica. Esto significa que tieque introducir a mano todos los valores posibles. Evidentemente, esto no es lo que queremos nuestro caso.

    Los valores provienen de una fuente de datos externa al formulario:

    Su siguiente accin consiste en definir esta nueva fuente de datos externa. Haga clic en Agregar.

    Se trata de una conexin de recepcin de datos:

  • 5/20/2018 25

    11/21

    4/24/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=82824

    Hacia una lista SharePoint:

    Escriba la direccin del site SharePoint y seleccione la lista Formadores.

    Slo le interesa el campo Titulo, que es el que contiene el nombre del formador. En esta pantatambin puede definir un orden para el resultado devuelto. Esto forma parte de las pequeas mejorespecto a la versin anterior de InfoPath, facilitando la vida de los desarrolladores.

  • 5/20/2018 25

    12/21

    4/24/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=82824

    Finalice el asistente y sa lve su conexin con el nombre Formadores.

    Defina el campo Ttuloal mismo tiempo como valor y como nombre completo. Esto significa que ecampo se presentar en la lista desplegable y se guardar en la lista SharePoint.

    Publique de nuevo el formulario y prubelo. Compruebe que la lista se ha rellenado correctamedesde SharePoint.

  • 5/20/2018 25

    13/21

    4/24/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=82824

    6. Uso de WebPart de formulario InfoPath

    Entre los nuevos WebPart liberados con SharePoint 2010, figura el WebPart de formula

    InfoPath(Forms Services WebPart). Este componente permite presentar cualquier formulario InfoPen una pgina de s ite.

    Mirando un poco ms all, podemos ver en InfoPath una manera de crear WebPart de manera grfsin ningn conocimiento de programacin y sin necesidad de despliegue en el servidor.

    Volvamos al formulario que hemos creado anteriormente. Nuestro objetivo ser aadirlo en una bque contendr, al mismo tiempo, el propio formulario y la lista de elementos ya creados. El formulariomostrar en modo aadir y permitir la creacin de nuevos elementos.

    A continuacin se muestra el resultado final que queremos obtener:

  • 5/20/2018 25

    14/21

    4/24/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=82824

    Se ha aadido una modificacin al formulario anterior: el botn Aadir, que permite persistiformulario.

    Modifique de nuevo el formulario en InfoPath y aada un botn:

    En las propiedades del botn, defina su accin como Enviar:

    Publique de nuevo e l formulario.

    Vaya a la pgina de inicio de su site y aada dos WebPart. En primer lugar, una vista de nuestra lprincipal:

    Y despus el WebPart de formulario InfoPath:

    Modifique las propiedades de este WebPart para que muestre su formulario.

  • 5/20/2018 25

    15/21

    4/24/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=82824

    En este ejemplo, tiene que modificar la lista destino y el comportamiento despus del envo formulario, para que se presente un nuevo formulario vaco despus del envo.

    Observe que el WebPart de formulario InfoPath, le permite integrar realmente sus desarrollos InfoPen sus pginas SharePoint de manera transparente.

    Tambin es posible conectar el WebPart de formulario InfoPath a otro WebPart.

    7. Uso de cdigo en los formularios InfoPath

    Hasta la versin anterior de InfoPath, para usar cdigo en los formularios InfoPath, era necesario un administrador de la granja los desplegara. En efecto, el despliegue del formulario slo se pohacer a travs de la administracin central de SharePoint.

    Gracias a los sandboxed solutions de SharePoint 2010, ahora un administrador de coleccin de spuede desplegar el cdigo. La solucin se ubica en la galera de soluciones de la coleccin de s ites.

    La creacin de cdigo para InfoPath slo se puede hacer en VSTA (Visual Studio Tools foApplication). Desgraciadamente, Visual Studio 2010 no soporta los proyectos InfoPath.

    Vamos a ilustrar el uso de cdigo a travs de un ejemplo sencillo. Vamos a desarrollar un formulario una zona de lista modificable (combo box), conectada a una lista SharePoint que contiene las formude saludo (Sr, Sra). El usuario podr introducir un valor que no est en la lista. En este caso, podemusar cdigo para aadir este nuevo elemento en la lista de frmulas de sa ludo.

  • 5/20/2018 25

    16/21

    4/24/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=82824

    Cree una lista con las frmulas de saludo:

    Abra InfoPath 2010 y cree un nuevo formulario de tipo Biblioteca de formularios SharePoint.

    Aada su combo box y conctela a su lista frmulas de saludo.

  • 5/20/2018 25

    17/21

    4/24/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=82824

    Publique el formulario en una nueva biblioteca de formularios de su site y cree un nuevo elemento.

    Su zona de lista modificable est conectada a su lista SharePoint. Slo le falta aadir el cdnecesario para aadir un nuevo elemento.

    La primera etapa consiste en elegir un lenguaje de programacin para su desarrollo. Podemos elentre Visual Basic.NET y C#.

    El lenguaje que se selecciona por defecto es Visual Basic.NET, ya que histricamente laaplicaciones Office se podan personalizar usando VBA.

  • 5/20/2018 25

    18/21

    4/24/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=82824

    La seleccin del lenguaje se puede hacer desde la barra de herramientas, en la pestaaDesarrollad

    Seleccione C#, ya que ste es el lenguaje elegido para es te libro.

    Ahora puede aadir cdigo al evento Modificado de la zona de lista modificable. Este cdigoejecutar cada vez que la se leccin de la lista se modifique.

    Ahora est en VSTA, dentro del proyecto relacionado con nuestro formulario. Comience por aadir referencia al API de SharePoint. Le ser til para interactuar con nuestra lista de frmulas de saludo

  • 5/20/2018 25

    19/21

    4/24/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=82824

    This.saludos

    MainDataSource.CreateNavigator().SelectSingleNode(/my:misCampos

    /my:Saludos, NamespaceManager)

    private string GetValueOnForm(string xpath)

    {

    XPathNavigator navigator =MainDataSource.CreateNavigator().SelectSingleNode(xpath,

    NamespaceManager);

    if (navigator != null)

    return navigator.Value;

    else

    return String.Empty;

    }

    private void SetValueOnForm(string xpath,string value)

    {

    XPathNavigator navigator =

    MainDataSource.CreateNavigator().SelectSingleNode(xpath,

    NamespaceManager);

    if (navigator != null)

    navigator.SetValue(ValueType);

    }

    public void Saludo_Changed(object sender, XmlEventArgs e)

    {

    using (SPSite site = new

    SPSite(ServerInfo.SharePointSiteUrl.ToString()))

    {

    using (SPWeb web = site.OpenWeb())

    {

    SPList list = web.Lists["Saludos"];

    SPQuery query = new SPQuery();

    query.Query = "" + e.NewValue +

    "";

    if (list.GetItems(query).Count == 0)

    Una cosa importante que hay que entender en el desarrollo InfoPath, es que los controles formulario estn relacionados con la fuente de datos principal del formulario. Esta fuente de datoses otra que un archivo XML. Esto significa que la nica manera de interactuar con estos controlesleer y modificar el archivo XML de la fuente de datos.

    Imagine que su zona de lista modificable se llama saludosy es imposible usarla como en una aplicacWindows o web:

    Tiene que usar XPATH, por ejemplo, como sigue:

    Para simplificarle la vida, puede crear dos mtodos que le permitirn leer y modificar el valor decontrol en el formulario:

    Truco: para conocer fcilmente la ruta XPATH de un elemento de su formulario, haga clic con ebotn derecho del ratn en el explorador de la fuente de datos y haga clic en Copiar XPath. Lruta se copiar en su portapapeles.

    Escriba ahora el cdigo en su evento Modificadode la zona de lista modificable.

  • 5/20/2018 25

    20/21

    4/24/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=82824

    {

    SPListItem item = list.AddItem();

    item["Titulo"] = e.NewValue;

    web.AllowUnsafeUpdates = true;

    item.Update();

    web.AllowUnsafeUpdates = false;

    }

    }

    }

    }

    using (SPSite site = new

    SPSite(ServerInfo.SharePointSiteUrl.ToString()))

    {

    using (SPWeb web = site.OpenWeb())

    {

    SPList list = web.Lists["Saludos"];

    SPQuery query = new SPQuery();

    query.Query = "" + e.NewValue +

    "";

    if (list.GetItems(query).Count == 0)

    {

    ...

    }

    SPListItem item = list.AddItem();

    item["Titulo"] = e.NewValue;

    web.AllowUnsafeUpdates = true;

    item.Update();

    web.AllowUnsafeUpdates = false;

    La clase ServerInfopermite recuperar informacin relativa al contexto actual de SharePoint.

    Examine el cdigo anterior: recupere una instancia de SPWeb.

    partir del site puede recuperar una instancia de SPListque represente su lista de frmulas de salud

    La siguiente etapa consiste en verificar si el nuevo elemento elegido en la zona de lista modificableest presente en su lista de frmulas de sa ludo. Para hacer esto, puede usar una consulta CAML.

    Slo si el e lemento no est presente en la lista, adalo:

    Se tiene que hacer una ltima modificacin en el formulario para permitir que el cdigo se ejecute pronto como la seleccin de la lista cambie. En las propiedades de la zona de lista, enpestaaFormularios del navegador.

  • 5/20/2018 25

    21/21

    4/24/2014 ENI Training - Libro online

    http://www.eni-training.com/client_net/mediabook.aspx?idR=82824

    Seleccione que el formulario se enve Siempreal servidor cuando cambie el valor del control.

    Publique de nuevo el formulario y prubelo. Para ello, escriba un nuevo valor en la zona de temodificable. El nuevo valor se aade a su lista de frmulas de saludos.

    Vaya a la galera de soluciones para comprobar que su proyecto se ha publicado correctamente cosandboxed solution.