Mostrando entradas con la etiqueta Share. Mostrar todas las entradas
Mostrando entradas con la etiqueta Share. Mostrar todas las entradas

jueves, 26 de enero de 2012

Tabla de registros compartidos en CRM 2011

Hola amigos de.. Continuando con mi legado de chicharrones en CRM 2011 les cuento que esta vez me enfrente a conocer la tabla donde se guardan los registros que uno comparte en la aplicación.. se preguntaran como así.. Pues bien les voy a contar..

Ustedes saben y si no pues ya se darán cuenta.. Que yo por medio de la aplicación CRM 2011 o CRM 4.0 puedo compartir clientes entre usuarios nada del otro mundo.. le otorgo mis permisos y listo. Pero a nivel de base de datos.. Donde queda esto??. Pues bien prepárense que aquí les voy a mostrar desde la aplicación hasta la base de datos.

1 vamos a la entidad contactos y seleccionamos el contacto que deseamos comparir con otro usuario.


Luego de seleccionar el contacto, presionamos la opción de compartir o share en el menú superior.




Se nos abrirá una ventana como la siguiente.


En donde presionamos el botón de Add User / Team para anexar los usuarios con los que deseamos compartir este cliente.

Y así mismo le otorgamos los permisos sobre el cliente.


Luego de esto presionamos o.k y le concedemos los permisos deseados a los usuarios seleccionados.


Y presionamos O.k

Hasta aquí nada del otro mundo.. simplemente compartimos un contacto con dos usuarios del sistema..

Ahora bien a nivel de base de datos como veo eso…

Pues  les cuento que después de tanto mover cosas girar y colocar preguntas.. y no obtener respuestas.. Encontré la tabla donde se guardan estos registros..

A nivel de base de datos estos registros se guardan en la tabla PrincipalObjectAccess

La cual contiene logicamente unas columnas pero la vaina es saber en que colunmas me doy cuenta o como relacciono mis registros compartidos. Pues bien en la tabla hay dos columnas que nos permiten saber esto.

PrincipalId : esta columna es el id del usuario o usuarios al que se le compartio el registro

ObjectId : esta columna es el id del registro en nuestro caso del contacto compartido



Ya con estos datos puedo hacer un join entre las tablas: PrincipalObjectAccess, contact, systemuser y puedo obtener el nombre del o de los usuarios que comparten registros o en nuestra caso contactos y conocer el nombre de contacto compartido.

El cual sería algo como así:

select      B.FullName As Cliente,
            C.FullName AS Usuario
from  PrincipalObjectAccess A,
            Contact B,
            SystemUser C
where A.PrincipalId = C.SystemUserId
            And A.ObjectId = B.ContactId



Pues nada amigos, espero que les haya interesado este post y espero que algun dia lo puedan usar… recuerden dejar sus comentarios para que cada uno de nosotros crescamos a nivel intelectual y de conocimiento..

Y nada saludos..