martes, 29 de septiembre de 2015

Nueva versión: Dynamics CRM 2015 Workflow Tools

Hola a todos, hoy voy a publicar acerca de una modificación que he realizado sobre mi solución de Dynamics CRM 2015 Wokflow Tools (https://msdyncrmworkflowtools.codeplex.com) que tengo compartida en Codeplex.

Hace tiempo que no la actualizo, aunque en realidad en base a colaboraciones de gente que propone cambios y soluciona “bugs” en esta librería, me he tentado a añadir mas funcionalidad.

En esta nueva versión, la 1.0.5.0 he modificado:

  • [Bugfix]: en casos particulares no se reiniciaban bien los privilegios cuando se compartían/des compartían registros
  • [New feature]: Nueva acción “CheUserInRole” para verificar si un usuario tiene un rol de seguridad determinado
  • [New]: He creado soluciones descargables para versión CRM Online 2015 Update 1 (7.1) y para CRM 2015 Onpremise (7.0).

La nueva funcionalidad de verificación del role de un usuario se usa así:

SNAGHTML2fb22b39

Luego definimos por que role queremos comprobar:

SNAGHTML2fb2d2a4

Como resultado obtenemos un valor booleano que nos dice si el usuario que lanzó el flujo de trabajo, tiene ese rol o no y lo podemos utilizar como un campo mas del workflow para condiciones o valores:

SNAGHTML2fb3e685

Espero les haya gustado y les sirva de utilidad….

un abrazo

@demian_rasko

sábado, 26 de septiembre de 2015

Utilizando la Nueva Web API

Como ya os he contacto en un pasado POST (http://www.demianrasko.com/2015/08/nueva-web-api-en-update-1.html) la nueva Web API, ya está aquí, y llega para quedarse.

Esta nueva Web API abrirá un nuevo mundo en el desarrollo con Dynamics CRM, y hoy os voy a mostrar como poder empezar a “jugar” con ella desde una aplicación de consola. Tener en cuenta que está en preview y solo es para pruebas.

Lo primero que he hecho, es crearme una trial en CRM Online,o utilizar una existente pero hay que asegurarse que tiene Update 1, y luego habilitar la preview de Web API:

image

Para comprobar que funciona, podéis meter las URLs y probarlo por ejemplo:

image

SNAGHTML2f29100a

SNAGHTML2f28ce9c

Ok, ya funciona. Lo siguiente que hay que hacer es registrar nuestra aplicación de consola que vamos a desarrollar con Azure para poder dar permisos a la misma de acceder a datos de CRM. El paso a paso para hacer esto está descrito en este artículo: https://msdn.microsoft.com/dynamics/crm/mt149065.aspx

En realidad significa dos pasos:

1) Registrar el AD del CRM el de nuestro Azure, para que la autenticación de los dos ADs se “vean” bien

2) Registrar nuestra App y darle permisos

Para registrar el AD, básicamente vamos a Azure, y añadimos el AD de nuestra trial de CRM Online, y nos logueamos con las credenciales del CRM Online y autorizamos el enlace:

SNAGHTML2f2cc496

Seleccionamos “Usar directorio existente” (el de CRM Online)

SNAGHTML2f2d14aa

Nos autenticamos con las credenciales de nuestra trial:

SNAGHTML2f2d532a

SNAGHTML2f2db196

Confirmamos la relación entre ADs:

SNAGHTML2f2de884

Lo siguiente que hay que hacer es ir a ese AD, y añadir nuestra apliación y darle permisos. Como resultado tendremos un Aplication ID

SNAGHTML2f2f822f

Seleccionamos agregar la aplicación que estamos desarrollando (y seguimos los pasos siguientes):

SNAGHTML2f2fba47

Finalmente tenemos el Id de cliente, que utilizaremos en nuestro código:

SNAGHTML2f300058

Ahora hay que darle permisos a nuestra nueva aplicación, para conectarse al CRM:

SNAGHTML2f304baa

Seleccionamos Dynamics CRM Online:

SNAGHTML2f3097f5

Le damos los permisos:

SNAGHTML2f30dd1c

Genial, una “pequeña” parte del trabajo, ya está hecha.

Ahora vamos a abrir el Visual Studio por fin. En este caso voy a basarme en los ejemplo que hay en https://code.msdn.microsoft.com/Basic-Operations-with-web-67fc1d8f

Primero abrimos el proyecto y en el App.Config cambiamos lo siguiente (en ClienteID y en RedirectURL debemos introducir lo que pusimos en Azure al registrar la App):

SNAGHTML2f38ab66

Al ejecutar el código, en la línea que intenta autenticar con CRM para recoger el Token, nos aparecerá una ventana de autenticación con CRM:

SNAGHTML2f3c62a2

Luego viene la línea donde intenta crear una Cuenta, que es una petición simple de tipo “POST” con al jSON de la Cuenta a crear:

SNAGHTML2f3d3bad

Si ejecutamos esa línea podemos ver en nuestro “Fiddler” como esta Cuenta es enviada y la URL con la que nos responde:

SNAGHTML2f3dcb89

Que si la Copiamos y pegamos en nuestro navegador tenemos la misma:

SNAGHTML2f3ee5f2

Simple, sencillo, moderno, abierto y directo.

Por fin disponemos en Dynamics CRM de una API completamente RESTfull que implementa todos los métodos y actualizada a los estándares oData v4.

Emocionantes tiempos nos vienen en los próximos tiempos para los desarrolladores de Dynamics CRM. Sin duda un gran paso adelante en la plataforma y un gran trabajo del equipo de producto en este punto.

Creo que si bien este punto es muy “teki” (técnico) y no todos los implementadores de CRM son desarrolladores, el mensaje importante a destacar es que Dynamics CRM será convertida en una plataforma que si bien sigue siendo desarrollada en .NET por debajo, será abierta a todos los lenguajes de desarrollo y tecnologías y dispositivos. Será mucho mas fácil realizar integraciones, aplicaciones móviles, etc.

Espero les haya gustado!

Un abrazo!

@demian_rasko

jueves, 3 de septiembre de 2015

Extendiendo Microsoft Dynamics CRM 2015 y CRM Online – Curso de Desarrollo

SNAGHTML77ad1d13

Para todos aquellos que ya hicieron mi curso de CRM 2011 enfocado en el desarrollo, y para todos aquellos que me han pedido que saque uno para CRM 2015, os comento que he creado un nuevo curso de desarrollo con CRM y CRM online para esta versión.

Durante las ultimas semanas, he estado terminando el mismo, y puedo confirmar que ya está disponible para la comunidad: 

Está basado en el mismo curso de CRM 2011, pero con ejemplos diferentes, con capítulos nuevos y mas contenidos y además comentarios de lo que ha cambiado de 2011 a 2015 en cada uno de los puntos que hayan cambiado en algo.

La verdad que es un esfuerzo importante grabar cerca de 4 horas de vídeos, sobre todo teniendo en cuenta que lo hago por las noches tarde, intentando no despertar a mis hijos Guiño mientras duermen…je

Espero os guste, espero feedback y que en un futuro lo complete con mas y mas contenidos o lo actualice para nuevas versiones.

El temario completo:

Temario:

Capítulo 1: Introducción al SDK

  • [1] – Introducción al desarrollo con Dynamics CRM y al SDK

Capítulo 2: Conectándose a CRM mediante el SDK y Trabajo con Datos

  • [2.1] – Introducción al desarrollo de aplicaciones .Net para Dynamics CRM
  • [2.2] – Conectándonos a Dynamics CRM desde Visual Studio
  • [2.3] – Early Bound vs Late Bound
  • [2.4] – Ejemplos de Create, Update y Delete de registros con Early y Late Bound
  • [2.5] – Consultando datos en Dynamics CRM
  • [2.6] – Consultas con LinQ
  • [2.7] – Consultas con FetchXML
  • [2.8] – Consultas con QueryExpressions
  • [2.9] – Consultas con método Retrieve
  • [2.10] – Ejecuciones múltiples (métodos ExecuteMultiple y ExecuteTransaction)
  • [2.11] – Consultas con SQL FilteredViews
  • [2.12] – Trabajo con claves externas
  • [2.13] – Ejemplos de otros mensajes disponibles en la SDK de Dynamics CRM
  • [2.14] – Trabajo con metadatos desde la SDK
  • [2.15] – Mejoras prácticas y recomendaciones
  • [2.16] – Manejo de excepciones en CRM

Capítulo 3: Javascript

  • [3.1] – Introducción al desarrollo con Javascript para Dynamics CRM
  • [3.2] – Introduciendo código Javascript en formularios de CRM
  • [3.3] – Ejemplo de consultas REST y SOAP desde Javascript con XrmServiceToolKit
  • [3.4] – Depuración de Javascripts

Capítulo 4: Plugins

  • [4.1] – Introducción al desarrollo de plugins en CRM
  • [4.2] – Desarrollo de un plugin paso a paso
  • [4.3] – Registro de un plugin y despliegue
  • [4.4] – Depuración de plugins en CRM Online
  • [4.4] – Depuración de plugins en CRM Onpremises
  • [4.5] – Utilizar imágenes en plugins
  • [4.6] – Manejo de autenticación y seguridad en plugins
  • [4.7] – Desarrollo y depuración de plugins asíncronos
  • [4.8] – ILMerge y despliegue de plugins con soluciones

Capítulo 5: Custom Workflow Activities

  • [5.1] – Introducción al desarrollo de workflow assemblies
  • [5.2] – Desarrollo de una custom workflow activity  paso a paso
  • [5.3] – Utilización de parámetros en custom workflow activities

un abrazo!

@demian_rasko