none
Creación de registros con relación One-to-Many RRS feed

  • Pregunta

  • Hola amigos,

    Mi pregunta es la siguiente, estoy iniciandome en la parte de programación con dynamics crm 4.0, tengo Entidad 1 y Entidad 2, existe una relación de 1 a muchos de Entidad 1 a Entidad 2.

    Mi problema es el siguiente, usando c# creo registros del tipo Entidad 2, lo que necesito es que estos registros estén relacionados con un registro de tipo Entidad 1, no encuentro la forma de hacerlo, no se con que clase apoyarme para realizar esto.

    He tratado con la clase AssociateEntitiesRequest, pero esta solo funciona pra relaciones Many-to-Many y la relación que tengo es One-to-Many.

    Cualquier aporte me sería de gran ayuda.

    Desde ya muchas gracias!!!
    lunes, 9 de noviembre de 2009 18:28

Respuestas

  • Lo acabo de resolver, es muy simple, aunque me llevo un buen de tiempo, falta de experiencia :P.

    La Entidad 2 contiene un atributo de lookup hacia la Entidad 1, de tal forma que yo puedo hacer lo siguiente:


    //Creamos un registro del tipo Entidad 2
    DynamicEntity e2 = new DynamicEntity();
    e2.Name = "Entidad2";

    //creamos un objeto de tipo Lookup
    //al valor para el lookup debe de ser el Guid que tenga el registro del tipo Entidad1
    Lookup lk = new Lookup();
     lk.Value = new Guid("C813F897-31C3-DE11-8302-000C29CEB6FD");

    //finalmente se genera la relación asigando el valor del lookup que generamos al atributo e1id que es un atributo de lookup hacia Entidad1
    e2["e1id"] = lk;


    Y con eso hemos creado una relación One-to-many.


    Espero a alguien le ayude.


    Saludos!!

    lunes, 9 de noviembre de 2009 20:18
  • Hola y45h1r0Medallas del usuario,
    ten cuidado con eso, ya que solo se pueden asignar registros a usuarios y no a equipos de trabajo.
    Con los equipos lo unico que puedes hacer es "Compartir" registros

    un saludo

    martes, 10 de noviembre de 2009 15:04
    Moderador

Todas las respuestas

  • Lo acabo de resolver, es muy simple, aunque me llevo un buen de tiempo, falta de experiencia :P.

    La Entidad 2 contiene un atributo de lookup hacia la Entidad 1, de tal forma que yo puedo hacer lo siguiente:


    //Creamos un registro del tipo Entidad 2
    DynamicEntity e2 = new DynamicEntity();
    e2.Name = "Entidad2";

    //creamos un objeto de tipo Lookup
    //al valor para el lookup debe de ser el Guid que tenga el registro del tipo Entidad1
    Lookup lk = new Lookup();
     lk.Value = new Guid("C813F897-31C3-DE11-8302-000C29CEB6FD");

    //finalmente se genera la relación asigando el valor del lookup que generamos al atributo e1id que es un atributo de lookup hacia Entidad1
    e2["e1id"] = lk;


    Y con eso hemos creado una relación One-to-many.


    Espero a alguien le ayude.


    Saludos!!

    lunes, 9 de noviembre de 2009 20:18
  • Exactamente, los campos de tipo "referencia" son los "lookups".
    De todos para todo este tipo de cosas te recomiento tenre siempre a mano la SDK de CRM 4.0:
    http://www.microsoft.com/downloads/details.aspx?FamilyID=82E632A7-FAF9-41E0-8EC1-A2662AAE9DFB&displaylang=en

    un saludo,
    lunes, 9 de noviembre de 2009 21:57
    Moderador
  • Lo tengo instalado, ya que es de la instalación del sdk de donde tomo las dll's para poder desarrollar.

    Ahora trabajaré sobre la asignación de registros a equipos de trabajo, si tienen algo al respecto les agradecería me compartieran un ejemplo.

    Saludos y gracias amigos!!.
    lunes, 9 de noviembre de 2009 22:59
  • Hola y45h1r0Medallas del usuario,
    ten cuidado con eso, ya que solo se pueden asignar registros a usuarios y no a equipos de trabajo.
    Con los equipos lo unico que puedes hacer es "Compartir" registros

    un saludo

    martes, 10 de noviembre de 2009 15:04
    Moderador
  • Hola Demian,

    Efectivamente no se puede, intenté hacerlo por mera curiosidad y me lanza una excepción indicandome que no existe el usuario con el id que proporcioné y pues nunca lo encontrará puesto que busca usuarios con el id proporcionado  cuando yo le había proporcionado un id de equipo.

    Consideraré la compartición de registros en lugar de la asignación.

    Saludos!!
    martes, 10 de noviembre de 2009 17:31
  • Hola que tal y45h1r0

    Al igual que tú cuando escribiste este post apenas estoy entrando en el mundo de CRM, y efectivamente tengo un requerimiento One-To-Many en el que quiero asignarle muchos PAGOS a un CLIENTE.

    Estoy creando una pagína custom de ASP para mostrar en CRM, y debo mostrar todos esos PAGOS de CLIENTE,

    Quisiera hacerte las siguientes preguntas:

    1) Las entidades  1 y 2 las creaste primero en CRM luego las manipulaste desde C#? ó las creaste en C# mediante código?

    2) Sería mucho pedir si tienes un segmento de código que me pudieras proporcionar como ejemplo? Te lo agradecería muchisimo.


    Saludos y gracias!

    miércoles, 24 de febrero de 2010 23:40