sábado, 19 de noviembre de 2016

Dynamics 365, cambio del statuscode y consulta de relaciones (Workflow Tools)

Buenas a todos, últimamente he estado un poco apartado, principalmente por falta de disponibilidad para escribir y sobre todo porque estoy terminando de asimilar las previews de todo lo nuevo que viene.

Como todos saben, Dynamics 365 ya está aquí y espero poder escribir en breve acerca de esto. La semana pasada he estado en Seattle con el equipo de producto, y la verdad que es increíble todo el gran trabajo que está haciendo Microsoft en la mejora continua de la plataforma.

En este post de hoy, voy a retomar mis soluciones de workflows. En las últimas semanas me han reportado una serie de pequeños “bugs” y muchas propuestas de mejoras de funcionalidades existentes, además de ideas para nuevas funcionalidades.

Siento insistir sobre esto, pero por si alguien no lo conoce, tengo compartido en Codeplex (https://msdyncrmworkflowtools.codeplex.com) una solución con ya 45 funcionalidades para ejecutar desde workflows. Todo el código fuente, descargas y documentación está disponible allí.

Acabo ahora mismo de publicar la versión 1.0.34.0 con los siguientes cambios:

  • - SDK 8.2.0 (dynamics 365): ya lo tengo compilado y probado para Dynamics 365 (SDK version 8.2) y además dejé soluciones para CRM 2016 Update1 (8.1) y CRM 2.16 (8.0). Así que no hay excusas para utilizarlo Winking smile
  • BUG: Añadido un control de errores en la geolocalización con Bing Maps
  • Nueva funcionalidad para comprobar si ya existe una relacion N-N: “Check Associate Entity”
  • Nueva funcionalidad para cambio de estado y razón para el estado: “Set State”
  • Mejora: en el método de “String Functions” el parámetro "Replace: New Value" ya no es obligatorio, y permite hacer reemplazos por valores vacíos
  • Mejora: Ignorar errores al añadir por relaciones N-N repetidas

Todos estos cambios han sido recogido en el área de Discusiones de Codeplex, o sea que son 100% resultado de atender a las comunidades: https://msdyncrmworkflowtools.codeplex.com/discussions. Por favor seguir apoyando y dando ideas, yo intentaré atender todo lo que pueda y me dé tiempo Winking smile

un abrazo a todos!

@demian_rasko

sábado, 10 de septiembre de 2016

Encriptar Campos en Dynamics CRM con MD5 (Workflow Tools)

Muchas veces necesitamos almacenar en Dynamics CRM campos como contraseñas, que por temas legales o de seguridad no deberían ser almacenadas en texto plano para que no san leídos.

Para esto, algo bueno es disponer de la posibilidad de encriptar cadenas de texto con MD5, ya que de esta manera almacenamos una imagen de ese valor original.

Esta vez he utilizado un código bastante estándar disponible en la clase MD5CryptoServiceProvider  (https://msdn.microsoft.com/en-us/library/system.security.cryptography.md5cryptoserviceprovider(v=vs.110).aspx)

Lo he añadido como una nueva funcionalidad en las Workflow Tools, que son las herramientas que estoy evolucionando y compartiendo en las comunidades desde Codeplex. Todas las funcionalidades, código fuente y documentación está disponible aquí: https://msdyncrmworkflowtools.codeplex.com/

Para utilizar esta nueva funcionalidad de encriptación, seleccionamos la acción:

wf1.gif

Luego debemos pasar el string o text que queremos encriptar:

wf3.gif

Luego podemos obtener el parámetro de salida con el valor encriptado y utilizarlo como parte del workflow:

wf4.gif

Y aquí les dejo un ejemplo donde lo añado como dentro del campo de comentarios de la cuenta:

wf5.gif

Sinceramente, esto es una funcionalidad que muchos de nosotros ya hemos desarrollado en muchos proyectos, pero seguro que teniéndola en las workflow tools, no la desarrollaremos mas Winking smile

NOTA: Solamente un tema mas, como parte de esta versión de las Workflow Tools, he añadido una nueva pequeña funcionalidad, que nos devuelve el usuario que ha iniciado el flujo de trabajo, para mas detalle ver: https://msdyncrmworkflowtools.codeplex.com/wikipage?title=Get%20Initiating%20User&referringTitle=Documentation

Espero les guste!!

un abrazo

domingo, 4 de septiembre de 2016

Actualización de Objetivos desde Workflow (Workflow Tools)

Buenas a todos. El verano se esta acabando y mis vacaciones ya son historia, así que me toca volver de nuevo a reactivar mi blog y contribuciones a la comunidad.

Siguiendo la línea de mis publicaciones de este año, voy a seguir mejorando la herramienta de workflows que está teniendo una gran aceptación, unas 400 descargas mensuales me indican que es una solución que al menos despierta interés en la comunidad.

Esta vez sigo mejorando los workflows para poder hacer algo que solo se puede hacer o por código o manualmente en Dynamics CRM. O al menos hasta hoy.

Como todos saben, el módulo de objetivos tiene una funcionalidad “asíncrona” que va recalculando como se va con el objetivo, sumando los valores reales definidos en el mismo. Este recalculo se hace en el server y solo puede ser forzado mediante este botón en la barra de comandos de los objetivos:

SNAGHTML3ca387be

Hoy he decidido que podamos hacer que este recalcular se pueda automatizar a través de un Workflow.

Como siempre, esta nueva funcionalidad ha sido añadida a las Dynamics CRM Workflow Tools, disponible en Codeplex: https://msdyncrmworkflowtools.codeplex.com

Todo el código fuente, descargas y documentación están disponibles allí.

Para utilizar el mismo, debéis instalar la solución en vuestro entorno de CRM, y seleccionar la acción de Goal Recalculate:

SNAGHTML3ca5bd1c

Luego, podéis simplemente pasarle un parámetro con el Objetivo que queréis recalcular:

SNAGHTML3ca63058

Listo, así de simple. La librería sigue creciendo y espero ideas para añadir cosas, por favor compartir vuestras ideas para hacerlo mejor!!

abrazo!

@demian_rasko

domingo, 3 de julio de 2016

Creación de Relaciones N-N desde Workflow–Asociaciones (Workflow Tools)

Hola, hoy he añadido una de esas funcionalidades que son muy necesarias en los Workflows.

Cuando creamos relaciones de tipo N-N, muchas veces nos olvidamos que este tipo de relaciones luego no pueden ser creadas desde Workflows. La sorpresa nos llega tarde, cuando necesitamos crear una de estas y no lo podemos hacer. Entonces empiezan los desarrollos.

En este caso, he añadido una nueva función que permite asociar entidades. Como siempre todo esta documentado y disponible el código para ser seguido en Codeplex: https://msdyncrmworkflowtools.codeplex.com/

Como siempre explico como funciona. Primero seleccionamos la accion:

SNAGHTML54516534

Y luego introducimos el nombre de esquema de la relación N-N y la URL del registro a asociar:

SNAGHTML54520211

Espero les guste esta nueva funcionalidad, que creo muy necesaria.

abrazo!

@demian_rasko

sábado, 25 de junio de 2016

Añadir/Quitar usuarios de Equipos desde procesos (Workflow Tools)

Hoy he continuado con la solución de los Workflows.

El otro día, un colega MVP me recordaba que no había acciones para añadir/quitar usuarios miembros de equipos, así que obviamente, me puse a ello. Este tipo de pequeños “retos” me da vuelta en la cabeza hasta que los hago, así que no podía esperar mas…

Como siempre, todo el código y la solución para descargarla está en Codeplex: https://msdyncrmworkflowtools.codeplex.com/ 

La idea es simple, se puede pasar un usuario y un Team, y se puede añadir o quitar usuarios de los mismos.

Para su utilización, seleccionamos primero la acción que queremos ejecutar:

SNAGHTML2fd99e38

Y luego le pasamos los dos parámetros:

SNAGHTML2fda61a8

y listo Smile simple como siempre.

Espero seguir contribuyendo a que cada vez se escriba menos “código” en Dynamics CRM, y podamos juntos ir haciendo los proyectos mas fácil, rápido y mantenibles.

Un abrazo!

@demian_rasko

sábado, 18 de junio de 2016

Geolocalizando direcciones–Latitud/Longitud– con Bing Maps (WorkFlow Tools)

Hoy sigo con mi aventura de los Workflows, al final todo lo que se me ocurra lo meteré aquí, lo que permitirá que cada vez “piquemos” menos código Winking smile.

Esta vez, me meto de lleno en la Geolocalización. La idea es simple: dado un “string” con una dirección, vamos a obtener la Geolocalización desde Bing Maps, y devolver la Latitud y Longitud.

Estos valores son muy necesarios para hacer cálculos posteriores relacionados con Geo posicionamiento.

Como siempre, el código está disponible y abierto a todo el mundo en Codeplex: https://msdyncrmworkflowtools.codeplex.com/

La idea de su funcionamiento es simple, primero seleccionamos la nueva actividad:

SNAGHTML704a807

Pasamos los parámetros de entrada:

La dirección debe ser introducida como se completaría en los mapas de “Bing”. La clave de Bing Maps debe ser válida. para obtener una clave ver este enlace: https://msdn.microsoft.com/en-us/library/ff428642.aspx

SNAGHTML70508c5

Finalmente podemos utilizar el resultado que es de tipo “Decimal” de la Latitud y Longitud. En este ejemplo, los guardo en los campos correspondientes de la Cuenta:

SNAGHTML706fcf4

Espero les guste!! Tiren ideasss!!!

@Demian_rasko

domingo, 12 de junio de 2016

Envíos de Emails desde Workflows (Workflow Tools)

Hoy voy a cubrir un requerimiento que ya estaba resuelto, pero que un cambio en el producto que desde la versión 2015 Update 1 perdimos todos.
Como siempre, todo el código esta abierto y publicado en Codeplex: https://msdyncrmworkflowtools.codeplex.com
Desde la versión de CRM 2011, si nosotros desde un Workflow creábamos un email y luego le actualizábamos el estado a “Envío Pendiente”, luego el CRM se encargaba de realizar el envío. Pues bien, desde la versión 7.1 ya no funciona así.
Entonces, a petición de un seguidor de las Workflow Tools, se me ha solicitado el añadir una solución para cubrir esta funcionalidad “perdida”. Para esta solución, me he inspirado en un artículo de otro MVP llamado George Doubinski (https://mvp.microsoft.com/ru-ru/PublicProfile/4020416?fullName=George%20Doubinski) en el blog del “Tip of the day”: http://crmtipoftheday.com/2016/03/17/reliably-send-email-in-workflow/
La idea es muuuuy simple, pero es tan simple como necesaria y útil. para ser utilizada, primero seleccionamos la acción “Send Email”:
SNAGHTML3158f4ed
Luego pasamos el parámetro de entrada del Email que queremos enviar:
SNAGHTML31596809
Y finalmente podemos utilizar un parámetro de salida con el asunto del email enviado, con el token de CRM añadido:
SNAGHTML3159f11f
Un abrazo a todos!!
@demian_rasko