sábado, 12 de diciembre de 2015

Campo de hipervínculo en flujos de trabajo 2013

Esta semana un cliente nos ha propuesto un reto. El reto consistía en tener en una lista todos los miembros de los diferentes grupos de trabajo con los que trataban. Hasta aquí, sencillo. Lo siguiente era tener un "botón" que les abriera Outlook y le pusiera todos los correos de los miembros de ese grupo. Esto ya tiene más interés.

La solución una lista llamada Grupos donde listemos los grupos y un "botón" que ponga Enviar Email.
Ese "botón" es un campo de tipo hipervínculo donde la dirección web es mailto:david@dominio.es;blanca@dominio.es; .... Mientras que la descripción del campo pone Enviar Email.

Para dar de alta los miembros, tendremos otra lista llamada Miembros, donde tenemos tres campos (pueden ser más pero nosotros sólo necesitamos esos tres) Nombre (Texto), Grupo (Búsqueda sobre la lista Grupos) y Email (Una linea de texto).

¿Cómo creamos y rellenamos el "botón"? Con un flujo de trabajo sobre la lista Miembros que se lanza cuando se crea un nuevo elemento.

¿Qué hará nuestro flujo?


Resumiendo: Tendremos dos ramas, una por la que iremos si el grupo tiene emails asociados y otra por la que el grupo aún no tiene emails asociados. La condición será:


Que consiste en ir a la lista Grupos y miraremos el campo Emails, que es donde guardaremos nuestros emails concatenados con ";", para ello, queremos el elemento de la lista Grupos, cuyo nombre coincida con el grupo del elemento que ha lanzado el flujo en la lista Miembros.

Si avanzamos por la primera rama, guardamos en una variable del flujo (EmailAnteriores) de tipo Cadena, los emails que ya hay de ese grupo (los recogemos como campo de tipo Dirección URL):



Para en un siguiente paso concatenar esos emails (recuperamos la variable EmailAnteriores con el tipo Dirección de correo electrónico) con el email de elementos de la lista Miembros que ha lanzado el flujo:


El siguiente paso será guardar esa concatenación de los email anteriores y el actual en otra variable de Flujo de tipo cadena (EmailsFinal), pero completar también un campo de descripción que ponga Enviar Email.
Para ello la cadena se genera, con la variable Email donde se encuentran todos los emails del grupo, y separado por una coma y un espacio, el nombre a mostrar:


Y finalmente sólo nos quedará guardar la variable de flujo EmailsFinal, sobre el campo Emails de la lista Grupos, que es nuestro "botón" Enviar Email:


La segunda rama, será la que nos generé el primer correo en la lista Grupos, porque hemos agregado el primer miembro en la lista Miembros. Con la única particularidad de que como estamos guardando en un campo de tipo hipervínculo, deberemos poner delante la palabra "mailto:":


RESUMEN:

Para completar campos de tipo hipervínculo a través de un flujo, deberemos crear una variable de tipo cadena, y completar con la "url, texto descriptivo". Muy importante la coma y el espacio.