Configurando Data Export Service en Dynamics CE

Muchas veces cuando nos encontramos con una implementación de Dynamics CRM tenemos la necesidad de generar informes que nos hagan saber la salud de la organización,  muchas de estas veces el nivel de información es muy grande y muy seguro todos nosotros nos hemos topado con dificultades como:

  1. Las gráficas fuera de caja de CRM están limitadas a 5,000 registros, límite que nos establece la API de CRM
  2. Si nuestro informe se requiere consultar con una alta frecuencia o requerimos de un nivel alto de respuesta
  3. Al realizar varias consultas con un alto nivel de información afectamos el performance de nuestra instancia

Algunos de estos problemas no los tenemos cuando existe una instalación OnPrem, pero para OnLine era complicado obtener un respaldo de nuestra BD y de ahí poder hacer BI sin preocupaciones y digo era complicado por que desde hace ya algunos meses se liberó lo que se conoce como Data Export Service, el cual en conjunto con Azure, SQL Server y una solución en nuestro Dynamics, podemos hacer esto una realidad, las posibilidades no son solo para el tema de BI, si no para tener un respaldo siempre actualizado en una BD de SQL.

clip

En este post los llevaré pasó a paso como llevar acabo la instalación


1. Pre-requisitos

  • Es necesario contar con una suscripción a Azure
  • Es necesario que el usuario sea administrador en Azure como en Dynamics
  • El usuario a utilizar deberá de pertenecer al mismo AzureActiveDirectory que Dynamics
  • Se deberá de contar con una suscripción válida de Azure

2. SQL on Azure

Como primer paso necesitamos ingresar a nuestro portal de azure y vamos a crear un recurso del tipo SQL Server, las propiedades pueden variar según la locación y de preferencia seleccionar la BD más económica ya que es una prueba.

Para casos productivos el nivel de transacciones definirá el tipo de recurso a ocupar

sql1
Configuración Server

Es importante guardar el usuario y password que asignamos a nuestra BD

sql2
Configuración de capacidad de Base de Datos

Una vez creada, en el dashboard de Azure buscamos nuestra BD y damos detalles y debemos de ver esto

sql3
Datos de configuración

Es importante copiar y pegar lo que esta en amarillo ya que lo usaremos mas delante, para la conexión de SQL es importante dar click en donde dice “Show database connection strings”

Y deberemos de copiar la siguiente conexión

sql4
Conexión SQL

*Nota

Es importante considerar que el acceso a las BD que se encuentran en Azure tienen como seguridad el bloqueo de peticiones de todas las ips publicas, para poder conectarnos es necesario autorizar las diferentes IPs Públicas desde donde tendremos acceso a esta BD

3. Creando usuario y password en SQL

Para poder tener acceso a nuestra BD, es necesario asociar un usuario, para esto lo haremos desde nuestro SQL Management Studio, en este caso la versión más nueva, la cual detecta los bloqueos de Azure y me pregunta si quiero desbloquear mi IP pública, claro esta que el usuario que me pedirá será un global admin

SQL2
Autorizar IPs

En la imagen anterior puedo autorizar una sola IP o todo un rango, en los campos de la conexión he ingresado el nombre del servidor que establecimos y el usuario y contraseña que fueron creados al momento de crear la base de datos en Azure.

4. Creación de usuario y password

Una vez firmados en nuestra bd es necesario correr el siguiente script en la BD Master

create login [dynuserexport] with password ='password'

Y en la BD que acabamos de crear corremos el siguiente script

create user [dynuserexport] from login [dynuserexport];
exec sp_addrolemember 'db_owner','dynuserexport'

5. PowerShell y Azure Extensions

El siguiente paso es instalar las Azure Extensions [obtener de aquí]

De ahí es necesario abrir PowerShell ISE en modo administrador en tu equipo e instalar o correr las siguientes instrucciones (Una por una):

Install-Module -Name AzureRM -AllowClobber
Import -Module -Name AzureRM

Si en algún momento nos aparece una leyenda diciendo que los scripts no están habilitados será necesario correr este otro script

set-executionpolicy remotesigned

6. Instalando Data Export Service solution en Dynamics 365

