none
Actualizar campos dinamicamente RRS feed

  • Pregunta

  • Hola Amigos,
                     Necesito alguna manera de poder actualizar el valor de un atributo, supongamos "x" particular de tipo entero ubicado en una entidad A. Este atributo "x" cambia de valor cuando se crea o modifica otra entidad B para cierto valor de atributo "y". Entonces cuando ocurre este evento, de crear o modificar un registro de la entidad B, el atributo "x" debera ser, por ejemplo x - y.
    Intente hacerlo con un flujo de trabajo pero no resulto, `pues no me deja restar ni hacer ninguna operacion.
    Tambien trate de hacerlo con un web service, pero no encontre algun mensaje para actualizar un valor en la base de datos, en realidad encontre pero para las entidades que vienen por defecto en el crm.

    Supongamos por ejemplo, tengo en una entidad (A) el total de caramelos que me provee un viajante, entonces cuando hago una venta (esta seria la otra entidad B) debo ir descontando del total la cantidad que hice en una venta.

    Alguna idea para implementar esto?

    Saludos
    Santiago.
    viernes, 6 de noviembre de 2009 18:29

Todas las respuestas

  • La mejor forma, y creo que las "limpia" seria desarrollarse un plugin en los eventos de Create/Update/Delete de la Entidad.
    Los plugins son clases en .NET que puedes desarrollarte y que se registran y se disparan ante determinadas eventos que se producen en el CRM.
    Para iniciarte en los plugins te recomiendo el curso online que hizo Daniel Sabater: http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032424589&EventCategory=3&culture=es-ES&CountryCode=ES

    otro enlace podria ser: http://msdn.microsoft.com/en-us/library/dd393295.aspx

    un saludo

    viernes, 6 de noviembre de 2009 21:32
    Moderador
  • Hola Amigos, gracias por la ayuda. Pero tengo un problema al implementar el plugin, ya que al programarlo necesito acceder a las nuevas entidades de mi crm, por eso necesito hacer una referencia web al servidor, pero me arroja errores de ambiguedades.
    Y si remuevo el "using Microsoft.CRM.sdk" me dice que no conoce la interfaz plugin, y si remuevo en mi caso la referencia web "using ClassLibrary.CRMReference" no veo las entidades de mi crm.
    Esta bueno hacerlo con un plugin porque puedo usar las entidades dinamicas, se puede hacer una aplicacion comun y registrarla para que se ejecute tipo un plugin?

    Gracias
    martes, 10 de noviembre de 2009 14:43
  • Egfectivamente, esa es una ventaja de usar un plugin.
    Para solucionar tus ambigüedades tienes 2 opciones:
    1) Utiliza 2 clases diferentes para usar la "Microsoft.CRM.sdk" y "ClassLibrary.CRMReference" (creo que es lo mas "limpio")
    2) Donde te dice que hay ambiguedades, poner la ruta completa del tipo, por ejemplo "Microsoft.CRM.sdk.CreateResponse" en vez de "CreateResponse".

    un saludo
    martes, 10 de noviembre de 2009 15:02
    Moderador
  • hola Amigos, he logrado desarrollar el plugin "Plugin1", lo he registrado con la herramienta "Plugin Registration Tool" para el paso create de la entidad A de manera asincronica post Stage. Todo funciona de maravilla, salvo con otro plugin "Plugin2" que es parecido al "Plugin1" pero debe ejecutarse al actualizar un valor de A, no al crear una instancia de la entidad A, entonces lo he registrado con la misma herramienta pero para el mensaje "Update". En fin, el tema es que no esta entrando al metodo execute, porque le puse para que me escriba en un archivo de texto por si entraba pero no me hace nada cuando modifico algun valor en la entidad A. lo registre de la misma manera que el otro, post Stage, la entidad A y asincrono.
    Que puede estar pasando?


    Gracias!
    jueves, 19 de noviembre de 2009 19:55