none
Guardar cada cambio en una entidad RRS feed

  • Pregunta

  • Que tal genios de XRM?

    Estoy con un pequeño lío y no se me ocurre como resolverlo.

    Estoy trabajando con Dynamics CRM 4.0, necesito que sobre una entidad custom se haga el siguiente proceso:

    Cada vez que un campo de un formulario de esta entidad sea modificado y guardado, necesito que se guarde por duplicado, por un lado el guardado común y corriente que se logra haciendo click en "Guardar" o "Guardar y cerrar". Por otro lado que se guarde un duplicado en otra vista.

    Esto lo necesito para que se pueda llevar un historial de todos los cambios que sufrió cada cliente (o formulario) en el tiempo.

    A mi se me ocurrió hacerlo de esa manera pero no se me ocurre el codigo para hacerlo. Alguien tiene idea como seria o si hay otra manera mas eficiente de poder llevar el historial de cada modificacion del formulario?

    Gracias!!

    jueves, 27 de diciembre de 2012 12:07

Respuestas

  • Hola Leandro, si pudieses, lo ideal sería migrar a crm2011 (je, es que en 2011 ya se dispone de auditoría out of the box).

    Por otro lado hay un par de soluciones ya existentes para auditoria para CRM 4.0 (yo he probado alguna y van bien, aunque son sencillas):

    - http://code.msdn.microsoft.com/auditing4crm

    - http://crmaudit.codeplex.com/

    sino, lo podes hacer a mano. una solución podría ser (suponiendo que tu entidad se llama "new_custom"):

    1) crear una entidad que se llame "new_customhistorial"

    2) en esa entidad nueva, crear los mismos campos que la entidad "new_custom"

    3) crear un nuevo campo de tipo lookup en "new_customhistorial" que apunte a "new_custom"

    4) crear un nuevo plugin en la entidad "new_custom" en el evento "pre" (créate/update). este plugin deberá recoger los datos del registro, y crear un nuevo registro en la entidad "new_customhistorial" (con el lookup apuntando al registro principal).

    de esta manera cada créate/update que hagas en "new_custom", se creará un registro en "new_customhistorial". además esta entidad contendrá la fecha de creación y el usuario que ha realizado el cambio

    espero te sirva.

    un saludo,


    Demian Adolfo Raschkovan Blog: http://crmtoall.blogspot.com

    jueves, 27 de diciembre de 2012 15:27
    Moderador

Todas las respuestas

  • Hola Leandro,

    para hacer eso de la mejor manera deberías hacerlo a través de un "plugin". los plugin son .NET assemblies que se ejecutan ante eventos de CRM (creación, actualización, etc.). para mas información acerca de plugins te recomiendo la SDK http://www.microsoft.com/en-us/download/details.aspx?id=24004 que tiene además ejemplos y explicaciones.

    un saludo,


    Demian Adolfo Raschkovan Blog: http://crmtoall.blogspot.com

    jueves, 27 de diciembre de 2012 12:59
    Moderador
  • Hola Demian, se hacer plugins ya que hice algunos de practica con guias de por medio, pero no tengo la menor idea de como puedo hacer este en especial.

    Gracias de todos modos!

    jueves, 27 de diciembre de 2012 15:13
  • Hola Leandro, si pudieses, lo ideal sería migrar a crm2011 (je, es que en 2011 ya se dispone de auditoría out of the box).

    Por otro lado hay un par de soluciones ya existentes para auditoria para CRM 4.0 (yo he probado alguna y van bien, aunque son sencillas):

    - http://code.msdn.microsoft.com/auditing4crm

    - http://crmaudit.codeplex.com/

    sino, lo podes hacer a mano. una solución podría ser (suponiendo que tu entidad se llama "new_custom"):

    1) crear una entidad que se llame "new_customhistorial"

    2) en esa entidad nueva, crear los mismos campos que la entidad "new_custom"

    3) crear un nuevo campo de tipo lookup en "new_customhistorial" que apunte a "new_custom"

    4) crear un nuevo plugin en la entidad "new_custom" en el evento "pre" (créate/update). este plugin deberá recoger los datos del registro, y crear un nuevo registro en la entidad "new_customhistorial" (con el lookup apuntando al registro principal).

    de esta manera cada créate/update que hagas en "new_custom", se creará un registro en "new_customhistorial". además esta entidad contendrá la fecha de creación y el usuario que ha realizado el cambio

    espero te sirva.

    un saludo,


    Demian Adolfo Raschkovan Blog: http://crmtoall.blogspot.com

    jueves, 27 de diciembre de 2012 15:27
    Moderador
  • Ahi me gusto mas, Gracias Demian.

    Con el tema de la migracion, creeme que es lo que quiero jaja pero depende del cliente no de mi :P


    jueves, 27 de diciembre de 2012 15:51