Compartir a través de


Procedimiento para personalizar formularios de lista externa mediante Microsoft InfoPath

Última modificación: viernes, 16 de abril de 2010

Hace referencia a: SharePoint Server 2010

Servicios de conectividad empresarial (BCS) de Microsoft genera formularios de SharePoint predeterminados para ver, crear y editar elementos de una lista externa automáticamente. Sin embargo, las opciones de personalización de estos elementos web de formularios básicos son limitadas. Si desea realizar personalizaciones avanzadas o agregar reglas declarativas o lógica de negocios, puede reemplazar los formularios de SharePoint predeterminados Crear, Ver y Actualizar de una lista externa mediante formularios de Microsoft InfoPath 2010.

Para reemplazar los formularios de SharePoint predeterminados por formularios de InfoPath

  1. En el explorador, navegue a la lista externa.

  2. En la Cinta de Server, haga clic en Editar lista. La lista externa se abrirá en Microsoft SharePoint Designer 2010.

  3. En la cinta de opciones, haga clic en el botón Diseñar formularios en InfoPath, como se muestra en la figura 1.

    Figura 1. Reemplazo de un formulario de SharePoint predeterminado por un formulario de InfoPath

    Formularios de diseño en InfoPath

  4. Diseñe el formulario de acuerdo a sus necesidades con elementos tales como tipos personalizados. Los controles para los campos simples se generan automáticamente; sin embargo, para los tipos complejos, deberá arrastrar sus propios controles desde el cuadro de herramientas.

  5. Cuando haya terminado, haga clic en Publicación rápida en el menú Archivo para volver a publicar el formulario en el servidor.

    Ahora puede navegar a la lista externa y crear o ver un elemento. El formulario que se muestra es el nuevo formulario de InfoPath, en lugar del predeterminado de SharePoint.

Personalización de la apariencia de los formularios

Puede personalizar la apariencia y el comportamiento de los formularios de lista externa mediante InfoPath. En el vídeo de InfoPath 2010: personalización de formularios de listas de SharePoint, Daniel Broekman, un jefe de programas del equipo del producto InfoPath, describe cómo se puede personalizar rápidamente un formulario de lista de SharePoint mediante InfoPath 2010. Puede seguir el mismo procedimiento que se muestra en el vídeo para reemplazar un formulario predeterminado de lista externa de SharePoint por un formulario de InfoPath y personalizarlo para cambiar su apariencia y comportamiento.

Adición de reglas declarativas o lógica de negocios a los formularios

Puede agregar reglas declarativas o lógica de negocios al formulario de InfoPath sin necesidad de escribir código. Por ejemplo, puede crear una regla para limitar la entrada de un código postal a cinco dígitos (12345) o para que los usuarios escriban números de teléfono con un formato determinado. El vídeo de InfoPath 2010: personalización de formularios de listas de SharePoint también muestra los procedimientos para agregar reglas declarativas y lógica de negocios al formulario.

Representación de tipos complejos

El reemplazo de un formulario de SharePoint por uno de InfoPath 2010 resulta muy útil cuando desea representar y editar tipos complejos definidos en un sistema externo. Por ejemplo, piense en un campo Dirección que un método SpecificFinder devuelve de un tipo de contenido externo. Este campo Dirección puede ser un tipo complejo en el sistema externo, que contiene varios subtipos, como se muestra en la figura 2.

Figura 2. Tipo complejo en SharePoint Designer 2010

Tipo complejo en SharePoint Designer

Observe las advertencias que se muestran en SharePoint Designer. Si Servicios de conectividad empresarial (BCS) de Microsoft detecta alguno de estos tipos complejos en un parámetro de devolución de un método SpecificFinder, ignora el campo en el formulario de lista externa de SharePoint regular. La figura 3 muestra la página predeterminada Ver elemento de una lista externa que contiene el tipo complejo Address. Observe que el campo Dirección se omite y no se muestra en el formulario. Además, si Dirección es un campo obligatorio para las operaciones Crear o Actualizar en el sistema externo, no se puede crear o editar elementos de cliente.

Figura 3. Página predeterminada Ver elemento de una lista externa que contiene el tipo complejo

Ver elemento que contiene el tipo complejo

En este caso, puede convertir el formulario a InfoPath. Dado que el método SpecificFinder tiene un tipo complejo (Dirección, en nuestro ejemplo), Servicios de conectividad empresarial no crea el formulario con todos los campos y controles obligatorios, sino que, en su lugar, crea un formulario de InfoPath en blanco sin agregar los campos al formulario, como se muestra en la figura 4.

Figura 4. Formulario de InfoPath en blanco

Formulario de Infopath en blanco

Para resolver este problema, arrastre los campos dataFields desde la sección Campos del panel de tareas. Sin embargo, esto solo funciona si se pueden mostrar todos los subtipos del tipo complejo a través de los controles que están disponibles en InfoPath. Por ejemplo, en el caso de Dirección, todos los subtipos pueden mostrarse mediante un control de campo Texto.

Si no se puede mostrar un tipo complejo (o personalizado) o uno de sus subtipos mediante cualquiera de los controles disponibles en InfoPath, deberá diseñar un control personalizado de InfoPath y usarlo para mostrar el campo. Si agrega un control personalizado de InfoPath, no podrá publicar el formulario en el servidor.

