Hace unos días estaba trabajando con un formulario en InfoPath que publicaba a una biblioteca dentro de MOSS, entre las tantas maravillas que necesitaba que hiciera el formulario, una de ellas era que requería de tener un campo validador de cuentas del Directorio Activo, no me servía validar las cuentas después de que se guardará el formulario en la biblioteca de MOSS ya que la funcionalidad del campo se perdería, requería de algo que me permitiera validar esas cuentas que ingresara el usuario dentro del mismo formulario antes de guardarlo. Entonces gracias a unas cuantas búsquedas dentro de internet, apareció en estas ligas parte de la solución:
El InfoPath Team Blog:
http://blogs.msdn.com/infopath/archive/2007/02/28/using-the-contact-selector-control.aspx
Solución: El control "Contact Selector", lo que no se es porque no lo ponen por default en InfoPath, tienes que meterlo como Custom Control...
De MSDN Microsoft:
http://msdn2.microsoft.com/en-us/library/ms558892.aspx
Solución: como configurarlo en el flujo de trabajo del formulario
Sin embargo tuve problemas al momento de implementar dicha solución ya que había algunos detalles. Así es que les paso el procedimiento paso a paso de lo que se tiene que hacer para que ustedes no tengan problemas al implementar esta solución dentro de sus formularios.
Es de notar que primero lo intente en una versión trial de Office 2007 en español y me marco error... después instale la versión final en ingles y ya no me dio problemas... Notarán además que me voy a aventar un rollote nada más para explicar como funciona y como se configura, pero no me gusta dejar cabos sueltos, por eso les muestro todos los pasos.
Como el Contact Selector no esta en los Controles por Default tenemos que cargarlo, para ello en InfoPath 2007 abrimos un diseño en blanco o si tenemos un diseño ya abierto vamos a la barra de Tareas y seleccionamos Controls:

Damos clic sobre Add or Remove Custom Controls...

Aparece la siguiente ventana:

Seleccionamos ActiveX Control

En la siguiente ventana, seleccionamos Contact Selector

En la siguiente, dejamos seleccionado Don´t include a .cab file

Seleccionamos Value

Seleccionamos Field or Group (any data type)

Nos muestra el control

Aparece el control en la sección de Custom

Entramos a la sección de Data Source (Fuentes de Datos)

En la lista tenemos myFields (misCampos)

Sobre ese campo, en la flecha del lado derecho damos clic y en el menú seleccionamos Add... y aparece una ventana donde ingresamos los siguientes datos:

Aparece el campo así:

Sobre ese nuevo campo, agregamos uno nuevo como sigue:

El nuevo campo aparece debajo del primero

Ahora dentro del campo Person, agregamos tres nuevos... como sigue (es importante que se respeten los nombres de los campos tal como aparecen en esta guía, ya que si se ponen distintos, el control no funcionara adecuadamente):



El campo gpContactSelector debe quedar como sigue:

Damos clic sobre el campo y lo agregamos al diseño como Contact Selector


Sobre el campo podemos editar algunas propiedades

Se puede modificar el texto del botón To..., la dirección del texto y el máximo de líneas que ocuparan el campo para almacenar nombres:

Creamos un archivo XML como sigue:

Ahora tenemos que agregar una conexión de Datos, damos clic sobre Manage Data Connections...

En la ventana que aparece dar clic sobre Add...

Seleccionamos Create a new connection to: de tal forma que reciba datos:

En la siguiente ventana seleccionamos XML document

Buscamos el archivo y lo agregamos

Seleccionamos Include the data as a resource file in the form template or template part

Le damos el nombre que deseemos y seleccionamos la casilla de verificacion de esa ventana

Con ello tenemos la nueva conexión lista

En esta parte es donde crei que algo habia hecho mal, ya que le di en preview y al probar el campo no me funcionaba, no encontraba ningun usuario. Sin embargo, al momento de publicar es cuando todo funciona, por lo que el siguiente paso es publicar el formulario:

Obviamente lo haremos a un servidor SharePoint, cabe mencionar que para este ejemplo he creado previamente en SharePoint una biblioteca de formularios que contendrá la plantilla que estamos creando, pero no es obligatorio.

Ingresamos los datos del servidor

Cuando nos comuniquemos con el servidor se mostrará la siguiente ventana (en caso de tener activada la compatibilidad con Form Services, tendremos activa la opción de acceso por medio del browser), en ella seleccionamos Document Library o Biblioteca de Documentos

