Dynamics CRM

Borrado de campos del CRM desde la aplicación

Realizando una migración de una base de datos ORACLE al SQL SERVER 2005 del Microsoft Dynamics CRM 4.0 he descubierto una cosa curiosa respecto al borrado de campos desde la aplicación.

Cuando una entidad tiene un campo lookup de otra, como es lógico, la entidad origen debe estar migrada antes de empezar la migración de la segunda. Para rellenar el lookup tengo que recuperar el GUID del registro que quiero de dicha entidad y luego junto con los otros datos de los registros lanzar con la API del CRM la importación.

Ejecutando una consulta a la base de datos del SQL SERVER me he dado cuenta que al hacer un inner join con una de las tablas del CRM me sacaba todo duplicado.
Después de darle muchas vueltas a la consulta he observado que aunque en el CRM la entidad de origen no estuviera duplicada, en la base de datos seguía teniendo registros de más.
Esto es debido a que al borrar desde la aplicación los campos de la base de datos NO SE BORRAN. El mecanismo que utiliza el CRM es que el atributo DELETESTATECODE se pone a 2 y la aplicación no muestra dichos campos.


Esta es la causa de que la consulta que estaba realizando sacara duplicados.
Por ello si vais a borrar y después realizar una consulta en la base de datos este detalle puede hacer que ahorremos mucho tiempo.

1 comentarios:

  Nacho

2 de diciembre de 2009, 17:11

Muy buenas, estoy personalizando el CRM de mi empresa y tengo que migrar las cuentas y contactos de la BD de nuestro ERP al CRM. Por lo poco que he visto, esto es bastante delicado (x el tema de los metadatos) ¿conoces alguna herramienta para esta tarea? ya he hecho una migración y algun campo relacional debe haberseme escapado porque cuando paso un par de páginas de la vista de cuentas me salta un error del CRM.

Gracias de antemano ;)