martes, 3 de enero de 2012

lookup Dinamico CRM 4.0 y CRM 2011

Hola amigos como están….



El día de hoy un nuevo blog el cual muestra cómo obtener los datos de un campo lookup para hacer validaciones o llenar otro campo lookup.

Bien arranquemos, lo primero que debemos tener en cuenta es el campo del que vamos a obtener los datos.

Para obtener estos datos usamos la función get del CRM 2011.

Para este proceso voy a mostrar cómo se hacía en CRM 4.0 y como debe hacerse en CRM 2011, para dar una luz un poco más clara a lo que se requiere.

CRM 4.0

Var lookupItem  = new Array();

lookupItem   =  crmForm.all.<<Nombre del campo >>.DataValue;



if(lookupItem  [0]  != null)

{

                Alert(lookupItem  [0].name;

                Alert(lookupItem  [0].id;

                Alert(lookupItem  [0].typename;

}



CRM 2011

Var lookupItem  = new Array();

lookupItem   =  Xrm.Page.getAttribute.(<<Nombre del campo >>).getValue();



if(lookupItem  [0]  != null)

{

                Alert(lookupItem  [0].name;

                Alert(lookupItem  [0].id;

                Alert(lookupItem  [0].entityType;

}



Con el proceso anterior ya tenemos los datos o valores del lookup seleccionado en el evento change del control, los cuales los estamos mostrando en una alerta.



Ahora bien ya teniendo los datos, estos se los asignaremos a otro control del mismo tipo (cabe la pena aclarar que el lookup donde se colocara la información debe ser una relación con la misma entidad.)

Para colocar el valor se usara la propiedad set, asi como lo hice anteriormente, voy a colocar la forma en CRM 4.0 y CRM 2011.



CRM 4.0

Var lookupData  = new Array();

Var lookupItem   = new Object();



lookupItem .id = “CampoID”;

lookupItem .name  = “CampoNombre”;

lookupItem.typename = “NombreEntidad”;



lookupData[0] = lookupItem;



crmForm.all.<<Nombre del campo lookup >>.DataValue = lookupData;



CRM 2011

var lookupItem = new Array();

lookupItem = Xrm.Page.getAttribute("<<Nombre del campo actual>> ").getValue();

               

if(lookupItem[0] != null)

{



var value = new Array();

                value[0] = new Object();

                value[0].id = lookupItem[0].id;

                value[0].name = lookupItem[0].name;

                value[0].entityType = lookupItem[0].entityType;

               

                 Xrm.Page.getAttribute("<<Nombre del Nuevo campo>> ").setValue(value);

}



Y listo con esto ya podemos asignar a un lookup el valor de otro, para no generarlo por medio de un trigger en la base de datos o por medio de una regla de workflow



Amigos mil gracias y cualquier duda con gusto estoy para servirles.. saludos y espero les sirva mucho esta información.

No hay comentarios:

Publicar un comentario