Si aun no tenemos una biblioteca de formularios donde alojar nuestra plantilla lo podemos hacer en el siguiente paso o cargar la plantilla en una ya existente (en este ejemplo ya había creado una por lo que allí cargaré la plantilla):

En la siguiente ventana tenemos la opción de publicar datos del InfoPath en la biblioteca de SharePoint donde será almacenado, si deseamos guardar en columnas la información de los contactos insertados en el Contact Selector, debemos dar clic en Add…

Aquí tenemos cuatro opciones de publicación:
1. First: solo guardará en la columna de SharePoint el primer contacto del Contact Selector
2. Last: solo guardará el último contacto
3. Count: guardará el número de contactos que hayamos ingresado, solo el número
4. Merge: guardará todos los contactos ingresados, separados por ;

En este ejemplo guardaremos cada opción del Contacto en columnas y todos los contactos ingresados:

Verificamos y publicamos:

Si todo salió bien nos mostrará lo siguiente:

Abrimos la biblioteca donde hemos publicado el formulario:

Y damos clic al botón de New o Nuevo para abrir el formulario:

Podemos probarlo ingresando un nombre y verificándolo:

O con el Botón Para…

Cuando hemos ingresado todos los contactos, guardamos el formulario:

Y al regresar a la biblioteca tenemos a nuestros contactos guardados en las columnas:

Con esto terminamos esta implementación, espero no haberlos aburrido con tanta descripción, pero no quise dejar nada a la imaginación. Por fin lo termine, tenía este pendiente desde hace tiempo y no había podido terminarlo por falta de tiempo y a veces de recursos (servidor).
Saludos,
VLAD
1. Para MOSS 2007 se puede tener un servidor ejecutando los roles de Query y de Indexing; sin embargo, la recomendación es tener estos roles separados, solo se puede tener un servidor ejecutando el rol de Indexing y N servidores (recomendado y probado con hasta 8 servidores) ejecutando el rol de Query
2. Se recomienda un limite de 100 Bases de Datos de Contenido
3. Recuerde siempre que si agrega un nuevo IFilter, debe serciorarse que el tipo de archivo no este en la lista de Tipos de Archivos bloqueados, ya que no será indexado si esto ocurre
4. Por default el tamaño máximo de archivo que puede ser indexado y descargado por MOSS es de 16 MB; sin embargo, usando el editor de registro, es posible ajustar este valor:
RUTA: HKLM\Software\Microsoft\Office Server\12.0\Search\applications\<GUID>\global\gathering manager\maxdownloadsize en caso de que no exista la llave maxdownloadsize creela como un DWORD
5. Security Trimming no funciona en Portales SharePoint accesados desde Internet.
6. Best Bets no es afectado por Security Trimming por lo que todos los usuarios pueden recibir resultados en esta WebPart, si desea mayor seguridad, quite la WebPart de su sitio de busquedas, pero esto hará que nadie vea los Best Bets. Es su decisión
7. El dynamic component, Property Weight, puede ser modificado a través del Modelo de Objetos, usando el Namespace Microsoft.Office.Server.Search.Administration y la propiedad: managedproperty.weight = newWeigth;
8. Las Authoritative Pages tienen prioridad para el motor de búsquedas de MOSS debido al componente estático de Ranking "Click Distance"
9. No utilize espacios ni carácteres especiales al construir las URLs de su portal, ya que afecta al performance de las búsquedas
10. Debido a la propiedad URL depth utilizada por el motor de busqueda de MOSS, los archivos que se encuentren en rutas más cercanas a la raíz de su portal tendrán prioridad sobre los más ocultos, asi es que si su contenido es importante no lo esconda.
11. Una de las caracteristicas dentro del buscador de personas de MOSS es la de Social Distance, para ello, usted puede obtener a sus colegas valiendose del Windows Messenger y del Office Outlook Add-in. El Outlook Add-in lo puede encontrar en la siguiente dirección: http://office.microsoft.com/en-us/products/FX101153421033.aspx
12. Habilíte IntelliSense cuando edite un archivo XML de una aplicación BDC en Visual Studio, para referenciar al archivo bdcMetadata.xsd, el cual se encuentra en <root>\Program Files\Microsoft Office Server\12.0\Bin
13. Con stsadm se pueden modificar configuraciones de búsqueda, use -o osearch para MOSS, -o spsearch para WSS y -o editssp para el Proveedor de Servicios Compartidos (SSP).
14. Se puede hacer que el motor de búsqueda indexe archivos en sistemas de 64-bits, siempre y cuanto se cuenten con los IFilters correspondientes.