domingo, 12 de febrero de 2017

Insertando valores en OptionSets de forma automatizada (Workflow Tools)

Buenas a todos, hoy he añadido una nueva funcionalidad en las Workflow tools.

¿Cuántas veces elegimos optionsets en lugar de lookups porque se rellenan mas fácil a nivel de usuario? El problema surgía porque la limitación aparece porque los valores del OptionSet no son “mantenibles” por usuarios finales, sino que son metadatos…

Ok con la nueva funcionalidad que he creado, esta limitación la resolvemos. La nueva acción se llama “Insert Option Value”. Esta acción nos permite añadir valores en campos de tipo OptionSet, tanto locales como globales.

De esta manera, por ejemplo podríamos crear una entidad que contenga los valores de un OptionSet, y cada vez que cree un registro en esta entidad, con un simple workflow podemos ir añadiendo de forma automatizada los valores en el desplegable que se desee.

OJO!!!: esta nueva funcionalidad puede ser un poco “peligrosa” y tener cuidado al volver a importar soluciones, ya que estos valores podrían ser perdidos entre un entorno y otro…

Como siempre, toda la funcionalidad está desarrollada y compartida en todo su código fuente en Codeplex: https://msdyncrmworkflowtools.codeplex.com

Para utilizar esta actividad de workflow, se puede hacer de la siguiente manera, primero seleccionando la entidad:

image

Luego debemos introducir los valores de los parámetros:

image

Los parámetros son:

  • Global Option Set: set if the OptionSet is Global or not
  • Attribute Name: name of the local or global OptionSet
  • Entity Name: (optional) with the name of the entity. Only required for local optionsets
  • Option Text: Text of the new option to be added (label)
  • Option Value: Value of the new option to be added
  • Language Code: Language Code of the label

Adicionalmente, he resuelto una incidencia que había en las acciones de Associate y Dissasociate (N-N).

Espero les guste Winking smile

@demian_rasko

sábado, 24 de diciembre de 2016

Eliminar relaciones N-N o desasociando registros (Workflow Tools)

Buenos días a todos!

Hoy es nochebuena, y como “regalo” de navidad, una nueva actualización de las Workflow Tools.

Hace unos meses, en julio, cuando publique la funcionalidad de asociación de registros (http://www.demianrasko.com/2016/07/creacion-de-relaciones-n-n-desde.html) quise publicar también la des asociación de estos. El problema es que en esos días tuve alguna incidencia y no conseguí hacerlo funcionar. Posiblemente sea a causa de las altas horas de la noche en las que suelo hacer esto, y probablemente mi mente estaba ya demasiado agotada. La cuestión es que a petición de algún usuario en Codeplex (https://msdyncrmworkflowtools.codeplex.com/discussions/660101) he decidido volver a intentarlo, y esta vez si que ha ido bien.

Por lo tanto, esta nueva versión ya lo incluye. Como siempre, todo el código fuente y documentación esta disponible en Codeplex: https://msdyncrmworkflowtools.codeplex.com/

Para utilizar esta funcionalidad, primero seleccionar la acción:

SNAGHTML9831c5d

Y luego rellenar los dos parámetros:

image

Los parámetros son:

  • Relationship Name: donde debemos introducit el nombre de esquema de la relación N-N
  • Record URL: con la URL del registro que queremos relacionar al registro principal del contexto de ejecución del workflow.

En esta release, también he incluido un “arreglo” a una incidencia que había con los “Query Values”. Resulta que en la versión inicial había un error al ejecutar esta acción en los casos en que el parámetro “Attribute2” estaba vacío. Daba un error de Null…. El tema es que parece que al haber parámetros opcionales en la entrada que están vacíos, luego en los parámetros de salida daba una exception. Si se rellena un valor de un campo (aunque no se quiera utilizar), se resuelve. En la nueva verión los dos parámetros son obligatorios, con lo cual esta resuelto.

Espero paséis todos una feliz nochebuena y que esto les sea útil!

Sigo abierto a recibir feedback de nuevas funcionalidades a crear!

Un abrazo a todos

@demian_rasko

domingo, 11 de diciembre de 2016

Actualización masiva de registros hijos desde Procesos (Workflow Tools)

Buenas a todos, hoy vuelvo a escribir aquí con una nueva funcionalidad en mis Workflow Tools, que espero os guste.

Como siempre, mis herramientas están publicadas en Codeplex con todo el código y documentación disponible: https://msdyncrmworkflowtools.codeplex.com/

Hoy he realizado unos cambios en el proyecto, en el código y luego he añadido una nueva funcionalidad muy muy buena y compleja.

Primero he cambiado mi proyecto, para que pueda ser probado por fuera del plugin desde una aplicación de consola, posiblemente algún día publique algún post en este sentido para explicarlo en detalle.

Segundo, he añadido una nueva funcionalidad que he llamado “Update Child Records” permite actualizar todos los registros hijos de un registro padre. Permite la actualización de un campo de cada uno de los hijos basado en dos criterios:

1) Copiando dinámicamente el valor de un campo padre a un campo hijo, proporcionando el nombre del campo en la entidad padre

2) Copiando un valor estático como string pasado como parámetro en el workflow

Para utilizarlo, primero seleccionamos la acción:

image

Y luego debemos rellenar los parámetros:

image

Los parámetros son:

  • Parent Record URL: con la URL del registro (recogerla del propio workflow)
  • Relationship Name: nombre de esquema de la relación entre registro padre e hijo
  • Parent Field Name: (opcional) nombre del campo padre a copiar en los hijos
  • Value to Set: (opcional) si el campo anterior no se ha rellenado, podemos poner aquí un valor fijo en formato string
  • Child Field Name to Update: Nombre del campo de la entidad hija que vamos a actualizar masivamente

Notas:

1) La relación debe existir (tener cuidado cuando se escriba)

2) Los tipos de campos de la entidad padre e hija deben ser iguales.

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