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..
No hay comentarios:
Publicar un comentario