Artículo original publicado el lunes 2 de mayo de 2011

jonghwal's picHola a todos. Mi nombre es JongHwa Lim y soy jefe de proyecto del equipo de SharePoint Designer. Hace tiempo que no nos vemos. Quizás algunos hayan pensado que este sitio estaba inactivo, ya que no hemos publicado entradas de blog desde abril del año pasado, pero aquí estamos de vuelta. Lo mantendremos con vida y publicaremos entradas de blog nuevas al menos una vez al mes, e intentaremos permanecer conectados con los lectores y los clientes.

Como precalentamiento (y para que los integrantes del equipo entren en calor para las futuras entradas de blog), comenzaremos con una nueva característica, pequeña pero muy útil, de SharePoint Designer 2010 (también conocido como SPD).

Cuándo son necesarias las columnas de asociación

Para comenzar, vamos a establecer un escenario. Usted es autor de flujos de trabajo y acostumbra a usar SPD, y le han pedido que cree un flujo de trabajo que se usará en varias listas o bibliotecas de documentos con algunos campos específicos de flujos de trabajo. ¿Cómo lo puede implementar? A continuación se enumeran algunos ejemplos de las opciones que puede intentar para lograr este objetivo.

· Flujo de trabajo de lista

o Puede empezar con flujos de trabajo de lista. Puede agregar los campos específicos del flujo de trabajo a la lista directamente. Además, durante el tiempo de diseño en SharePoint Designer, puede ver los campos y crear la lógica del flujo de trabajo con esos campos.

o No obstante, cuando necesita reutilizar este flujo de trabajo en otras listas o bibliotecas de documentos, no sabe cómo hacerlo.

· Flujo de trabajo reutilizable

o Está un poco más familiarizado con los flujos de trabajo de SPD, por lo que decide usar un flujo de trabajo reutilizable que resolverá el problema de la reutilización. Sin embargo, al abrir el Diseñador de flujo de trabajo, verá que el único campo configurable es Título y que los campos Tipo de contenido, Creado, Creado por, Identificador, Modificado, Modificado por y Título son de lectura.

o No puede usar los campos que necesita para crear la lógica del flujo de trabajo.

· Flujo de trabajo reutilizable con tipo de contenido base

o Es un usuario avanzado de flujos de trabajo de SPD, por lo que conoce el concepto del tipo de contenido base para un flujo de trabajo reutilizable.

o En primer lugar, crea un nuevo tipo de contenido y le agrega los campos necesarios. Y en el cuadro de diálogo Crear flujo de trabajo reutilizable (Create Reusable Workflow), designa el tipo de contenido creado como tipo de contenido base.

o Ahora puede ver los campos en el Diseñador de flujo de trabajo y conseguir su objetivo. No hay ningún problema con el escenario de reutilización, siempre que asocie este flujo de trabajo al tipo de contenido y que el tipo de contenido se agregue a la lista o la biblioteca de documentos.

o ¿Pero qué ocurre si descubre que necesita un nuevo campo? Cada vez que necesite un nuevo campo, tendrá que ir al tipo de contenido del sitio o a la interfaz de usuario de la columna del sitio en el servidor o en SPD.

o Aún existe otro punto débil. Cuando desea mover el flujo de trabajo mediante Guardar como plantilla, el flujo de trabajo desempaquetado perderá parte de la información del tipo de contenido base si este es es un tipo de contenido personalizado o si el tipo de contenido contiene una columna de sitio personalizada.
clip_image001

· Flujo de trabajo reutilizable con columna de asociación

o Prácticamente, está casi tan familiarizado con SPD como un usuario que conoce el concepto de tipo de contenido base. Esto quiere decir que conoce el concepto de columna de asociación.

o Al comenzar a crear el flujo de trabajo, cuando necesita un campo, lo crea directamente con columnas de asociación, donde puede elegir entre una columna de sitio existente o una nueva. Ya no deberá alternar entre el Diseñador de flujo de trabajo, el tipo de contenido del sitio y las interfaces de usuario de la columna de sitio. Puede hacerlo todo en un solo lugar, y listo.

o Además, no hay ningún problema con la reutilización porque las definiciones del flujo de trabajo reutilizable transportan los campos con el flujo de trabajo y el paquete del flujo de trabajo lo admite.
clip_image002

Qué es una columna de asociación

Es posible que algunos usuarios hayan intentado encontrar archivos de ayuda sobre este tema. A continuación enumeraré algunos ejemplos de la información que puede encontrar:

· De forma predeterminada, los flujos de trabajo reutilizables no tienen el contexto de una lista o una biblioteca específicas. Por lo tanto, de forma predeterminada, proporcionan solo las columnas que son comunes en las listas y las bibliotecas, como Creado y Creado por.
Si el flujo de trabajo reutilizable requiere que determinadas columnas estén presentes en la lista o en la biblioteca con las que lo ha asociado, puede agregar esas columnas como columnas de asociación. Las columnas de asociación se agregan automáticamente a una lista o biblioteca cuando un flujo de trabajo reutilizable se asocia a dicha lista o biblioteca.

