Uno de los temas que suelen surgir en las implataciones de MSCRM es el de como acceder a los datos directamente a través de consultas directas al SQL Server.
Para esto intentaré explicar la estructura de las tablas de SQL Server en MSCRM 4.0.
MSCRM 4.0 crea una base de datos por cada empresa por ejemplo "Contoso_MSCRM".
Allí, por cada entidad creará 2 tablas por ejemplo para Cuentas:
AccountBase: con todos los campos de sistema.
AccountExtensionBase: con todos los campos personalizados que añadamos.
Por encima de estas dos tablas, existe una vista: "Account", que ya nos devuelve todos los campos de las dos tablas anteriores. Además esta vista añade columnas que resulven nombres de las referencias añadiendoles el texto "name".
Acceder a las tablas fisicas, o a esta vista, son formas no soportadas de acceder a la información, y por lo tanto no deberían ser utilizadas si se quiere hacer un trabajo 100% soportado.
La forma soportada de acceder a la información es a traves de las "FilteredViews" que son otras vistas que crea MSCRM que para nuestro caso se llamará "FilteredAccount".
Esta vista no solo resolverá los nombres de las referencias (lookups) sino tambien resolverá los textos de los desplegables (picklists), resolverá los desplazamientos horarios en los campos de tipo fecha y adicionalmente filtrará la información segón los permisos que disponga el usuario que está realizando la consulta.
Para hacer todo esto, para consultar las FilteredViews será necesario conectarse al SQL Server a traves de una conexión mediante autenticación de Windows.
Este recuadro explica las diferencias entre cada una: