El Control Contact Selector nos puede resultar de gran utilidad durante el desarrollo de Plantillas de Formulario de InfoPath 2007. El presente artículo describe su configuración, ya que se trata de un Control que por defecto no está disponible en la barra de herramientas de InfoPath 2007, aunque aun así, sí es posible utilizarlo siguiendo las instrucciones descritas a continuación.
Básicamente, deberemos seguir los siguientes pasos, para poder utilizar el Contact Selector en un Formulario de InfoPath 2007.
- Añadir el Contact Selector a la Barra de Herramientas de InfoPath 2007.
- Crear una Conexión secundaria al Contexto del Servidor.
- Utilizar el Contact Selector en un Formulario InfoPath 2007.
A continuación se describe paso a paso todas estas tareas de configuración. Empezamos.
Añadir el Contact Selector a la Barra de Herramientas
Lo primero, es conseguir que el Control Contact Selector aparezca en nuestra barra de herramientas en InfoPath 2007. Para ello, mostraremos la barra de herramientas de InfoPath, y seguidamente, click en Add or Remove Custom Controls.
En el diálogo Add or Remove Custom Controls, click Add.
En el diálogo Add Custom Control Wizard, en la pantalla Select a Control Type, seleccionaremos la opción ActiveX Control. Click Next.
En el diálogo Add Custom Control Wizard, en la pantalla Select an ActiveX Control, seleccionaremos la opción Contact Selector. Click Next.
En el diálogo Add Custom Control Wizard, en la pantalla Specify Installation Options, seleccionaremos la opción Don’t include a .cab file. Click Next.
En el diálogo Add Custom Control Wizard, en la pantalla Specify a Binding Property, seleccionaremos la opción Value. Click Next.
En el diálogo Add Custom Control Wizard, en la pantalla Specify Data Type Options, seleccionaremos la opción Field or Group (any data type). Click Finish.
En el diálogo Add Custom Control Wizard, en la pantalla Custom Control Added, click Close.
Realizado esto, de nuevo en el diálogo Add or Remove Custom Controls, click OK para continuar.
Realizado esto, ya tendremos disponible el Control Contact Selector en nuestra barra de herramientas de InfoPath 2007, dentro de la sección Custom.
Téngase en cuenta, que una vez que hemos realizado esto una única vez, no será necesario volver a repetirlo para los futuros Formularios de InfoPath. Para próximas ocasiones que volvamos a abrir InfoPath, el control Contact Selector ya estará disponible, sin necesidad de volver a repetir todos estos pasos.
Crear una Conexión secundaria al Contexto del Servidor
La segunda tarea que tenemos que realizar es crear una Conexión secundaria al Contexto del Servidor. Es importante no olvidarnos de este paso, ya que si no lo hacemos, obtendremos un mensaje de error "Search failed" al intentar realizar una búsqueda de usuarios o grupos utilizando el Contact Selector.
Por lo demás, se trata de una tarea bastante sencilla. Lo primero crearemos un fichero que llamaremos context.xml, con un contenido como el que se muestra en la siguiente pantalla capturada, especificando la URL de nuestro servidor de MOSS.
Seguidamente, mostraremos el diálogo Data Connections de InfoPath (Tools -> Data Connections), y haremos click en el botón Add.
En el diálogo Data Connection Wizard, seleccionaremos la opción Create a new connection to, y seguidamente seleccionaremos Receive data. Click Next para continuar.
En la siguiente pantalla del Data Connection Wizard, seleccionaremos que deseamos recibir los datos desde un documento XML (opción XML document). Click Next para continuar.
En la siguiente pantalla del Data Connection Wizard, utilizaremos el botón Resource Files para, a través del diálogo Resource Files, añadir (Add) el fichero Context.xml que creamos antes. Hecho esto, click Next para continuar.
En la siguiente pantalla del Data Connection Wizard, deberemos especificar un nombre para la Conexión. Deberemos especificar textualmente Context, respetando mayúsculas y minúsculas. Click Finish para continuar.
De vuelta al diálogo Data Connections, click Close.
Realizado esto, ya habremos finalizado esta tarea de configuración. Vamos a por lo siguiente.
Utilizar el Contact Selector en un Formulario InfoPath
Con el Control Contact Selector disponible en la barra de herramientas de InfoPath 2007, y un Formulario InfoPath con la correspondiente Conexión secundaria creada (conforme los pasos antes indicados), ya sólo nos queda empezar a utilizar el Contact Selector.
En el siguiente ejemplo vamos a agregar dos controles Contact Selector a un Formulario InfoPath 2007. Para empezar, vamos a arrastrarlos a nuestro Formulario InfoPath, lo cual nos creará dos Grupos vacíos en nuestro Origen de Datos Principal, con los que enlazará dichos controles.
Si mostramos las propiedades de un Control Contact Selector, en la pestaña Items podremos obtener un poco de información de ayuda, cara a la configuración que tenemos que realizar en nuestro Origen de Datos Principal.
En nuestro caso de ejemplo, queremos utilizar DOS controles Contact Selector en el mismo Formulario InfoPath, lo cual tiene una dificultad adicional. Básicamente, el problema es que cada control Contact Selector, debe estar asociado a una Grupo de nuestro Origen de Datos Principal, el cual debe contener Grupo denominado Person que permita repeticiones (opción Repeating activada), el cual a su vez debe contener tres campos de texto, denominados DisplayName, AccountId, y AccountType. Pero claro, si intentamos crear esta estructura de datos dos veces, una para cada Contact Selector, obtendremos el siguiente mensaje de error: A field or group with that name already exists. If you want to créate a field with the same name as an existing field, right-click the existing field, click Reference, and select a location for the new field.
Así que, crearemos un grupo que llamaremos grpContactSelector, por debajo del cual, crearemos la estructura de datos que hemos comentado, tal y como se muestra en la siguiente pantalla capturada (ojo con las mayúsculas, minúsculas y demás detalles).
Seguidamente, seleccionaremos este nuevo Grupo que hemos creado, y haremos click en la opción Reference del menú contextual.
En el diálogo Reference Field or Group, seleccionaremos el Grupo correspondiente al primero de nuestros controles Contact Selector.
Volveremos a repetir esta operación para el segundo de los controles Contact Selector, tras lo cual, nuestro Origen de Datos Principal quedará como sigue.
Realizado todo esto, ya estaremos en situación de poder visualizar nuestro Formulario InfoPath en modo Preview, y de realizar búsquedas de usuarios.
Poco más por hoy. Como siempre, confío que la lectura resulte de interés.