Es momento de ingresar a Dynamics 365 CE y dirigirnos a:

Settings/Customization/Dynamics Marketplace

Sol1

Después buscamos entre las apps Data Export Service

Sol2

Al seleccionar instalar se tardará unos cuantos minutos, el proceso lo puedes revisar en el administrador de instancias.

Una vez terminada la instalación y estando dentro de CRM vamos a

Settings/Customizations/System/Data Export

Data

Vamos a crear un perfil nuevo, los perfiles son encapsuladores de entidades, podemos crear varios con diferentes entidades si así lo deseamos.

Al dar clic en nuevo tendremos la siguiente ventana

Enti

En esta sección por el momento solo nos interesa lo que aparece cuando presionamos el icono de info, aparecerá una ventana emergente con mucho texto, es necesario copiarlo y pegarlo tal cual en nuestra sesión de PowerShell y deberá de lucir de esta manera

SettingsNoData.png

A continuación vamos a listar cada linea de configuración y de donde se obtiene

1. subscriptionId: Este número es el id de suscripción de Azure y se puede obtener en

Azure1

2. keyvaultName: Este es un espacio especial para guardar llaves de seguridad en Azure, el nombre que se le asigne aquí, es el nombre que tomara para agregarlo como un recurso en Azure, debe de ser texto y es un nombre.

3. secretName: Es el nombre secreto dentro de la caja fuerte (keyvaultname), es también texto y el script se encargará de crearlo en Azure.

4. resourceGroupName: Es el nombre bajo donde queremos que se cobren o se facturen los recursos antes declarados, es un campo de texto.

5. location: Este valor se declaro al momento de crear la base de datos en los primeros pasos,  es un texto como: “South Central US”

6. connectionString: Este valor se obtiene en las propiedades de la base de datos, en el texto de {user} y {password} se deberá de reemplazar por el usuario y password que creamos en pasos anteriores.

SQLCon

7. organizationIdList: Este valor es el OrganizationId de CRM, el cual se encuentra en Settings/Customization/Customizations/Customize the system.

Org

8. tenantId: Este valor es el id de Azure, este valor se obtiene en

Azure1

Por fin se ha terminado la configuración!!!Feli

Ahora es momento de volver a la venta de Power Shell ISE y correr el script, una vez terminado el script debemos de regresar a Azure y en la búsqueda debemos de buscar el nombre del keyVault que se generó, una vez encontrado navegamos en el secretName y al seleccionarlo copiamos la URL que aparece a nuestra derecha.

Resul.png

Casí terminamos..

Finalmente regresamos a CRM y en el perfil que iniciamos en pasos anteriores vamos a llenarlo de la siguiente forma:

Val1
Solo debemos de ingresar la URL y el nombre del perfil en esta ventana

En el campo Key Vaul URL copiamos la URL y debemos de seleccionar la opción “Validate”, si todo lo hicimos bien debemos de obtener un mensaje de éxito.

Val2

Una vez validado podemos avanzar y seleccionar las entidades que deseamos se muevan a nuestra BD en Azure, de primera instancia le tomará tiempo al proceso mover toda la información, en lo subsecuente será más rápido ya que solo se estará llevando un diferencial o delta de lo que se tiene.

Hoy en día no existe un SLA sobre los tiempos que puede tomar mover la información de un lado a otro, sin embargo la latencia en la mayoría de los casos es de 15 minutos o menos, sin embargo este número es afectado por muchos otros factores como:

  1. La cantidad de entidades a mover
  2. La cantidad de registros que existen en cada entidad
  3. El tipo de servidor y plan seleccionado en la creación de los recursos en Azure (Microsoft recomienda usar Azure SQL Database Premium P1)
  4. La cantidad de atributos en cada entidad

*Nota importante: Para las entidades personalizadas que se desea enviar a la BD de Azure es importante activar la propiedad “Change Tracking” dentro de la definición de la entidad a nivel solución

Track.png

Y una vez creados los perfiles y en ejecución deberemos de poder observar algo como

Resul2

 

Ha sido hasta el momento el post más largo en mi experiencia como profesional, gracias por leerlo y cualquier pregunta no duden en hacerla en los comentarios.

Saludos!crm_lovers_logo_azul

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s