7 cosas a tener en cuenta al hacer integraciones con volúmenes altos de datos en Dynamics 365 CE (aka CRM)

En la mayoría de los proyectos en los que he participado y que Dynamics 365 CE (aka CRM) estaba involucrado, en mayor o menor medida, hemos tenido que integrarnos con otros sistemas para cruzar datos entre ambos. Estas son algunas cosas que he ido aprendiendo y que me han ido enseñando (gente que sabe mucho mas de D365CE que yo) a lo largo de estos proyectos. Si estas leyendo esto y tienes algún tip mas, no dudes en ponerlo en los comentarios, !siempre será bienvenido!

No integrar datos si no es imprescindible

Esta primera recomendación parecerá algo obvio, pero no lo es. En mas de una ocasión (y de dos) me he encontrado con la necesidad de mover n cientos de miles de registros del sistema X a D365 CE (o lo que es lo mismo, a CDS) y que además, si una vez en nuestro sistema el dato se modificaba, este tenia que volver al sistema de origen actualizado. Y para ello planteaban procesos nocturnos… que voy a contar, reuniones de muchas horas con muchas personas ($$$) no técnicas decidiendo como hacerlo… y al tirar un poco del hilo, se ha descubierto que esos datos son solo de consulta, que no es necesario en realidad que el usuario de CRM interaccione con los datos mas haya de consultarlos.

Siempre que puedas evitarlo, no integres los datos. Que se queden en el sistema de origen. Si son datos de solo consulta, en D365 tienes opciones como las entidades virtuales, o tal vez puedes recuperar a demanda en el momento que necesites consultar esos datos montando algún servicio web.

Comprueba quien mantiene los datos

Si no tienes mas remedio que integrar, por que si necesitas que los datos estén en tu sistema, procura que sea algo del tipo “maestro-esclavo“, o lo que es lo mismo, que los datos solo se mantengan el el sistema de origen.

Si finalmente tu sistema tiene que ser una integración bi-direccional (los datos se pueden mantener en los dos sistemas), ¡animo!, y dedícale todo el tiempo necesario a pensar y diseñas antes de ponerte manos a la obra. Te aseguro que a medio/largo plazo terminaras antes que poniéndote rápidamente a implementar, y también te aseguro que el coste de pararte a pensar es menor que el de las reuniones que antes he comentado, y tendrá un retorno mucho mayor.

Comprobar plug-ins y Workflows sincronos

Una vez hemos visto que es necesario realizar la integración, tenemos que intentar que esta se realice con el mejor rendimiento posible. Por eso, hemos de comprobar que no exista ningún plug-in ni workflow que se ejecute de manera síncrona al insertar un registro en la entidad, ya que si es así, tendremos que esperar a que se realicen las tareas necesarias para cada uno de los registros antes de pasar a insertar el siguiente. En estas integraciones, 100ms en cada registro importan.

Eliminar la auditoria de la entidad

Si vamos a insertar un gran volumen de datos, mejor desactivar la auditoria de la entidad, ya que si no aumentaremos los volúmenes y en número de inserciones en CRM.

Desactivar las reglas de detección de duplicados

Cuidado con esto, queremos que el proceso sea lo más optimo posible y que cargue los más rápido posible.

Desactivar el Activity feed

No queremos tener un activity feed de una entidad que tenga integraciones con altos volúmenes. Por un lado, no aportarían información interesante, y por otro lado estamos aumentando el número de inserciones que ha de realizar CRM.

Carga en paralelo de registros

Os voy a ser sincero, en esta sección tenia puesto que había que lanzar procesos por lotes. Pero veo en la documentación de Microsoft que esto no es correcto, que es mejor lanzar varias peticiones individuales en paralelo. (https://docs.microsoft.com/es-es/powerapps/developer/common-data-service/api-limits)

Captura de página oficial de Microsoft con explicación del procesamiento por lotes. Se accede desde el enlace previo.

Bonus: Cuida mucho el API LIMITS

Mucho cuidado con este tema, el licenciamiento de D365 limita el número de peticiones diarias a la API:

Pantallazo de los limites de la api de licenciamiento de D365. Se accede a los datos desde el enlace siguiente

https://docs.microsoft.com/en-us/power-platform/admin/api-request-limits-allocations

Hasta aquí los consejos para la carga de datos en D365 CE, o como dice mucha gente, D365 CRM mi jefe me mata si ve que lo llamo así 🙂

¿tienes algún consejo más? No dudes en ponerlo en los comentarios.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.