Vamos a ver en este post un código JavaScript de como podemos recuperar el valor de los campos de un elemento referenciado en un lookup en un formulario de Microsoft Dynamics CRM 4.0.
La solución más habitual, pero también mas costosa es hacer un Fetch a partir del campo que deseamos y con este construir un SOAP que nos devuelva el elemento que queremos.
Propongo aquí una manera que aunque devuelva sólo el valor del campo, es más rápida de llevar a cabo y funciona a la perfección.
function OnCrmPageLoad()
{
crmForm.all.<nombre_campo>.attachEvent("onafterselect",
OnLocationSelected);
}
function OnLocationSelected()
{
// Cogemos el elemento del lookup que queremos
var lookupValues = crmForm.all.<nombre_campo>.items[0].keyValues;
// Cogemos el campo que deseamos del lookup
var nota = lookupValues.<nombre_campo>.value;
// Modificamos el campo que queramos con el valor recogido antes.
crmForm.all.<nombre_campo>.DataValue = nota;
}
OnCrmPageLoad();
Ojo! Hay que tener en cuenta que el campo que queramos recoger tiene que estar en la vista de búsqueda de la entidad a la que pertenece el lookup.