Después de diseñar el formulario, puede guardarlo y realizar una publicación rápida en la ubicación actual. El formulario de lista externa comienza a mostrar todos los campos. La figura 5 muestra el formulario de lista externa Ver elemento después de su conversión a InfoPath. La única acción que se realizó fue arrastrar los controles dataFields al área de diseño del formulario.

Figura 5. Formulario de lista externa Ver elemento convertido a InfoPath

Ver formulario de elementos ampliado para InfoPath

Observe que se muestran tanto el campo Dirección como todos sus subtipos. Si el tipo de contenido externo ha definido las operaciones Create y Update, puede crear y editar elementos de cliente mediante los formularios de lista externa.

Inserción de un control del selector de elementos externos

En aquellas situaciones en las que el usuario debe seleccionar un elemento externo, como el cliente Diego de una lista de clientes, InfoPath 2010 proporciona un control del selector de elementos externos que se puede usar para insertar un selector en un formulario. Un selector de elementos externos proporciona la funcionalidad de selección y resolución de elementos externos en el servidor y en aplicaciones cliente enriquecidas de Microsoft Office.

Si establece asociaciones para tipos de contenido externos en el Repositorio de metadatos de BDC y el formulario de lista externa para uno de los tipos de contenido externos que contiene una clave externa, Servicios de conectividad empresarial agrega automáticamente un control del selector al formulario para ese campo. Imagine, por ejemplo, un escenario de cliente y pedido. Suponga que los tipos de contenido externos y la asociación ya están configurados. Si se convierte el formulario de lista externa Pedido a InfoPath, Servicios de conectividad empresarial coloca de manera predeterminada un control del selector de elementos externos para el campo CustomerID en el formulario Pedido. Esto permite a los usuarios encontrar fácilmente el cliente que deseen cuando trabajen con pedidos.

Sin embargo, si el formulario de InfoPath generado automáticamente está en blanco porque el método SpecificFinder tiene uno o varios tipos complejos, por lo que debe arrastrar un control del selector de elementos externos de la cinta de opciones y establecer las propiedades necesarias. Para obtener información, vea Procedimiento para incrustar un control de selector de elementos externos en un formulario de InfoPath.

Creación de varias vistas de un formulario

El formulario de lista externa de InfoPath puede tener varias vistas. Esto es especialmente útil en escenarios donde solo se escribe una vez, en los que el sistema externo no permite actualizar un campo después de haberlo creado. En estos casos, puede crear dos vistas: una para la operación Crear y una vista de solo lectura para la operación Actualizar. Puede actualizar las páginas .aspx de Crear y Editar para que se muestre la vista correcta del formulario.

Adición de código subyacente o reglas

Por último, puede agregar código subyacente o reglas al formulario de InfoPath. Para obtener información acerca de cómo agregar código subyacente a un formulario de InfoPath, vea la referencia del desarrollador de InfoPath 2010 para plantillas de formulario. Para obtener información acerca de cómo agregar reglas a un formulario de InfoPath, vea la Ayuda de InfoPath 2010. Puede agregar código subyacente o reglas para aplicar lógica de negocios adicional a la entrada de datos. Por ejemplo, puede agregar código subyacente o reglas para asegurarse de que el código postal que se escribe es un código postal de EE.UU. válido o que el código de país o región es válido. También puede usar el modelo de objetos de Servicios de conectividad empresarial del código para obtener acceso al sistema externo o el Repositorio de metadatos de BDC del código. Los formularios con código subyacente necesitan plena confianza en el cliente y requieren derechos de administrador.

Nota importanteImportante
  • Debe comenzar a crear formularios de lista externa de InfoPath a partir de los formularios de InfoPath generados automáticamente que proporciona Servicios de conectividad empresarial.

  • No se puede conectar un formulario de lista externa a cualquier otro origen de datos; es decir, no se puede tener cualquier conexión de datos secundaria en el formulario.

  • Al convertir un formulario de lista externa a InfoPath, si el método SpecificFinder tiene tipos complejos, se genera una vista en blanco. Debe arrastrar los controles dataFields desde el panel de tareas.

  • Si no se puede mostrar un tipo complejo (o personalizado) o uno de sus subtipos mediante cualquiera de los controles disponibles en Microsoft InfoPath, debe diseñar un control personalizado de InfoPath y usarlo para mostrar el campo.

  • Puede agregar reglas declarativas o lógica de negocios al formulario de InfoPath sin necesidad de escribir código.

  • Puede agregar código subyacente al formulario de InfoPath para incluir lógica de negocios adicional para la entrada de datos. También puede usar el modelo de objetos de Servicios de conectividad empresarial en el código para obtener acceso al sistema externo o el Repositorio de metadatos de BDC del código.

  • Las páginas .aspx de listas externas del lado servidor pueden dirigir a formularios de InfoPath personalizados. Sin embargo, estos formularios no se representan en el cliente cuando la lista externa está desconectada.

  • Si hay un error de coincidencia en la versión del tipo de contenido externo y el formulario de lista externa, los formularios podrían no funcionar en el servidor y el cliente cuando estén desconectados. En este caso, es posible que deba volver a publicar el formulario en el servidor.