· Columnas de asociación
Si el flujo de trabajo reutilizable requiere que determinadas columnas estén presentes en la lista o en la biblioteca con las que lo ha asociado, puede agregar esas columnas como columnas de asociación. Las columnas de asociación se agregan automáticamente a una lista o biblioteca cuando un flujo de trabajo reutilizable se asocia a dicha lista o biblioteca.

· (Información sobre herramientas del botón de la cinta de opciones)
Define las columnas que se agregarán a una lista cuando el flujo de trabajo se asocie a esa lista. Esta opción no está disponible para flujos de trabajo de sitio.

Todas estas descripciones son completamente ciertas y explican perfectamente qué son las columnas de asociación y para qué sirven. Las columnas de asociación se introdujeron debido a la situación real a la que se enfrentan los autores de flujos de trabajo reutilizables, que carecen de una experiencia eficaz cuando desean actualizar los campos del elemento actual. Hasta SharePoint Designer 2010, no existía el concepto de flujo de trabajo reutilizable; por ende, tampoco existían las columnas de asociación. Sin las columnas de asociación, la única alternativa podría haber sido usar un tipo de contenido base. No obstante, esto también implica varias limitaciones en lo que respecta a la asociación y a la experiencia del usuario en tiempo de diseño, ya que solo podía establecerse una asociación con el tipo de contenido base o con tipos de contenido heredados, y el autor debía alternar varias veces entre el Diseñador de flujo de trabajo y el tipo de contenido del sitio o las interfaces de usuario de la columna de sitio.

Cómo crear una columna de asociación

La creación de una columna de asociación es muy sencilla. Se lo mostraré con un ejemplo. Como se muestra a continuación, puede comenzar con el botón de la cinta de opciones Columnas de asociación (Association Columns).

clip_image002[1]

Si hace clic en él, aparecerá un cuadro de diálogo de advertencia como el que se muestra a continuación.

clip_image003

Si selecciona Aceptar (OK), se abrirá el cuadro de diálogo principal de Columnas de asociación (Association Columns).

clip_image004

Puede elegir entre Seleccionar columna de sitio (Select Site Column) y Agregar nueva columna (Add New Column). Si decide seleccionar la columna de sitio, se abrirá el siguiente cuadro de diálogo.
clip_image005

Si selecciona el campo Dirección (Address), este se agregará al cuadro de diálogo principal.

clip_image006

Si agrega una nueva columna, se mostrará la siguiente interfaz de usuario donde puede definir una nueva columna.

clip_image007

En este ejemplo, he creado un campo de texto multilínea llamado Comentarios de los aprobadores (Comments from Approvers).

clip_image008

Puede ver que cuando se selecciona una columna nueva, también se habilita el comando Modificar (Modify), pero se deshabilitará para las columnas existentes.

Al hacer clic en Aceptar (OK), so completará la creación de la columna de asociación. Ahora puede ver Dirección (Address) y Comentarios de los aprobadores (Comments from Approvers) en la superficie del diseñador.

clip_image009

Cómo funciona

Internamente, la columna de asociación usa la columna de sitio, por eso puede ver la opción del botón Seleccionar columna de sitio en la interfaz de usuario. Independientemente de si las ha creado recientemente o si las ha elegido en las columnas de sitio, las columnas de asociación se almacenan en el archivo wfconfig para que puedan usarse en tiempo de diseño.

clip_image011

Si observa el archivo wfconfig antes de publicar el flujo de trabajo, puede encontrar la siguiente definición de campo. Esto se debe a que se crean columnas de sitio en tiempo de publicación y se actualiza la definición de campo correspondiente en el archivo wfconfig.

clip_image013

Por ello, si vuelve a visitar el cuadro de diálogo de columna de asociación después de publicar el flujo de trabajo, podrá ver que Nueva columna cambió por Columna existente (Existing Column) y no se le permitirá modificarlo.

clip_image014

Cuando el flujo de trabajo reutilizable se asocie a la lista o a la biblioteca de documentos, se agregarán las columnas de asociación a dicha lista o biblioteca de documentos para que el flujo de trabajo reutilizable que hace referencia a los campos funcione correctamente.

Empaquetado

Si empaqueta el flujo de trabajo reutilizable y lo desempaqueta en otro sitio, las columnas de asociación se conservan, lo que significa que también se empaquetan y desempaquetan. Por otro lado, el tipo de contenido base personalizado y la columna de sitio personalizada en el tipo de contenido base no se empaquetan por completo, lo que significa que es posible que se pierda información durante la transferencia.

Límite

Cuando se asocia un flujo de trabajo reutilizable a un tipo de contenido, las columnas de asociación se agregan a la lista o la biblioteca de documentos cuando el tipo de contenido se agrega a dicha lista o biblioteca de documentos. Las columnas de asociación no se agregan directamente al tipo de contenido.

Esta entrada de blog es una traducción. Puede consultar el artículo original en Association Columns