miércoles, 25 de febrero de 2015

Dynamics CRM 2015 Workflow Tools

Esta semana he creado un nuevo proyecto en Codeplex, con la idea de ir mejorándolo poco a poco.

Mi objetivo es crear una gran librería de soluciones basadas en Actividades de Workflow que permitan a usuarios o implementadores hacer muchas de las cosas que naturalmente hacemos los desarrolladores.

Si podemos ir acercando mas y mas herramientas a consultores de negocio y usuarios, facilitaremos su trabajo.

Lo he llamado “Dynamics CRM 2015 Workflow Tools” y está disponible aquí: https://msdyncrmworkflowtools.codeplex.com/

De momento solo hay dos actividades de Workflow disponibles:

  • Force Calculate Rollup Field: para forzar el cálculo de campos Rollup
  • Apply Routing Rules: para aplicar las reglas de enrutamiento de casos

Estoy abierto a recibir cualquier idea de nuevas actividades, iré añadiendo periódicamente nuevas que vaya encontrando por ahí.

Intentaré mantenerla para diferentes versiones, pero empezando con CRM 2015, si lo necesitan para versiones anteriores, tenéis todo el código disponible para ser utilizado sin problemas en Codeplex.

Un saludo,

domingo, 22 de febrero de 2015

Ejecución de reglas de enrutamiento para Casos por SDK

Desde CRM 2013, existe la posibilidad de crear reglas de enrutamiento de los casos.

Básicamente, la idea es que mediante una serie de condiciones, los casos puedan ser enrutados a determinadas colas o asignados a equipos o usuarios.

image

Solo puede haber una regla activa, que a su vez puede contener Elementos de regla como se ve a continuación:

image

image

Los elementos de regla, pueden asignar a colas o a equipos dependiendo de condiciones:

image

Ok, esto está muy bueno, pero el tema es que solamente se pueden utilizar desde:

  • Reglas de creación de emails a casos
  • Manualmente desde las vistas o formularios de Casos como se muestra a continuación:

image

Ok, hoy lo que hice fue buscar una manera de que esto se ejecute cuando uno quiera y para esto busqué el mensaje que hace esto que se llama ApplyRoutingRuleRequest (https://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.applyroutingrulerequest.aspx).

La utilización no puede ser mas sencilla:

ApplyRoutingRuleRequest routeRequest = new ApplyRoutingRuleRequest();
routeRequest.Target = new EntityReference(“incident”, new Guid(“{0000-00000-00000-0000}”));
ApplyRoutingRuleResponse routeResponse = (ApplyRoutingRuleResponse)service.Execute(routeRequest);

Mediante este mensaje, lo que hace es enrutar el caso que se le pase con su código, con la regla de enrutamiento activa.

La solución que desarrollé está incluída en un nuevo proyecto que creé en Codeplex, donde iré publicando nuevas herramientas: https://msdyncrmworkflowtools.codeplex.com/

Solamente hay un tema, y es que en algunas versiones de CRM, este método esta fallando y el enrutamiento no funciona. No devuelve error ni nada, pero lo ejecuta correctamente. En el Update Rollup 2 de CRM 2013 SP1 ya esta resuelta esta incidencia (http://support.microsoft.com/kb/2963850) allí dice dentro de lo que se resuelve:

  • Si ejecuta el mensaje de ApplyRoutingRuleRequest en el código se ejecuta sin error, pero no se aplica la regla.

Un saludo!

domingo, 15 de febrero de 2015

Cálculo de importe medio con campos Consolidados y Calculados

Sigo divirtiéndome con los campos Rollup y Calculados.

Hoy, lo que voy a hacer es mostrar como calcular una media, sin tirar ni una sola línea de código. Los campos calculados (Rollup), no permiten calcular promedios, solo permiten sumas, máximos y mínimos.

Entonces, si por ejemplo necesito una media debo volver a desarrollar un plugin? la respuesta en No.

Voy a explicar a continuación como podemos hacerlo. En el siguiente ejemplo, quiero calcular el importe medio de las oportunidades de una Cuenta.

Para esto, primero me creo dos campos de tipo consolidado con la cantidad de oportunidades y con el importe total de las mismas:

image

image

Y luego me creo un campo CALCULADO, que haga la división de los dos anteriores:

image

Finalmente los añado en el formulario, y el resultado es el deseado:

image

Simple, y extremadamente funcional. Pensar hacer unos pocos meses, antes de CRM 2015, el tiempo de desarrollo de plugins que podía requerir hacer esto que ahora podemos hacer con “point & click”, es simplemente genial.

Espero les sirva para imaginarse nuevas ideas creativas Guiño

un saludo